LV2

Last updated
LV2
Developer(s) Steve Harris, David Robillard, other members of linux-audio-dev
Stable release
1.18.10 [1]   OOjs UI icon edit-ltr-progressive.svg / 9 September 2022;12 months ago (9 September 2022)
Repository gitlab.com/lv2/lv2
Written in C and Turtle
License ISC License
Website lv2plug.in

LV2 (LADSPA Version 2) is a set of royalty-free open standards [2] for music production plug-ins and matching host applications. It includes support for the synthesis and processing of digital audio and CV, [3] events such as MIDI and OSC, and provides a free alternative to audio plug-in standards such as Virtual Studio Technology (VST) and Audio Units (AU).

Contents

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. [4] [5]

LV2 plugin listing in the Carla host LV2 plugins in the Carla host.png
LV2 plugin listing in the Carla host

Over twelve hundred plugins are now available in LV2 format. [6] Notable plugins include Calf Studio Gear. [7] Software that can host LV2 plugin "bundles" includes Ardour, Ingen, Carla (of KXStudio), Qtractor, Traverso DAW, [8] Harrison Mixbus, [9] MusE, Audacity, [10] Ecasound, FFmpeg, Guitarix, the GStreamer framework and DJing software Mixxx, with currently partial support in LMMS and REAPER. It is also the plugin format used by the MOD Duo and MOD Duo X, [11] Zynthian, and 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.

LV2 plugins in the Ingen host LV2 plugins in the Ingen host.png
LV2 plugins in the Ingen host
LV2 modular drum synth in Carla LV2 modular drum synth in Carla.png
LV2 modular drum synth in Carla

RDF

The LV2 specifications are defined by [12] and make use [13] of RDF metadata in Turtle format. Technologies involved include Dublin Core, FOAF, DOAP, SPDX, XSD, RDFS and OWL. [14] The relational capabilities and properties this syntax supports are powerful but can be hard to understand at first. [15]

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. [16] There are various third-party extensions for supporting expressive events, OSC, and MOD Devices specific hardware and software, with three in the KXStudio LV2 Namespace.

The plugin uses this information to provide a list of capabilities to the host, so the host can accommodate those. [17] 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. Then the 4 following declare that this resource is an lv2:Plugin, a binary object file 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.

@prefixlv2:<http://lv2plug.in/ns/lv2core#>.@prefixdoap:<http://usefulinc.com/ns/doap#>.@prefixspdx:<http://spdx.org/rdf/terms#>.<http://example.org/lv2/wikipediaexample/silence>alv2:Plugin;lv2:binary<silence.so>;doap:name"Silence";doap:licensespdx:GPL-3.0-or-later;rdfs:comment"This is an example plugin that includes an example plugin description."lv2:port[alv2:AudioPort,lv2:OutputPort;lv2:index0;lv2:symbol"output";lv2:name"Output";].

Atoms

"Atom" data structures are used for messaging between plugin ports [18] [19] for the transfer of MIDI, [20] OSC, Patch, [21] UI and other events between plugin instances. These can also be serialised on Turtle. [22] [23]

UI

Host interface to plugin properties LV2 plugin properties in Carla.png
Host interface to plugin properties

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 [24] 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, Faust, Dplug, iPlug 2 (alpha), and Cabbage (alpha). There is also the ability to load Pure Data patches as well as JIT-run Faust, Rust, Lua or C code in certain LV2 plugins.

See also

Related Research Articles

<span class="mw-page-title-main">XMMS</span> Free and open source audio player

X Multimedia System (XMMS) is an audio player for Unix-like systems released under a free software license.

<span class="mw-page-title-main">LADSPA</span> Application programming interface for audio filters

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 designed for Linux through consensus on the Linux Audio Developers Mailing List, but works on a variety of other platforms. It is used in many free audio software projects and there is a wide range of LADSPA plug-ins available.

<span class="mw-page-title-main">Ardour (software)</span> Open-source digital audio workstation

Ardour is a hard disk recorder and digital audio workstation application that runs on Linux, macOS, FreeBSD and Microsoft Windows. Its primary author is Paul Davis, who was also responsible for the JACK Audio Connection Kit. It is intended as a digital audio workstation suitable for professional use.

JACK Audio Connection Kit 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 a community of open-source developers led by Paul Davis and has been a key piece of infrastructure and the de facto standard for professional audio software on Linux since its inception in 2002. The server is free software, licensed under GPL-2.0-or-later, while the library is licensed under LGPL-2.1-or-later.

Open Sound Control (OSC) is a protocol for networking sound synthesizers, computers, and other multimedia devices for purposes such as musical performance or show control. OSC's advantages include interoperability, accuracy, flexibility and enhanced organization and documentation. Its disadvantages include inefficient coding of information, increased load on embedded processors, and lack of standardized messages/interoperability. The first specification was released in March 2002.

<span class="mw-page-title-main">Virtual Studio Technology</span> Audio plug-in software interface

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 recording studio hardware in software. Thousands of plugins exist, both commercial and freeware, and many audio applications support VST under license from its creator, Steinberg.

<span class="mw-page-title-main">Digital audio workstation</span> Computer system used for editing and creating music and audio

A digital audio workstation (DAW) is an electronic device or application software used for recording, editing and producing audio files. DAWs come in a wide variety of configurations from a single software program on a laptop, to an integrated stand-alone unit, all the way to a highly complex configuration of numerous components controlled by a central computer. Regardless of configuration, modern DAWs have a central interface that allows the user to alter and mix multiple recordings and tracks into a final produced piece.

