Re: Output Capture
Re: Output Capture
- Subject: Re: Output Capture
- From: email@hidden
- Date: Thu, 19 Jul 2007 08:57:17 -0600
On Jul 19, 2007, at 8: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.
For me, echo cancellation is what's most important, for voice chat in
games. I can probably get the output from just my app, but from what
little I've tested so far, it's best to have as much output as
possible. Games are a special case since they tend to take over the
whole computer, but that's not always so. Our games run in a window
sometimes, and it wouldn't surprise me if people have itunes open in
the background playing their own music or whatnot, which will just
kill voice chat.
This is going to be a fairly big deal in the future I think, so at
some point Apple will need to come to a decision as to whether to
provide the computer's output in core audio, or provide echo
cancelled mic input, or provide a routine that allows the user to
feed in mic input and get out echo cancelled buffers (using the
computer's output under the hood). The last two options avoid DRM
problems, but as a developer I might prefer option one, unless
Apple's echo cancellation is top notch. The "Apple Way" would seem
to be just to provide an echo cancelled mic input. As someone
pointed out, I hate to think that DRM is causing crippled APIs, but I
suppose it would be naive to think otherwise :-P
--Zack
_______________________________________________
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