LV2
   HOME

TheInfoList



OR:

LV2 (LADSPA Version 2) is a set of
royalty-free Royalty-free (RF) material subject to copyright or other intellectual property rights may be used without the need to pay royalties or license fees for each use, per each copy or volume sold or some time period of use or sales. Computer standards ...
open standard An open standard is a standard that is openly accessible and usable by anyone. It is also a common prerequisite that open standards use an open license that provides for extensibility. Typically, anybody can participate in their development due to ...
s for music production plug-ins and matching host applications. It includes support for the
synthesis Synthesis or synthesize may refer to: Science Chemistry and biochemistry *Chemical synthesis, the execution of chemical reactions to form a more complex molecule from chemical precursors **Organic synthesis, the chemical synthesis of organi ...
and processing of
digital audio Digital audio is a representation of sound recorded in, or converted into, digital signal (signal processing), digital form. In digital audio, the sound wave of the audio signal is typically encoded as numerical sampling (signal processing), ...
and CV, events such as
MIDI Musical Instrument Digital Interface (; MIDI) is an American-Japanese technical standard that describes a communication protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, ...
and OSC, and provides a free alternative to
audio plug-in An audio plug-in, in computer software, is a Plug-in (computing), plug-in that can add or enhance audio-related functions in a computer program, typically a digital audio workstation. Such functions may include digital signal processing or soun ...
standards such as
Virtual Studio Technology Virtual Studio Technology (VST) is an audio plug-in software interface that integrates software synthesizers and effects units into digital audio workstations. VST and similar technologies use digital signal processing to simulate traditional rec ...
(VST) and
Audio Units Audio Units (AU) are a system-level Plug-in (computing), plug-in architecture provided by Core Audio in Apple Inc., Apple's macOS and iOS operating systems. Audio Units are a set of application programming interface (API) services provided by t ...
(AU). LV2 succeeds the more limited Linux Audio Developer's Simple Plugin API (LADSPA) standard and replaces the Disposable Soft Synth Interface (DSSI) plugin infrastructure ("LADSPA for instruments"), adding abilities such as MIDI capability, custom UIs, and a system allowing extensibility of the initial standard. Over twelve hundred plugins are now available in LV2 format. Notable plugins include Calf Studio Gear. Software that can host LV2 plugin "bundles" includes Ardour
IngenCarla
(of KXStudio), Qtractor, Traverso DAW, Harrison Mixbus,
MusE In ancient Greek religion and Greek mythology, mythology, the Muses (, ) were the Artistic inspiration, inspirational goddesses of literature, science, and the arts. They were considered the source of the knowledge embodied in the poetry, lyric p ...
, Audacity, Ecasound,
FFmpeg FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing vide ...
, Guitarix, the
GStreamer GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
framework and DJing software
Mixxx Mixxx is free and open-source software for DJing.James, Daniel. "Drafting Digital Media". Apress, 2009, p. 213. It is cross-platform and supports most common music file formats. Mixxx can be controlled with MIDI and HID controllers and timecod ...
, with currently partial support in LMMS and
REAPER A reaper is a farm implement that reaps (cuts and often also gathers) crops at harvest when they are ripe. Usually the crop involved is a cereal grass, especially wheat. The first documented reaping machines were Gallic reapers that were used ...
. It is also the plugin format used by the MOD Duo and MOD Duo X,
Zynthian
an
Poly Effects
Digit/Beebo hardware units. Isla Instruments provides an FX expansion card for their S2400 sampling drum machine that can run LV2 plugins.


Concepts

LV2 is an extensible framework, allowing a program to load a plugin to do some processing. Note that the terms used here are generic on purpose because LV2 allows any type of data to be exchanged between the host and the plugin.


RDF

The LV2 specifications are defined by and make use of RDF metadata in
Turtle Turtles are reptiles of the order (biology), order Testudines, characterized by a special turtle shell, shell developed mainly from their ribs. Modern turtles are divided into two major groups, the Pleurodira (side necked turtles) and Crypt ...
format. Technologies involved include
Dublin Core 140px, Logo of DCMI, maintenance agency for Dublin Core Terms The Dublin Core vocabulary, also known as the Dublin Core Metadata Terms (DCMT), is a general purpose metadata vocabulary for describing resources of any type. It was first developed ...
, FOAF, DOAP,
SPDX System Package Data Exchange (SPDX, formerly Software Package Data Exchange) is an open standard capable of representing systems with digital components as bills of materials (BOMs). First designed to describe software components, SPDX can descr ...
,
XSD XSD (XML Schema Definition), a recommendation of the World Wide Web Consortium (W3C), specifies how to formally describe the elements in an Extensible Markup Language (XML) document. It can be used by programmers to verify each piece of item cont ...
,
RDFS RDF Schema (Resource Description Framework Schema, variously abbreviated as RDFS, , RDF-S, or RDF/S) is a set of classes with certain properties using the RDF extensible knowledge representation data model, providing basic elements for the descr ...
and
OWL Owls are birds from the order Strigiformes (), which includes over 200 species of mostly solitary and nocturnal birds of prey typified by an upright stance, a large, broad head, binocular vision, binaural hearing, sharp talons, and feathers a ...
. The relational capabilities and properties this syntax supports are powerful but can be hard to understand at first. Beyond the core specification there are 21 official extensions providing support for host options, plugin presets, time and units, port buffers, properties, groups and parameter labels, for sending MIDI, patches, UI events and more. There are various third-party extensions for supportin
expressive eventsOSC
an
MOD Devices
specific hardware and software, with three in th
KXStudio LV2 Namespace
The plugin uses this information to provide a list of capabilities to the host, so the host can accommodate those. Similarly, the host can provide a list of LV2 extension capabilities that it supports on initialization of the plugin. In the example below, first the shortcut prefixes for the lv2, doap and spdx ontology are declared. Next, every plugin must have its own
URI Uri may refer to: Places * Canton of Uri, a canton in Switzerland * Úri, a village and commune in Hungary * Uri, Iran, a village in East Azerbaijan Province * Uri, Jammu and Kashmir, a town in India * Uri (island), off Malakula Island in V ...
or URN. Then the 4 following declare that this resource is an lv2:Plugin, a binary
object file An object file is a file that contains machine code or bytecode, as well as other data and metadata, generated by a compiler or assembler from source code during the compilation or assembly process. The machine code that is generated is kno ...
library with the filename silence.so should be present, the plugin is known under the name Silence, and is licensed under the GNU GPL. These 4 properties are mandatory for an LV2 plugin; if a plugin does not have all of them a host might not load it. @prefix lv2: . @prefix doap: . @prefix spdx: . a lv2:Plugin; lv2:binary ; doap:name "Silence"; doap:license spdx:GPL-3.0-or-later; rdfs:comment "This is an example plugin that includes an example plugin description." lv2:port a lv2:AudioPort, lv2:OutputPort; lv2:index 0; lv2:symbol "output"; lv2:name "Output";


Atoms

"Atom"
data structures In computer science, a data structure is a data organization and storage format that is usually chosen for efficient access to data. More precisely, a data structure is a collection of data values, the relationships among them, and the functi ...
are used for messaging between plugin ports for the transfer of MIDI, OSC, Patch, UI and other events between plugin instances. These can also be serialised on Turtle.


UI

Aside from separating metadata from binaries, LV2 mandates a general separation between DSP and user interface processing. Benefits include that UI processing cannot hold back DSP processing, and UI and DSP can be separated across a network. Messaging using Atoms is the preferred method for passing updates between the running DSP and UI binaries. Hosts can also provide an interface for displaying and configuring the properties of plugin instances. There are extensions and properties to help display the correct control types.


Threading

One capability that a host can provide to a plugin is a "worker thread". In programming terms, this means that the plugin can offload some work to be done in another thread that the host provides. This is generally useful because a plugin is usually run in the real-time audio thread of an application, and hence cannot do any non-real-time safe operations (disk-accesses, system calls, etc.). To make it easy for the plugin to achieve its goals (e.g.: load a file from disk), the host can provide a worker thread. The host provides the LV2_Extension for the worker thread and the plugin is then able to use it.


Development

There are tools and frameworks available to assist with in creating LV2 plugins. These include DPF (DISTRHO Plugin Framework),
JUCE JUCE is an open-source software, open-source cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its graphical user interface, GUI and Plug-in (computing), plug-in ...
,
Faust Faust ( , ) is the protagonist of a classic German folklore, German legend based on the historical Johann Georg Faust (). The erudite Faust is highly successful yet dissatisfied with his life, which leads him to make a deal with the Devil at a ...
, Dplug, iPlug 2 (alpha), and
Cabbage Cabbage, comprising several cultivars of '' Brassica oleracea'', is a leafy green, red (purple), or white (pale green) biennial plant grown as an annual vegetable crop for its dense-leaved heads. It is descended from the wild cabbage ( ''B.& ...
(alpha). There is also the ability to load
Pure Data Pure Data (Pd) is a visual programming language developed by Miller Puckette in the 1990s for creating interactive computer music and multimedia works. While Puckette is the main author of the program, Pd is an open-source software, open-source ...
patches as well as JIT-run Faust, Rust, Lua or C code in certain LV2 plugins.


See also

* JACK Audio Connection Kit * CLever Audio Plug-in (CLAP)


References


External links

* {{Official website, lv2plug.in
LV2 wiki
Music software plugin architectures Software using the ISC license Free audio software Application programming interfaces Software synthesizers Software add-ons