Thursday, January 20, 2011

The Problem with Jack

I have been working on two related projects : a virtual pipe organ (vpo) and a guitar effects processor. What they have in common is a PC running Linux. Most audio applications use a program called Jack, which is an "audio connection kit". Jack provides the connections between audio sources (like a virtual synth) and outputs (like the sound card in a computer).

I have been trying for the past two weeks (on and off) to get my computer to make a sound. Any sound. I read the online tutorials. They just didn't click with me. Something was missing. I was using some Sound Blaster Live! cards because they had been recommended for use with the VPO software. I could never get the VPO software (jOrgan) to generate any sound.

I decided to try a different tact with software called Rackarack. I decided to remove all the Sound Blaster cards and used the internal audio. I loaded Ubuntu Studio but could never get the Jack server to run. It would always fail with an error. Via Google, I discovered that Jack didn't work with Ubuntu versions after 10.4 (I was using 10.10).

I loaded a distribution called Puppy Studio, a custom distribution with audio multimedia packages. I booted from the CD. The Jack server started running.

I was reading an article about how to configure the Jack Patchbay and I realized what I had been missing. The Jack Patchbay has "outputs" which come from applications, and "inputs" which interface with hardware. Which seems backwards to me. The audio hardware is managed in Linux by a system called ALSA, which normalizes hardware so Jack can connect to it via the patchbay. The sound hardware was recognized by a system called Pulse Audio, which is used by ALSA to provide the connection to Jack.

I launched Jack, configured the patchbay based on the tutorial, plugged in my guitar and finally....sound.

If you want to use Linux to build an audio appliance, find a distribution with Jack bundled to avoid incompatibility problems.

No comments: