Re: Capturing audio from one app, sending to another
Re: Capturing audio from one app, sending to another
- Subject: Re: Capturing audio from one app, sending to another
- From: Jeff Moore <email@hidden>
- Date: Wed, 11 Jan 2006 16:27:42 -0800
Tapping into an app's graph of AUs without that app's cooperation is
pretty hard. One way to do it would be to put your analysis engine
into an AU and make the AU's view show the pretty pictures and
bouncing lights. That gives the user the ability to put the analyzer
pretty much any where they can put an AU. A very similar way to do it
would be to create a "tap" AU that syphons off the audio data and
busses it to your app using whatever inter-process communication APIs
you like. Our AUNetSend and AUNetReceive Audio Units work in this
fashion.
That approach does have the limitation that it requires that the app
to be analyzed be able to work with AUs and put them into it's signal
flow. This would be apps like AU Lab, Logic, Digital Performer, Live,
and all the other AU hosting apps out there. To get the data from all
the other apps would require writing a virtual device using the API
in <CoreAudio/AudioHardwarePlugIn.h>. This is the approach that I
believe Jack has taken among others.
On Jan 11, 2006, at 1:16 PM, Evan Olcott wrote:
I'm working on an application that's an audio analysis app, and so
far it's pretty cool and extensive. I'd like it to be able to
capture audio not only from the inputs on the machine (which it
does now just fine), but also audio outputs from other
applications. I can only think up 2 ways to do this:
1. Use a "Detour"-like routing where my app sees the list of
running applications with audio output, then the user can select
the apps from the list, and I tap into their AUGraph outputs
somehow. How does one tap into another app's audio output and get
the audio buffers as they come through? Rogue Amoeba's work seems
to do this, what method to they use?
2. Use a custom Audio Unit that captures the audio from that
particular place in the audio stream that it's been put in the app,
then send the buffer across application lines (and threads) into
the running analysis app for display. I can see AUNetSend (I've not
tried that), but could I use that or something similar to send
buffers to another app altogether?
Both solutions are probably necessary for different situations, but
I'm not sure of the possibility of either one. Has anyone done work
in this area, and/or are these things even possible?
BTW - my app in not intended to *record* from other apps, simply to
display pretty graphs and what not, so recording copyrighted
material stuff is not the issue in this app.
--
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