[wdmaudiodev] Re: USB Audio :: Support for bmaControls[1] and bmaControls[2] :: Independent channel volume control (recording)?

  • From: -t <tge96@xxxxxxxxx>
  • To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx>
  • Date: Mon, 10 Jun 2013 16:01:11 -0700 (PDT)

Hi Matthew / all,

I feel it is my duty to at the very least share my findings here :)

Windows can expose the BALANCE button for multichannel volume control for USB 
stereo microphone device.

Through trial and lots of error... I've discovered that one has to change the 
terminal type from Microphone (0x201) to Line (0x0603).  In my case this has me 
not properly reporting my capabilities to USB hosts.

I'm assuming this is just one of those trial and error undocumented issues with 
Windows OS?

I've found it very difficult to assess the capabilities of Windows when it 
comes to using their built-in USB audio drivers, etc?

Do any of you know of a Windows-related USB audio implementation resource page?

Where do you all go to find such answers?

Aside from this "issue", I've experienced a few other significant issues with 
built-in support on Windows for USB audio :(

P.S.  I still have no idea which piece of Windows fails to expose the BALANCE 
button when the terminal type is set to Microphone?  Does anyone care to give 
their opinion?

Many thanks,
Troy Gentry


>________________________________
> From: -t <tge96@xxxxxxxxx>
>To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx> 
>Sent: Thursday, June 6, 2013 7:49 AM
>Subject: Re: [wdmaudiodev] Re: USB Audio :: Support for bmaControls[1] and 
>bmaControls[2] :: Independent channel volume control (recording)?
> 
>
>
>Hi Matthew,
>
>
>Thank you!!!  
>
>
>I just installed KS Studio and here is what I see for _VOLUME queries for my 
>device ->
>
>336:          KSPROPERTY_AUDIO_VOLUMELEVEL            not supported
>420:  Node (1) KSNODETYPE_VOLUME (Volume)
>429:          Filter reports following support for Property 
>KSPROPERTY_AUDIO_VOLUMELEVEL on node 1: 0x00000203 { KSPROPERTY_TYPE_GET | 
>KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT}
>431:          Getting property KSPROPERTY_AUDIO_VOLUMELEVEL
>433:KsIrpTarget::GetPreparedProperty: get property 
>KSPROPERTY_AUDIO_VOLUMELEVEL failed (got 0 bytes, expected 4)
>434:          KSPROPERTY_AUDIO_VOLUMELEVEL            get failed for "master"
>435:          Getting property KSPROPERTY_AUDIO_VOLUMELEVEL
>436:    KSPROPERTY_AUDIO_VOLUMELEVEL: Get succeeded
>437:          Getting property KSPROPERTY_AUDIO_VOLUMELEVEL
>439:KsIrpTarget::GetPreparedProperty: get property 
>KSPROPERTY_AUDIO_VOLUMELEVEL failed (got 0 bytes, expected 4)
>440:          KSPROPERTY_AUDIO_VOLUMELEVEL            get failed for channel #1
>527:          KSPROPERTY_AUDIO_VOLUMELEVEL            not supported
>620:          KSPROPERTY_AUDIO_VOLUMELEVEL            not supported
>713:          KSPROPERTY_AUDIO_VOLUMELEVEL            not supported
>806:          KSPROPERTY_AUDIO_VOLUMELEVEL            not supported
>896:          KSPROPERTY_AUDIO_VOLUMELEVEL            not supported
>978:  Node (7) KSNODETYPE_VOLUME (Volume)
>987:          Filter reports following support for Property 
>KSPROPERTY_AUDIO_VOLUMELEVEL on node 7: 0x00000203 { KSPROPERTY_TYPE_GET | 
>KSPROPERTY_TYPE_SET | KSPROPERTY_TYPE_BASICSUPPORT}
>989:          Getting property KSPROPERTY_AUDIO_VOLUMELEVEL
>991:KsIrpTarget::GetPreparedProperty: get property 
>KSPROPERTY_AUDIO_VOLUMELEVEL failed (got 0 bytes, expected 4)
>992:          KSPROPERTY_AUDIO_VOLUMELEVEL            get failed for "master"
>993:          Getting property KSPROPERTY_AUDIO_VOLUMELEVEL
>994:    KSPROPERTY_AUDIO_VOLUMELEVEL: Get succeeded
>995:          Getting property KSPROPERTY_AUDIO_VOLUMELEVEL
>996:    KSPROPERTY_AUDIO_VOLUMELEVEL: Get succeeded
>1081:          Filter does not report support for Property 
>KSPROPERTY_AUDIO_VOLUMELEVEL
>1194:    rgNode[1] = KSNODETYPE_VOLUME  (Volume) // GUID of the topology 
>node[1] and its friendly localized name.
>
>1200:    rgNode[7] = KSNODETYPE_VOLUME  (Volume) // GUID of the topology 
>node[7] and its friendly localized name.
>
>
>When my USB Audio device enumerates it is responding to the corresponding GET_ 
>class requests for volume for each channel.
>
>
>Is there something specific that I need to be doing on my device side?
>
>
>
>>________________________________
>> From: Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
>>To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx> 
>>Sent: Wednesday, June 5, 2013 4:51 PM
>>Subject: [wdmaudiodev] Re: USB Audio :: Support for bmaControls[1] and 
>>bmaControls[2] :: Independent channel volume control (recording)?
>> 
>>
>>
>> 
>>Check KS Studio to see what the KSPROPERTY_AUDIO_VOLUMELEVEL property 
>>descriptor says.
>> 
>>http://msdn.microsoft.com/en-us/library/windows/hardware/ff536380(v=vs.85).aspx
>> 
>>To get a Balance button, the number of channels must be > 1, and 
>>KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_MULTICHANNEL must be set, and 
>>KSPROPERTY_MEMBER_FLAG_BASICSUPPORT_UNIFORM must not be set.
>> 
>>From:wdmaudiodev-bounce@xxxxxxxxxxxxx 
>>[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of -t
>>Sent: Wednesday, June 5, 2013 4:29 PM
>>To: wdmaudiodev@xxxxxxxxxxxxx
>>Subject: [wdmaudiodev] Re: USB Audio :: Support for bmaControls[1] and 
>>bmaControls[2] :: Independent channel volume control (recording)?
>> 
>>Hi Matthew,
>> 
>>That's great news!!!  It made me Google "microphone properties" and scan 
>>through the resultant images.  In some of them I do find the "Balance" button 
>>that you're referring to, but like many others - my system does not show that 
>>balance button.
>> 
>>Any ideas why that balance button is missing from my system - USB Audio 
>>device is confirmed to support stereo, and is working on MAC OS - as 
>>previously mentioned?
>> 
>>Many thanks in advance,
>>Troy Gentry
>> 
>>
>>________________________________
>> 
>>From:Matthew van Eerde <Matthew.van.Eerde@xxxxxxxxxxxxx>
>>To: "wdmaudiodev@xxxxxxxxxxxxx" <wdmaudiodev@xxxxxxxxxxxxx> 
>>Sent: Wednesday, June 5, 2013 3:12 PM
>>Subject: [wdmaudiodev] Re: USB Audio :: Support for bmaControls[1] and 
>>bmaControls[2] :: Independent channel volume control (recording)?
>> 
>>Yes, Windows supports per-channel device volume. Sound Control Panel | 
>>Recording devices | double-click relevant device | Levels tab
>> 
>>Look for a “Balance” button next to the main volume slider.
>> 
>>This is also exposed to apps via IAudioEndpointVolume and other APIs.
>> 
>>From:wdmaudiodev-bounce@xxxxxxxxxxxxx 
>>[mailto:wdmaudiodev-bounce@xxxxxxxxxxxxx] On Behalf Of -t
>>Sent: Wednesday, June 5, 2013 2:36 PM
>>To: wdmaudiodev@xxxxxxxxxxxxx
>>Subject: [wdmaudiodev] USB Audio :: Support for bmaControls[1] and 
>>bmaControls[2] :: Independent channel volume control (recording)?
>> 
>>Hi,
>> 
>>I've added independent channel volume control support to my USB Audio 1.0 
>>recording device.
>> 
>>Under MAC OS, Audio MIDI Setup (AMS) directly supports this independent 
>>channel volume control of USB Audio 1.0 recording devices.  All is as 
>>expected on Mac OS.
>> 
>>However, I've been unsuccessful getting this to work under Windows 7.  
>>Windows appears to send the exact same control messages with the exact same 
>>data (in rapid session) to master (0), left (1), and right (2) - when the 
>>master volume control (record) is manipulated.  Even so, if I try Audacity 
>>and split the stereo streams, I don't see any control messages sent as these 
>>channel volume controls are manipulated?
>> 
>>Does anyone know if Windows supports independent channel volume control (USB 
>>Audio 1.0 recording device)?
>> 
>>This page is a little thin on supported capabilities ->
>>http://msdn.microsoft.com/en-us/library/windows/hardware/ff537039(v=vs.85).aspx
>> 
>>Also, does anyone have another favorite page to reference when questions 
>>about usbaudio.sys capabilities come up?
>> 
>> 
>>Many thanks in advance,
>>Troy Gentry
>> 
>>
>>
>
>

Other related posts: