Controlling VSTi plugins


(jp48) #1

Hi,

Not so new with Renoise, used ca. 2 years, but I would like to do whole gig (mostly techno) with it next time.

So, samples, no problem, but I would like to make just patterns, this time with using (only, mostly) VSTi plugins to do the job. My question is rather simple: is there way to change preset from commands/effects or elsewhere (Lua ?) from one pattern to another, VSTi plugin would be same for each track, but would like to change preset for each pattern and mix them on the fly (probably using Duplex with Launchpad with some other gear).

Thanks !


(Raul (ulneiz)) #2

Hi,

Not so new with Renoise, used ca. 2 years, but I would like to do whole gig (mostly techno) with it next time.

So, samples, no problem, but I would like to make just patterns, this time with using (only, mostly) VSTi plugins to do the job. My question is rather simple: is there way to change preset from commands/effects or elsewhere (Lua ?) from one pattern to another, VSTi plugin would be same for each track, but would like to change preset for each pattern and mix them on the fly (probably using Duplex with Launchpad with some other gear).

Thanks !

I suppose that when you speak of “preset”, you mean the used “program” of the VSTi plugin. Renoise has no any keyboard commands, and it can not be done through the MIDI input, only from the instrument editor, causing a jumpof control (change from the pattern editor to the instrument editor) or activate the instrument properties panel in the right of the pattern editor.

Yes it is possible from a tool created specifically to change the presets through two commands assigned by the user or through the MIDI input.But you must make sure that the VSTi is compatible with the deployment of the Renoise programs. Many plugins are not compatible, and it is necessary to change the presets from the plugin itself.

Also check all the capabilities of the " *Instr. Automation" in the DSP chain of the selected track. In any case, changing the preset may require a small delay (or large depending on what you load). You must keep this in mind to play live.

To build a tool, read the API:

--------------------------------------------------------------------------------
-- renoise.InstrumentPluginDevice
--------------------------------------------------------------------------------

-------- Functions

-- Access to a single preset name by index. Use properties 'presets' to iterate 
-- over all presets and to query the presets count.
renoise.song().instruments[].plugin_properties.plugin_device:preset(index)
  -> [string]

-- Access to a single parameter by index. Use properties 'parameters' to iterate 
-- over all parameters and to query the parameter count.
renoise.song().instruments[].plugin_properties.plugin_device:parameter(index)
  -> [renoise.DeviceParameter object]

-------- Properties

-- Plugins.
renoise.song().instruments[].plugin_properties.plugin_device.name
  -> [read-only, string]

renoise.song().instruments[].plugin_properties.plugin_device.active_preset, _observable
  -> [number, 0 when none is active or available]

renoise.song().instruments[].plugin_properties.plugin_device.active_preset_data
  -> [string, raw XML data of the active preset]

renoise.song().instruments[].plugin_properties.plugin_device.presets[]
  -> [read-only, array of strings]

renoise.song().instruments[].plugin_properties.plugin_device.parameters[]
  -> [read-only, array of renoise.DeviceParameter objects]

-- Returns whether or not the plugin provides its own custom GUI.
renoise.song().instruments[].plugin_properties.plugin_device.external_editor_available
  -> [read-only, boolean]

-- When the plugin has no custom GUI, Renoise will create a dummy editor for it which
-- lists the plugin parameters.
renoise.song().instruments[].plugin_properties.plugin_device.external_editor_visible
  -> [boolean, set to true to show the editor, false to close it]

-- Returns a string that uniquely identifies the plugin, from "available_plugins".
-- The string can be passed into: plugin_properties:load_plugin()
renoise.song().instruments[].plugin_properties.plugin_device.device_path
  -> [read_only, string]

With all this you can create a navigation tool.I have this integrated in my Piano Roll Editor tool (but the window must be in the foreground). When you press ALT + or ALT - , you are changing the preset.You can try it with the Helm VSTi.

If you can use many resources, you can load the same VSTi into several instruments, and assign each instrument a specific program (preset).You can use the “VST alias” too.


(ffx) #3

Usually you can switch presets in a VSTi via MIDI, so using the “Instrument MIDI Device” on the VSTi. That said it can a bit of a hassle, since VSTis often have a much more advanced preset structure over a hardware, and a modern VSTi may not support this way at all anymore.

Set the Instr. Control Device to “Prg”.


(Raul (ulneiz)) #4

I think that Renoise should adapt to the VSTi that have the structure of the presets in another way, for at least, it is easier to change them more directly. Many of the VSTi I use are not compatible with the Renoise “program” list in the instrument editor section.Besides, it bothers me particularly that the jump between windows, between Renoise and the window that wraps the plugin, generates a noticeable delay. It seems as if it lacks optimization.The issue is to jump between different instruments with different VSTi and that everything goes smoothly.

Anyway, the easiest way is to create a specific tool to shoot with two keyboard commands customized by the user. Actually, what is asked in this forum could be native. It is as if it were missing.It is strange that it is available in the API but there are no keyboard commands prepared (to my knowledge).


(jp48) #5

Thanks of replies !

I tried with MIDI program change earlier, but it doesn’t work on any of VSTi’s I am using.

To clarify: I don’t need to change the program/preset on the fly, it would be changed beforehand, I just don’t get it to work on same track, ie. one track using one VSTi seems to use one VSTi program only. Am I right ? Hope I am not.

Of course, having keyboard shortcut to change in real time would be nice extra :slight_smile: !


(Raul (ulneiz)) #6

Thanks of replies !

I tried with MIDI program change earlier, but it doesn’t work on any of VSTi’s I am using.

To clarify: I don’t need to change the program/preset on the fly, it would be changed beforehand, I just don’t get it to work on same track, ie. one track using one VSTi seems to use one VSTi program only. Am I right ? Hope I am not.

Of course, having keyboard shortcut to change in real time would be nice extra :)!

In your case, I would use the instrument’s Alias.The VSTi would only load it once in memory (consuming the right resources).So, for example, you can load 10 instruments with 10 presets each from the same VSTi, and instead of changing the presets, you change the instrument within the same track.

As I said before, changing the preset can imply a delay in the reproduction (the sound is choppy), something logical, since you are changing the whole program, and depending on the VSTi it can be a very beastly change. But you can do it. You can put all the notes of the same instrument on track 01, and change the preset when you want to fly with the mouse, and that same track 01 will play the preset you have selected.

If you want to avoid problems, use the “Alias VST” and change the instrument (each instrument a preset). Use this:http://tutorials.renoise.com/wiki/Plugin#Plugin_Aliases_.28multi-timbral_plugins.29


(Raul (ulneiz)) #7

Thinking about this, I came up with a very interesting tool.

It’s about creating a group with several tracks, say 8 tracks within a group. The tool I would do would be to sound only one of the 8 tracks and the rest would be muted. All the tracks would have the same notes, they would be clones, but each one associated with an instrument. With that you can do live things to play live, and change presets of the tracks that are muted to avoid sound cuts. It’s like you have 8 banks to play with.

This could also work using only one track and its 12 columns of notes. In both cases it would be a bit dangerous, because all the tracks could be activated by accident and sound all at once.

The problem with all this is that you must know the presets well.