Updated list of Linux compatible audio interfaces

Discuss your workplace, instruments, amps, and any other gear.

Moderators: MattKingUSA, khz

User avatar
Linuxmusician01
Established Member
Posts: 1548
Joined: Mon Feb 23, 2015 2:38 pm
Location: Holland (Europe)
Has thanked: 784 times
Been thanked: 144 times

Re: Updated list of Linux compatible audio interfaces

Post by Linuxmusician01 »

tseaver wrote: Sat Jun 24, 2023 7:33 pm

@Linuxmusician01
I believe @artix_linux_user has the math right here:

Code: Select all

$ bin/python3
...
sample_rates = [44100, 48000, 88200, 96000, 176400, 192000]
frames_per_period_list = [16, 32, 64, 128, 256, 512, 1024]
periods_per_buffer_list = [2, 3]
for sample_rate in sample_rates:
...     for frames_per_period in frames_per_period_list:
...         for periods_per_buffer in periods_per_buffer_list:
...             frames_per_buffer = frames_per_period * periods_per_buffer
...             latency_ms = frames_per_buffer / sample_rate * 1000
...             print(f"{sample_rate}, {frames_per_period}, {periods_per_buffer}, {latency_ms:0.2f}")
... 
44100, 16, 2, 0.73
44100, 16, 3, 1.09
44100, 32, 2, 1.45
44100, 32, 3, 2.18
44100, 64, 2, 2.90
44100, 64, 3, 4.35
44100, 128, 2, 5.80
44100, 128, 3, 8.71
44100, 256, 2, 11.61
44100, 256, 3, 17.41
44100, 512, 2, 23.22
44100, 512, 3, 34.83
44100, 1024, 2, 46.44
44100, 1024, 3, 69.66
48000, 16, 2, 0.67
48000, 16, 3, 1.00
48000, 32, 2, 1.33
48000, 32, 3, 2.00
48000, 64, 2, 2.67
48000, 64, 3, 4.00
48000, 128, 2, 5.33
48000, 128, 3, 8.00
48000, 256, 2, 10.67
48000, 256, 3, 16.00
48000, 512, 2, 21.33
48000, 512, 3, 32.00
48000, 1024, 2, 42.67
48000, 1024, 3, 64.00
88200, 16, 2, 0.36
88200, 16, 3, 0.54
88200, 32, 2, 0.73
88200, 32, 3, 1.09
88200, 64, 2, 1.45
88200, 64, 3, 2.18
88200, 128, 2, 2.90
88200, 128, 3, 4.35
88200, 256, 2, 5.80
88200, 256, 3, 8.71
88200, 512, 2, 11.61
88200, 512, 3, 17.41
88200, 1024, 2, 23.22
88200, 1024, 3, 34.83
96000, 16, 2, 0.33
96000, 16, 3, 0.50
96000, 32, 2, 0.67
96000, 32, 3, 1.00
96000, 64, 2, 1.33
96000, 64, 3, 2.00
96000, 128, 2, 2.67
96000, 128, 3, 4.00
96000, 256, 2, 5.33
96000, 256, 3, 8.00
96000, 512, 2, 10.67
96000, 512, 3, 16.00
96000, 1024, 2, 21.33
96000, 1024, 3, 32.00
176400, 16, 2, 0.18
176400, 16, 3, 0.27
176400, 32, 2, 0.36
176400, 32, 3, 0.54
176400, 64, 2, 0.73
176400, 64, 3, 1.09
176400, 128, 2, 1.45
176400, 128, 3, 2.18
176400, 256, 2, 2.90
176400, 256, 3, 4.35
176400, 512, 2, 5.80
176400, 512, 3, 8.71
176400, 1024, 2, 11.61
176400, 1024, 3, 17.41
192000, 16, 2, 0.17
192000, 16, 3, 0.25
192000, 32, 2, 0.33
192000, 32, 3, 0.50
192000, 64, 2, 0.67
192000, 64, 3, 1.00
192000, 128, 2, 1.33
192000, 128, 3, 2.00
192000, 256, 2, 2.67
192000, 256, 3, 4.00
192000, 512, 2, 5.33
192000, 512, 3, 8.00
192000, 1024, 2, 10.67
192000, 1024, 3, 16.00

Of course, that assumes that the system doesn't hit another limit (CPU, memory / disk IO throughput) when processing the higer-sample-rate/lower-latency inputs.

The rate at which a computer samples audio, i.e. takes a sample (some sort or measurement or "snapshot") of the intensity of a signal (sample rate) is not a wave. It's not a frequency like that from a wave. So the math may be right, the reasoning behind it is not. If you didn't take Physics in High School it's difficult to explain. Just like it's difficult to explain what a dovetail joint is to somebody who is not a carpenter.

tseaver
Established Member
Posts: 408
Joined: Mon Mar 13, 2017 6:07 am
Has thanked: 12 times
Been thanked: 102 times

Re: Updated list of Linux compatible audio interfaces

Post by tseaver »

@Linuxmusician01

The rate at which a computer samples audio, i.e. takes a sample (some sort or measurement or "snapshot") of the intensity of a signal (sample rate) is not a wave. It's not a frequency like that from a wave. So the math may be right, the reasoning behind it is not. If you didn't take Physics in High School it's difficult to explain. Just like it's difficult to explain what a dovetail joint is to somebody who is not a carpenter.

I'm not sure where in my example you get the idea that I think there is any wave activity going on: the code I show is purely discrete math: frames per period * periods per buffer / (samples / second) yields seconds per buffer, i.e., latency.

This is the math behind the "Latency" display on the QJackCtl settings page: my results above correspond exactly to what shows if you tweak those settings to match any of the values.

Ubuntu, Mixbus32C; acoustic blues / country / jazz
Post Reply