summaryrefslogtreecommitdiffstats
path: root/content/pages/why-lv2.md
diff options
context:
space:
mode:
Diffstat (limited to 'content/pages/why-lv2.md')
-rw-r--r--content/pages/why-lv2.md75
1 files changed, 75 insertions, 0 deletions
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.