-
Notifications
You must be signed in to change notification settings - Fork 68
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Vital synth MATRIX data can not be controlled as parameters #212
Comments
I have examined Vital and Serum and have the same conclusion. These matrix routings can't be changed from the VST API of getting and setting parameters. As far as I'm aware, no one has reverse engineered the Serum preset file format. In theory, if you did, you could make changes to the text file and then those changes could show up as different matrix routings. Vital's preset format is JSON, so it should be possible to programmatically change those files and then load them as presets, resulting in different matrix routings. |
Thanks! I can confirm that the matrix routings are explicitly saved in Vital preset files under ['settings']['modulations'] and one can programmatically change them. However, to my knowledge there is currently no tool that converts Vital presets into Dawdreamer states, which enables audio rendering w/ python. This can be linked to an old issue #131. Following the suggestion you gave, I've spent some time trying to extract JUCE parameters from Vital presets, mainly according to this file and this file from the Vital repo. I haven't finished the code, but it seems that 771 out of 775 values under the [''settings'] key in Vital presets are transferrable. The non-transferrable ones are ['modulations'], ['lfos'], ['samples'], and ['wavetables'], because I can not find corresponding keys in parameters accessed via DawDreamer (this is kind of expected, because ['samples'] and ['wavetables'] contain even audio data). I'll give an update if I finish the code. If you want to show the parser as an example as said here, we can do that. Anyway, do you have any insights on how to convert the ['modulations'] (which includes the matrix routings), ['lfos'], ['samples'], ['wavetables'] data to Dawdreamer states? |
Sorry I forgot that Vital presets aren’t FXP presets and can’t be loaded via DawDreamer. You’d have to dig into the Vital source code to automate this. |
New module for this! https://github.com/DBraun/Vita |
This is crazy!! I'll give it a try tomorrow. I can never expect you're working on such a project when I started this issue. Much appreciated for sharing it!!! |
Hi,
The MATRIX data in a synthesizer plugin shows which source (e.g., filter/envelope/LFO) is applied to which destination (e.g. filter cutoff frequency). An example:
Using the vital synthesizer, I found that the matrix data can not be controlled as parameters: If I use synth.open_editor() to add a row or remove a row from the matrix, the parameters I access via dawdreamer won't change (I have compared all the parameters before and after the change). Thus, synth.get_parameter(idx) can not be used to read data from the matrix and synth.set_parameter(idx, value) can not be used to write data to the matrix. However, save_state() and load_state() are able to capture such changes, but manual effort is needed.
As serum also has matrix data, I wonder if anyone has encountered a similar problem and knows why this is happening?
The text was updated successfully, but these errors were encountered: