Controlling a VST's program or bank via MIDI controller

Could anyone help me understand how I can use my MIDI controller keyboard’s buttons to shuttle through available sound banks and presets in a VST? The closest I can get is to use Prg-Change slider in MIDI control that corresponds to the patch number of the VST. But when I assign it to a button it goes from 1 to 127. What I want is to assign one button to increase the pPrg-Change each time I press it, and another button to decrease it each time I press that.
image

1 Like

Basically this would need to translate a midi cc change to a value increment or decrement. It could use two buttons to go up or down, or loop a range of values with a single button.
If I can’t think of an easy/native solution for this after some coffee, I’m sure I can come up with a renoise dsp device script or a tool to cover this, as I’m interested in this as well.

I think I can provide a lot of information here.

There are generally 2 types of VST / VSTi plugins. These devices depend on the programming of their author. He can allow access to the list of presets/programs or depending on the way of creating preset, he does not allow access to the list.

Therefore, you will see many older 32-bit plugins that do support the control of the presets from Renoise (even through LUA), some also 64-bit.

Unfortunately, most new VST / VSTi 2.0 and 3.0 plugins do not give access to this list to change.

Personally, I thought that the VST 3 update would fix this, but it doesn’t.

But this does not end here. Changing programs, or even generating a random, causes many VSTi parameters to change at the same time. This creates a small delay, or a large load delay, which could take half a second or even longer, especially if it involves changing samples. It depends on the complexity of the VSTi.
This “prevents” fast changing of presets, for example via a drop-down list. In both Renoise and LUA it should be treated in moderation. If there is no control on the load, it could even cause a Renoise crash.

Perhaps this is why Renoise does not allow access to changing presets via MIDI say, broadly. But this can be done from LUA, but in a controlled way.

I have been creating a complex and extensive LUA tool since November that will allow to control practically everything Renoise, a lot of parameters in an orderly way from MIDI, including the presets of the plugins, if these are compatible.

That said, some plugins can be buggy, and this also affects loading through presets. For example, a VST can cause a tool to fail when the tool is properly programmed, mostly free VST/VSTi plugins. Sometimes the free is very expensive!

If you only need a simple LUA program to change this via MIDI I can guide you…

1 Like

I don’t think the question was about whether or not the program CAN be changed, it was about being able to automate the change incrementally, while most midi pad cc input only sends on/off, not +1 +2 +3 etc each consecutive press.

According to what I have understood from the question of @znbfihny is that you need to change the program (or preset) of the VST plugin oxevst64, but instead of using a slider, use two buttons (- & +) or << & >>. Renoise does not have this option. But it is possible to create it with LUA. You can create a drop-down list (1), or a slider (2), or two buttons << & >> (3) to be able to change the program, via MIDI input. It is only necessary to program it. In this case, the user would only need to map the two buttons << & >> of this LUA tool.

Map ___________ Map
[<<] Program name [>>]

Nobody is talking about automating a specific parameter. Renoise would need a two-button device that could be routed in order to function as << >> buttons.

In the image capture it has the preset (GlassyEPiano). He just wants to change the preset with two physical buttons via MIDI. In fact, you don’t even need to create a tool with two buttons. Just two entries in Renoise’s MIDI menu are enough to map.

For this to work, you must create a table with the list of presets, use a plugin change notifier to update the list, create two functions to select a member from that list (move up or down) and add two MIDI mapping inputs. But this has nothing to do with automating. It is just controlling a parameter of a specific device (changing the presets list) via MIDI.

It is also possible to create a tool equivalent to 2 buttons to replace the X slider of any device.