koord-live / KoordASIO

A user-friendly universal ASIO driver for use with any Windows installation. Supports WASAPI (shared and exclusive) and includes config GUI.
https://koord.live
Other
87 stars 5 forks source link

Higher than necessary latency with CM106 Soundchip #3

Open MeGreen opened 1 year ago

MeGreen commented 1 year ago

Hi everybody

first, thank you very much for trying to create a really simple to use ASIO Interface. I think that is something that is long overdue.

I use a cheap external soundcard (Delock USB Soundcard 61803) with a generic CM106 chip, for the reasons that it is a) cheap b) widely availabe c) supports lots of 3,5 mm jack in- and outputs

My first Setup is using Linux and Jack2 (Cadence) to connect to Jamulus. My second setup is using Windows and KoordASIO to connect to Jamulus. With linux the box is able to sustain 15 ms of latency with a buffer size of 64. With Windows the lowest i can achieve at the moment is ~50 ms in exclusive mode and buffer size of 64. ASIO4all also caps at 30 ms of latency. Latency reported is tested via Jamulus connected to localhost. CPU is an i5-3427U. Snipping and clapping also confirms that the latency from mic to speakers is higher, so i don't think that it is just a reporting issue.

Is there any log data i can provide to you? I would really love to see that the same hardware can perform the same even with different operating systems.

danryu commented 1 year ago

Thanks @MeGreen for your comments and feedback.

There are a few diagnostic steps that may help:

You can run these commands from a PowerShell session as your normal user (say in your home directory):

& 'C:\Program Files\KoordASIO\PortAudioDevices.exe' | Out-File -FilePath PortAudioTestOut.txt

& 'C:\Program Files\KoordASIO\FlexASIOTest.exe' | Out-File -FilePath FlexASIOTestOut.txt

Also, you can create an empty file KoordASIO.log in your user home directory, and then re-run KoordASIO with your choice of ASIO host app. This should produce a lot of verbose output - but will also impair performance, so remember to delete this file after producing the test output (this automatically disables log output).

If you attach the 3 files produced in the above process that would be perfect.

If there are obvious possible issues, I will try to triage and assess if this is something to be handled upstream in PortAudio.

danryu commented 1 year ago

@MeGreen Did you ever get any better results on this? Experimentally, I've found it possible to get <15ms round-trip latency using KoordASIO in Exclusive mode with a generic USB audio adapter. (Shared mode gives around 35ms, but we may be able to halve that soon to 17ms) Latency reporting in DAWs like Ableton is completely skewiff at the moment, so don't use that as a reliable measurement. If you want to measure real-world latency with your configuration, it's best to use a standalone utility like RTL Utility.

Tip: If you're using generic onboard audio hardware (eg Realtek chips), use the Microsoft HDAudio driver for better performance: https://learn.microsoft.com/en-us/windows-hardware/drivers/audio/low-latency-audio#measurement-tools (I've got results of ~8ms round-trip latency with HDAudio driver, devices configured at 24-bit/48khz, Exclusive mode, Buffer Size 32).