[wdmaudiodev] Re: [EXTERNAL] Letting Windows control mute

  • From: Jeff <indirectoffset+wdmaudiodev@xxxxxxxxx>
  • To: wdmaudiodev@xxxxxxxxxxxxx
  • Date: Fri, 31 Jan 2020 10:09:32 -0800

First off, thank you very much for your prompt attention to my questions.

 Good, that is as I expected, since ENDPOINT_HARDWARE_SUPPORT_MUTE

I'm confused by this response. QueryHardwareSupport() returns zero, meaning
the hardware does NOT support mute. Have I misunderstood something?

 What UI are you using to control the volume?

I am using the UI control that comes up when you click the speaker icon in
the task bar to control volume and mute. I get the same result with the
leftmost controls in the Windows sndvol tool. I am intending to affect the
global settings, not the per-stream settings.

      - Jeff.

On Fri, Jan 31, 2020 at 9:48 AM Matthew van Eerde <
dmarc-noreply@xxxxxxxxxxxxx> wrote:

   - It does not mute the stream

Good, that is as I expected, since ENDPOINT_HARDWARE_SUPPORT_MUTE

   - Windows adjusts the volume of the signal

That surprises me. What UI are you using to control the volume? There are
several different volume settings.


*From: *Jeff <indirectoffset+wdmaudiodev@xxxxxxxxx>
*Sent: *Friday, January 31, 2020 9:44 AM
*To: *wdmaudiodev@xxxxxxxxxxxxx
*Subject: *[wdmaudiodev] Re: [EXTERNAL] Letting Windows control mute

QueryHardwareSupport() returns zero (as it should because I have removed
the volume and mute nodes from the topology). For testing purposes, my
monitoring app is Audacity. I will do some realtime processing on the
captured audio data stream and then save the result. In any case my device
driver does not offer a power meter node. I do see that Windows adjusts the
volume of the signal before the stream arrives at the loopback capture
interface but it does not mute the stream.


            - Jeff.

On Fri, Jan 31, 2020 at 9:12 AM Matthew van Eerde <
dmarc-noreply@xxxxxxxxxxxxx> wrote:

   - If I mute the master control at the Windows sound control window,
   then my monitoring app receives unattenuated sound.

Monitoring applications are expected to call
IAudioEndpointVolume::QueryHardwareSupport. If the
ENDPOINT_HARDWARE_SUPPORT_VOLUME is set, then the audio received at the
loopback interface will be unattenuated. If the
ENDPOINT_HARDWARE_SUPPORT_MUTE is set, then the audio received at the
loopback interface will be unmuted.

What does your application do with the monitored audio it receives? If it
is just driving a peak meter, I will suggest using IAudioMeterInformation

*From: *Jeff <indirectoffset+wdmaudiodev@xxxxxxxxx>
*Sent: *Friday, January 31, 2020 8:57 AM
*To: *wdmaudiodev@xxxxxxxxxxxxx
*Subject: *[EXTERNAL] [wdmaudiodev] Letting Windows control mute

I have composed a virtual audio driver for Windows 10 based on the
WaveCyclic sample. I have an app that opens the device endpoint's loopback
interface to monitor sound played by other apps into the device. I have
removed the volume and mute nodes from the sample's topology with the
expectation that Windows would manage those functions for me, but it turns
out to manage only volume. If I mute the master control at the Windows
sound control window, then my monitoring app receives unattenuated sound.

How can I get mute to work on the loopback?

Fwiw, when I replace the mute node in the driver's topology, I don't see
its handler called when I mute from sndvol.

Thank you for any advice you may have.

     - Jeff.

Other related posts: