From the original SynthMaker forum (2004–2014), with its members’ names and dates.
McBarGig ·
I have a project with about 1,500 VST parameters saved to a file. Needless to say I don't need them all at all times. I have already been through a gazillion options, but there's one that I have not tried yet. I really want to limit the number of parms so that presets will change quicker.
Here's the idea, and I want to know if anyone has tried this or something similar before..
Each component has its own ON OFF switch, that switch can be connected to the STORE IN PRESETS option of the VST parameter. So, when the switch is on the modual's parameters are saved in the preset, when the switch is off, they are not.
Seems simple enough, but there is a problem..
I need a way to get all parameters of the PLUG back to their initial state before the user loads another preset..
IE
If I have modual 1 on, and load a different preset where modual 1 is not in the file, its state will remain the same..
Here's a thought...
I was thinking about quickly analyzing the loaded preset first to determine what moduals are on then creating a new preset where the moduals are off, quickly loading that first, then loading the new selected preset. I'll have to write that in another language because we don't have any access to the "P" connections( I have always though that was a mistake), but maybe this is doable? My guess is that for the most part I'll probably drop 800 or so parameters! That would immensely speed things up. I guess at least 70% of the parameters are never used!
What do you think?
Dell ·
It is a good idea and I’m quite sure it will work however the amount work to get it done will be tedious.
Have you ever considered using a selector switch? This will enable you to route the signal to other selector switches that will have your presets organised alphabetically.
For example, you could have one master selector that goes from 1 – 20 and have 20 sub-selectors each managing 75 presets.
I’ve done something like this before however, not using 1500 presets. It eliminates relying heavily on the preset manager for the user manually configures the preset with the selector switches while, the preset manager sees it as one preset, saves it and, recalls it when needed.
Cheers!
McBarGig ·
Thanks Dell..but in this case that won't work..Great Idea though!
I only ever have one preset loaded at any time, so to the daw it looks like the plug has only one and its 1500 parameters long. Instead I am using file presets. It forces the user to use our interface, but with that it allows us a lot more control to do the types of things I'm talking about. ie, intercepting a preset change and running external code before it happens.
The tediom...
Not really. Doing it inside synthmaker, yeah, that would be crazy tedious, but doing it in a more powerful language, NBD. I have an infrastructure already setup for scripting that will allow me to parse and replace a value from the text file very quickly. It is a pre-processor for scripts which I'm calling BUC. All you need to do is specify the name of the parameter... Like this..
If @ON_Switch = 1 then
ON_Switch = 0
Else
ON_Switch = 1
End if
ON_Switch is the name of the parameter and the @ sign before it tells buc to return the value. Parameters that appear without the @ sign but appear with an equal sign tell buc to set the value in the preset file. Its a pretty simple thing and makes writing scripts specific to presets really easy. You can apply matematical functions to them as well. so something like this will work too
IF @MasterOut > 0 then
Gain = @Tube1 + @Tube2 / @MasterOut
else
If Msgbox("Gain could not be set, you must set a MasterOut level first. Do you want to set it now?",16, "MasterOut not set") = 6 then
Dim MasOutLevel
MasOutLevel = @UserInputBox
IF MasOutLevel > 0 then MasterOut = MasOutLevel
Else
End If
End if
Where @UserInputBox is a Buc command that returns a value entered by the user
So, it wil be relatively easy to do...The hard part will be the SM stuff, not hard just tedious..haha, so after having said that..yes you're right it will be tedius...Man I need some sleep!
McBarGig ·
Just an update in case anyone is interested.
I got this working, I have not done it to the entire schematic yet, but so far the results have been good. That may change as I start to puty it in the entire thing, we'll see...
So basically to sum up what I did..
-User selects a preset to load.
-Shut off all switches schematic wide
-Take that preset name and go through it to find out what switches are on, switches that are on in the preset to be loaded, create a new preset that only turns the sitches on.
You end up with something like this
Preset Table Format
Number of programs = 1
Number of parameters = 4
Parameter Type Main
RACK1-Ghetto Float 1.000000
RACK1-Reverb-Reverb Float 1.000000
RACK1-ShiverII-Tremon Float 1.000000
RACK1-PPDELAY Float 1.000000
-Load the preset that the user wants.
The first script created preset turns on only the parameters that are used. When the user turns a switch on in the schematic it turns the preset parameter on so its values are saved. If they don't turn it on, then the parameters are omitted from the file and as such ignored. Simple but what a bunch of hoops to jump through haha
McBarGig ·
I wanted to follow up on this topic for completeness..
We finished putting this system in place, and it works fine. What I initially thought was going to be a problem was that if the plug was compiled without all the parameters turned on, then how would the DAW know what parameters the plug has. Remember we're switching the "Save in presets" off, and in some cases like the "preset string" we're physically breaking the link to the "P" connector by using a selector. This is because the Preset string does not have a boolean option for saving in presets...
Anyways, I loaded the compiled plug into Reaper 4 and all the parameters were there...So, although closer to being able to say this is successful, I still need to test in other daws..
Wrote something here? To have a post removed or your name hidden, write to [email protected].