• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Jack and CoreAudio (was Mirroring Audio Output)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Jack and CoreAudio (was Mirroring Audio Output)


  • Subject: Re: Jack and CoreAudio (was Mirroring Audio Output)
  • From: Dan Nigrin <email@hidden>
  • Date: Tue, 9 Jan 2007 16:31:18 -0500

I think what Stephane was trying to say though was that in order to get even better integration between Jack and CoreAudio, that an even deeper understanding of CoreAudio internals and AudioMIDI Setup is necessary for us. Stephane and I will try to draft a technical proposal of sorts for your (and Apple's) consideration in the next couple of days.

The lower bits of the audio stack aren't as well documented as the other bits, so it is understandable that you'd have questions that we would be very happy to answer. There really isn't any technical impediment to you integrating Jack into the system. There are plug-able patch points throughout the stack.

Excellent, we'll keep the questions coming!

We are obviously biased, but our sense in the Audio community is that there is a strong desire to have Jack (or Jack-like) functionality embedded at the OS-level; take for example this thread on Create Digital Music: http://createdigitalmusic.com/2006/12/06/vista-audio-improvement-details-for-consumers-at-least/#comments

Yes. Routing between apps and the sort of things that Jack, AudioHijack, et al. do has been requested of us in the past. However, it has never really been something that has been at the top of request lists from either users or developers. Throw in the fact that for the users that want those features, there are good, useable solutions like Jack out there now and you can begin to see why there hasn't really been any work done in this area.

From a user's perspective, I can tell you that the support and interest we've had on the Jack OS X side has been tremendous, right from the outset. And that's with multiple, competing/complimentary solutions out there (Jack OS X, Soundflower, AudioHijack, and to some degree, Wormhole, FX Teleport, and all sorts of OSC-based solutions). I can't imagine that end users wouldn't rather have a single, Apple-standardized and supported way of doing this stuff. And that's just the users that know this kind of thing is even possible; sometimes, in fine Apple fashion, I think users need to be introduced to new and exciting functionality that they didn't even know they needed, but once shown, couldn't do without...


From a developer perspective, I'd imagine again that one single, standardized (and license-free) way of doing interapp audio, midi, and transport would be greatly appreciated. Perhaps other developers on the list could chime in here.

Just as Apple has used open source foundations in Safari, we feel that a Jack extension to CoreAudio makes a lot of sense...

I don't believe that this is really a topic that belongs here on this list, but we'd be happy to talk about whatever issues you've been having with integrating Jack into what's there in the system now.

Thanks - let me try to summarize:

As you probably know the Jack project began as an Linux-only system designed and developed by a team of audio developers lead by Paul Davis. In 2003 we started porting Jack to OSX, thinking it would be a great extension of the CoreAudio API, giving users a new kind of working experience. The port was built around several components: the Jack server itself, a bridge called JackRouter that allows CoreAudio-based applications to become clients of the Jack server and transparently use its capabilities, and a a centralized tool to handle parameter configuration and client connections. This is the Jack OS X package as it stands now.

In 2004 we started working on a new C++ based implementation of the Jack infrastructure, to experiment with a new activation model more adapted to multi-core and multi-processors machines. This new implementation has been quite successful, solving also some annoying limitations of the initial version. It has been ported back to Linux and more recently to Windows as well.

The degree of integration we have been able to reach on OS X has been somewhat limited by a few technical difficulties however:

- developing a user-land based CoreAudio driver is difficult! A lot of code that is probably also part of the CoreAudio HAL layer had to be rewritten. Keeping a high degree of quality and compatibility with all possible CoreAudio clients has become more and more difficult to achieve. Moreover internal changes between OS releases (for example Panther and Tiger) caused us more problems.

- a Jack-like server system needs a centralized management tool, to configure different parameters, to give users a centralized view of all running applications, and to handle audio port connections. This would typically be a feature to be included in the AudioMidi Setup kind of tool, but we had to develop a separate tool to realize these features. As an example, please see some images of a never-completed prototype (coded by Evan Olcott) that we feel are more in line with the Apple "experience": http://www.jackosx.com/prototype.html .

Our feeling is is that there is a strong desire to have Jack (or Jack-like) functionality embedded at the OS level. We think this would benefit the entire audio OS X community, and since Jack is an open-source project, we think it could be a good code base for this purpose. We think also that is it perfectly possible to have a Jack-like system running side by side with the existing CoreAudio layer, without any kind of compromises

If that's not in the cards, from our perspective, it would make things easier for us if we could get access to some more internal parts of the CoreAudio HAL and AudioMidi Setup tool, or share in any way part of the HAL stack implementation.

Thanks for listening,
Dan (off to drool over some iPhone pix...)
--
Dan Nigrin
Defective Records
202 Hack / PC-1600 User / VSTi Host / OMS Convert / Jack OS X
http://www.defectiverecords.com
http://www.jackosx.com

_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list      (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden


  • Follow-Ups:
    • Re: Jack and CoreAudio (was Mirroring Audio Output)
      • From: Jeff Moore <email@hidden>
  • Prev by Date: Re: Crash in MusicPlayerStart - OS X bug?
  • Next by Date: Re: Crash in MusicPlayerStart - OS X bug?
  • Previous by thread: Re: Jack and CoreAudio (was Mirroring Audio Output)
  • Next by thread: Re: Jack and CoreAudio (was Mirroring Audio Output)
  • Index(es):
    • Date
    • Thread