JACK for iOS: Audio and MIDI Between Apps, High Performance, Free

Started by Elantric-fgn, March 20, 2013, 11:12:50 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Elantric-fgn

JACK Audio Connection Kit

JACK is more than just one iOS app. It is a system that connects the music and audio world on your iOS device. JACK allows audio channels and MIDI ports of your audio & music apps to be connected with each other. It does not force a predefined schema in which way apps shall be connected with each other. You can freely connect them in any way you want, intuitively like drawing on a paper. Besides audio & MIDI interconnection, JACK provides other very useful mechanisms to let your audio apps work together like never before. For example record/playback synchronization between DAWs and sequencer apps. Arbitrary data sharing among apps and much more. Even though JACK is quite new on iOS, it already came a long way. Providing you the most professional and powerful environment for your audio apps, highly optimized with explicit multi core support, low latency and maturity which it gained over many years of usage and development on other operating systems already. JACK is an open standard, which can freely be supported by anybody.

Current Features:

    Audio connections between apps and external devices¹.
    MIDI connections between apps and external devices¹.
    Record/Playback synchronization between apps.
    Multi Core CPU support for high performance (parallelized internal audio graph).
    Low Latency Performance (configurable, i.e. 2ms buffer sizes).
    Arbitrary, custom data sharing among apps (allows easy extensions of the system).
    Arbitrary amount of audio & MIDI ports per app, changeable at runtime.
    Intuitive user interface that allows you to easily manage all audio and MIDI connections, environment settings, monitor current overall CPU usage and more ...

Your favorite audio app does not support JACK yet? Ask the app vendor to add support for it! Any developer can add JACK support to his app in less than an hour.

¹ If you want to use external audio and/or MIDI devices: The adapter and/or the external audio/MIDI device you connect must be supported by the iPad/iPhone operating system in order to be able to use it with this app. To our knowledge there is currently no official list of supported devices by Apple. We recommend you to check whether your external device is supported by your iOS version, i.e. for MIDI devices: by using our MIDI monitor app MIDI Wrench, which is free!


Screenshots
iPad:















Apps in these screen shots: CMP Grand Piano and MIDI Wrench can be downloaded from the App Store. The other apps in these screenshots can be found as example JACK apps in the JACKiOS Software Deveopment Kit, which i.e. includes audio effect apps and sound generator apps.

Example JACK Graph App "CMP Grand Piano" has one or more audio output channels and at least one MIDI input port, but no MIDI output and no audio input. CMP Grand Piano Two audio connections from app "CMP Grand Piano" to the iPad's/iPhone's audio output speaker. MIDI Wrench One MIDI connection from some MIDI input device (attached to the iPad/iPhone) to the app "MIDI Wrench". And one MIDI connection into the other direction, that is from app "MIDI Wrench" to some attached MIDI output device. System "System" is a special JACK client, which is not an app, but instead provides access to the iPad's/iPhone's audio input/output channels (microphone and speakers) and MIDI input/output ports (if some MIDI device is attached to the iPad/iPhone).

Apps

We frequently update a list with iOS apps that support JACK.

SDK

You are an app developer and want your audio / music app to become connected with other JACK apps? Download the JACK Software Development Kit for iOS now!

Download

JACK is currently available for the following mobile phones and tablet devices. In case you encounter any problems while using this app, please report it to us by using the contact form at the end of this page.

    Apple iPad, iPhone and iPod touch:
    You can get JACK through iTunes from the Apple App Store. Note that you need at least iOS 5.0 or later to be able to use this app.

JACK is also available for Windows PC, Linux and Mac. Find out more on jackaudio.org.




http://createdigitalmusic.com/2013/03/jack-for-ios-audio-and-midi-between-apps-high-performance-free/
http://createdigitalmusic.com/2013/03/jack-for-ios-audio-and-midi-between-apps-high-performance-free/
JACK for iOS: Audio and MIDI Between Apps, High Performance, Free
by Peter Kirn
Finally, route audio, MIDI, sync, and data between apps however you like - one solution, free.

iOS now offers lots of options for using apps together, but – that's part of the problem. The solutions are piecemeal. There's inter-app MIDI. There's Audiobus, which does audio, but requires the purchase of a separate app. Then you need something else for sharing data. And something else for sync. Confused yet? (Hey, it's easy, just remember: Audiobus, WIST, AudioCopy, AudioPaste, Core MIDI and inter-app MIDI, and... yeah.)

