As the title says, I’m interested to know whether the new Midi API covers the possibility to browse instruments, insert and send effects.
I would for example, like to click a button on my controller, and then get a list of available vst instruments in order to browse and choose one.
A second example is to choose a specific vst effect from a list exposed by Cubase upon pressing a button on my controller, and set it to my Inserts slots.
Without having the opportunity to check this out, for at least some hours more, I believe the key command Preset: Open Browser can open the preset browser for whatever plug-in is currently in focus.
But to choose an insert plug-in to load on a blank slot, I think we first need a way to target a specific slot of a track, which is not available yet with the new Remote.
Another thread I was in along a similar line prompted the idea of using Preset: Open Browser and then the AI knob functionality (ValueUnderMouse) as a way to select presets.
I’ve not seen a way to get a list of presets sent to the controller itself - it would need to ask the VSTi what was available and go from there.
Hi, perhaps my initial question needs some clarifications.
I’m not asking for presets of vsts, but for the vsts themselves, i.e. the way we see it upon “add Instrument”.
I recall that I’ve seen such implementation for the Mackie MCU, so wondering whether this could be added to the new API
I think this would be a nice thing to have as well!
And it’s true you can do that with Mackie Controller for both Instruments and Inserts.
And it would also be nice to have for the Channelstrip.
I basically asked Jochen about this in another thread, but haven’t made a feature request on it yet.
A follow up concerning browsing inserts.
Using the new Direct Access concept in CB13+, it is now possible to load a VST plugin in an insert slot.
This is doable by using the parameter tag “effect type” of the insert slot, and altering its value.
A friend (@Sergey_Berezutskiy) asked me about this, after seeing a short demo video I had prepared here: https://www.youtube.com/watch?v=p0qv3t7j_og , because it’s a value that requires some explanations:
When Cubendo starts, it creates a list of all available plugins, be it VST3, VST2 or external ones.
This list is a combi of the external instruments (not sorted), and the VST plugins (alphabetically sorted). There is also, as the very first entry in the list, the “Standard Panner”.
Then, going up from the very first plugin to the last one, this parameter value is increased by approximately 0.4657 .
How do we get this list? We need to use external coding for:
Parse all plugins found in the VstPlugInfoV4.xml file,
Parse all entries in the files: External Plugins.xml, vst3plugins.xml, Vst2xPlugin Infos Cubase.xml and Cubase Pro Module Cache.xml,
We then match the VstPlugInfoV4.xml plugins with the ones found during our previous step.
Concerning the channel strip plugins, we need to filter this list, by its category property. The channel strip effects, have in their category name, the keyword “channel” and another one for their tab. For example, compressors will have in their category name the term “comp”.
Concerning the inserts Fx, they will have in their category name, the term “fx”.
This way, we can have our external utility setup to properly find the “effect type” number needed to be sent to MIDI Remote, so that the fx we want is loaded.
One could think that we can simply store the values of our most used fx into the MIDI Remote script we have. This is true, BUT, whenever we add/remove a plugin, based on the previous explanation I gave, these values will simply change. IF, we don’t regularly install new plugins, or uninstall previous ones (I for example have the very same set of plugins for nearly 3 years now), then this approach will do. Otherwise, we need the above.
So, here’s an FR, concerning the Direct Access concept: Please, let us use the setParameterDisplayValue, instead of the ProcessValue, so that, we can always be sure (unless of course a vendor unfortunately changes the name of the plugin) that if we hard-code a plugin in our script, we can load it properly without the need of external handles.
Doesn’t look so unfortunately. It’s a number close to 0.4657*pow(10,-8), something like that, not near my PC right now, so can’t confirm the factor. I don’t know where this comes from. Most probably @Jochen_Trappe could shed some light here (and notice the FR at the same time )
First there are the external plugins, in their creation order, and then, yes, the vst plugins alphabetically. This is how I recall assembling my code. Still, can’t be 100% sure. What I am 100% sure of, is that setting the displayValue would be much better than reverse engineering
Why? When I sort the list grabbed from the xmls we need to, and if we respect the condition for putting the external plugins on top, I don’t see another issue. Let me know what you’ve found.
Pleas be careful with this. We always need to know the fx/channel plugins, thus I suggested scanning the files mentioned. You may end up inserting an instrument in an insert slot, or a channel strip slot.
With CB15 and the great addition in MIDI Remote (talking about the scripting side), i.e. the ability to set a specific plugin to whichever slot, be it either the instrument or the fx ones, I must close this thread as solved