Re: Help with monitoring system-wide audio
Re: Help with monitoring system-wide audio
- Subject: Re: Help with monitoring system-wide audio
- From: Jeff Moore <email@hidden>
- Date: Mon, 26 Nov 2007 19:25:58 -0800
On Nov 26, 2007, at 7:12 PM, Bob Smith wrote:
Thanks for the pointer anyway, I didn't know about the Sequence
Grabber API and it might be useful after all. A possible brute-
force-and-ignorance solution comes to mind; externally split the
line-out audio and loop it back to the line input, then use a
Sequence Grabber to monitor audio coming to that input. Not pretty,
but quick and probably effective.
Especially if you are looping back the SPDIF port.
However before resorting to that, I'd like to exhaust all possible
"elegant" solutions. It would be ideal to monitor system-wide
audio, but given that the "driver tap" approach seems like it might
take more time and effort than I have available, it would probably
be good enough to just have one particular application monitor
itself. Is there an easier way to have an app monitor just it's own
audio output levels? The app in question will always be using
QuickTime (through QTKit) to generate audio, can I get anything
helpful from the QuickTime API?
QT has it's own APIs for metering movies during playback. Plus, it
also has an API that let's you directly tap the audio. You'll probably
want to talk to the QT folks about these APIs.
Of course, this only applies to audio produced by QT. Audio produced
through other means won't be available as there is no central point in
an app that you can tap all audio. (It's a very distributed model
where the participants are deliberately ignorant of each other.)
(A quick overview of the project, in case it helps. This is a multi-
media kiosk display system consisting of a player app plus "helper"
apps to play QuickTime files. The helpers run as separate processes
to prevent QuickTime instabilities and memory leaks from messing
with the player.
Hopefully, you are filing bugs about any such issues rather than just
working around them. We can't fix bugs we don't know about.
The player can also be operated via a remote-control app from
another computer, where the kiosk itself is not visible, so I need a
status display showing video and audio are actually being sent to
the kiosk. Ideally I want the player to directly sample what is
going to the hardware, partly because the actual playback is done by
separate applications, but also to allow a remote operator to detect
any possible glitch, i.e. the screen-saver being activated. This is
easy to do with video by just grabbing directly from the Core
Graphics frame buffer. I'd like to do something similar with audio;
but if that isn't feasible I could live with having a helper app
monitor it's own audio and report the result to the player.)
The morale equivalent of the frame buffer is in the kernel in the
possession of the device's driver. That's why for audio, there just
isn't any place outside of the kernel to get access to the entire mix
going to the device.
Again, many thanks for any help you can provide.
Bob S.
On Nov 26, 2007, at 2:40 PM, Jaime Magiera wrote:
On Nov 26, 2007, at 5:38 PM, Jeff Moore wrote:
This would let you monitor the levels of incoming audio. But the
question was about monitoring the levels of audio coming out of
other application. The QT Sequence Grabber isn't going to help you
with that.
Ahhh yes, I see that now, thanks.
JLM
_______________________________________________
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
_______________________________________________
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
--
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