Linux can be used to provide a sophisticated music creation environment.
The tools that are needed are Pulseaudio and Alsa (now standard on most Linux distributions), Jack, Ardour, Timidity, and Hydrogen. Lilypond is also useful if you want to produce sheet music. We used to recommend Rosegarden but we now prefer Ardour.
You will also need plugin capability, and for this we suggest you use your package manager to install LADSPA (the Linux Audio Developer's Simple Plugin API) and LV2. It is also likely that you will be able to install the Calf LV2 plugins from the package manager.
If Ardour tells you that it can't start Jack in real-time mode, please ensure that your user is a member of the audio group and that the following lines are present in /etc/security/limits.conf:
@audio - rtprio 99
@audio - memlock unlimited
The difference between the Connections and Patchbay functions of QJackctl is not particularly easy to understand. This article provides an excellent reference.
Mixed FireWire and USB MIDI
If you have a mixture of older USB MIDI devices and FireWire audio, then you may hit the same problem which we did. If you start Ardour with the ALSA option picked, all is fine and both Ardour and the USB MIDI ports appear in the MIDI tab of QJacktl. However, we no FireWire devices are visible. If we start QJacktl first with firewire as the interfaces, the USB MIDI devices only appear on the ALSA tab of QJackctl, and Ardour (as of version 3) only appears in the Audio and MIDI tabs, so there's no way to connect them. We now need something to make the ALSA devices visible in the MIDI tab and this is what a2jmidid does for us.
It is available as a package or in binary form for some distributions and can be built from source for others (e.g. our favourite Mageia).
To make connections easy, we recommend Catia from KXStudio.
Catia makes your virtual studio look like a real one, where you "wire" patch "leads" between devices. This is very intuitive, and really starts to come into its own if you want to use an arpeggiator like QMidiArp or Jack plugins like Zita-at1 (one of the better Linux auto-tune plugins).
Every new "device" which connects to Jack automatically appears in the Catia window.
If you are using Debian or Ubuntu, then KXStudio is worth looking at.
It needs building from source for Mageia at the moment. Catia appears to run nicely but Cadence and Claudia are currently unable to find the jackdbus server even though it is running.