-
-
Notifications
You must be signed in to change notification settings - Fork 50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testing multichannel audio devices drivers #99
Comments
@kevinstadler Hi, I am having luck with JASIO - https://github.com/mhroth/jasiohost I have successfully started the ASIO driver with it from processing. I am attaching minimal example sketch using the JASIO libraries - I have copied .dlls into my system32 folder on windows. I think it might be implemented into sound library - including the jar and creating the Host class that can than pass the buffers from SoundFile to ASIO driver directly.... I made an example sketch attached - I successfully copied data from SoundFile buffer and pass them into ASIO device - I used Voicemeeter app for debugging - it represents itself as 8 channel ASIO device that will be listed in my sketch so select it. Start the Voicemeeter and select A1 physical output to your speakers, click start. You should hear the audio. You can also notice that when you pass file in diffrent sample rate it will play faster / slower - this can be probably account for by dividing / multiplying each frame, I am just posting it as proof of concept. Beside I can confirm that Windows is limited to 8 channels when using WDM drivers (and I can't load ASIO drivers with Sound lib right now). This is a solution if need more than 8 channels or you need ASIO for some reason (theoretically it should have lower latency) Listing and playing into 128 channel outputs: ![]() |
@kevinstadler how do you deal with resampling / playing audio with different sampling freq inside sound lib? Maybe I can reuse existing code... |
Thanks for your extensive testing and sorry for the delay! The sound library does not do any of the synthesis number crunching itself, so the way to integrate this would be to implement a generic Jasio-based Based on a generic AudioOutputStream implementation all other questions of synthesis and resampling are solved because they are already implemented by JSyn classes (particularly the |
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:
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.).
Listed / recognized devices:
Speakers (ravenna virtual sound card ) - windows WASAPI:
ASIO4ALL:
Speakers (USB Sound Device) windows - WDM-KS:
However it did found ASIO devices - additional logs:
The text was updated successfully, but these errors were encountered: