Lib -> set project properties

Multi-platform modular music creation studio
Post Reply
RaXnTraX
Posts: 7
Joined: Tue Feb 22, 2022 2:10 pm

Lib -> set project properties

Post by RaXnTraX »

I can not find a function to set the properties of a project in the Lib.
There is p.e. sv_get_song_bpm(), but there is no sv_set_song_bpm()....
Ol sen
Posts: 20
Joined: Sat Feb 12, 2022 6:26 am

Re: Lib -> set project properties

Post by Ol sen »

Same idea, so :angel: +1,
But guessing when you create some meta module, which has TPL and BPM, and do so into memory and then load from memory you are actually close to some workaround.. That is as i understood, and hopefully i am not wrong, because i assume a project is actually the highest hierarchy and so a meta module.
So if you can set TPL on a meta module you would be close to some solution once and for all.

another way is to kick patterns out and do it externally, then you have to create your own event mechanism sending at the right time. But thats still not a solution, as arp-ing is not of much meaning without being able to set bpm or tpl.


Another task is BPM precision in general.
1BPM steps are almost impossible to play along with analog gear for long unless the clock or mtc is also send from psynths thread.
at least .1 or .01 precision would be perfect to be able to correct drift.
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Lib -> set project properties

Post by NightRadio »

RaXnTraX wrote: Tue Feb 22, 2022 2:15 pm I can not find a function to set the properties of a project in the Lib.
There is p.e. sv_get_song_bpm(), but there is no sv_set_song_bpm()....
You can use sv_send_event():
set BPM: sv_send_event( slot, track_num, 0, 0, 0, 0x001F, BPM );
set TPL or BPM: sv_send_event( slot, track_num, 0, 0, 0, 0x000F, TPL_or_BPM );
maks
Posts: 43
Joined: Sat Mar 26, 2022 4:28 am

Re: Lib -> set project properties

Post by maks »

Hi,
First off a *very big* thank you to NightRadio for generously not only making Sunvox available but also making SunvoxLib freely available for others to use!

Sunvoxlib seems pretty much perfect for a small personal "groovebox" project I'm working on, except I've run into an issue in that while there are functions like sv_get_module_ctl_value(), sv_get_module_ctl_name(), sv_get_module_color(), etc, there are no setter functions for any of these.

So I wanted to ask, is setting module value and module controller values possible via Sunvoxlib? If so, is it via the sv_send_event() function in a similar way to how you described above for BPM or via a different function?
User avatar
NightRadio
Site Admin
Posts: 3941
Joined: Fri Jan 23, 2004 12:28 am
Location: Ekaterinburg. Russia
Contact:

Re: Lib -> set project properties

Post by NightRadio »

maks wrote: Sat Mar 26, 2022 4:58 am Sunvoxlib seems pretty much perfect for a small personal "groovebox" project I'm working on, except I've run into an issue in that while there are functions like sv_get_module_ctl_value(), sv_get_module_ctl_name(), sv_get_module_color(), etc, there are no setter functions for any of these.
Set module ctl value: sv_send_event( slot, 0, 0, 0, module + 1, ctl << 8, ctl_val );
where ctl_val is the value from 0 (min) to 32768 (max)

sv_get_module_ctl_name(), sv_get_module_color():
setters for these functions are not available yet, sorry.
maks
Posts: 43
Joined: Sat Mar 26, 2022 4:28 am

Re: Lib -> set project properties

Post by maks »

Thank you for the very quick reply!
Ok that makes sense, so its really just the same as sending the event from the grid.
The module controllers are the main thing I need for now, though it would be nice to have the setters for name and color if you get a chance to add these in a future version.
But no worries at all about them, as I found now (sorry it's only been a few days since I've discovered Sunvox properly) that someone has been documenting the file format so I could always have a go at changing the module colour and name directly.

Thanks again!
RaXnTraX
Posts: 7
Joined: Tue Feb 22, 2022 2:10 pm

Re: Lib -> set project properties

Post by RaXnTraX »

maks wrote: Sat Mar 26, 2022 4:58 am Sunvoxlib seems pretty much perfect for a small personal "groovebox" project I'm working on
What a coincidence! I am doing exactly the same.
I've started first with cSound (ModulysCS). It works great, but since a couple of weeks I've discovered sunvox-lib. What a great lib!
maks
Posts: 43
Joined: Sat Mar 26, 2022 4:28 am

Re: Lib -> set project properties

Post by maks »

RaXnTraX wrote: Wed Mar 30, 2022 12:20 pm
maks wrote: Sat Mar 26, 2022 4:58 am Sunvoxlib seems pretty much perfect for a small personal "groovebox" project I'm working on
What a coincidence! I am doing exactly the same.
I've started first with cSound (ModulysCS). It works great, but since a couple of weeks I've discovered sunvox-lib. What a great lib!
Cool, great to hear about a fellow maker!
Yes I went down the road a bit of making my own custom engine until I discovered the fantastic sunvox lib.
I made an entry to a YT contest with it and then a explanation showing as far as I got with mine and of how it works here:

But now that I've discovered Sunvox lib I can see that it implements most of what I was trying to build and does it much better! so I'm beginning work on switching over to using sunvox as the engine.

In the meantime I've also learnt about the Polyend and more recently had a little go with a headless Dirtywave M8, so I'm now tempted to build a more "tracker oriented" hardware interface using sunvoxlib vs using the Akai Fire, though for now my first job is to get things working with the AkaiFire since I think its combination of small OLED and large number of pads/buttons/dials will still work well with sunvoxlib.

Actually if it was possible to script Sunvox-the-app's editing functionality, I think I could avoid having to re-invest the wheel so much and just use Sunvox's existing UI, but given the amount of integration I need to do with even the AkaiFire (esp sending feedback midi sysex for pad colors, OLED display, etc) for now I need to use the sunvoxlib as Sunvox's existing Midi implementation is great, but not really enough to do all that without a scripting language (eg. like Lua in renoise).
Post Reply