What do you do when the only way to get audio out of one application and into another is by running a cable? If you’re an open source developer like Paul Davis, you start a community project.
The Jack Audio Connection Kit (JACK) provides low latency, high efficiency interprocess audio connectivity, as well as audio device sharing, suitable for pro-audio applications. It can connect a number of different applications to an audio device, as well as allowing them to share audio between themselves. JACK has become a standard API for audio development on the *nix and increasingly MAC OS X platforms, with a large number of applications using it. The JACK project is an outgrowth of another of Paul Davis’ open source projects, Ardour, which is a Digital Audio Workstation project.
Read more about the winners of the 2004 Open Source Awards:
- Open Source Awards 2004
- Open Source Awards 2004: Julian Seward for Valgrind
- Open Source Awards 2004: VideoLAN
- Open Source Awards 2004: Pango
Paul Davis is the project lead on JACK and, for his efforts, is being awarded the Bronze Open Source Award (OSA).
"JACK is an infrastructure project that's taken off outside of the core technical community surrounding Linux,” said OSA Chairperson John Graham Cumming. “JACK shows how Open Source Software touches all areas of computer use, in this case high-end audio, and at the same time is open. This is important because people need to realize that OSS isn't some 'computer-genius-only' software, but is cresting and all areas of software will be touched by it."
Builder.com recently had the opportunity to talk with Paul Davis about JACK and winning the OSA Bronze award for merit.
Builder.com: What was your reaction when you found out you had won an award?
Davis: I was thrilled. It’s very nice to see some recognition for the work that a bunch of us have been doing over the last few years.
Builder.com: Why do you think you got this award for JACK?
Davis: I can only speculate its deserving of recognition as it represents a very novel approach to what it sets out to do. Technically it’s an extremely accomplished piece of work. It also seems to have become an incredible success. When I first started working on it, I have to admit that I wasn’t very optimistic about people taking it up. I had released a small piece of software before that was vaguely similar and it didn’t really generate very much interest from people. Every single serious piece of audio software for Linux is compatible with JACK.
Builder.com: Why JACK? What was the impetus for its development?
Davis: I’ve been writing audio software for Linux pretty much full time for the last four and a half years. It became clear to me about 2 years ago that one of the really critical issues in having stuff be useful on Linux was the question of how to get different audio applications to talk to each other —there were a number of interesting or incomplete projects—it was very easy to come up with these scenarios where you’d want to do something that seemed very obvious and you just could not do it. Or you couldn’t do it at least without running a wire out of the back of your computer and then plugging it back in.
Builder.com: What has been your contribution to JACK?
Davis: My own contribution was twofold—I was a very active participant in the discussion on the Linux audio development mailing list (LAML) about how this should work. But I did go off at some point and say, all right it’s time for us to stop talking about this and actually do it. So I wrote the whole of the first implementation of JACK and have continued to be the prime contributor to it to this day. Although there are a number of other people who really have made some incredibly important contributions, I’d like to make sure that they are mentioned—including Jack O’Quin—Kai Vehmanen.
Builder.com: What makes JACK unique?
Davis: JACK is unique in that it focuses on two things: one of them is very low-latency operation; secondly, on allowing applications to share audio data with each other. There were a number of existing sound services for Linux before JACK came along. None of them were built around the idea of allowing audio applications to share audio data with each other and that really sets it apart from everything else.
Builder.com: What has been your biggest surprise?
Davis: I was hoping that people would use it. There wasn’t a lot of precedent prior to that for agreeing to use some type of system like JACK. I was very surprised that it did take off.
Builder.com: What has been your biggest challenge?
Davis: Trying to get to the stable 1.0 release. Trying to figure all the little things that we want to have working correctly and defining what "correctly" means and having that all done to the point we feel comfortable saying, o.k., this is it. This is 1.0. That’s been quite a challenge and one that we haven’t finished yet.
On the one hand, if you step back and look at—even though we haven’t brought out a 1.0 release—we still have all this software out there that’s actually using it—so it’s a challenge in that we haven’t done it. But it hasn’t impeded JACK’s usefulness
Builder.com: What are you most proud of?
Davis: I’m proud of the fact that it works as well as it does. The fact also that we’ve been able to export the whole system to MAC OS X and [it] works exceedingly well confirms for me that the technical aspects of the project were well thought out.
Builder.com: What would you do or not do again?
Davis: I don’t think that there is a great deal that we would change at all to be honest. I think we got very lucky in that the initial discussions that we had on Linux audio mailing list were very thorough. Although none of that resulted in any code directly, it meant that by the time I started writing JACK, we had already fleshed out a lot of the design issues. I was not going into this blind; it was just a case of writing it.
Builder.com: What pearl of wisdom would you impart upon "Joe jr. developer?"
Davis: If you’re going to do an infrastructure project like this it makes sense to do what we did on the LAML and talk it through before you write the code. With JACK, doing our homework upfront was really valuable.
Builder.com: Do you work on the Open Source project full-time, or do you have another job?
Davis: I work full time on audio software in general. My time is spent either working on Ardour or JACK. [I've] been doing this on an unsupported basis now for four years. Although I am the core developer of JACK, it is important this is recognized as a community project. It would not have happened without the input of a lot of people.