VST Presets don't appear in Presets List

I know where a plugin’s presets are located, but they’re not natively midi selectable. I see a preset list at the top of the plugin editor that responds to program change messages, but the presets don’t appear there. And I see that there’s a way to import. How do I make this work? Or am I talking apples and oranges? The plugins I’m using are the new Thermionik (Kazrog) and BIAS Amp (Positive Grid).

Hi @rd2rk,

I’m not sure I’m exactly following the question but you might need to load each preset file into each preset slot. Are these FXP files you’re talking about or some other file format. Perhaps post some screen shots to make sure we’re on the same page.

Brad

Thermionik uses XML and BIAS uses JSON. I’m guessing that that preset list is intended for a particular file format?

Hi @rd2rk

These sounds like per-plugin custom files. The preset selector at the top of the plugin window in Cantabile (and in the plugin slot in Cantabile’s main window) are driven by the preset selections exported by the plugin which is kind of a different but similar thing.

Anyone else here familiar with this plugins? I’d need to grab a copy and take a closer look to be able to comment more than that.

Brad

So, I figured out how to do this.

First, terminology. I’m naming this stuff 'cause I couldn’t find it in the user guides. Doesn’t mean it’s not there, I just couldn’t find it.

VST Wrapper - called this because it’s different in every host (I’ve tried so far). This is the header and footer that the Plugin Editor’s UI is wrapped in.

Preset List Dropdown - In the header, preset names with Program Change Numbers.

Options Menu - the triple stripe thingy at the far right of the header.

Procedure - select an empty Preset slot in the Preset List Dropdown
select a preset in the plugin
click on the selected Preset slot again
in the Options Menu click Rename Program, type in preset name - not necessary for it to work, but how
else to know which slots are assigned?

The Preset name now appears in the Preset List Dropdown, and can be selected with a MIDI controller.

You need to make a binding from the properly routed controller to the plugin with a Program Change event and for the Target Control “Select Preset Indexed”.

This works the charm with BIAS AMP. Unfortunately, the Thermionik plugins don’t appear as a target for routing from the MIDI controller. You can do it if you put the plugin in an embedded rack but, since each of the 25 amps is a separate plugin, any MIDI sent to the rack affects ALL of them, and I don’t know if I want to deal with setting up 25 separate embedded racks!

Only problems left - when you send MIDI to the BIAS controls (vol, tone, etc) with a rotary controller (I use a Korg nanoKontrol) all of the controls jump when you make the first adjustment after opening the plugin editor. I suspect that this is Positive Grid’s problem, as it doesn’t happen with any of my better sims (Amplitube, S-Gear, Guitar Rig, TH3).

Also, when changing presets, sometimes an audible “BEEP” is heard. Again, not an issue with the other sims, BUT - the others I mentioned handle their preset switching internally - using Cantabile’s preset selection process is not required. So maybe this could be a Cantabile problem?

BTW - you can get a free DEMO version of BIAS AMP Desktop Version, works fine, just has an audio cutout every so often to remind you it’s a demo.

Are you saying you can’t create a binding from a MIDI Controller to this plugin? That’d be a bug but can’t imagine what might cause that.

I’ll grab the BIAS plugin and have a play with it see if I can reproduce some of these problems.

Logged here.

Sorry, I’m confusing us.

BIAS AMP from POSITIVE GRID - Free Demo
Problems - when you send MIDI to the BIAS controls (vol, tone, etc) with a rotary controller (I use a Korg nanoKontrol) all of the controls jump when you make the first adjustment after opening the plugin editor. I suspect that this is Positive Grid’s problem, as it doesn’t happen with any of my better sims (Amplitube, S-Gear, Guitar Rig, TH3). But these sims handle all midi mapping, PCs,CCs, Notes, internally, Cantabile bindings not necessary, just a route from the midi controller. BIAS requires Cantabile bindings to controls and the Cantabile preset handling system for program changes.

Also, when changing presets, sometimes an audible “BEEP” is heard. Again, not an issue with the other sims, BUT - the others I mentioned handle their preset switching internally - using Cantabile’s preset selection process is not required. So maybe this could be a Cantabile problem?

THERMIONIK (v5) from KAZROG no Free Demo yet
Problem - Unfortunately, the Thermionik plugins don’t appear as a target for routing from the MIDI controller.

