Home Recording With Linux: Edward Diehl
Home Recording With Linux: Edward Diehl
Home Recording With Linux: Edward Diehl
with Linux
Edward Diehl
Overview
● Linux professional audio has become quite mature and
powerful and is developing rapidly.
● There are many excellent open source (and a few
closed/commercial) applications available.
● Studio hardware is being replaced by software, greatly
reducing costs (especially if you use free software...)
● Many professional audio interfaces are supported (though
not as many as one might like).
● There is a fairly long learning curve required to use a lot of
the software, however (not entirely a Linux-specific issue).
Modulation (PCM)
● The JACK sound server is the best choice for professional audio. It provides:
● Works with any soundcard which has an ALSA or FFADO driver.
● Easily configured, low latency access to audio/midi hardware
● Interconnection of audio/midi applications – applications define input/output ports which
can be easily connected to each other.
● Methods for synchronizing audio applications (even over the network)
● Jack represent a unique strength for Linux audio.
● But, Jack may be confusing at first and may conflict with PulseAudio/other servers
which are trying to access the same hardware.
Command Line Audio
Just a sampling...
Alsa (lots of comands beginning with “a”)
– aplay: play sound files, list Alsa output devices
– arecord: record sound , list Alsa input devices
– amidi: send midi commands to Alsa midi devices
– alsamixer: mixer to configure Alsa soundcards
– aconnect:: create connection between Alsa apps.
– $HOME/.asoundrc: ALSA config file, optional, powerful, and arcane
Misc
– ecasound, sox, snd, sndfile-XXX: => other sound-related programs
Jack Sound Server
● Jack can be controlled by several GUI applications: QjackCtl, Cadence,
Patchage, ladish...
● To complicate matters Jack comes in 2 flavors, Jack1 and Jack2, which are
functionally equivalent. A given distro will use one or the other.
● Also, both Jack and Alsa can control MIDI. These can be used at the same
time and interconnected using the aj2midid program.
● Jack must be started before any music applications. The sample rate and
latency can be configured.
● Latency refers to the time delay in processing sound. Latencies above
~10ms are noticeable so for realtime music production (playing midi
keyboard, adding overdubs) it is desirable to have low latency. At low
latencies buffer over/under runs may occur (“xruns”) resulting in audio
glitches. A lot of time can be spent optimizing to avoid xruns...
● Many people suggest removing PulseAudio because it often interferes with
Jack. But there is a Pulse-to-Jack bridge which can also be used.
● Lets look how to configure Jack with QJackCtl
QJackCtl
● QjackCtl is used to stop/start Jack, monitor
Xruns, and make audio/midi connections
between applications. Device setup
to edit audio.
●
Ardour
Ardour is an excellent, full-featured DAW, more capable (but far more complicated) than Audacity.
● Do multitrack recording, mixing, mastering. Supports Ladspa, LV2, LinuxVST, Windows VST plugins.
Effects can also be added by using Jack to connect tracks to external software or hardware.
● 3 flavors: Ardour2 – stable, audio-only, Ardour3: development version adding midi support,
Mixbus: Non-free version of Ardour2, with built-in high quality plugins from Harrison Consoles.
● Can do movie soundtracks when used with xjado (Jack used to synchronize audio/video)
● Nice tutorial: http://en.flossmanuals.net/ardour
Plugin
Ardour3
Supports Midi track
Audio
And midi
Recording,
Unlimited
Tracks, Audio track
Many plugins
GuitarIx & Rakarrack
● Guitarix & Rakarrack are 2 different programs for amp emulation
and guitar effects processing.
● In each you can build a “rack” of amps and effects and create a
wide variety of sounds.
● Can be used for live play with a guitar or as “inserts” in Ardour/other
DAWs to do effects on pre-recorded guitar.
Guitarix Rakarrack
Jack Connections with Guitarix & Ardour
● Setup: Record 2 guitar tracks in Ardour– one track has effects from Guitarix, one is “dry”.
● Jack connections become much more complicated. QjackCtl can store complicated
routing in it “Session” panel.