Welcome to %s forums

BrainModular Users Forum

Login Register

Usine Native VST Wrapper/Loader

Tell us what you'd like Usine to do
Post Reply
gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 26 Dec 2011, 21:10

Sorry to beat such a dead old horse but I still feel strongly that Usine needs a native VST wrapper/loader that has the following criteria:

-can realime swap a VST including saved parameters in place within a patch or sub patch
-can be triggered by preset manager
-exposes the VST parameters to Usine once plugin is loaded
-retains given name of root VST module for access to the VST parameters via IML
-completely unloads the previously loaded VST from RAM
-is uncomplicated and stable assuming the plugin being loaded is also stable!!!

I have been pulling my hair out to find any other solution for swapping VST's in place but there is nothing stable that matches the criteria!
I am not expecting instantanious seamless VST switching and I always switch to playback through another track before doing any realtime load on a track.
The closest solution would be WusikVM however it is unstable in Usine but otherwise does exactly what I am looking for.

Other things I have tried:

-Load Patch Module in Usine: Works well in Rack mode but overly complex, especially in the context of one Line/Patch per plugin. I have used Load Patch to load full chains of plugins but this method is heavy on CPU as the entire patch and all plugins need to be reloaded every time.even if only one plugin has been changed, and a lot of micro management is needed.

-Matrix routing: Still needs some work to be stable I think.. Also requires a fixed amount of VST's to be pre loaded in a patch potentially sucking up a ton of RAM and decreasing stability. IMO the matrix is very suitable for flexible routing of several VST's etc. but gets complicated and time consuming and resource hungry to set up so as to have large amounts of VSTs ready to use.

-Running Usine VST or other modular style VST with hosting capabilities inside usine to create my FX chains and recalling the state via preset manager. Has anyone spent much time running Usine VST in Usine? This sure gets confusing fast! Plus there seems to be a good amount extra overhead when loading a VST in this fashion. Also the workspace becomes disjointed in trying to have control and interface functionality of the VST's and renders some of my VST interface methods very complex or useless.

-Big Tick Zen, interesting idea but seems overconvoluted for the task and also suffers stability issues for me, plus it does not unload previously loaded VST's from RAM.

-Various other VST wrappers atc that all really do not do what I need..

So basicly I am hoping for a simple and immediate way to load a VST in place within a Usine patch, thereby having a nice easy to use option to switch up my FX chain on the fly without losing any more hair! :) Just think WusikVM stripped down of any extra features and working! The fact alone that I have struggled with this concept for so long tells me that there needs to be an easier way!
(FYI my main use for Usine is as a live FX rack / interface and control relay for my external hardware synths and samplers, my main stumbling block up till now has been finding an efficient way to load and re route VST's within an active workspace...)

Another method that would make me happy is a preset manager mode that updates the contents of a patch or subpatch (including wiring, modules etc.) but does not reload the unchanged parts of the patch. This would be amazing! (but presumably not possible)

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 27 Dec 2011, 01:42

i had same goal and i started to build such a patch a long time ago,
i found back the wksp, seem to work ok here, maybe this can interest you by waiting:
Image

basically it's a 8 slots chainer. each slot can contain or not a vst. can drag and drop vst from browser. can reorder cells so routing reorders as well. can enable/disable cell = bypass vst. clic on mx to display/hide vst. volume gui ready but not implemented yet.
All of this is storable to preset, so changing preset, if some vsts changed it unload them and reload new ones.
however i have not thinked/solved/implemented the expose parameters yet as it raises lot of questions. ie ableton only see 128 param.
there could be 8vsts of 256 param, so user need to choose only some param that rewire on each load to a fixed set of vst faders/parameters id, update names, and im not sure the host would refresh..seems complex, ...but as always doable ;)
as soon as i got time will try to finish it, polish and post as add-on, but maybe you could 'beta' this wksp, got tno time actually..

the wksp here:
http://sensomusic.com/forums/uploads.ph ... 01%20D.rar

edit: mm the vsts seems to reload fine if changed but the displayed text doesn't update correctly, i got to check that..arf

gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 27 Dec 2011, 06:16

wow 23fx23, that is impressive! I had no idea this type of thing could be patched... errrr, ummm "scripted" in Usine :) I have only had a quick look at the moment but one problem I seee is the use of busses for routing as each one will add one buffer of latency on multicore cpu. It would be nice to incorporate the matrix router if possible to replace the busses.

About VST parameters, you have made the VST names remain constant (ie: VST0, VST1,VST2 etc) so this can still work really nice with my hack job patch with the setVSTparams script (see getsetVSTparams in addons). I just had a thought that my patch might also provide a nice way to choose VST parameters to send to a host if using Usine as a VST..

I am definately going to have a deeper look at this and hopefully use it in the time being, but my request still stands for a Usine native stupid simple VST loader-a-magig ;)

gurulogic
Member
Posts: 1019
Contact:

Unread post by gurulogic » 27 Dec 2011, 10:03

Hmm, seems when I change the VST I lose any connections I make to the VST. I need params names to text out and params array out which I assume I could piggyback from the existing... also would like to connect a bypass VST switch. Any direction you can suggest for my sadly script illiterate self to include these connections in the template? Also it seems this patch could be somewhat easily modified to work on one VST in a sub patch and then used multiple times. Is this a possibility? Totally mind blown, really wish I could deal with the behind the scenes programming/scripting end of Usine, so many things could be possible but I truly am challenged to learn the basics of any new language, never mind Usine speak.. It's a miracle I can even understand english, lol

edit: oh I see there is already a bypass VST method, cool.

Something really strange happening though. I deleted two busses wondering if they would come back if I changed the VST and all of the loaded VST's unload one at a time, even after loading a previously saved workspace, plus my task bar goes all weird when loading Usine.. what the heck is Usine taking over my computer? reboot..!

...yea, this is messed, after a reboot my taskbar is normal again but even if I load your workspace before any modification and insert my own VST's, they are methodically deleted one at a time as soon as I enable the audio engine. All this because I deleted two busses from a copy of the patch in another completely separate workspace.. I have no idea wtf but I cannot even use this patch any more...! definately not simple, lol

23fx23
Member
Posts: 2545
Contact:

Unread post by 23fx23 » 27 Dec 2011, 14:14

one problem I seee is the use of busses for routing as each one will add one buffer of latency on multicore cpu. It would be nice to incorporate the matrix router if possible to replace the busses.
yeah, at the time i started the idea the mx audio router wasn't avaible, it would certainly be better now if mx based.
but i would like to 'visualize' orders, so i got to script something that convert my stuff to matrix array. good idea
Hmm, seems when I change the VST I lose any connections I make to the VST
naturally ;) in the script it deletes vst and trig iml message to rewire stuff, anything added should be added in the script too.
Params array go to a subpatch that store arrays to pm. you could repick the arrays from there instead of directly on vst.
I will have a look to get params names. it should be possible without wiring, by iml too if i well remember.

the busses are needed. the script don't delete/create them, they are already there then the script renames i/O to match the routing.
and yeak actually it scan wich vst changed and can only change one after the other. some time is needed to reload/rewire ect without mess. but stange for taskbar..
i think i still have few things to fix/make better. this is a quite complex technology lol will investigate, but not much time for now :(
I am definately going to have a deeper look at this and hopefully use it in the time being, but my request still stands for a Usine native stupid simple VST loader-a-magig
yeah i think senso could do a much more better job ;)

Post Reply

Who is online

Users browsing this forum: No registered users and 9 guests