By the time you're done, you've actually had to buy new apps just to get things working together, and you have a number of different technologies just to do some basic things you might expect would be intuitive.

JACK adds yet another technology to this picture, but it might also bring relief. It's free – no cost to download on iOS, and based on the free and open source JACK on Mac, Windows, and Linux. You can get it right now. It does, its developers say, everything: audio, MIDI, sync, and data sharing in any arbitrary combination you like. It's high performance, both optimized for efficient processing and low latency. And encouraging adoption, the SDK is available to all developers; you don't even have to fill out a form first.

That's not to say JACK faces an easy battle into the iOS ecosystem. The user interface is powerful, yes, but some users may not grasp dragging connections between apps quite as easily as Audiobus' dead-simple (though much less flexible) routing. Mainly, there's the matter of timing: iOS users (and developers) may at this point have so much fatigue with all these solutions that anything new is likely to face resistance, no matter how good it is.

But if JACK can deliver what it's promising on iOS, it looks really, really, really good. And it's one solution for sharing data, audio, MIDI, and sync. That sets it apart from everything that came before. So, the choice is either lots of solutions, each put up by individual developers, based on ad-hoc solutions to components of the problem, or one existing, open standard that does everything. I think a number of developers and users will be testing this in the hope that the latter can work.

Here's what's encouraging: right now, you can look at that code that would add JACK support, and download the SDK without convincing someone to let you do so. And I don't doubt that you could add this support in under an hour as the site claims. (Developers: you can release commercial apps, as they've released this iOS version under special license terms, not the GPL, which is problematic on iOS and, potentially, for commercial use.)

Update: Audiobus released its SDK publicly yesterday, an indication of just how fast this scene is moving. The documentation is copious and comes with loads of sample projects and the like:

http://developer.audiob.us

The Audiobus developers have done an exceptional job, and I think they create a strong incentive for Audiobus support – and have the momentum. However, it is worth saying as a developer, implementing JACK support is actually vastly easier than implementing Audiobus support. In fact, the API is very similar to our API for libpd, the open source embeddable Pure Data engine – partly because libpd's audio API was modeled on a simplified JACK API (though that's a long story).
Pure Data engine
http://puredata.info/downloads/libpd
Both give developers a bunch of functionality, and almost no particular license obligation, for free. The answer to the question, "will some developers support all of the above and see what sticks?" Yes, probably. But it is worth saying: JACK does a lot more, and the amount of code you have to add it almost comically trivial. Some developers have probably already spent more time reading this article or replying to comments than it'd take to do.

The project description from the developer reads almost like a manifesto:

    JACK is more than just one iOS app. It is a system that connects the music and audio world on your iOS device. JACK allows audio channels and MIDI ports of your audio & music apps to be connected with each other. It does not force a predefined schema in which way apps shall be connected with each other. You can freely connect them in any way you want, intuitively like drawing on a paper. Besides audio & MIDI interconnection, JACK provides other very useful mechanisms to let your audio apps work together like never before. For example record/playback synchronization between DAWs and sequencer apps. Arbitrary data sharing among apps and much more. Even though JACK is quite new on iOS, it already came a long way. Providing you the most professional and powerful environment for your audio apps, highly optimized with explicit multi core support, low latency and maturity which it gained over many years of usage and development on other operating systems already. JACK is an open standard, which can freely be supported by anybody.

    Current Features:

    Audio connections between apps and external devices.
    MIDI connections between apps and external devices.
    Record/Playback synchronization between apps.
    Multi Core CPU support for high performance (parallelized internal audio graph).
    Low Latency Performance (configurable, i.e. 2ms buffer sizes).
    Arbitrary, custom data sharing among apps (allows easy extensions of the system).
    Arbitrary amount of audio & MIDI ports per app, changeable at runtime.
    Intuitive user interface that allows you to easily manage all audio and MIDI connections, environment settings, monitor current overall CPU usage and more ...

As always, for external audio/MIDI, you need a supported device.

But if you have iOS 5, you can try this now. We just need apps that support JACK for it to be useful. But – yes, I'll be testing this, as this for me starts to suggest a workflow I'd actually want to use in a way that these other bits and pieces weren't. Nice work by Christian Schoenebeck bringing this to the platform.

http://www.crudebyte.com/jack-ios/

See also the developers' very cool free MIDI monitor.


. . . the future ain't what it used to be . . .