Randomisation of instrument settings ?

Official support for: zynaddsubfx.sourceforge.net
Post Reply New Topic
RELATED
PRODUCTS

Post

Hi, Is there already a way or script out there to produce random instruments ?

One of my VST hosts on Windows had some facility to randomise settings for whatever synth was loaded and I found this to be an interesting way of exploring sounds. Had to keep the volume down because of course occasionally you'd get some awful screech or very load sound :-o

I started looking at the control settings in the code that get exported to the XML instrument preset file. It looks like a script could be written (that makes a preset file) to produce random settings for each control to produce a random sound. Seeing as this is fairly obvious I wonder if anyone has already experimented with this or released something ?

Post

OK, I just found a way of making random presets using Jeskola Buzz and the Polac VST machine with the Zyn VST version. Once the controls are learnt using the MIDI window in Zyn they can be accessed by Polac VST. Polac has a randomisation function along with some preset morphing and "breed" genetics functions; great for learning Zyn as I can investigate what sounds good by examining various areas of the controls after randomly hitting a cool sound :). However I don't see this MIDI window in the Linux version of Zyn. Neither is it in the DSSI version which does not have a GUI. Is it only the Zyn VST version that gives MIDI access/learning to controls ?

If I can have MIDI access to all the learnable controls then I can write a script for the command line in Linux to randomise the MIDI input, and hence all those controls in Zyn.

Post

The git version of the linux version will provide a listing of all parameters via the --dump-oscdoc command line argument.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

Hi, thanks. OK I got the dump XML file. Now I'm wondering what to do with it :roll:. I guess this is all OSC not MIDI ? Anyway, I may come up with something :hihi:.

There's also a new MIDI controllers window with expandable tree of controls. Whats that ?

Post

The XML file documents the OSC API, which can be almost entirely bound to MIDI (more or less via an internal MIDI->OSC converter).
It can also be viewed in html form.
An older out-of-date copy can be seen at: http://fundamental-code.com/zyn-ports/

The new window is the absolutely horrible UX to define MIDI controls.
It's been a while since I've tested that, but the general idea is you find the thing you want to learn, you click on it and then you wiggle your midi controller around.
In the future the normal sort of "right click" to learn or something like that will be available, but the fltk UI is pretty resistant to modernization (though it is being slowly dealt with).
Learning can be done also through OSC though I think that bit of the API is in the unexposed portion of the OSC interface.
While it isn't perfect, viewing the internals via http://github.com/fundamental/oscprompt might make understanding some of this mess a bit easier.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post

OK, thanks.

I get this when building oscprompt ...

Code: Select all

djbarney@djbarney-osiris-64bit ~/Build/oscprompt-master/build
$ make
[ 33%] Building CXX object CMakeFiles/example-backend.dir/example.cpp.o
In file included from /home/djbarney/Build/oscprompt-master/example.cpp:21:0:
/home/djbarney/Build/oscprompt-master/example.cpp: In lambda function:
/home/djbarney/Build/oscprompt-master/example.cpp:96:13: internal compiler error: Segmentation fault
     rRecurs(oscil, 16, "Oscillator bank element")
             ^
Please submit a full bug report,
with preprocessed source if appropriate.
See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
Preprocessed source stored into /tmp/ccUwGd2M.out file, please attach this to your bugreport.
CMakeFiles/example-backend.dir/build.make:54: recipe for target 'CMakeFiles/example-backend.dir/example.cpp.o' failed
make[2]: *** [CMakeFiles/example-backend.dir/example.cpp.o] Error 1
CMakeFiles/Makefile2:60: recipe for target 'CMakeFiles/example-backend.dir/all' failed
make[1]: *** [CMakeFiles/example-backend.dir/all] Error 2
Makefile:117: recipe for target 'all' failed
make: *** [all] Error 2

Post

The example backend is now disabled by default and can be conditionally enabled.
I can't really do too much about the compiler segfault, but make large workarounds for it.
One of the developers on the ZynAddSubFX open source synth
The author of the Zyn-Fusion UI for ZynAddSubFX

Post Reply

Return to “ZynAddSubFX”