<span class="mw-page-title-main">Renoise</span> Digital audio workstation

Renoise is a digital audio workstation (DAW) based upon the heritage and development of tracker software. Its primary use is the composition of music using sound samples, soft synths, and effects plug-ins. It is also able to interface with MIDI and OSC equipment. The main difference between Renoise and other music software is the characteristic vertical timeline sequencer used by tracking software.

Disposable Soft Synth Interface (DSSI) is a virtual instrument plugin architecture for use by music sequencer applications. It was designed for applications running under Linux, although there is nothing specific to Linux in the interface itself. It is distributed under the terms of a combination of LGPL-2.1-or-later and some BSD licenses, all of which are free software licences.

<span class="mw-page-title-main">Rockbox</span> Firmware replacement for various devices

Rockbox is a free and open-source software replacement for the OEM firmware in various forms of digital audio players (DAPs) with an original kernel. It offers an alternative to the player's operating system, in many cases without removing the original firmware, which provides a plug-in architecture for adding various enhancements and functions. Enhancements include personal digital assistant (PDA) functions, applications, utilities, and games. Rockbox can also retrofit video playback functions on players first released in mid-2000. Rockbox includes a voice-driven user-interface suitable for operation by visually impaired users.

<span class="mw-page-title-main">LMMS</span> Free software digital audio workstation

LMMS is a digital audio workstation application program. It allows music to be produced by arranging samples, synthesizing sounds, entering notes via mouse or by playing on a MIDI keyboard, and combining the features of trackers and sequencers. It is free and open source software, written in Qt and released under GPL-2.0-or-later.

FluidSynth, formerly named iiwusynth, is a free open source software synthesizer which converts MIDI note data into an audio signal using SoundFont technology without need for a SoundFont-compatible soundcard. FluidSynth can act as a virtual MIDI device, able to receive MIDI data from any program and transform it into audio on-the-fly. It can also read in SMF (.mid) files directly. On the output side, it can send audio data directly to an audio device for playback, or to a Raw or Wave file. It can also convert a SMF file directly to an audio file in faster-than-real-time. The combination of these features gives FluidSynth the following major use cases:

Real-Time AudioSuite (RTAS) is a format of audio plug-in developed by Digidesign, currently Avid Technology for their Pro Tools LE and Pro Tools M-Powered systems, although they can be run on Pro Tools HD and Pro Tools TDM systems. RTAS plug-ins use the processing power of the host computer rather than DSP cards used in the Pro Tools HD systems. As the name suggests, the plug-in architecture is designed to be run in real-time, mimicking hardware inserts on traditional mixing console. This is in contrast to rendering files out of time with effects applied directly to the audio, which in Pro Tools is facilitated by AudioSuite Plug-ins. Avid's AAX format, which runs on both native CPU and Pro Tools HDX DSP, is the replacement for RTAS.

<span class="mw-page-title-main">JUCE</span> C++ Cross-Platform Application Development Framework

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 license.

<span class="mw-page-title-main">Bidule</span> Music software application

Bidule is a commercial software application for the creation of interactive computer music and multimedia produced by the Canadian company Plogue Arts and Technology. It runs on both Windows and Mac computers.

<span class="mw-page-title-main">Qtractor</span> Digital audio workstation application for Linux

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 of Linux audio software. Qtractor's intention was to provide digital audio workstation software simple enough for the average home user, and yet powerful enough for the professional user.

IBM WebSphere Service Registry and Repository (WSRR) is a service registry for use in a Service-oriented architecture.

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 are 47 plugins in the suite.

<span class="mw-page-title-main">Gig Performer</span> Audio host software

Gig Performer is a cross-platform audio plug-in host software package developed by Deskew Technologies. It is designed to provide a solution for playing an instrument and effect plug-ins live, without using a DAW. It was originally released in late 2016.

CLever Audio Plug-in or CLAP is an open source software architecture, application programming interface and reference implementation suite for audio effects plugins in digital audio workstations. The specification and reference implementation was released in 2022 by u-he and Bitwig.

References

  1. "LV2 1.18.10".
  2. "LV2 / Lv2".
  3. JACK/LV2 CV - LinuxMusicians
  4. List of LV2 features
  5. drobilla.net : LV2: The good, bad, and ugly
  6. List of 1000+ plugin uris site.
  7. "Calf Studio Gear supports LV2".
  8. "Traverso User Manual, p. 26" (PDF). Archived from the original (PDF) on 2016-04-23. Retrieved 2020-02-21.
  9. Harrison Website
  10. Audacity Archived 2008-09-29 at the Wayback Machine
  11. "MOD Devices". moddevices.com. Retrieved 2016-04-16.
  12. "Lv2/Core/Lv2core.TTL · master · LV2 / Lv2".
  13. "Lv2/Core/Lv2.h · master · LV2 / Lv2".
  14. "Lv2/Schemas.lv2 at master · lv2/Lv2". GitHub .
  15. drobilla.net : Writing an LV2 Book
  16. "LV2 Specifications".
  17. Programming LV2 Plugins book with example plugins.
  18. LV2 Atoms: A Data Model for Real-Time Audio Plugins (PDF)
  19. "LV2 Atom".
  20. "LV2 MIDI".
  21. "LV2 Patch".
  22. drobilla.net : LV2 atom and state serialisation -
  23. https://github.com/lv2/sratom - a small C library for serialising LV2 atoms to and from RDF, for converting between binary and text or storing in a model.
  24. "LV2 Worker".