The Jack Audio Connection Kit is the backbone of professional audio in Linux; just about every pro audio tool in Linux makes use of this system for maximum flexibility.
The fundamental idea behind Jack is simple: Connect the output of one device or program into the input of another device or program. Anyone who has used analog audio devices, or even set up an entertainment system, should be able to grasp the basics in no time.
Every jack-connected device and Jack-capable program is designed to have inputs and outputs. Each input is treated by the program as a microphone, and each output is treated as if it were a speaker. The value of Jack is that these inputs and outputs can be connected into a chain, allowing sound to be processed, one program at a time, before finally being output to the actual speakers, or recorded by one of the programs.
Each input and each output is associated with a channel. Many programs will have two or more channels, indicating that they support stereo or surround sound, while some can support several tracks independent of one another. Jack gives you the ability to connect an output to an input, regardless of where the output or input is.
There is also no limit to the number of connections each output or input can have; with Jack, when multiple outputs connect to a single input, the channels merge, and when one output goes to several inputs, the channel is split that many ways. And unlike analog audio, the quality of the sound does not degrade (although it does increase latency, as the computer needs to send the sound several times at once).