How_to_use_the_new_ladspa_plugins

Andreas Degert

The new Guitarix LADSPA plugins wrap the Guitarix sound engine. Guitarix consists of a chain of mono effects, an insert point for connecting external effects and a chain of stereo effects. Plugins with one input and two outputs are not handled well by most LADSPA hosts, so we supply a "Guitarix Amp" plugin with one input and output and a "Guitarix Stereo Fx" plugin with two inputs and outputs.

The LADSPA interface is primarily designed for plugins wrapping one dsp algorithm. The Guitarix plugins are stretching this concept quite a bit.

How to make it work

First you need to start the Guitarix program and make some settings which will be stored in the state file (~/.gx_head/gx_head_rc) when you select Presets -> save main setting. This will be preset 0 in the LADSPA plugin. Optionally you can define presets in the standard preset file (~/.gx_head/gx_headpre_rc). Those are presets 1 .. N in the LADSPA plugin.

Now you can start a LADSPA host and insert a Guitarix plugin. The preset defined in the statefile will be loaded by default, and you can select different presets by changing that LADSPA parameter (selecting a preset number which is too high won't give an error message but just don't load anything). The level adjustment parameter modifies the output sound level.

Parameter assignments

Next there are five parameters. To associate them with Guitarix variables, click a control in Guitarix with the mouse button 2 (middle button) and enter a number in the field "midi controller number" (see also [Guitarix_MIDI_Control]). For the LADSPA parameters its easiest to just use the number 1 to 5 (if you use other numbers, the first 5 in ascending order will be used; you can view a list of defined controllers under the menu Engine -> Midi Controller). To refresh the settings in the plugin, switch back and forth to another preset.

Parameters which are not used in the type of plugin you selected will be skipped. It might be less confusing to define presets with midi parameters either for "Guitarix Amp" (use parameters of all mono plugins, pre-gain, drive and distortion), or for "Guitarix Stereo Fx" (use parameters of all stereo plugins, master level and the level control at the meter). If you want to define Parameters for "Guitarix Amp", hide the stereo rack and show the mono rack.

Variables which are assigned to LADSPA parameters will not be set from a preset (like all midi assigned parameters). So it will sound different from your preset, because the LADSPA parameters are initialized with 0 at the beginning. The LADSPA parameter range 0..100 can be interpreted as percentage values of the lower..upper range of the Guitarix variable. If you connected a Level control, LADSPA output will probably silent at first. Change the parameters to percent values corresponding to the values in your preset.

Any midi controllable parameter with continuous range except cabinet and presence tone control can be used.

Important: To define parameter assignments for presets in the standard preset file, you need to set "store midi in presets" under options.

DAW automation

You can use output level and the 5 assignable parameter for DAW automation. Changing the preset triggers a background load of the new preset with undefined timing. You might be able to use it for automation (like in live playing), but you should allow for a sufficiently large gap while switching for reproducible results.

Tips

  • When you start LADSPA the host on the command line, you will see some logging information from the plugin, e.g. loaded preset and parameter assignment.
  • If you want to use different preset files for Guitarix, use Presets -> Export Preset-file to create a new preset file. You can switch between the two preset files with Presets -> Load Preset-file.
  • Or set the environment variable LADSPA_GUITARIX_PRESET (in the process environment of the LADSPA host), or even more specific LADSPA_GUITARIX_MONO_PRESET and LADSPA_GUITARIX_STEREO_PRESET (the most specific settings wins). These variables must be set to the (absolute) pathname of the preset file to use.
  • In general, do not change the last four parameters; they are explained in section "Fine points".

What the Guitarix LADSPA plugins are meant for

  • combine some Guitarix effects with other ladspa plugins when you already have a LADSPA host running.
  • if you work with a DAW and you record the raw guitar signal, then instead of connecting several external Guitarix instances to DAW insert you can add the Guitarix LADSPA plugin(s) to directly to the affected tracks.
  • of course everything else which you can imagine and which works for you :-)

What you can't do with them

  • Guitarix is evolving, and so are the Guitarix LADSPA plugins. This means you cannot add them to a DAW track, wait a year, install the then current version and expect it to work (or have the same sound).
  • Simple LADSPA plugins can just be added to a track, maybe some parameters adjusted, and you are done. In contrast, the Guitarix plugins need a preset file which is generated and modified by Guitarix, and the meaning of the 5 assignable LADSPA parameters depend on the settings in the preset.

Fine points

LADSPA is designed for algorithms that do not depend on block size; This works fine with Guitarix as long as you don't use one of the units that work with "convolving" (cabinet, presence or convolver). These units need a fixed block size, and they create additional threads that need special priorities for RT (realtime) processing. To work around this we use buffering, which introduces additional latency (this additional latency is announced through the "latency" output parameter, which is used at least by the Ardour DAW).

If you switch off buffering, you don't have additional latency but the convolvers cannot be used (i.e., they will be bypassed). The buffer size is always the power of two which is greater or equal the "buffersize" parameter value. If "buffersize" is 0, the plugin selects a default value, which is the current jack frame size if the jack daemon can be contacted by the plugin when its activated, or 64.

When using jackd you must not set a buffer size bigger than the jackd frame size. If jack can be contacted by the plugin the buffer size will be limited by that value. You can use smaller buffer sizes, which will reduce the additional latency (of buffersize-1 samples) but increase processing overhead. For DAW automation, the block size is often divided into the sections between automation points; if you want the plugin to follow the automation parameters more accurately, use a smaller buffer size (each buffer is calculated with one fixed set of parameters).

The "Non-RT Mode" switch can be used if the convolver threads should not work in RT mode, e.g. if jackd works in non-rt mode. If "RT Priority" is 0 the thread priority will be set to the right value for jackd when jackd can be contacted.

Buffering strategy and thread priorities will only change when the plugin gets activated, which always happens at the start. If it happens at other points depends on the host. jack-rack seems to activate when bypass is switched off, Ardour only after transport is stopped and the option "performance -> stop plugin with transport" is set.

Tested hosts

  • ardour2
  • audacious
  • audacity
  • jack-rack
  • qtractor

Related

Wiki: Guitarix_MIDI_Control
Wiki: Main_Page