Skip to content

Testing multichannel audio devices drivers #99

Open
@trackme518

Description

@trackme518

Hi,
I just run a test on Windows 10, filtering only multichannel devices listed using if (MultiChannel.usePortAudio()) { All MME drivers are working properly. However all ASIO and WDM-KS drivers fail. I just hand picked some of the error messages - listed below. I am also attaching my device list for reference (with output channels count on the left). I am going to test with MacOS and linux later.

Supported MME devices

Hopefully it will help someone.

Please wait - this is ongoing testing - I previously make it work with "MOTU UltraLite-mk5 - ASIO" on different PC so these are not definitive results.

8 channel MME output on Windows

In order for MME device to able to output 8 channels in Windows you need to configure the device in Sound Control Panel - select configure and set it to 7.1 mode or whatever you want. See screenshot below:

soundControlPanelWindows

Releted question posed here: https://superuser.com/questions/1377796/windows-10-hdmi-enable-9-2-channel-audio

Route MME device into ASIO only device - Windows

To route actual sound output into ASIO device only you can use Voicemeeter app (https://vb-audio.com/Voicemeeter/) (do not forget to configure it to 7.1 inside Sound Control Panel - see above) -> 1) output from Sound library from Processing into "VoiceMeeter Input (VB-Audio Voi - MME". 2)start VoiceMeeter app - set output to ASIO4ALL (install from here - free virtual ASIO device: https://asio4all.org/ ). Inside VoiceMeeter open "Menu"->"System settings / options" and click "ASIO4ALL" name - that will open ASIO4ALL configuration menu where you can select OTHER ASIO enable device to output to.... To say it is a cumbersome is understatement but it works. This way you can route MME device into ASIO device that does NOT support MME. However, with voiceMeeter you are still limited to 8 channels MME...which from what I read online might be a Windows limitation as of 1.2024 (I am not sure about DolbyAtmos option for this.).

voicemeeterSetupMMEtoASIO

Listed / recognized devices:

audioDevices

Speakers (ravenna virtual sound card ) - windows WASAPI:

java.lang.RuntimeException: Device unavailable
Pa_StartStream: waveInStart returned = 0x0.
WASAPI: IAudioClient2 set properties: IsOffload = 0, Category = 0, Options = 0
WASAPI ERROR HRESULT: 0x88890008 : AUDCLNT_E_UNSUPPORTED_FORMAT
 [FUNCTION: CreateAudioClient FILE: D:\portaudio1907\src\hostapi\wasapi\pa_win_wasapi.c {LINE: 3294}]
WASAPI ERROR PAERROR: -9997 : Invalid sample rate
 [FUNCTION: ActivateAudioClientOutput FILE: D:\portaudio1907\src\hostapi\wasapi\pa_win_wasapi.c {LINE: 3611}]
WASAPI ERROR PAERROR: -9997 : Invalid sample rate
 [FUNCTION: OpenStream FILE: D:\portaudio1907\src\hostapi\wasapi\pa_win_wasapi.c {LINE: 3999}]
java.lang.RuntimeException: Invalid sample rate

ASIO4ALL:

Pa_StartStream: waveInStart returned = 0x0.
Pa_StartStream: waveInStart returned = 0x0.
OpenStream paDeviceUnavailable
java.lang.RuntimeException: Device unavailable

Speakers (USB Sound Device) windows - WDM-KS:

Pa_StartStream: waveInStart returned = 0x0.
OpenStream:sampleRate = 44100.000000
OpenStream:framesPerBuffer = 128
Blocking API not supported yet!
java.lang.RuntimeException: Blocking API not supported yet

However it did found ASIO devices - additional logs:

WARNING: Logging before InitGoogleLogging() is written to STDERR
I0109 23:26:02.101178 15724 dllmain.cpp:43] Logging disabled. (This shouldn't log.)
I0109 23:26:02.101178 15724 wrapper.cpp:33] SarAsioWrapper::SarAsioWrapper
I0109 23:26:02.102180 15724 wrapper.cpp:39] SarAsioWrapper::init
I0109 23:26:02.102180 15724 tinyasio.cpp:31] Querying installed ASIO drivers.
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: Ableton Push with CLSID {E42E3576-B7B4-4FDE-AE6C-E5FD34F7AD40}
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: ASIO4ALL v2 with CLSID {232685C6-6548-49D8-846D-4141A3EF7560}
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: JackRouter with CLSID {838FE50A-C1AB-4B77-B9B6-0A40788B53F3}
I0109 23:26:02.102180 15724 tinyasio.cpp:69] Unable to get ASIO driver description, using key name instead.
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: MOTU Audio ASIO with CLSID {35e63f42-c4bd-11d1-85b2-00104b2edc4d}
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: Realtek ASIO with CLSID {A80362FF-CE76-4DD9-874A-704C57BF0D6A}
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: Synchronous Audio Router with CLSID {0569D852-1F6A-44A7-B7B5-EFB78B66BE21}
I0109 23:26:02.102180 15724 tinyasio.cpp:75] Found ASIO driver: Voicemeeter Virtual ASIO with CLSID {9175CF07-885D-46B4-9EA1-4126D6648DE6}
I0109 23:26:02.102180 15724 tinyasio.cpp:80] Done querying ASIO drivers. Status: 259
I0109 23:26:02.127202 15724 wrapper.cpp:55] SarAsioWrapper::getDriverName
I0109 23:26:02.127202 15724 wrapper.cpp:61] SarAsioWrapper::getDriverVersion
I0109 23:26:02.127202 15724 wrapper.cpp:105] SarAsioWrapper::getChannels
I0109 23:26:02.127202 15724 wrapper.cpp:138] SarAsioWrapper::getBufferSize
I0109 23:26:02.127202 15724 wrapper.cpp:209] SarAsioWrapper::getSampleRate
I0109 23:26:02.127202 15724 wrapper.cpp:198] SarAsioWrapper::canSampleRate

## Working cheap 8 channel soundcard under Windows
ADA-71 USB 7.1 SOUNDbox
https://www.axagon.eu/en/produkty/ada-71
Note that it works under Windows 10 when you configure speakers to 7.1 but it does NOT work under MacOS Ventura.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions