(Concepts cont.)
PluginsThink of plugins as the software equivalent to a guitar effects pedal. You can have distortion, compression, hi-pass filter, vocoder, Barry's Satan Maximizer, reverb and a load of others.
You can use these plugins to change the sound of your recordings. Either in real-time (see below) or as an effect in the multi-track recorder.
You can use multiple plugins at once for a single signal via Jack-Rack (see below). This will become clearer later.
Real-time and the Linux KernelThe Linux kernel allows for real scheduling so most of the A/V (audio-visual) distribution have optimized the kernel so that it favors the A/V processes.
That is a really simplistic explanation. But an even better one by way of analogy is this: If you are recording music, would you rather the computer stutter it's recording when you moved the mouse? or would you rather the computer never miss a millisecond of your recording and move the cursor a second late after you moved the mouse?
Why is this important? Well, for starters you don't want your computer thinking that updating the cursor location is more important that making sure it didn't drop any of your music when writing it to the hardrive. But also for real-time applications.
Sure you can record something, say drums, then add a reverb plugin and let the computer chug away at it later to apply the reverb sound to it and record the final work to another track. Slower computer with limited memory, might take a couple of minutes to work all that out. Or...
If you have a svelte computer with gobs of memory and a real-time capable kernel you can apply these plugin effects to your signal
as you play them and record them and you hear the effected output right now!
You want distortion for your guitar? Add the effect to the correct guitar channel in Ardour (the multi-track) and monitor your sound and the computer will add the distortion to it in real-time and you hear it right now!
Jack and Jack-RackWell, first I have to explain what Jack is. It's a recursive acronym for Jack Audio Connection Kit.
Here is a good primer for it by Dave Phillips whom many consider to be the guru of Linux music.
Simply put, Jack exists in a layer or space between the hardware/driver and any audio program that you use. But to use Jack the program has to be design with Jack support built in it.
Jack let's you route any audio signal from one program to another. The importance of this will become clearer soon.
Jack-Rack let's you stack multiple plugins in it. Think of a virtual guitarist rack with various effects in it.
So, I want to record my guitar with distortion, flanger and a little bit of compressor. I start Jack-Rack and add these effects into it adjusting their settings as I like
Now, using Jack to route my signal, I connect the input from the soundcard and attach it to Jack-Rack. Then I take the output from Jack-Rack and patch it to Ardour (the multi-track recorder). And finally I take the output from Ardour and with a final flick of my wrist I connect it to the speakers for the computer.
ViolaI now have a guitar with all my effects added to it with a computer just as the guitar effects pedals would. You can have multiple instances of Jack-Rack working at one time also.
So you want distortion, flanger, compression on the guitar. Start Jack-Rack and set it up. Now I want to add effects to my drum machine so I start Jack-Rack (which starts another instance) and add reverb and a hi-pass filter to it. I can route each signal (guitar and drums) separately though the Rack-Rack instance as I want.
This is a simple explanation which does not show the robust nature of Jack, but it illustrates the concept.
Next, I'll start talking about the common program and their purpose along with a couple of distributions.