Want to share audio between applications easily on an Intel Mac? Now you can. JACK OS X, the superb open-source solution for routing audio between applications and computers on Mac OS X, is now a Universal binary for Intel/PowerPC Macs with today’s release of version 0.73. That means if you’re running an Intel Mac, you can now easily route audio between your Intel-native copies of software like Ableton Live (released last week) and Apple Logic Pro (shipped last month).

Updated: The creator of JACK writes us to note that inter-app MIDI is bound for an upcoming release. (See comments.)

In fact, JACK has beaten the competing commercial technology, ReWire, to market; ReWire is evidently not yet available for Intel Macs (though it’s coming soon). ReWire, of course, does many things JACK can’t, like inter-application MIDI routing, transport sync, and what basically amounts to zero-configuration operation (run the host, run the client, and you’re done). But JACK has various tricks of its own: it works with all Mac audio applications instead of just a few, allows for flexible routing scenarios not possible with ReWire, and can even route audio between computers over a network. (Personally, I think there’s no reason not to use both ReWire and JACK on the Mac, especially since JACK is free. But if you’re waiting for ReWire, here’s a hint: use Mac OS X’s built-in inter-application MIDI for MIDI data, activated in Audio MIDI Setup, and JACK for audio.)

PowerPC users, of course, will want this as well (more minor updates, but if you don’t have JACK, you need this on your Mac), and the “original” JACK is also a must-have if you’re running Linux. (On Linux, JACK does offer transport sync; again, see comments.)