Hope that’s more clear!

Jumping controls - no longer happening

when changing presets, sometimes an audible “BEEP” is heard - think I was hearing a “tail” from the previous preset

Thermionik plugins don’t appear as a target for routing from the MIDI controller - Not actually a problem. Apparently, VST ONLY plugins can’t be mapped directly to a controller in the same way that plugins with standalone versions can. Plugins with standalone versions handle midi mappings internally. Plugins that are VST only do not, and require mappings through the host. Some VST ONLY plugins don’t “expose” their controls to the host, some which have standalone versions can be handled either way. If you’re curious, “go figure”. If not, forget it, now that I know what’s happening I’m OK.

The title captures what I’m experiencing with certain VSTs but the rest of the thread is way over my head!

What I’ve got is simply that some VSTs don’t show their presets up left in the Cantabile container window while others do. For example, instruments VB3, Korg M1 and Pianoteq show the actual preset name there as expected but Diva, Lounge Lizard, Arturia Mini V2 do not as well as most VST effects I have do not. Elysia and Audifexx STA VSTs work but most others don’t. A synth created with SynthEdit, Bruno3D, also works so possibly other VSTs made with SynthEdit work also.

I would imagine there is some spec in the (ideal) VST API world that would expose the preset name to the host. My faith in Brad tells me that even if there is such a standard, he would know it and I suspect that some, if not many, VSTs are just not coded properly.

In any case, it would be nice to have them all working, but again, I’m quite sure it’s not a Cantabile issue.

Hi @soundassets

What’s happening here is the difference between VST presets and Cantabile’s Pseudo Presets. See this blog post.

In short - some plugins expose all their presets via the VST API, other’s don’t. For those that don’t Cantabile simulates 128x “pseudo presets”.

Let me know if you need me to explain in more detail.

Brad

This is a topic that has confused me, and shows my ignorance when it comes to VST presets, Pseudo Presets, and how Cantabile works with the plugins. Here’s my scenario:

  1. I create a Rack in Cantabile, add a plugin, tweak the plugin’s parameters via its GUI, save the patch (using the plugin’s patch management features), exit the GUI, save the Rack, and add the Rack to a Song (or Save the already opened Song).
  2. Later, I open the Song containing that Rack and start playing the sound that was saved in the plugin.

My confusion is: did Cantabile direct the plugin to open the patch that I saved within the Plugin, or did Cantabile simply send all of the parameters that I tweaked in my editing session? I’m hoping that Cantabile simply selects the saved patch, but I’m not sure if there is another step I need to be doing to tell Cantabile to do that. (I realize that not all plugins follow the same rules regarding patch management, but I’m trying to understand what should work 80% of the time.)

The way this works as far as VST is concerned: a plugin has a set of programs (the number of programs is determined by the plugin) and all these programs together constitute a bank.

The host (Cantabile) can ask the plugin for a copy of either the bank, or the current program which gets returned to the host as a chunk of memory that the host can later pass back to the plugin to reload it.

The host has no way to interpret this chunk of memory - the plugin is the only thing that understands what’s in that chunk. Typically these chunks get saved to disk as part of the song and passed back to the plugin when it’s reloaded.

What exactly the plugin returns in these chunks of memory is completely up to the plugin, but when saving the bank it’s supposed to represent the entire state of the plugin.

When a plugin indicates that it only supports 1 program, Cantabile simulates a bank of programs by saving 128 different bank chunks - ie: switching presets actually causes Cantabile to reload a previously saved chunk; as opposed to simply telling the plugin to switch program. This is called “Pseudo Presets”

To complicate things a little more, some plugins don’t support chunks at all. For these plugins all the plugin’s exported parameters are saved and restored by the host. Not many plugins use this approach.

All Cantabile would have done is told the plugin to “load this chunk” where the chunk means whatever the plugin wants it to mean. The plugin might actually save the name of an external file to reload, or it might store a copy of all the parameters, or it might store an index into a hard coded bank. The host has no idea.

Typically though, it will be a copy of all parameters for all programs.

1 Like

Thanks Brad. That explanation helps. I guess I’m the type of person who can comprehend the situation better if I know of the inner workings and limitations.

1 Like