From the original SynthMaker forum (2004–2014), with its members’ names and dates.
rocko ·
Hi all,
I'm building an SM based EQ, just for the fun & practice.
I have noticed that when I load the EQ to the DAW (cubase) it all behaves well, but, close the DAW and reopen it and the EQ re-opens with its default setting, not with the latest used ones, like the professional EQ's on the 'real' market.
Is there a neat way to make the VST reopen with the latest used parameters? Should I hold a dedicated memory array for this to happen? Any nice ideas on how to solve this issue?
Thanks,
Rocko
CoreStyler ·
rocko wrote: Hi all,
I'm building an SM based EQ, just for the fun & practice.
I have noticed that when I load the EQ to the DAW (cubase) it all behaves well, but, close the DAW and reopen it and the EQ re-opens with its default setting, not with the latest used ones, like the professional EQ's on the 'real' market.
Is there a neat way to make the VST reopen with the latest used parameters? Should I hold a dedicated memory array for this to happen? Any nice ideas on how to solve this issue?
Thanks,
Rocko
Standard VST pluigns works in that way, professional too. When you load a VST without a previous project (preset on it) you get always default bank.. in all products.
If some plugins do what you say, is because the dev added a "last preset" load.
You can do that easily with SM.
Two ways.
the more simple is using the preset manager and force the loading of a previuosly saved temp patch. (but you won't able to determine when the host close for triggering). You can make your plugin able to save "last patch" every time a change has been made. Also a 0.002 float change.
Another way is using a built-in preset system, using arrays. The feature "last patch" will works as first way.
So trigger the patch save in a relative path, like documents using the primitive folder (sysfolder).
The add a trigger that load the last temp path when "afterload".
rocko ·
Thanks, I thought it was something of this kind, just double checked I'm not missing any "easy way out".
I'll follow your recomendations here.
Ittai B.
rocko ·
Hi,
As suggested, I'm investigating the preset handler option.
So, if 2 instances of 'my VST' are to be opened under the same audio project, how can they open the correct preset for each?
Do I need to enumerate the opened instance and save it as part of the file extension name?
Besides, the preset handler open a new window that asks for the correct location to save and if overwrite is accepted. Do you know how can I avoid this?
Thanks,
Rocko
CoreStyler ·
If you trigger the save of the preset at any change, even if you open multiple instances they will all load the last changed preset. So if you open instance 1 and operate with it, when you open instance 2 you will get the same program. Then, if you mod instance2 and you reset instance 1 you will get last instance 2 parameters. 😉
Obiviusly you can index and make orders to different temp patches, and should be simple saving filenames like temp_a.txt. temp_b.txt etc.. then order and get them as a count. a standa for the oldest and z for the newest.
You can avoid the loading of the windows call by triggering directly the file load creating your own preset manager.
Since preset manager use the "Files" primitive, this will call the windows API and open explorer.
Instead, load text primitive does not open windows explorer. This mean that you need to find a way to use "text load" and "text save" primitives, and this should be possible using text parameter as preset managing. (already used for programs and banks into default preset manager).
The most difficult thing should be reamaining to a vst standard preset handling for compatiblity with hosts. But synthmaker will not leave you the ability to go far if you store the data always using parameters primitives.
rocko ·
Hi,
Thanks - as I had thought.
If I open two 'my_vst' at different channels, do they each get a different 'ID' which I can use for saving the text file?
Will they get the same 'ID' when reopening the project for loading the last preset?
How can I create a dynamic naming mechanism for dedicated save?
Obiviusly you can index and make orders to different temp patches, and should be simple saving filenames like temp_a.txt. temp_b.txt etc.. then order and get them as a count. a standa for the oldest and z for the newest.
Could you please better explain this one:
The most difficult thing should be reamaining to a vst standard preset handling for compatiblity with hosts. But synthmaker will not leave you the ability to go far if you store the data always using parameters primitives.
CoreStyler ·
If you're talking about VST plugin ID it will remain the same in any case. Normally host does not deal about plugin ID, cubase only allow 1 only unique ID for any plugin. (always fixed).
About count, you can use a counter. For any save, you can add a new value and a new file (and when re-opening continues to last index). This obivuously will make your temp path really huge when using many many instances and for many project, days, test. So doing that will be more good to use windows temporary path, that clean when user do a system clean.
You need to create a quite complex schematic that uses local files. Doing so, you can also doing like undo/redo.
There is a simple preset manager made by someone here:
Preset Manager with copy and paste
Made by AMVST
Other preset manager with function like that are available. This just give ability to copy and paste a patch inside the plugin, but is a good starting point.
The fact is that you should make something that continues to use primitives with P. The (P) parts fit the VST preset handling.
I said that because you can create a preset manager that does not fit the VST standard, a custom array parser. But this way will create compatibility problems... (like a project on host is not able to load the project patches!). But can be a good think when you create a standalone only application.
By using the Preset parameters primitives and structure you avoid this trouble.
rocko ·
Hi,
Thanks for the detailed answer.
But still, if I want to open 'my_VST' twice at the same project, each one to load on restart with its own 'last saved preset', how can that be done?
I need to give each preset file (to be saved to hard disc) a different name, which each of the 'my_vst's should recognize upon project re-open.
How is this done with other professional VSTs?
Rocko
Dell ·
Hi.
What you are requesting is based on the software that is hosting your VST. Unless you are doing something wrong all major digital audio workstations offer the feature you are requesting.
rocko ·
So I just need to program my VST to load with the latest saved preset?
The host will 'enumarate' and all.
Let me test this and see where I get to.
Thanks.
CoreStyler ·
Dell wrote: Hi.
What you are requesting is based on the software that is hosting your VST. Unless you are doing something wrong all major digital audio workstations offer the feature you are requesting.
He want the plugin load the last parameters modded at any new loading, not the one stored in a project.
To call last preset, you need do to something like that:
I didn't test it, but this should only load last parameter saved during last change in any instance of the plugin and replace the first program with the last temp.
To do counting, and ability to go back -- foward will be more complex.
I suggest you to trigger only save at last change, then add a feature on the preset manger that allow to load manually the last patch created with it. And use the normal preset manager, that fit all the need and is how professional plugins does.
rocko ·
Thanks !!
Practicing it all...
Wrote something here? To have a post removed or your name hidden, write to [email protected].