SynthMaker

Selectively Loading Preset Parameters

Archive · 2011 5 old posts

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].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.