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 # generated by jackd's postinst. 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
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:
# Do not edit this file by hand, use
# dpkg-reconfigure -p high jack
# instead
@audio - rtprio 99
@audio - memlock unlimited
#@audio - nice -19
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.
To be able to configure and start the JACK daemon through a graphical interface, start up a terminal and install QJackCtl with this command: This application will then be found through Applications -> Sound & Video -> Audio Production -> Jack Control.
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.
https://help.ubuntu.com/community/UbuntuStudio/DapperPreparation
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: 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.
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 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:
https://help.ubuntu.com/community/HowToQjackCtlConnections
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 (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: 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.
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 is an ASIO sound driver for Wine, which makes all ASIO-compatible VSTs talk to JACK through the ASIO-driver.
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..
seq24 (https://help.ubuntu.com/community/HowToSeq24Introduction) Installation
sudo apt-get install qjackctl
Configuration
XRuns
Ardour
Alternative replacement software: Rosegarden Function names: Digital Audio Workstation/Audio sequencer Windows/Mac equivalent: Cubase, Logic, GarageBand sudo apt-get install ardour
Second step - Connecting applications through JACK
Hydrogen
Alternative replacement software: Function names: Drum machine Windows/Mac equivalent: EZ Drummer, Reason sudo apt-get install hydrogen
Connections in JACK Patchbay
Using the JACK transport
Third step - Using filters
LADSPA
sudo apt-get install blop caps cmt fil-plugins ladspa-sdk mcp-plugins omins swh-plugins tap-plugins
DSSI
VST/VSTi
Wineasio
On AMD64
wget http://homerecording.de/~4damind/hr/wineasio-x_0.3.deb
sudo dpkg -i wineasio-x_0.3.deb
regsvr32 wineasio.dll
Ardour/VST
Fourth step - Using MIDI
Unsorted