Fink, Jack, and other Open Source Mac (Audio) Geekery

I’ve been thrilled for a while with the power of JACK, the Jack Audio Connection Kit, which has an elegant and usable macintosh port. It’s basically a tool for taking audio inputs and outputs from various software sources inside your computer and controlling, in real time, how they are connected with each other. The mac version of Jack comes with a wonderfully easy pointy clicky thing called JackPilot which lets you start and stop Jack and do things with it.

For example, one trivial thing I’ve done with Jack is used it to make my own mp3 copies of NPR’s Realplayer streams. I fire up JackPilot and then fire up RealPlayer. “Realplayer” appears in the JackPilot routing window. Then I fire up Audio In, a simple recording program, and with a couple double clicks I connect the output of Realplayer both to the input of Audio In and also to the speakers (so I can hear it). Now Audio In is getting a pure stream of output from RealPlayer and making a copy of it.

That’s the tip of the iceberg. There are some really nice sound applications that depend on Jack for their input and output. Ardour is a digital audio workstation. It takes a lot of getting used to because it’s not a native Mac application at all (ported from Linux, requires Apple’s X11.app) and a lot of the interface is strange and hard to comprehend, and the documentation is really sketchy. But there’s a nifty tutorial out there which discusses how you can hook Ardour and a neat drum machine called Hydrogen, and pipe other stuff into it too, and just jam and stuff. There’s also a spiffy OS X/JACK port of Sooperlooper, a live looping sampler.

All of the above are downloadable and usable as is. Jack is easy to learn, Ardour is pretty hard (maybe it’s easier if you already know a lot about digital music programs like Pro Tools), Hydrogen is fairly easy, SooperLooper is easy too.

But I saw neat stuff I wanted to try that wasn’t ported yet. Like Jack Rack, a JACK-based live effects machine. Most of that stuff compiles to X11 and requires a lot of Linux-based libraries that don’t come with OS X and are a pain to port by hand.

So my eyes turned to the Fink project. I’d become really frustrated with Fink the last few times I’d tried to use it, so I don’t know why I tried it now, but I did, somehow. I figured out what the problems were keeping me back (with the help of the FAQ). The main thing was, I hadn’t installed Apple’s X11 SDK (which comes with the Developer Tools). That was messing me up. I thought I had installed it but I was wrong. So I went and got it and Fink came together. And I could indeed compile Jack Rack.

Once I got Fink working I discovered I could do some other neat things I’d wanted to do a long time ago, like get XSane, an open source scanner program, working. Neat stuff. I also noticed that there was some stuff in Fink which would be really useful for my work, like both GTK and Carbon versions of the wxWidgets libraries, which I had previously been laboriously compiling by hand. Awesomeness.

I thnk that I had never really learned to use Fink properly because I’d always used the Fink versions of Debian tools like “apt-get” and the like. (Cause I used to use Debian Linux). But Fink has a bunch of tools of its own, invoked via the ‘fink’ command, and they seem to work better than, and to be more powerful than, the “apt” stuff alone.

Now I’m thinking about compiling JACK TimeMachine. Or maybe I could just go back to playing around with tunes…