Re: Output Capture
Re: Output Capture
- Subject: Re: Output Capture
- From: Andy O'Meara <email@hidden>
- Date: Thu, 19 Jul 2007 16:45:24 -0400
Kevin,
Myself and others were actually referring to general system
audio loopback capture (nothing to do with any of the cancellation).
iChat was only mentioned that because of it's echo cancellation
feature, it was likely to be using some kind of audio capture. Some
previous posts that sum-up things up:
http://lists.apple.com/archives/coreaudio-api/2006/Jan/msg00097.html
http://lists.apple.com/archives/coreaudio-api/2006/Jan/msg00102.html
In short, they express the desire for CoreAudio to support "system"
audio output capture.
Andy
On Jul 19, 2007, at 10:42 AM, Kevin Avila wrote:
I would like to get some clarification on the context of this
thread. Is the solution we're looking for echo cancellation or
noise cancellation? While the DSP is similar in both cases the
applications differ.
Noise cancellation is for attenuating all background noise in the
environment, this method is what might require access to the entire
system's output, perhaps even an additional microphone or mic
array; implementation can be tricky.
Echo cancelation on the other hand is primarily used in voice
communication technologies, like iChat, and can be implemented much
easier since you only need access to your local incoming sound data
and a single microphone. Implementation is non-trivial, however as
Jeff pointed out, a simple Google search will render many valid
examples & papers about the subject. You basically calculate the
latency of both input & output devices (Core Audio provides API to
do this), play your sound and when you receive input from the
microphone you compare that input with the output you just played
by subtracting the original output with the new input and volia!
Echo cancellation. Easier said then done, but it's a very popular
topic in academia and in the industry at large and there is a
wealth of information regarding the subject on the internet.
Kevin Avila
DTS Audio Engineer
World Wide Developer Relations
Apple, Inc.
On Jul 19, 2007, at 4:53 AM, Andy O'Meara wrote:
Well, does iChat do echo cancellation via public APIs or does it
use private Apple APIs?
iChat works entirely with public APIs and their own echo
cancellation code. No private APIs are used.
You speak as if we have access to the iChat code, so it's not a
given at all that just because iChat can do something, so can we.
Why would you need access to the iChat code? Echo Cancellation is
a major research area in signal processing. It is written about
in numerous text books and papers every year. I'm sure you can
dig up something useful with even a casual Google search.
If it's the case that iChat only uses public APIs, how about
some of that code gets pasted into a new Sample Code project and
put on ADC? That would seem to make the most sense since people
like us repeatedly are looking for a cold, hard solution. And
if you don't won't to do that, could you help us understand why
not? If the reason is that it would be unsupported code, then
we'd say back that we understand and acknowledge that and we
assume the consequences of that.
Since we don't provide an Echo Cancellation library, obviously
there won't be any sample code for that. But that aside, there is
all sorts of sample code for all the APIs that iChat uses out of
Core Audio.
Sorry, I should have been more clear that I was referring to iChat
performing general system audio loopback (the issue in question),
not audio processing it's doing on that audio. In other words, if
iChat did do some sort of system loopback, then it would be
certainly helpful to see the code that did that. But from what
you said, since it only uses public APIs, then it can't do system
loopback based on the facts that you listed earlier.
Andy
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Coreaudio-api mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
40apple.com
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