This page will try to describe the process of getting started with music production in Linux in a user-friendly way.
Hopefully this will be useful for people that have no or little experience in the area, or producers switching from a Mac/Windows environment.
Note: This guide is based on Ubuntu 8.04, not Ubuntu Studio. Please add comments where the two differs.
First step - Platform for production
Hardware support
Before everything (and especially if you plan to use Firewire hardware), you have to be sure your hardware is supported by Ubuntu Studio.
For Mac and Windows platforms, manufacturers usually provide ASIO-compliant drivers. Things are a bit different in the linux world. Before considering buying new hardware, please check https://help.ubuntu.com/community/UbuntuStudio/HardwareOptimization to be sure your hardware is ok with ALSA and JACK.
This page will detail where to check if your hardware is compatible, depending on your audio setup.
Real-time kernel
The first vital step to a working environment is to have a real-time kernel. (Note that if you are using UbuntuStudio, you do not need to perform this step, as the real-time kernel is already in use).
This makes sure that the audio recorded gets the highest priority possible so the audio quality will be good without skips.
To install this kernel, open up a terminal and run:
sudo apt-get install linux-rt
Also, we need to give the audio-group the rights to set real-time priorities, lock a big amount of memory and prioritize processes in general.
In the terminal, issue these commands:
sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf' sudo su -c 'echo @audio - memlock 250000 >> /etc/security/limits.conf' sudo su -c 'echo @audio - nice -10 >> /etc/security/limits.conf'
Note: Modifying /etc/security/limits.conf Should Not Be Required Anymore
Beginning with the Ubuntu package jack-audio-connection-kit-0.118+svn3796-1ubuntu2 editing of /etc/security/limits.conf should not be required. JACK will write the following during post-installation to /etc/security/limits.d/audio.conf:
# generated by jackd's postinst.
# Do not edit this file by hand, use
# dpkg-reconfigure -p high jack
# instead
@audio - rtprio 99
@audio - memlock unlimited
#@audio - nice -19
Please note that creating or modifying /etc/security/limits.conf may cause conflicts with the JACK written /etc/security/limits.d/audio.conf settings.
Email from Linux Audio Users mailing list: http://linuxaudio.org/mailarchive/lau/2010/3/5/166428
Debian Bug #507248: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=507248
-- Scott Lavender 4/25/10
Now, reboot the system and boot into your -rt kernel (should be default).
This kernel is the same as the standard kernel but with real-time support, so everything should be as normal and the kernel can be used even when the machine is not used for music production.
JACK
Note: You don't need to start JACK through Qjackctl in this step, it can be handled from within Ardour. But later on, when applications should be connected, it is needed - so we might as well get used to it right away.
What is JACK ?
When it comes to the audio hardware in Linux, the kernel and ALSA (Advanced Linux Sound Interface) take care of getting it to work.
But this stack is unable to provide a transport channel for different audio applications to "talk" to eachother (audio sequencer and drum machine, for example). To accomplish this and to optimize the sound processing to lower latency, the JACK system is used.
Note: The easiest setup is to have a secondary soundcard with which JACK will be used. If only one soundcard is present, JACK will take control over it and it won't be possible to play any "regular" audio while JACK is running. When starting JACK through QJackCtl, be sure no other process is using the soundcard.
Installation
To be able to configure and start the JACK daemon through a graphical interface, start up a terminal and install QJackCtl with this command:
sudo apt-get install qjackctl
This application will then be found through Applications -> Sound & Video -> Audio Production -> Jack Control.
Configuration
The configuration depends on the capabilities of the soundcard, but be sure to check the "Realtime" box and select the proper input and output devices.
Common configurations include "Force 16bit" and 44100 sample rate.
For more information, be sure to check out https://help.ubuntu.com/community/HowToJACKConfiguration.
Once the basic configuration is done, start the JACK daemon and install an audio sequencer.
XRuns
https://help.ubuntu.com/community/UbuntuStudio/DapperPreparation
Ardour
Alternative replacement software: Rosegarden
Function names: Digital Audio Workstation/Audio sequencer
Windows/Mac equivalent: Cubase, Logic, GarageBand
Ardour (http://ardour.org/) is a Digital Audio Workstation. You can use it to record, edit and mix multi-track audio. It is the central place for music production in Ubuntu Studio.
To install, enter that convenient terminal and issue:
sudo apt-get install ardour
Once installed, it will be found under Applications -> Sound & Video -> Ardour GTK2.
Ardour requires a JACK daemon to be running when it starts, so be sure it's started from the previous step.
Second step - Connecting applications through JACK
When audio is recording and playing back as it's supposed to, connecting other applications that can provide drum machines etc could be useful.
Hydrogen
Alternative replacement software:
Function names: Drum machine
Windows/Mac equivalent: EZ Drummer, Reason
Hydrogen is an easy drum machine to get started with, the downside is that it tends to crash when used with Ardour over JACK.
Install from terminal:
sudo apt-get install hydrogen
Connections in JACK Patchbay
https://help.ubuntu.com/community/HowToQjackCtlConnections
Using the JACK transport
Third step - Using filters
There is no obvious superior way of using filters at this point of Linux music production.
We to prioritize between having stable and well-integrated but graphically displeasing and hindering plugins (LADSPA) or emulated, mostly non-free, unstable and badly integrated but state-of-the-art plugins (VST).
LADSPA
LADSPA (Linux Audio Developer's Simple Plugin API) is a simple, stable and well-supported plugin API which works very well in applications like Ardour.
To get a bunch of plugins, just install the proper packages:
sudo apt-get install blop caps cmt fil-plugins ladspa-sdk mcp-plugins omins swh-plugins tap-plugins
When done, open up the mixer in Ardour, choose if you want the plugin before the fader or after, right click and choose "Insert plugin...".
If Ardour was open when you installed the plugins, you might have to click "Refresh".
When the plugin is inserted, it is enclosed in parenthesis to show that it's not enabled.
Right-click and choose "Enable" to enable it, and double-click on it to set its settings.
DSSI
VST/VSTi
The standard for music plugins is the VST format by Steinberg, which means the plugins are in Windows DLL format.
This means that WINE has to be used and will not be as easy, stable or optimized as a native solution.
Wineasio
Wineasio is an ASIO sound driver for Wine, which makes all ASIO-compatible VSTs talk to JACK through the ASIO-driver.
On AMD64
wget http://homerecording.de/~4damind/hr/wineasio-x_0.3.deb sudo dpkg -i wineasio-x_0.3.deb regsvr32 wineasio.dll
Now, start jack through qjackctl, and also jackbridge, then run winecfg.
Configure:
Windows version: Windows XP
Audio drivers: ALSA and JACK
"Test sound" never worked for me..
From here, I connected jackbridge output 0 and 1 to system playback 1 and 2, installed Reaper and configured the audio to use ASIO and it played back through Jack.
More advanced and thorough information on this coming later..
Ardour/VST
Fourth step - Using MIDI
Unsorted
- jamin
- qsynth
seq24 (https://help.ubuntu.com/community/HowToSeq24Introduction)
- vkeybd
- zynaddsubfx
- lmms
- more...