Replies: 9 comments 28 replies
-
Wow, excellent initiative. I'll surely try the compiled version you shared. Regarding performance, do you have any post comparing latencies and/or stating testing methodology? |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Installed KoordAsio and I must say, I‘m impressed by the GUI and all your work! Unfortunately - as expected and also experienced with PortAudio generally - my internal soundcard and the PA API don’t like eachother. If I try to select my speaker & internal mic everything works as expected (=feedback). As soon as I select the headphones, restart,… I have no sound and an error message saying that the driver couldn’t be initialised. ASIO4ALL is a pain to understand and setup but doesn’t given an error. I‘m unsure if anyone can help in my case (probably it’s an incompatibility with PortAudio + Connexant drivers). Actually, I also don’t want to go through the debugging process ;-( |
Beta Was this translation helpful? Give feedback.
-
Hi here and thanks for all that stuff. |
Beta Was this translation helpful? Give feedback.
-
Updated the build as per feedback from @pljones, and release link updated. |
Beta Was this translation helpful? Give feedback.
-
Original post updated with current build, |
Beta Was this translation helpful? Give feedback.
-
Beta Was this translation helpful? Give feedback.
-
Some comments on the new GUI:
|
Beta Was this translation helpful? Give feedback.
-
Sorry for not having done the ASIO debugging yet. It’s on my todo list. Nevertheless some further thoughts:
|
Beta Was this translation helpful? Give feedback.
-
--> EDIT: Current installer HERE: KoordASIO_1.7a-k03_win64.exe <--
Hi all.
We at https://koord.live are big lovers of Jamulus and have been tinkering with some client code for a little while, and we have one or two things which we thought the community might benefit from.
Open-source ASIO
I've long considered it crazy that the best default solution to ASIO driver support on Windows was ASIO4ALL - a closed-source, rarely-updated single-client driver built using a deprecated API from Windows98 (WDM-KS).
While it is free, it is NOT particularly performant, and the lack of multi-client mode means that no other apps can use the sound device simultaneously. Which is the expected behaviour for the general user. I don't believe ANY user should have to install any other utilities (closed-source or otherwise) OR have any specialist knowledge about drivers just to run an app which requires ASIO. Not in 2021!
I started assessing open-source ASIO drivers last year, and since then it has become apparent that FlexASIO is the best of the bunch; it leverages PortAudio, uses WASAPI, the most modern, performant Windows sound API, is multi-client(!), and comes with comprehensive configuration options, documentation and a basic toolkit that allows integration with other apps.
But FlexASIO on its own has no configuration GUI and is far too complex for the general user.
So we at Koord forked FlexASIO to create a streamlined, simplified installation with a configuration GUI written in Qt: https://github.com/koord-live/KoordASIO
Please try out the beta standalone installer (64bit only): see link at top of post.
KoordASIO feature list:
Performance should in virtually all cases match or exceed that of ASIO4ALL, while also offering the important "Shared" mode.
In Exclusive mode with the FlexASIO/KoordASIO driver, users often report latencies around 5ms!
In Shared mode it is typically more like 20ms.
That's not all though! It gets better....
Integration
FlexASIO/KoordASIO can be quite easily integrated into any existing app that uses the ASIO SDK.
This means that we can build in an ASIO driver into Jamulus, so that there are literally no extra run-time dependencies at all, and the user can start using Jamulus "out of the box" after installation. Not only that, but it is more performant and feature-ful than the closed-source alternatives.
I have already done this with our fork of Jamulus, "Koord-RealTime" - it's only necessary to do some minor changes in the Jamulus Windows sound codebase and the build process in order to integrate this universal ASIO library into the Windows build of Jamulus. Please take a look! We have a working 64bit Koord-RealTime client installer with integrated ASIO here. (Note: this testing build assumes installation to default location "C:\Program Files\Koord-RealTime")
The driver is internal to Koord-RealTime/Jamulus and is thus not registered globally on the system. KoordASIO standalone and any other ASIO drivers can be safely installed and used alongside it.
No need for warnings about no installed ASIO drivers! There's always one built in.
Autobuild changes
No longer do we need to warn the Windows Jamulus user at any point about ASIO4ALL, which means we don't need the nsProcess part, which in turn means we don't need the complex NSIS installer code and can use a radically simpler installer like InnoSetup - also open-source, easy to do automated installation, and able to generate an installer with just a few lines of config.
I also optimised the Jamulus build somewhat on Windows, removing unused bundled DLLs for Qt and loading only specific MSVC DLLs, rather than using the vcredist tool which adds a lot of flab to the installer. The 64bit build of Koord-RealTime is now about 13Mb rather than about 75mb for the unified installer for Jamulus, if anybody still cares about filesizes :)
(I may produce a separate 32bit installer if I can be convinced that anybody still uses or needs 32bit Windows in 2021. When can we leave it behind??)
I look forward to any feedback from the upstream dev community.
Beta Was this translation helpful? Give feedback.
All reactions