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.