spl
spl

Reputation: 651

Control 8 channel surround sound on external USB audio card in Java, Windows 10

Summary: How do I access all 8 surround channels on my external USB Audio soundcard when I can't find them through the javax.sound.sampled Sound API in Java, but the underlying Windows 10 can use them? I need a strategy to access all 8 channels from within Java even if it requires additional drivers/software in the OS (I have tried Windows stock drivers and C-Media drivers.)

Longer Version: I've got a C-Media external USB Audio soundcard. When I use the java sound API to list the Mixers on the (Windows 10) system I can see the Mixer for the speakers on the external card, and they work for stereo sound:

Mixer: Direct Audio Device: DirectSound Playback [Speakers (USB Sound Device)]

When I programatically list the supported formats of the SourceDataLine I see mono and stereo options.

However the card supports Surround 7.1, and the Windows 10 system is capable of playing sample sounds to all of the 8 channels on the card: Front/Rear/Side/Centre/Sub.

So my question is how do I get to them? I've looked at XTAudio and Jack, but it's very time consuming to figure out what option to spend time on to access the full 8 channels from within Java.

Also: When I list supported formats of the Mixer on OSX Catalina there are supported formats with 8 channels which work beautifully but I can't get these on Windows 10:

PCM_SIGNED unknown sample rate, 16 bit, 8 channels, 16 bytes/frame, little-endian
PCM_SIGNED unknown sample rate, 16 bit, 8 channels, 16 bytes/frame, big-endian
PCM_SIGNED unknown sample rate, 24 bit, 8 channels, 24 bytes/frame, little-endian
PCM_SIGNED unknown sample rate, 24 bit, 8 channels, 24 bytes/frame, big-endian

Upvotes: 2

Views: 231

Answers (0)

Related Questions