Yoedhana

What is the rule for mapping the channel numbers returned by GetChannelCount to the front left channel, front right channel, center, side left, side right, etc IAudioEndpointVolume has a member function to set the volume of a specific channel. It will be nice to know exactly which audio channel gets modified, without opening sndvol.

Thanks,


Re: Vista Pro-Audio Application Development Mapping channels enumerated from IAudioEndpointVolume

Larry Osterman

IIRC, the channels are indexed by the bit position of the available channel mask in the mix format (the lowest enabled bit is channel 0, the next lowest enabled bit is channel 1, etc).





Re: Vista Pro-Audio Application Development Mapping channels enumerated from IAudioEndpointVolume

Panu

Hmmh, Vista seems to map the surround channels incorrectly in a USB 5.1 surround audio device.

The USB audio class channel config specifies the channels in order: Left-Right-Center-LFE-LeftSurround-RightSurround, which corresponds to the RIFF WAVE file order Left-Right-Center-LFE-BackLeft-BackRight, which Microsoft helped to develop.

However, Vista assigns USB audio Left Surround (LS) to Side Left (SL) instead of Back Left and Right Surround (RS) to Side Right (SR) instead of Back Right where it should be. Both standards specify Side Left and Side Right to be at bit positions 9 and 10. This is problematic because with the Vista mapping, it's impossible to make a USB audio device with any back channels. I'm using out-of-the-box Vista Home Basic for this experiment.

I'd appreciate any ideas on how to make our company's USB audio processor support the back channels while still remaining a standard USB audio class device.