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