Basic Controls

The following picture demonstrates typical Graphical User Interface (GUI) of plugin:

Each plugin consists of the following elements:

Colors of widgets may vary but the color scheme of widgets often follows these rules:

Below the detailed description of controls is present.

Button

Buttons are mostly used to turn on/turn off some binary parameter. Rarely they are also used for switching between different processing modes (See LSP Delay Compensator Mono - Verzögerungsausgleicher Mono plugin for example). There are two different types of buttons:

Push/pop buttons may be pressed by left mouse button click and do not affect any parameter changes until the left mouse button is released over the button widget. It is possible to cancel button press by moving mouse cursor out of the widget's area or by additionally pressing right mouse button.

Trigger buttons have radically different behaviour. They trigger event on left mouse button click and every time they fall into pushed state. So there is possible to trigger sequence of events by pressing left mouse button over the button and repeatedly moving mouse cursor outside widget's area and back.

For space economy and clarity improving purposes buttons may be combined with LEDs.

Here is example of different button widgets:

Combo

Combo is a drop-down list that in normal state displays only currently selected item. When clicking by left mouse button, it shows drop-down list with all possible variants for choosing. Only one list item may be selected at the same time.

It is very useful for defining controls that use enumerations or for switching between different control groups.

Here is example of combo box widgets:

File

File widget is used for loading files. It tells to the plugin the actual location of file on file system.

By default there is no file associated with plugin, so the file widget displays 'Click to load' text.

By clicking left mouse button on the widget you may open file choosing dialog and select the file to use by plugin.

After the path to the file will be passed to plugin, the plugin starts to load the file, and the status displayed by the file widget changes. If file was successfully loaded, file widget will display the corresponding content of the file and it's name (without path). On error, error message is displayed with red color.

There is also the way to force plugin to unload file. For this purpose simply double-click by right mouse button on widget's area.

Example of file widget:

Graph

Graph is special widget for displaying graphical information about processes that flow in the DSP core of plugin. It may contain lines, text labels, different curves (meshes), markers and dots.

Example of graph widget:

All elements of graph except dots can not change input parameters of plugin. Dots may control simultaneously up to three parameters by the following events:

By moving dot over the graph widget two parameters may be changed simultaneously. This can be done by left-clicking on the dot, holding mouse button and moving mouse cursor over the graph widget's area. Also, additional tolerance may be reached by right-clicking the dot instead of left-clicking, this makes the change of parameters more accurate. The movement may be cancelled by pressing the opposite button of the mouse.

Additional tolerance for mouse scroll may be achieved by pressing shift key on keyboard

Example showing dot controls:

Group

Group widget is a special widget that allows to visually distinguish set of widgets that control parameters of some device or set of similar devices.

Example showing controls consolidated into group:

Indicator

Indicators are widgets that display measured or computed value by the plugin.

Example of indicator widget:

Inline display

Inline displays are not widgets or elements of plugin's UI at all. Instead of this, they're part of the host UI since the Ardour DAW implemented Inline Display extension for LV2 format.

So they're available in the Ardour's mixer strip even if UI is not shown. Inline displays also are available in Mixbus DAW as the relative to Ardour product.

Because inline display is an LV2-specific exension, it is available only for LV2 version of LSP plugins. But standalone JACK versions of plugins that support inline displays in LV2, draw them on window's icon.

Example of inline displays:

Knob

Knobs are the mostly used controls by plugin GUIs. They allow to adjust value for continuous parameters in the pre-defined range. Higlighted part of the knob's scale shows deviation from it's zero position. There are many ways to adjust the controlled parameter.

The first way to change the parameter is performing left mouse click on the knob's cap, holding mouse button and moving cursor up and down. To apply more accurate adjustment, right button of mouse may be pressed while moving cursor.

The second way to change parameter's value may be reached by using mouse scroll. To perform more accurate adjustment, shift button may be pressed on keyboard.

For all knobs (especially when they are stiff) quick adjustment of parameter may be achived by left-clicking knob's scale. Also, additionally mouse button may be hold and parameter will be adjusted by moving mouse clockwise/counter-clockwise.

To reset parameter to it's default value, left mouse button double click may be issued.

Example showing knob controls:

Label

Labels are widgets that display text information. They may be static or dynamic. Dynamic labels mosly accompany knobs to display the actual value of parameters that they control and (in most cases) units.

Example of label widgets:

Led

LEDs are used to display state of binary output parameter.

Example of LEDs:

Meter

Meters are used for metering some values (mostly, levels of the audio signal). They may contain yellow and red zones. They respectivelly show that signal exceeds -6dB and 0dB levels.

Example of meters:

Rack

Rack ears contain the logo 'LSP' in the left part of UI and it's short model code in the right part of UI

Plugins typically use the folowing model code format: XXXX MM NN CC, where:

The second function of logo and model bars is showing context menu that allows to save or load state of all plugin's parameters to/from plain text file:

The content of text file can be manually edited. Each parameter has detailed description. Example of the configuration file contents:

#-------------------------------------------------------------------------------
#
# This file contains configuration of the audio plugin.
#   Plugin name:         Verzögerungsausgleicher Mono (Delay Compensator Mono)
#   Plugin version:      1.0.0
#   LV2 URI:             http://lsp-plug.in/plugins/lv2/comp_delay_mono
#   VST identifier:      jav8
#   LADSPA identifier:   5002065
#
# (C) Linux Studio Plugins Project 
#   http://lsp-plug.in/ 
#
#-------------------------------------------------------------------------------

# Bypass: true/false
bypass = false

# Mode: 0..2
#   0: Samples
#   1: Distance
#   2: Time
mode = 2

# Samples [samp]: 0..10000
samp = 0

# Meters [m]: 0..200
m = 0

# Centimeters [cm]: 0.000000..100.000000
cm = 0.000000

# Temperature [°C]: -60.000000..60.000000
t = 20.000000

# Time [ms]: 0.000000..1000.000000
time = 3.349236

# Dry amount [G]: 0.000000..10.000000
dry = 0.000000

# Wet amount [G]: 0.000000..10.000000
wet = 1.000000

# Output gain [G]: 0.000000..10.000000
g_out = 1.000000

#-------------------------------------------------------------------------------

Additionally, the short form of rack may be turned on by pressing 'Toggle rack mount' from the context menu:

Switch

Switch is an alternative to the button widget but has different graphic presentation. It is mostly used as bypass control for bypassing the processed by plugin signal.