diff options
author | David Robillard <d@drobilla.net> | 2014-11-21 01:12:26 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2014-11-21 01:12:26 -0500 |
commit | d38c4094a1aef8be93218adeefe66b20308d96e3 (patch) | |
tree | 7f1d451dd1edade63567504c67b61bbc24d7c683 /content/pages | |
download | lv2site-d38c4094a1aef8be93218adeefe66b20308d96e3.tar.xz |
Initial website Markdown conversion.
Diffstat (limited to 'content/pages')
-rw-r--r-- | content/pages/developer-information.md | 77 | ||||
-rw-r--r-- | content/pages/index.md | 20 | ||||
-rw-r--r-- | content/pages/projects.md | 106 | ||||
-rw-r--r-- | content/pages/why-lv2.md | 75 |
4 files changed, 278 insertions, 0 deletions
diff --git a/content/pages/developer-information.md b/content/pages/developer-information.md new file mode 100644 index 0000000..dde7b49 --- /dev/null +++ b/content/pages/developer-information.md @@ -0,0 +1,77 @@ +Title: Developer Information + +The way to learn about implementing LV2 is by example. The documentation and +example projects listed below have been created specifically for this purpose, +look at these first. Copying an example as a template is recommended. + + +## What *not* to do + +If you are interested in implementing LV2, do *not* look at the specifications +and API references first! They are just that: references, and do not provide a +high-level view of how to get the job done. Once you have a basic working +implementation based on the examples, if you need more specific detail, then +the references are useful. + + +## Implementing Plugins + +LV2 includes several example plugins which are simple demonstrations of various +types of plugins and the features they require with thorough documentation. If +you prefer to read source code, they are in the `plugins` directory of the LV2 +distribution. + +If you would prefer to read a document, there is also a "book" generated from +the literate source code of these plugins: + +* [Programming LV2 Plugins](http://lv2plug.in/book) + + +## Implementing Hosts + +LV2 hosts use a library to handle all the details of plugin discovery, +investigation, and instantiation. [Lilv](http://drobilla.net/software/lilv) is +the standard library for this. + +* [Lilv API Reference](http://drobilla.net/docs/lilv/) + +Plans are currently underway to incorporate simple and thoroughly documented hosts into LV2, along the lines of the plugin +examples. Until then, several external projects serve as useful examples: + +* [lv2file](https://github.com/jeremysalwen/lv2file) is a very simple + single-file program that applies an LV2 plugin to an audio file. + +* [Jalv](http://drobilla.net/software/jalv) is a relatively simple yet + fully-featured [Jack](http://jackaudio.org) host for LV2 plugins. Start at + the core, [jalv.c](http://dev.drobilla.net/browser/trunk/jalv/src/jalv.c), + which weighs in at just under 1000 SLOC. Jalv also supports MIDI, embedded + GUIs, presets, state saving, and other features. + + +## Reference + +Most LV2 specifications have two parts: code and data. The "specification" +documentation comes from the data, and documents the various concepts in the +specification, with links to the API reference of the associated APIs. After +examples, this is the best place to better understand an extension. + +The API reference is generated from Doxygen, and serves the usual purpose. Go +there for documentation about a specific function, struct, or define. + +* [Specifications](http://lv2plug.in/ns) + +* [API Reference](http://lv2plug.in/doc/html) + + +## Help + +If you have any trouble or questions in general, ask on the +[mailing list](http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in), or visit +us in [#lv2](http://webchat.freenode.net/?channels=lv2) on irc.freenode.net + + +## Other Resources + +* [Logo](http://lv2plug.in/logo) + +* [LV2 Achievement of GMPI Requirements](http://lv2plug.in/gmpi.html) diff --git a/content/pages/index.md b/content/pages/index.md new file mode 100644 index 0000000..2f894ae --- /dev/null +++ b/content/pages/index.md @@ -0,0 +1,20 @@ +Title: LV2 +save_as: index.html + +LV2 is a standard for audio plugins, +used by hundreds of plugins and many other projects. +At its core, LV2 is a simple and stable interface, +but several *extensions* add functionality to support the needs of increasingly powerful audio software. + +* [**Download LV2 1.10.0**](http://lv2plug.in/spec/lv2-1.10.0.tar.bz2) + [(sig)](http://lv2plug.in/spec/lv2-1.10.0.tar.bz2.sig) + +* [Why LV2?](pages/why-lv2.html) + +* [Mailing List](http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in) + +* Chat in [#lv2](http://webchat.freenode.net/?channels=lv2) on irc.freenode.net + +* [Projects Using LV2](pages/projects.html) + +* [Information for Developers](pages/developer-information.html) diff --git a/content/pages/projects.md b/content/pages/projects.md new file mode 100644 index 0000000..368b81c --- /dev/null +++ b/content/pages/projects.md @@ -0,0 +1,106 @@ +title: Projects + +This page is a partial list of LV2 projects. If you know of any that are not +listed here, please +[let us know](http://lists.lv2plug.in/listinfo.cgi/devel-lv2plug.in) or +[http://lv2plug.in/git](add them) and send us a patch. + +Another list is available at http://apps.linuxaudio.org/apps/categories/lv2 + +## Plugins + +### Synths + +Project | Description +-------------------------------------------------------------|-------------------------------------------------------------------- +[foo-yc20](http://code.google.com/p/foo-yc20/) | Faithful emulation of the YC-20 divide-down combo organ. +[lv2-mdaEPiano](http://github.com/rekado/lv2-mdaEPiano) | Native LV2 port of the famous mdaEPiano VSTi. +[minaton](http://sourceforge.net/projects/minaton/) | Fat sounding mono subtractive software synthesizer. +[Newtonator](http://newtonator.sourceforge.net/) | Synth that produces some unpredictable sounds. +[Russolo Suite](http://intonarumori.sourceforge.net) | The CrazySynth synthesizer and the "the do-it-all effect" Omnifono. +[So-synth-LV2](http://github.com/jeremysalwen/So-synth-LV2) | Unofficial LV2 ports of 50m30n3's synthesizers. +[SynthV1](http://synthv1.sourceforge.net/) | 4-oscillator subtractive polyphonic synthesizer with stereo FX. +[Zyn](http://home.gna.org/zyn/) | LV2 port of Zynaddsubfx. +[setBfree](https://github.com/pantherb/setBfree) | B3 organ emulator including Leslie. +[EMap](http://www.colorfulsoftware.com/emap) | FluidSynth front-end + +### Samplers + +Project | Description +----------------------------------------------------------------------------|------------------------------------------------- +[Composite Sampler](http://gabe.is-a-geek.org/composite/plugins/sampler/1/) | MIDI-controllable sampler. +[DrMr Sampler](http://github.com/nicklan/drmr/) | Sampler that can load Hydrogen drumkits. +[SamplV1](http://samplv1.sourceforge.net/) | Polyphonic sampler/synthesizer with stereo FX. +[Fabla](http://openavproductions.com/fabla/) | Drum sampler with envelope and compressor. + +### Effects + +Project | Description +---------------------------------------------------------------|--------------------------------------------------------------------------------- +[abGate](http://abgate.sourceforge.net/) | Noise date. +[Aubio-LV2](http://jeremysalwen.github.com/Aubio-LV2-Plugins/) | LV2 wrappers for some of the Aubio library +[avw.lv2](http://sourceforge.net/projects/avwlv2/) | An LV2 port of internal modules of AlsaModularSynth +[Calf](http://calf.sourceforge.net/) | Various plugins, including flanger, organ, reverb, filters, rotary speaker, etc. +[EQ10Q](http://eq10q.sourceforge.net/) | Powerful and flexible parametric equalizer. +[Fomp](http://drobilla.net/software/fomp) | Port of various high-quality plugins by Fons Adriaensen. +[Invada Studio](https://launchpad.net/invada-studio/) | Delays, distortions, filters, phasers, reverbs, and some utility plugins. +[IR](http://factorial.hu/plugins/lv2/ir) | No-latency/low-latency, realtime, high performance signal convolver. +[kn0ck0ut-LV2](https://github.com/jeremysalwen/kn0ck0ut-lv2) | LV2 port of [kn0ck0ut](http://www.freewebs.com/st3pan0va/). +[lv2fil](http://nedko.arnaudov.name/soft/lv2fil/trac/) | Four-band parametric equaliser. +[mda-lv2](http://svn.drobilla.net/lad/trunk/mda-lv2/) | LV2 port of the popular VST MDA plugins (a few instruments as well). +[swh-plugins](http://plugin.org.uk/lv2/) | LV2 version of the popular LADSPA collection with various plugins. +[TalentedHack](http://code.google.com/p/talentledhack/) | Pitch correction derived from Autotalent. +[Teliasopia](http://sourceforge.net/projects/teliasopia/) | Various plugins, including filters and dynamic processors. +[Vocoder](https://gna.org/projects/lv2vocoder) | Vocoder. +[VocProc](http://hyperglitch.com/dev/VocProc) | Vocal pitch shifting, vocoding, pitch correction, and harmonizing. +[balance.lv2](https://github.com/x42/balance.lv2) | Stereo balance control w/ delaylines, input channel conditioner. +[QMidiArp](http://qmidiarp.sourceforge.net) | Arpeggiator. + +### Meters + +Project | Description +------------------------------------------------|-------------------------------------------------------------------- +[K-Meter](http://code.mzuther.de/kmeter/) | A K-System meter according to Bob Katz' specifications. +[traKmeter](http://code.mzuther.de/trakmeter/) | Loudness meter for correctly setting up tracking and mixing levels. +[meters.lv2](https://github.com/x42/meters.lv2) | Large collection of IEC, ITU, EBU,.. standard meters. + +### Others + +Project | Description +--------------------------------------------------------------------|---------------------------------------------------------- +[ll-plugins](http://ll-plugins.nongnu.org/) | Several synth and utility plugins and a GUI-capable host. +[NASPRO](http://naspro.sourceforge.net/plugins.html#naspro-bridges) | Bridges from LADSPA and DSSI to LV2. +[midifilter.lv2](https://github.com/x42/midifilter.lv2) | Collection of MIDI event filter/processors. +[Tuna.lv2](https://github.com/x42/tuna.lv2) | Musical instrument tuner. +[Simple-Scope](https://github.com/x42/sisco.lv2) | Professional audio oscilloscope. + + +## Hosts + +Project | Description +---------------------------------------------------------------------|------------------------------------------------------------------------- +[Ardour](http://ardour.org) | A professional quality DAW with support for LV2 effects and instruments. +[Audacity](http://audacity.sourceforge.net/) | Software for recording and editing sounds. +[Ecasound](http://www.eca.cx/ecasound/index.php) | Multitrack command line audio editor and processor. +[FreeADSP](http://naspro.sourceforge.net/applications.html#freeadsp) | MIDI-controlled real-time stereo effect rack. +[Ingen](http://drobilla.net/software/ingen/) | Modular audio environment. +[Jalv](http://drobilla.net/software/jalv/) | Command-line Jack host. +[LinuxSampler](http://www.linuxsampler.org/) | Free, streaming audio sampler with professional grade features. +[lv2file](https://github.com/jeremysalwen/lv2file) | Applies LV2 effects from the command line. +[LV2proc](http://naspro.sourceforge.net/applications.html#lv2proc) | Simple command line effect processor. +[QTractor](http://qtractor.sourceforge.net/) | Audio/MIDI multi-track sequencer. +[Traverso](http://traverso-daw.org/) | Multitrack audio recorder and editor. +[Synthclone](https://code.google.com/p/synthclone/) | Tool for creating sample-based instruments. +[pd-lv2plugin](https://bitbucket.org/agraef/pd-lv2plugin) | LV2 hosting PureData external. +[pure-lang](https://bitbucket.org/purelang/pure-lang) | A modern functional programming language with LV2 support. + + +## Developer Tools + +Project | Description +-------------------------------------------------------------------------|-------------------------------------------------------------------- +[Lilv](http://drobilla.net/software/lilv/) | C library for LV2 hosts. +[LV2 Toolkit](http://lvtoolkit.org/) | C++ wrappers of LV2 APIs. +[Permafrost](http://sourceforge.net/projects/naspro/files/naspro/0.2.0/) | DSP language whose compiler generates LV2 plugins. +[SSG](http://nedko.arnaudov.name/soft/ssg/) | "Simple Sine Generator" synth plugin. +[Torture](http://carlh.net/plugins/torture.php) | Utility for checking LV2 plugins for denormals and data corruption. 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. |