Congrats to the JACK OS X team for getting this out there so quickly!

  • Adrian

    God, I wish somebody would port Jack to WinXP. It being open-source and all should make it possible.

    ATA

  • http://jackit.sf.net/ Paul Davis

    JACK was written with POSIX-compliant operating systems in mind. In particular, it assumes that switching between different processes is very very fast. Windows, by contrast, is very poor at POSIX compliance (even with add-on packages like Windows Services For Unix), and prioritizes inter-thread switching time and not process switching time.

    JACK could probably be made to work on the win32 API, but latencies would always be large because of how slow it is to switch between processes. Maybe vista will change all this, but we'll all have to wait a while to see if the final version of vista can do this or not.

    BTW, I know this because I wrote JACK :)

  • http://jackit.sf.net/ Paul Davis

    Peter, regarding the things that JACK cannot do that ReWire can:

    * Transport sync. JACK does actually do this, and it does it more accurately than ReWire does, but only on Linux. Why not OS X? Well, that's because at the moment, we don't expect CoreAudio developers to use the JACK API. Since CoreAudio doesn't expose any concept of "transport state", there is nothing we can hook into to allow them to utilize JACK's transport model. Stephane Letz, the main developer behind both JACK on OSX and the new multi-processor-enhanced "jackdmp", has been working on ways around this by using MIDI control messages of various kinds, but many apps do not respond to these messages, or do so in inconsistent ways.

    * inter-app MIDI: probably within the next two weeks, the core JACK source code will be patched to allow sample-accurate MIDI (and soon, OSC) routing between apps. This is much more than CoreMidi's existing IAC system does, where the MIDI data just gets there "sometime". It has limitations for moving large sysex data around, but quite honestly, thats not the intended use of such a facility – this is real time, sample accurate event delivery. Bulk data transfer on OSX should use IAC which has no real time responsibilities. I don't know how long it will before this shows up in a JACK OSX version but it doesn't matter much since at present, 99% of all OS X audio/midi apps use the CoreAudio/CoreMIDI API. Again, like transport sync, these API's do not offer any models that we can hook into to expose JACKs capabilities to them transparently.

    You will hopefully grasp why ReWire requires developers to use their own API in order to use its facilities. I would have been happy to have designed JACK to match the ReWire API, but Propellerheads licensing terms for ReWire are nothing short of ridiculous. Terms like "real business entity" occur within it, leaving most open source developers out in the cold.

    People I know who have used JACK and CoreAudio, as well as ASIO, EASI, ReWire, VST and many other audio APIs consistently praise JACK for being the simplest, most powerful, most straightforward experience. It aims to make the simple things easy, the harder things understandable and the utterly bizarre stuff possible :) It would be great if one day OS X audio developers would consider using it, or better yet if Apple would consider merging the JACK API into some part of CoreAudio. We have talked with them about this and it seems unlikely, for a variety of reasons.

  • http://www.createdigitalmusic.com Peter Kirn

    Hi Paul; Thanks for the detailed updates. I was unaware sample-accurate MIDI and OSC were becoming possible . . . I'm particularly excited about OSC. That's fantastic.

    Transport sync can indeed be problematic in ReWire, though it is a step up from using MIDI transport. (That said, presumably you would be able to use inter-app MIDI in JACK on OS X to fake transport sync, if not as accurately as on Linux?)

  • Pingback: Audio Macintosh » JACK for OS X

  • Dave

    anyone know if there's something like this for non-intel macs?

  • http://jackit.sf.net/ Paul Davis

    As Peter noted, JACK has been available for PPC Macs for a couple of years now.

  • Magna Alexander

    I must ask, as I have been using JACK for a indeterminate period wihtout the ability to find this answer:

    Where is QJackCtl? Even in this bleeding edge release, there is a section an specific (and dead) link to the OS X binary of this program… and yet after hours of web-scouring I found myself completely incapable of locating it. JACK is wonderful, and seems a hell of a lot more stable than Soundflower IME. Yet the interface, as is common to developing open source programs, is far more utililtarian than usable. QJackCtl seems to at least attempt a modicum of visual feedback – transport sync I can easily do without, as Pd is easily syncable via IAC MIDI (though I admit, Jack's own implementation of this would be quite welcome) – but the JACK router in OS X is really rather frustrating. Hidable connection points are one example: on my Fireface, 28 inputs show up, of which I only use 10 since I have no digital connections to the device. So expanding the Fireface gives 18 superfluous entries which only serve to add clutter. But my main complaint is the indication of connections within JACK – the "patchcord" metaphor is vastly more intuitive than colored text.

    Anyhow, sorry to sound negative; just throwing out my (hopefully) constructive criticisms! JACK is fantastic in functionality! Thanks to Paul, and all others involved in the project.

  • http://www.createdigitalmusic.com Peter Kirn

    <a href="http://ardour.org/files/releases/QJackCtl-0.2.18.dmg

    ">This what you're looking for, Magna? :)

    Native Mac binary, works like a charm for me once I set it up as per the readme, and a big step up from Jack Pilot.

    Now, that's build 0.2.18.15, not the latest 0.2.2.20 release. But it is working nicely for me. Also, I see why you got confused on the Sourceforge site for QJackCtl; the platform-independent source is easy to find but not the Mac build. I found the working link here:

    http://ardour.org/requirements_osx

    Though only see source here:

    http://qjackctl.sourceforge.net/

    Paul, still there?

    I think most Mac users probably aren't as familiar with JACK; sounds like a good tutorial candidate.

  • http://www.jackosx.com Dan Nigrin

    Hi Peter and all.

    I'm one of the Jack OS X team, along with Stephane Letz, the main Jack OS X developer, and Johnny Petrantoni, the developer of Jack Pilot.

    We've not explicity encouraged widespread use of QJackCtl to date, specifically because our feeling is that it increases the complexity of using Jack OS X. Although it does have a more intuitive connections approach than Jack Pilot, it also adds a lot of potential places to go wrong, as well as potentially a lot of confusion around features which are in QJackCtl for Jack on Linux, but which are not enabled (yet) on OS X.

    With ease of use in mind however, we are now working on a completely new graphically based UI which we hope will greatly improve the intuitiveness of the system, and make it even more "Mac-like". No promises on the date yet, but we will keep you posted when it's ready!

    Dan

  • http://www.jackosx.com Dan Nigrin

    Oh, one more thing – the QJackCtl you linked to is NOT universal binary, and I'm not sure will work with Jack OS X on Intel…

    Dan

  • http://www.createdigitalmusic.com Peter Kirn

    Thanks, Dan! Do keep us posted! I really like QJackCtl. And I think a more Mac-like interface that does some of the same things if even better.

    And, I have to say, I notice the one operating system that really lags behind in terms of routing audio or MIDI in ANY useful way is . . . well . . . I'll let you use process of elimination since Mac, Linux, and UNIX all work quite nicely. Microsoft hasn't made any promises for Vista, either, to address any of these issues (including some things that are broken outright).

  • Pingback: { { { { - - Sky Noise — >>> » Document » Video Snippets

  • Pingback: Create Digital Music » Re-Route Audio, Record Skype, iTunes on Cell Phones: Soundflower, Now on Intel Macs

  • http://www.zenpho.co.uk Zenpho

    Here is a tutorial on how to use Jack, PureData and Ableton Live. The file is a pdf from <a href="http://www.zenpho.co.uk” target=”_blank”>www.zenpho.co.uk
    check out other stuff on Zenpho, for more PD patches, and other cool stuff.

    The tutorial covers how to use the Jack Insert Plugin in Ableton Live to use PureData for designing custom effects processors that "run" on audio coming from Ableton Live.

  • http://www.magneticmotorworks.com jonathan segel

    yes, please make that interface router. i use qjackctl in linux and love it, and the router that is with the jack osx package is awful, it pretty much prevents me from using jack in os x. really.

  • Pingback: PDF creator free windows vista