• Open Menu Close Menu
  • Apple
  • Shopping Bag
  • Apple
  • Mac
  • iPad
  • iPhone
  • Watch
  • TV
  • Music
  • Support
  • Search apple.com
  • Shopping Bag

Lists

Open Menu Close Menu
  • Terms and Conditions
  • Lists hosted on this site
  • Email the Postmaster
  • Tips for posting to public mailing lists
Re: Output Capture
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Output Capture


  • Subject: Re: Output Capture
  • From: Kevin Avila <email@hidden>
  • Date: Thu, 19 Jul 2007 08:17:28 -0700

What if the user is playing iTunes from a different machine? Or perhaps from a *gasp* traditional radio/CD player? That's my situation anyway. I think instead of over-engineering this you can only do the best you can with local echo cancellation and suggest serious users invest in a headset w/ microphone.

Kevin Avila
DTS Audio Engineer
World Wide Developer Relations
Apple, Inc.


On Jul 19, 2007, at 7:57 AM, email@hidden wrote:

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:
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
References: 
 >Output Capture (From: email@hidden)
 >Re: Output Capture (From: Jeff Moore <email@hidden>)
 >Re: Output Capture (From: email@hidden)
 >Re: Output Capture (From: Jeff Moore <email@hidden>)
 >Re: Output Capture (From: Andy O'Meara <email@hidden>)
 >Re: Output Capture (From: Jeff Moore <email@hidden>)
 >Re: Output Capture (From: Andy O'Meara <email@hidden>)
 >Re: Output Capture (From: Kevin Avila <email@hidden>)
 >Re: Output Capture (From: email@hidden)

  • Prev by Date: CoreAudio Updates?
  • Next by Date: Re: iChat's echo cancellation (was Re: Output Capture)
  • Previous by thread: Re: Output Capture
  • Next by thread: Re: Output Capture
  • Index(es):
    • Date
    • Thread