I've been lurking on this thread but I'd like to understand the viewpoint "inherently built into OS APIs" vs "better solution than inserting 3rd party processing". I hope this means that MS will provide a default AEC for basic mic arrays and an OS API to seamlessly allow overrides with 3rd party processing for custom arrays. A basic AEC that works for Joe six pack if a great idea, but there are special uses for improved arrays and algorithms. Keeping up with the features and performance of 3rd party hardware and special cases isn't within the OS domain, providing an override API should be. Think about the current SRC. I think it's great that MS provides a SRC implementation for the majority of conversions, but I really wish I could replace the darn thing with an improved algorithm when I am using my sound card for signal analysis. Instead, I have to careful to pick my settings to avoid using the MS SRC or I get poor results with tones. (and there is no good reason a 48khz device can't downsample to 8khz without shifting the frequency of a tone like the current SRC does) I can't wait to try the Vista AEC. But, AEC isn't a one size fits all software issue. Laptop VoIP requirements differ from a large room conference call setup with multiple speakers. Special applications will need to tailor the AEC software for the acoustics. I expect needing an API to insert my own AEC code for specialized applications. If you don't plan for a way(device specific) to override the built in AEC, we'll get stuck with either work around hacks or the lowest common denominator of performance, neither of which is a good policy. -----Original Message----- From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Hakon Strande Sent: Wednesday, October 04, 2006 2:24 PM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: AEC in Vista Tim, (I am not answering for Shuba but she is on vacation so you get my views instead) Another viewpoint could be that AEC should really not be a vendor provided feature or an attribute of the microphone or any other capture hardware but should rather be inherently built into OS APIs because it is so necessary for some applications to function and because applications don't want to rely on the user having a certain driver/filter driver/APO installed or specific capture hardware connected. Enabling applications (who one could argue owns the total user experience for that application and should be able to control it) to make use of a universally known and always present/available AEC may be a better solution than inserting 3rd party processing into the pipeline that the application may not even be aware of, the application may not be able to control or that may not be there on all systems. Please email us directly if you want to continue a philosophical discussion about the different approaches to value-add enabling in Windows Vista. Sincerely, Hakon Strande (hakons@xxxxxxxxxxxxx) Program Manager Integrated, Internal, External, and Wireless Audio Devices MediaTech/DMD/Windows Client/Microsoft _____ From: wdmaudiodev-bounce@xxxxxxxxxxxxx [mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of Tim Roberts Sent: Wednesday, October 04, 2006 10:20 AM To: wdmaudiodev@xxxxxxxxxxxxx Subject: [wdmaudiodev] Re: AEC in Vista Shuba Iyer wrote: AEC and microphone array processing in Vista are application graph features. So it is up to the application to use the feature or not. You know, the more I think about this statement, the more I think this position is completely wrong. AEC is perhaps "the" canonical feature that one would want to use globally. As a user, I'm not going to think about AEC as an application add-on. Instead, I'm going to think about AEC as an attribute of the microphone array. If I have installed some kind of AEC, then I want echo cancellation in every application that uses that microphone, whether it be wave, DSound, or WASAPI. I've been using Sound Recorder as an example, but that's the wrong example. With the policy you have described, there is no way to use an AEC-enabled microphone with NetMeeting, which is one of the apps where I would most want echo cancellation. In fact, if I am a vendor supplying my own AEC DMO following your model, there is no way to have it get used by any applications other than the ones I have written myself. That ain't right. Have I misunderstood your position? -- Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc.