From d38c4094a1aef8be93218adeefe66b20308d96e3 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Fri, 21 Nov 2014 01:12:26 -0500 Subject: Initial website Markdown conversion. --- content/pages/why-lv2.md | 75 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100644 content/pages/why-lv2.md (limited to 'content/pages/why-lv2.md') diff --git a/content/pages/why-lv2.md b/content/pages/why-lv2.md new file mode 100644 index 0000000..bf7c3b3 --- /dev/null +++ b/content/pages/why-lv2.md @@ -0,0 +1,75 @@ +Title: Why LV2? + +Unlike many popular audio plugin APIs, LV2 is a platform-agnostic +[Free Software](http://www.gnu.org/philosophy/free-sw.html) specification with +a liberal license permitting virtually any implementation (both free and +proprietary). + +LV2 has been designed with extensibility in mind right from the start, so if +LV2 currently can't do what you need, functionality can be added without +breaking any pre-existing hosts or plugins. + +## Features + +* Audio, control, "control voltage" (audio-rate control), and event (e.g. MIDI) input and output. + +* Expressive metadata, including: + + * "Meaningful" controls (e.g. gain or envelope attack) allowing intelligent host control or UI generation. + + * Control units (e.g. Hz, octaves, dB). + + * Multi-channel port groups (e.g. stereo, 5.1 surround, ambisonics). + +* Decentralized extensibility: any developer can implement (almost) any feature within LV2. + +* Graceful compatibility: features can be optional. + +* Embeddable GUIs in any toolkit, with network transparent control. + +* Plugin "bundles" may include any files, such as samples. + +* Presets (bundled and/or user saved). + +* Plugin state saving and restoring. + +* Host-managed logging. + +* Non-realtime plugin worker methods ("idiot-proof" non-realtime operations, like sample loading without dropouts). + +* Message-based plugin communication, for advanced plugin control from UIs or other code. + +* Transport awareness, both real time and tempo time (bars, beats, etc.). + + +## Bundles + +Everything an LV2 plugin needs is bundled inside a "bundle" directory. Users +can easily manage their installations by moving, renaming, or deleting bundles +with any file manager. + + +## Plugin Metadata + +LV2 separates static metadata from code, so information about installed plugins +can be discovered without loading any modules or executing any third-party +code. + +Any data can be added to a plugin description without breaking compatibility. + + +## Simple Core API + +The "core" API of LV2, [lv2.h](http://lv2plug.in/ns/lv2core/lv2.h), is +essentially `ladspa.h` with extensibility hooks added. It is a simple C header +with the basic methods typical to audio plugins. + + +## Extensibility + +While the core API of LV2 is very simple, extensions can add arbitrary +functionality. The community works together to define standard extensions for +commonly needed functionality, but developers are free to implement any +extensions they need for their own applications. This is particularly useful +for developing new functionality and testing it in a real application before +proposing a new standard extension. -- cgit v1.2.1