Welcome to %s forums

BrainModular Users Forum

Login Register

synchronize all changes between VST instances

General Discussion about whatever fits..
Post Reply
NaN
Member
Posts: 35
Location: Munich
Contact:

Unread post by NaN » 01 Aug 2011, 21:14

Hello Usine gurus,

is there a way to synchronize all changes between several instances of the same VST?
Effectively I want to have one "master" VST which's GUI is used to configure up to 15 copies which receive midi on distinct channels in order to get 16 really independent voices with per channel modulations etc.

On first sight it is very easy to synchronize everything that is layed out as a parameter, a Master.params->Slave.params connection does the trick. Unfortunately for many synths not all features are parameterized, they are stored per patch though so at least they have to be persisted into the preset files.

With Bidule I used the trick to store the master's configuration into a file and make all slaves reload that file when clicking a "sync" button. Is something like that (or perhaps even something without the detour over the file system) possible with Usine?

Thanks,
NaN

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 01 Aug 2011, 22:07

Not easy if as you say some parameters are not declared in the parameters array .
Maybe a script guru can go through this limitation...

NaN
Member
Posts: 35
Location: Munich
Contact:

Unread post by NaN » 01 Aug 2011, 23:15

Found a way that should theoretically work. Thinking of a generic plugin loader that lets the user choose the plugin and creates a polyphonic synth (with one master and n slaves) automatically.
Practically I am struggling with some scripting basics:

For some reason the internal "Create Module" command that I'd need does not work for me as expected in Usine Pro 5.50.58 - no new module is created. Am I doing something wrong or is the command currently not supported?

Procedure CreatePolySynth();
begin
Debug('CreatePolySynth'); // just indicates that my function is called - that is the case
SendInternalMsg('SET_TARGET_PATCH','SENDER_PATCH');
//SendInternalMsg('CREATE_MODULE','polysynth','6','10','10','Empty SubPatch.pat'); // does not work
SendInternalMsg('CREATE_MODULE','vol','4','100','100'); // replaced the creation of the new submodule with something simpler - does not work either
end;

The trace in the console looks good on first sight - just no module is created:
process msg : SET_TARGET_PATCH SENDER_PATCH
SET_VAR patch TARGET_PATCH_SCRIPT=ACE
process msg : CREATE_MODULE vol 4 100 100

NaN

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 01 Aug 2011, 23:29

I'm not a script guru, but you can check the patch advanced IML in the modules/script dir

NaN
Member
Posts: 35
Location: Munich
Contact:

Unread post by NaN » 01 Aug 2011, 23:39

Thanks for the tip. Can't find where this script uses 'CREATE_MODULE' on first sight though.

User avatar
nay-seven
Site Admin
Posts: 5684
Location: rennes France
Contact:

Unread post by nay-seven » 01 Aug 2011, 23:56

i know, it was just to verify your syntax, just an idea

NaN
Member
Posts: 35
Location: Munich
Contact:

Unread post by NaN » 06 Aug 2011, 14:37

I got a hint from senso, thanks for that!
You can't use SendInternalMessage in a fastcall context (see http://www.sensomusic.com/wiki/doku.php ... tutorial03 and search for the second occurrence of "SetFastCallBack" ). When the callback function that calls the SendInternalMessage commands is asynchronously executed in a lower prio thread (what can be configured with SetFastCallBack(MyTriggerParameter,false)) instead of directly running in the context of the audio thread then it works!

NaN

Post Reply

Who is online

Users browsing this forum: Google [Bot] and 98 guests