

That is, Windows will give full-scale signal to the hardware Īs a side effect, for endpoints which have a hardware amplifier but do not provide a reference stream, the loopback tap happens to have full-scale signal. If the output provides such a control, Windows will use it. Some audio outputs have a hardware amplifier and provide Windows with a way to control it, via a KSPROPERTY_AUDIO_VOLUMELEVEL node. If the output provides a reference stream, Windows will use it.įor other audio outputs, Windows does the best it can, which is to seed the reference stream with the same audio it gave to the output.

Some audio outputs provide Windows with a reference stream directly, via a KSNODETYPE_AUDIO_LOOPBACK streaming pin. To this end, it is, as much as possible, an accurate representation of what is coming out of the speaker. The primary purpose of the loopback tap is to provide a reference stream for applications that want to do acoustic echo cancelation. What I do know (not sure if that is the cause) is that calling mEndpointVolume->QueryHardwareSupport(&dwMask) gives dwMask=2 on the computer that works as I want ( ENDPOINT_HARDWARE_SUPPORT_MUTE The audio endpoint device supports a hardware mute control.)īUT gives dwMask=7 which is combination of all three below on the computer where it does not work as I want.ĮNDPOINT_HARDWARE_SUPPORT_VOLUME The audio endpoint device supports a hardware volume control.ĮNDPOINT_HARDWARE_SUPPORT_MUTE The audio endpoint device supports a hardware mute control.ĮNDPOINT_HARDWARE_SUPPORT_METER The audio endpoint device supports a hardware peak meter.
#Audio loopback plug Pc
I.E to capture all computer sounds using wasapi loopback but that nothing will be heard on PC speakers and that when user change the Master volume that this will have no effect on the wasapi capturing
#Audio loopback plug how to
I need advice how to make what i want to work on all computers. Also changing the master volume change as well the volume of the sounds wasapi captures. Problem: But on another computer (asus) Setting master volume to 0 using SetMasterVolumeLevelScalar does change the volume of the sounds wasapi captures. Sounds AND PC speakers do not make any sounds.Īlso, seems that changing the master volume does not change the volume of what is captured by wasapi (only changing the sounds from the application the make the sounds - for example Media Player, change the volume of the sounds wasapi capture) - as i want.Įverything good - this is what i want (I want that nothing will be heard on the PC speakers and I want that changing the master volume (the volume of the speakers) will have not effect on the volume of the sounds wasapi captures). Seems that it should make wasapi playback to not work as i want (i.e to capture silent only since I set the master volume to 0 which is not what i want), BUT this does not happen. So I use: mEndpointVolume->SetMasterVolumeLevelScalar((float)0, NULL) Problem is that I want it to work while the computer speakers will not produce any sound. I capture all sounds using wasapi loopback using this code: Īnd save it to a file.
