HOME

TheInfoList



OR:

LV2 (LADSPA Version 2) is a set of royalty-free open standards for plug-ins and matching host applications. It includes support for the synthesis and
processing Processing is a free graphical library and integrated development environment (IDE) built for the electronic arts, new media art, and visual design communities with the purpose of teaching non-programmers the fundamentals of computer programming ...
of digital audio and CV, events such as
MIDI MIDI (; Musical Instrument Digital Interface) is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and ...
and OSC, and provides a free alternative to
audio plug-in An audio plug-in, in computer software, is a plug-in that can add or enhance audio-related functionality in a computer program. Such functionality may include digital signal processing or sound synthesis. Audio plug-ins usually provide their ...
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 r ...
(VST) and Audio Units (AU). LV2 succeeds the more limited
Linux Audio Developer's Simple Plugin API LADSPA is an acronym for Linux Audio Developer's Simple Plugin API. It is an application programming interface (API) standard for handling audio filters and audio signal processing effects, licensed under LGPL-2.1-or-later. It was originally de ...
(LADSPA) standard and replaces the
Disposable Soft Synth Interface Disposable Soft Synth Interface (DSSI) is a virtual instrument ( software synthesizer) plugin architecture for use by music sequencer applications. It was designed for applications running under Linux, although there is nothing specific to Linu ...
(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 Calf Studio Gear, often referred to as Calf Plugins, is a set of open source LV2 plugins for the Linux platform. The suite intends to be a complete set of plugins for audio mixing, virtual instruments and mastering. As of version 0.90.0 there ...
. Software that can host LV2 plugin "bundles" includes Ardour
IngenCarla
(of KXStudio),
Qtractor Qtractor is a hard disk recorder and digital audio workstation application for Linux. Qtractor is written in C++ and is based on the Qt framework. Its author is Rui Nuno Capela, who is also responsible for the Qjackctl, Qsynth and Qsampler line ...
, Traverso DAW,
Harrison Mixbus Harrison Mixbus is a digital audio workstation (DAW) available for Microsoft Windows, Mac OS X and Linux operating systems and version 1 was released in 2009. Mixbus provides a modern DAW model incorporating a "traditional" analog mixing work ...
,
MusE In ancient Greek religion and mythology, the Muses ( grc, Μοῦσαι, Moûsai, el, Μούσες, Múses) are the inspirational goddesses of literature, science, and the arts. They were considered the source of the knowledge embodied in the ...
, 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 of vid ...
, Guitarix, the
GStreamer GStreamer is a 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 format, processes the ...
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 timecode ...
, with currently partial support in
LMMS LMMS (formerly Linux MultiMedia Studio) is a digital audio workstation application program. It allows music to be produced by arranging samples, synthesizing sounds, playing on a MIDI keyboard, and combining the features of trackers and sequen ...
and
REAPER A reaper is a farm implement or person that reaps (cuts and often also gathers) crops at harvest when they are ripe. Usually the crop involved is a cereal grass. The first documented reaping machines were Gallic reapers that were used in Roma ...
. It is also the plugin format used by the MOD Duo and MOD Duo X,
Zynthian
an
Poly Effects
Digit/Beebo hardware units.


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 an order of reptiles known as Testudines, characterized by a special shell developed mainly from their ribs. Modern turtles are divided into two major groups, the Pleurodira (side necked turtles) and Cryptodira (hidden necked t ...
format. Technologies involved include
Dublin Core 220px, Logo image of DCMI, which formulates Dublin Core The Dublin Core, also known as the Dublin Core Metadata Element Set (DCMES), is a set of fifteen "core" elements (properties) for describing resources. This fifteen-element Dublin Core has ...
,
FOAF FOAF (an acronym of friend of a friend) is a machine-readable ontology describing persons, their activities and their relations to other people and objects. Anyone can use FOAF to describe themselves. FOAF allows groups of people to describe soc ...
,
DOAP DOAP (Description of a Project) is an RDF Schema and XML vocabulary to describe software projects, in particular free and open source software. It was created and initially developed by Edd Dumbill to convey semantic information associated with ...
, SPDX,
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 con ...
,
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 or
URN An urn is a vase, often with a cover, with a typically narrowed neck above a rounded body and a footed pedestal. Describing a vessel as an "urn", as opposed to a vase or other terms, generally reflects its use rather than any particular shape or ...
. Then the 4 following lines declare that this resource is an lv2:Plugin, a binary
object file An object file is a computer file containing object code, that is, machine code output of an assembler or compiler. The object code is usually relocatable, and not usually directly executable. There are various formats for object files, and the ...
library with the filename silence.so should be present, that 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, management, 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, a ...
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 to 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 cross-platform C++ application framework, used for the development of desktop and mobile applications. JUCE is used in particular for its GUI and plug-ins libraries. It is dual licensed under the GPLv3 and a commercial l ...
,
Faust Faust is the protagonist of a classic German legend based on the historical Johann Georg Faust ( 1480–1540). The erudite Faust is highly successful yet dissatisfied with his life, which leads him to make a pact with the Devil at a crossroa ...
, Dplug, iPlug 2 (alpha), and Cabbage (alpha). There is also the ability to load Pure Data patches as well as
JIT Jit (also known as jiti, jit-jive and the Harare beat) is a style of popular Zimbabwean dance music. It features a swift rhythm played on drums and accompanied by a guitar. Jit evolved out many diverse influences, including domestic chimurenga, ...
-run Faust, Rust, Lua or C code in certain LV2 plugins.


See also

*
JACK Audio Connection Kit JACK Audio Connection Kit (or JACK; a recursive acronym) is a professional sound server API and pair of daemon implementations to provide real-time, low-latency connections for both audio and MIDI data between applications. JACK was developed by ...


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