aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/eg-params.lv2/README.txt
blob: acf90c1dac4602049c4c5ddcdbdadc90fb68578e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
== Params ==

The basic LV2 mechanism for controls is
http://lv2plug.in/ns/lv2core#ControlPort[lv2:ControlPort], inherited from
LADSPA.  Control ports are problematic because they are not sample accurate,
support only one type (`float`), and require that plugins poll to know when a
control has changed.

Parameters can be used instead to address these issues.  Parameters can be
thought of as properties of a plugin instance; they are identified by URI and
have a value of any type.  This deliberately meshes with the concept of plugin
state defined by the http://lv2plug.in/ns/ext/state[LV2 state extension].
The state extension allows plugins to save and restore their parameters (along
with other internal state information, if necessary).

Parameters are accessed and manipulated using messages sent via a sequence
port.  The http://lv2plug.in/ns/ext/patch[LV2 patch extension] defines the
standard messages for working with parameters.  Typically, only two are used
for simple plugins: http://lv2plug.in/ns/ext/patch#Set[patch:Set] sets a
parameter to some value, and http://lv2plug.in/ns/ext/patch#Get[patch:Get]
requests that the plugin send a description of its parameters.