Welcome to the exciting world of Linux Audio! Although Linux audio is in general a bit more technically demanding of the musician using it, there are great rewards in understanding the technology you’re using, and being able to adapt that tech to do exactly what you want. OpenAV software targets you - the live performing musician - and if you have feedback on our software please do get in touch!
This page will introduces the beginner on how to use OpenAV software, how to set up JACK, launch LV2 plugins with Jalv, and answers other common questions.
LV2 Plugins are extensions to any audio application. Each plugin contains functionality or features, which is made available when a host-program loads the plugin. LV2 is an open-source plugin API, which means it can be freely used by everybody - no contracts or proprietary copyrights here!
OpenAV builds LV2 plugins, as the LV2 plugin spec is very powerful, flexible and extensible. This allows complex plugins like samples and synths to be created by OpenAV, and easily used in DAWs like Ardour, Audacity and many others!
To list all installed plugins on your system, run the following command
from a terminal
lv2ls. The output is a long list of URI items, which
identify each plugin that is available on your system. These URIs will be
used later in the Launching an LV2 Plugin section. An example of one URI
To see more (technical) information about an LV2 plugin, we can get the
information about each plugin using
lv2info and passing that command a
URI. Example output for Roomy is as follows:
lv2info http://www.openavproductions.com/artyfx#roomy http://www.openavproductions.com/artyfx#roomy Name: Roomy Class: Reverb Author: OpenAV Author Email: mailto:firstname.lastname@example.org Author Homepage: http://openavproductions.com Has latency: no Bundle: file:///usr/local/lib/lv2/artyfx.lv2/ Binary: file:///usr/local/lib/lv2/artyfx.lv2/artyfx.so UIs: http://www.openavproductions.com/artyfx#roomy/gui Class: http://lv2plug.in/ns/extensions/ui#X11UI Binary: file:///usr/local/lib/lv2/artyfx.lv2/artyfx_ui.so Bundle: file:///usr/local/lib/lv2/artyfx.lv2/ Data URIs: file:///usr/local/lib/lv2/artyfx.lv2/manifest.ttl file:///usr/local/lib/lv2/artyfx.lv2/roomy.ttl Optional Features: http://lv2plug.in/ns/lv2core#hardRTCapable Presets: Port 0: Type: http://lv2plug.in/ns/lv2core#InputPort http://lv2plug.in/ns/lv2core#AudioPort Symbol: in_left Name: In Left Port 1: Type: http://lv2plug.in/ns/lv2core#AudioPort http://lv2plug.in/ns/lv2core#InputPort Symbol: in_right Name: In Right ... more ports are listed, output trimmed. Run the command yourself!
JACK is a program that lets you run audio applications, and route audio between them. Here at OpenAV we always have JACK running when developing software - its the back-bone of linux-audio - so get used to it!
To have full control over your audio setup, start JACK from the command-line. This may seem overkill, but OpenAV assures you, it will save you some headaches. Skip to QJackCtl if you want to use a GUI program.
The following command will (probably) work pretty well: try it.
jackd -P 85 -dalsa -dhw:0 -r48000 -p128 -n 2 -Xseq
The following should be the output of that command:
JACK compiled with System V SHM support. loading driver .. apparent rate = 48000 creating alsa driver ... hw:0|hw:0|128|2|48000|0|0|nomon|swmeter|-|32bit configuring for 48000Hz, period = 128 frames (2.7 ms), buffer = 2 periods ALSA: final selected sample format for capture: 32bit integer little-endian ALSA: use 2 periods for capture ALSA: final selected sample format for playback: 32bit integer little-endian ALSA: use 2 periods for playback creating alsa_midi driver ...
OK - JACK is now running, and if it doesn’t print anything more - the we’re all set! Sometimes though, JACK prints these:
**** alsa_pcm: xrun of at least 213428.124 msecs
This means the computer can’t keep up - usually a sign that the computer needs to be configured for real-time audio, or if the computer really is 15+ years old, perhaps its just not fast enough.
JALV is a small tool that will load an LV2 plugin, and run it in JACK. This is very useful to run an OpenAV plugin as if it was a standalone program, which natively speaks to JACK. The Launching an LV2 Plugin section shows you how to launch plugins using JALV.
Launching an LV2 Plugin¶
This section shows you how to launch a plugin using JACK as the audio backend, and Jalv to host LV2 plugins. LV2 plugins are identified by URIs, refer to the LV2 Plugin section how to list available plugins.
- Start JACK. If you have not started jack before, see the Starting JACK section.
- Launch Roomy in Jalv using the following command:
- Use QJackCtl to connect the
That’s it! Any sound that gets captured by the soundcard hardware will have Roomy effect the signal, and it will be played back over the speakers!