How does Cantabile handle VST presets/preset states?

Another newbie question: how does Cantabile handle vst plugins? Case in point: I have a setlist with multiple songs. Each song has a Geist2 plugin (not a shared rack for now - will get to that later). Each of these plugins has their own preset loaded in - I loaded those when I created the songs.

When I play these songs, the preset behaves as programmed. But when I go into Geist itself (open the plugin), the preset content is there - but it’s not the preset itself. Geist sees it as an “unnamed preset”. So when I make changes to the preset (hosted by Cantabile), I need to explicitly re-save the content to the original preset - otherwise I loose the content. Is this normal? It’s like cantabile does not really make Geist re-load the preset from the preset file when I re-load the song. Not sure this makes any sense - if not yell and I’ll try and be more verbose.

Hi Tom,

The way I understand it Cantabile creates a pseudo preset buffer for each plugin with all it’s reported parameters when it is loaded in a song. If you change any parameters on it they will be recorded in that buffer and stored with the song. When you call the song back up it restores those buffer contents which in turn sends the settings to the plugin. This doesn’t always recall a preset name from the plugin itself because some plugins under vst2 convention don’t offer it as a part of their available data into the C3 buffer for that particular plugin. So there are different behaviors in this area depending on the plugin and it puts it out of Brad’s control unless he corrected every vendor that didn’t include code for that ‘preset name’ data. The better they adhere to the vst2 convention the more likely they are to offer up the name of the preset in C3 from my experience. I hope what I said is right but welcome others to expand on or correct any thing I’ve said. Diva works like a charm that way, I pick a preset inside of it save the song and it comes back with the sound and the preset label correct in Diva. Not so with others.

Dave

1 Like

Hi @Tom_Tollenaere

I’m not familiar with Geist off hand and I’d need to check it out to know for sure, but it sounds like it’s got it’s own internal preset management that doesn’t line up exactly with what’s exported via the VST API.

To explain how Cantabile’s presets work, it depends on whether the plugin exposes a single preset via the VST API, or multiple.

  • If it exposes multiple presets Cantabile reflects those exactly in its own preset selectors and each preset is the equivalent of an FXP export (ie: a program export). When you switch presets in this mode all Cantabile does is send a message to the plugin “Load preset number X”.

  • If it only supports a single preset then Cantabile simulates a bank of 128 “pseudo presets” - where each preset is a copy of the entire plugin state (ie: the entire FXB export of the plugin). ie: When switching pseudo preset Cantabile effectively saves the plugin to one FXB file and loads from another (except those “FXB files” aren’t really files - they’re just stored in memory and written as part of the song file when it’s saved).

More about pseudo presets here: https://blog.cantabilesoftware.com/pseudo-presets-53d966231f7b

Brad

1 Like

Tx Brad & Dave - so if I understand correctly, it’s Cantabile that saves the preset (the state). So if I load a preset file into a VST (any VST) and I tweak some settings, Cantabile will save the last settings; it will not force the VST to reload the preset file into the VST when the song loads; it will reinitialize the VST into the last saved state by Cantabile?

That’ll work for me (the fact that Geist does not expose the preset name is no big deal for me; I rename the Cantabile pseudopreset anyway : ).

Correct!     

1 Like

Hi Tom,

Are each of you Geist song preset saved to disk?
For a Geist preset to be properly recaled by host, it first has to be saved on disk.
Geist will load it on demand.
At each state or song change, you will find the exact preset you saved.
It works perfectly for me with Cantabile and Forte.

1 Like

Igbo: each of these presets are saved to disk (I typically make them standalone and then load them into a Geist instance in Cantabile). When I load them the preset name is correct in the Geist instance. I save the song the instance is in, exit Cantabile, reopen and reload the song. Then the preset contents is nicely there (and works like it should) but the preset name is no longer there - so I need to remember to re-save when I make edits (which is fine if that’s what I need to do).

But I get the impression from Brad’s reply that if I make changes to a loaded preset, and not save that preset to disk, Cantabile will still save those changes (e.i. the Geist plugin state) as part of the song the Geist instance is in. Are you saying something different here? 'Cause if I gt Brad right, these is really no need to save the preset to disk.

And my question is not just about Geist but about VST presets in general - do I or do I not need to save the preset to disk from within the instance, or will Cantabile save the preset state along with the song it is in?

Hi again Tom,

I did have time today to check the behavior of Geist2 in my setup with both Cantabile and Forte.
Yes, you’re right, content is perfectly recalled but preset name is not with both hosts.

It’s obviously a Geist2 problem not a Cantabile one (neither Forte).

About not using Geist file system and rely on Cantabile Preset feature.
I just tried and it seems to work. Different Cantabile Preset can directly recall Geist content.
You have to make sure to select a different Cantabile Preset (top of plugin GUI) for each of your changes.
Cantabile offers 128 Preset slots to store VST data (Blob). Those can be recalled by State/Song.

But as you’re preparing your Geist content in the standalone program, you still first need to rely on a Geist file to import in Cantabile.

If you want to keep consistency, yes, you should save your edits in a Geist file. (That’s what I do)
If you don’t, then let Cantabile save this on its active Preset.

Geist is a great plugin I used to fill the gap in Forte (Still use it in Cantabile for compatibly), but I’m sure there is a lot you can do with Cantabile’s media objects.

Cheers.

1 Like