[wdmaudiodev] Re: Issues in installing custom sAPO.

  • From: Vinayak Srivastava <vinayak.s101@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Thu, 11 Oct 2012 06:49:01 -0700 (PDT)

Hi,

Thanks for your reply.

Tim Roberts wrote:



>>Sorry, that approach is not supported by Microsoft.  To ship your APO, you 
>>need to work with an audio hardware vendor to have your software shipped with 
>>their >>hardware.



I'm not working with any audio hardware vendor for my custom APO. I want to 
ship it for all the Windows systems (Vista onwards) for applying system effects 
to their system speakers. I'm not sure whether this is an appropriate example, 
but I could see DFX Audio Enhancer doing this to the system speakers. What 
alternative would you suggest me to accomplish this?

I could use a Virtual Audio Driver to capture the audio, then apply system 
effects using my sAPO and reroute the sound back to the audio device.
But I'm not sure whether this approach will be correct (so I could ship my APO).

I'm quite new to audio driver development, so it will helpful if you can 
provide me with any pointer or samples for this approach.





>>The Microsoft philosophy is that the APO is part of the driver.  The APO is 
>>installed in an INF file that identifies specific devices.  When a new device 
>>arrives that matches >>your INF, it will get the APO.  Other devices won't.
>>There is no supported method to create a standalone APO that attaches to 
>>arbitrary devices.  That's contrary to the philosophy.





I totally buy the Microsoft philosophy you explained for using the APO. So if I 
go for a virtual driver approach, will it still be contradicting it, so as to 
ship it? I'm asking this because I figure that by this approach (if it's 
possible), my APO should work for all the audio devices. 

Also, if these approaches are not correct/possible, then kindly advise how to 
approach this problem.

-- Vinayak S

________________________________
 From: Tim Roberts <timr@xxxxxxxxx>
To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx> 
Sent: Tuesday, October 9, 2012 10:01 PM
Subject: [wdmaudiodev] Re: Issues in installing custom sAPO.
 

Vinayak Srivastava wrote:


>
>I am trying to install a Custom sAPO for providing custom audio effects to the 
>speakers.
>
>I am stuck with a few issues in this approach :
>
>
>- I am not able to install it for a USB audio device connected to the system. 
>Is there any modification required to be done to the sysfx.inf file for this?
Well, of course you have to modify the INF to match the hardware ID
    of your USB device, instead of the HDAUDIO device it currently
    matches.  Plus, you'll have to change the Includes/Needs lines in
    the INF to load the usbaudio.sys driver from wdma_usb.inf, instead
    of the WaveRT driver it now gets from hdaudio.inf.



- After successful installation of Custom sAPO for a HD Audio Device, if a new 
audio device is plugged in, then how can I address it (to install my custom 
sAPO for it as well)?
The Microsoft philosophy is that the APO is part of the driver.  The
    APO is installed in an INF file that identifies specific devices. 
    When a new device arrives that matches your INF, it will get the
    APO.  Other devices won't.

There is no supported method to create a standalone APO that
    attaches to arbitrary devices.  That's contrary to the philosophy. 
    The reasons for this are sound (so to speak).  Prior to Vista,
    everyone and his brother was creating filter drivers to "add value"
    in the audio stream.  The result was a disaster for critical audio
    applications.  Filters fought with each other, and latency and
    throughput were unpredictable.  Thus, that path is no longer
    allowed.  APOs allow a particular hardware vendor to provide some
    neat effects with their hardware, but applications are in control. 
    If an application wants to run audio without the effects, it can
    turn off all of the APOs and talk to the raw device.



- Also, in some cases audio devices in windows system comes with drivers like 
Realtek Sound Manager. Is it possible to apply my sAPO effects to these as well 
?
The Sound Manager is just an application.  Realtek hardware comes
    with audio drivers, and those drivers can include APOs like any
    other.  You can't add your APO to what they are doing without
    rewriting their INF file, and that breaks the signature.



Note that I'm not developing my our own audio driver for high definition (HD) 
or USB speaker. My approach here is to just update the existing audio driver 
using  sysfx.inf file to apply audio effects.
Sorry, that approach is not supported by Microsoft.  To ship your
    APO, you need to work with an audio hardware vendor to have your
    software shipped with their hardware.

-- 
Tim Roberts, timr@xxxxxxxxx Providenza & Boekelheide, Inc. 

Other related posts: