[wdmaudiodev] Strange LFX APO behaviour when I click rapidly on Win10 taksbar Volume Control

  • From: Culann mac Cabe <culann@xxxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Tue, 8 Jan 2019 21:00:39 +0000

Hello wdmaudiodev people and Happy New audio  dev Year!

I am developing a Windows APO (LFX) for a USB headphone and have observed
some behaviours on Windows 10 on which I would appreciate comment/help.

First the scenario/observations:

   1. I sometimes use the audio "ping" of the Windows taskbar speaker
   volume control to quickly check my APO function sonnically
   2. Looking at my logs I can see that every time I click this Windows
   volume control I go through an
   Init/LockForProcess/APOProcess/UnlockForProcess cycle.  If I do this slowly
   enough that I get through a Lock/Process/Unlock cycle before the next
   click/ping then audio is nice & clean and all is well
   3. If I speed up my repeat-clicking actions I can "build up" many
   instances of my APO and observe memory/CPU buildup for audiodg.dll,
   corresponding to more APO instances being created (Locked) per unit time
   than are being torn down (Unlocked)
   4. If I click fast enough and keep going, I start to hear
   clicking/popping, corresponding to CPU load hitting 30%+.  Again when I
   stop everything unwinds and returns to normal
   5. If I do the same exercise on the volume control in "Open Sound
   Settings" (via right-clicking on the Taskbar's speaker icon) then I don't
   get this behaviour - instead while repeatedly clicking on the slider I get
   a much more sensible new ping when the "last one" has finished playing and
   I am actually changing the volume value
   6. I'm running a fairly intensive DSP algorithm, but Windows Audio
   Engine has no problems with its load in "steady state" e.g. playing an
   audio file in a media player.  It's only when I get into this rapid and
   repeated Lock/Process/Unlock stuff that things go shkewy

So to the questions:

   1. Has anyone experienced this or would somebody be so kind as to try?
   2. Is this possibly a Windows bug?
   3. Any suggestions as to a workaround (i.e. to prevent creationof
   multiple APO instances within X time units of each other?
   4. Is there some kind of software-based "USB Audio Sniffer" that I coud
   use to inspect/tap audio at various points in my chain:   APO->Windows
   Audio Engine->USB Driver->DeviceDAC?  (I'm thinking it may not be my APO
   but possibly the USB Driver and/or my headphone firmware/DAC.  Unlikely but
   it sure would be useful tool to play with...)

Thanks - really appreciate comments
Culann

Other related posts:

  • » [wdmaudiodev] Strange LFX APO behaviour when I click rapidly on Win10 taksbar Volume Control - Culann mac Cabe