I have a question – is it possible to configure the built in DAW to support different pre-existing VSTs? For example if I would like to make a guitar stompbox which could run different kinds of audio effects depending on the situation. Furthermore – could this be implemented in a drag-and-drop architecture with presets so that I could have for example my favourite VST delay on channel one, and a VST chorus on channel two, and so forth? Would this require implementing a separate codebase for each software plug-in or merely mapping parameters (say knob 1 controls division time for the delay plug-in while controlling modulation depth for the chorus?)
You can definitely run several VST’s simultaneously, either in a chain, or in parallel, or for that matter, many chains in parallel, as you would in any other DAW.
The difference is that Sushi does not implement dynamic loading, i.e. you cannot load/unload plugins while keeping other plugins in memory.
Instead, you need to terminate the Sushi process and start it anew whenever you want to use a different configuration.
Another such example is the adc_sequencer, which we used as a demonstration at ADC '19.
What you refer to, with drag and drop, is not something we directly provide code for. But it is straightforward to implement a system using Elk, which generates Sushi configuration .json files following such user edits, and simply restarts the Sushi process in the background when the change needs to take place, loading the newly generated .json.
Audio then does need to stop, but that is the case also when dynamically loading a plugin on a desktop DAW.
Hi,
I just want to add on top of Ilias’ answer that dynamic plugin loading is under development.
Actually, there is something like that available through the OSC API (check SUSHI’s README) but we wouldn’t recommend using it in production as it is not stable. But might be good enough for you to start prototyping and experimenting.
This is super interesting to me. I’ve been looking through the repo and was wondering why it seemed that you could get but not set tracks via the API. Dynamic plugin loading would really open up a ton of possibilities!