Re: WireTap, CoreAudio's API, and system capture, and kexts...
Re: WireTap, CoreAudio's API, and system capture, and kexts...
- Subject: Re: WireTap, CoreAudio's API, and system capture, and kexts...
- From: Jeff Moore <email@hidden>
- Date: Thu, 12 Jan 2006 17:53:04 -0800
On Jan 12, 2006, at 3:26 PM, Andy O'Meara wrote:
I wanted to pose the following to people here, especially any Ambrosia
people here...
We make music visualization software (G-Force) and in some of the
new stuff
we're writing, it'd be pretty pivotal to gain access to the "system
out"
audio so that we can show our visuals reacting to whatever's being
pumped
out over the system. Currently, via CoreAudio, only the standard
audio
input devices are available for audio input.
Ambrosia's WireTap uses a kernel extension to gain audio access, but
my
concerns of making my own are a serious lack of kext knowledge as
well as,
in principle, the fact that this functionality seems like it should
be made
via CoreAudio. So, my question is, is this functionality available
in any
way in today's CoreAudio?
There are no APIs on the system that will give you the output of any
specific app or the whole mix going to the hardware.
In the kernel, you can grope whatever data structures you can find,
which is what I expect Ambrosia is doing. But doing that is not
supported and isn't going to provide access to all of the audio
devices in the system.
If not, will it ever? Is there any kind of sample code available?
There are no plans to deliver this functionality.
I was never really sure why Apple didn't put this functionality in
CoreAudio--my only guess was that the basis was either DRM reasons or
developer support liability. If the basis was DRM, then that's
obviously
been thwarted by Ambrosia's 'WireTap' and Rogue Amoeba's 'Audio
Hijack' (if
the name "Audio Hijack" isn't a slap in the face, I don't know what
is).
Last I looked, Audio Hijack patches in using the low level shared
library mechanisms to interpose it's own version of the HAL between
the app and the real HAL. Of course, what they do is not supported and
I'm pretty sure breaks on most system releases. But the system needs
it's shared libraries.
The plain truth is that there really hasn't been enough of a demand
for this feature to make it a priority. Couple that with the DRM
minefield and the fact that others have seemingly come up with their
own solution, and you are left with a very complicated feature that
has very little bang for the buck.
The motivation here is the following. In our Windows release, we also
bundle a fun little app called the "V-Bar", that draws tickering
tiles of
our music visuals that go along to the side of the screen (and they
react to
whatever audio is paying over the system). Getting the system audio
is
impressively easy and well documented in Win32's "mixercontrol"
API. So as
much as love to beat the drum of how far head Mac OS is often ahead,
this is
an unfortunate and show-stopping discrepancy for our small company.
It is self-evident that your statement is false. Clearly, other apps
have found a way to do what you want to. The difference is that it
isn't supported by the System and those folks had to be clever.
There's nothing stopping you from doing the same thing except how
willing you are to get your hands dirty.
The fact is, Mac OS X's audio system was designed first and foremost
for performance. This lead us to a design where it is not easy to
support the functionality you want without imposing performance
penalties. So, we have opted for better performance at the cost of not
being able to provide this feature.
Like a lot of life it's all about trade-offs.
--
Jeff Moore
Core Audio
Apple
_______________________________________________
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
- Prev by Date:
Re: WireTap, CoreAudio's API, and system capture, and kexts...
- Next by Date:
Re: WireTap, CoreAudio's API, and system capture, and kexts...
- Previous by thread:
Re: WireTap, CoreAudio's API, and system capture, and kexts...
- Next by thread:
Re: WireTap, CoreAudio's API, and system capture, and kexts...
- Index(es):