This project has moved and is read-only. For the latest updates, please go here.

Volume control of multiple channels (using USB sound card)

Jan 23, 2013 at 4:01 PM


I have a question:

I'm using an USB external Sound Card ( and it's SW is not working on one of my PCs(running win XP), so I figured: I want to do a simple application. The main point is to set different volume to each speaker. So when I have 5.1 I'd like to change the volume on each speaker independently(that means control the volume on center speaker, on sub-woofer, etc.). I was able to get this working for a 2 channel output (left and right) but when I plugged 5.1 speakers it controlled them the same(so when I lowered volume for left speaker the surround left went off too, and sub-woofer too).

I used something like this to change the channel volume:

MMDeviceCollection devEnum = DevEnum.EnumerateAudioEndPoints(DataFlow.Render, DeviceState.Active);
devEnum[3].AudioEndpointVolume.Channels[0].VolumeLevelScalar = (float)trackBar2.Value / 100;


And now the question: Is it even possible to get this done? Or do I need to make my own drivers for this external USB sound card?

 Thanks for your answers in advance.

Jan 25, 2013 at 11:50 AM

I haven't personally used the IAudioEndpointVolume interface, but I'd assume you can use this on any OS you can use WASAPI. However, XP does not support WASAPI, so you're options there are very limited.