Only 6 channels of a 8 channel output device are working

I connected a GigaPort HD (8 channel USB Audio output device) to my Windows 10 computer.
I select the device and reboot like this (SuperCollider 3.11.2):

o = Server.default.options;
o.inDevice = “Windows WDM-KS : Line In (Realtek HD Audio Line input)”;
o.outDevice = “Windows WDM-KS : Speakers (GIGA HD Multi-8 ch)”;
o.numOutputBusChannels = 8;

But only the first 6 output channels are working. I can not output on the last two.
The s.meter shows correct signal on outputs 6 and 7, but no signal on the GigaPort output.
Does anybody has any idea how this is possible?

The first two bus indices are reserved for hardware output, making the total # of private channels equivalent to eight minus two, in this case.

Ensure the server options for private & total number of channels are all lined up, and everything should run smoothly.

The first two bus indices are reserved for hardware output, making the total # of private channels equivalent to eight minus two, in this case.

Sorry, I think you are mixing things up here. In the example above private buses are not used.
It is correct that the total number of available private buses is the number of all buses minus output buses and input buses, as defined in ServerOptions of a given Server (so not just first two indices). Still, this is irrelevant to the issue in this thread.

The example should work correctly, so it is likely something about the driver and that 16/24 bit issue posted in another thread.

Yes, I’m almost certain it has something to do with the 6 channel 24 bits limitation of this device. I can put the device in the 8 channel 16 bit mode using a little control panel belonging to this audio device. But as soon as I start SC, it switches to 6 channel 24 bits mode. No idea how to solve this.

The device info page claims that it has an ASIO driver available. Could you try that instead of WDM-KS? Can you post the output of your ServerOptions.devices?

At first I could not use the ASIO driver, because the device had no inputs (see other thread) and I did not know how to solve that. But setting the numInputBusChannels to 0 makes it possible to use only outputs.

And yes, with the ASIO driver the device stays at the 8 channel 16 bits mode. So with ASIO all channels work!

Later I will need inputs too. I have no idea how to solve that because it seems not possible to mix ASIO drivers with other ASIO drivers for input channels.

Maybe JACK, or perhaps VoiceMeeter.


Yeh, I already started investigating Jack. I think it can do the job.

Yes, on Windows it is rather cumbersome to mix inputs and outputs from different soundcards, especially if low latency operation is desired (not sure that’s the case here?). The best solution is to use a single soundcard with an ASIO driver, that has all necessary I/O.

If you really need to mix different soundcards, I’d also try to use other APIs (MME, DirectSound WASAPI), as their implementation in PortAudio somewhat differs, so you might get different results in terms of latency and performance, but possibly also whether the device is opened in 16 or 24bit mode. Jack might or might not offer more flexibility here, since it talks to the soundcard through PortAudio as well, IIUC.