SynthMaker

VST reload with former data

Archive · 2012 12 old posts

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

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.