PortAudio M1 Latency |
October 4th, 2023 |
music, tech |
Testing with PortAudio's demo paex_read_write_wire.c
[2] with suggestedLatency
changed from
defaultHighOutputLatency
to
defaultLowInputLatency
I see:
Input device # 2. Name: MacBook Pro Microphone LL: 0.0528542 s HL: 0.0621875 s Output device # 3. Name: MacBook Pro Speakers LL: 0.0187083 s HL: 0.0280417 s Num channels = 1.
This is 72ms of round-trip latency, or 3,156 samples. You can easily
hear the latency, and it's pretty painful for live music. It's even
higher than the 67ms I see in the web
browser. [3] Changing FRAMES_PER_BUFFER
from the
default of 512 to 128 doesn't have any effect, so I think this is
lower level buffering.
I also tried with a Scarlett 2i2
audio interface, and latency wasn't any lower. Setting
PA_MIN_LATENCY_MSEC
also doesn't do anything. I'd try
turning off ambient noise
reduction but this option doesn't exist for
M1 Macs.
I don't have this problem when running the Reaper DAW so it's definitely possible to get low latency on this machine. I wonder if there's some kind of default processing running on the audio system, and Portaudio doesn't ask to turn it off?
(I could go back to running my code as a Reaper plug-in, but I'd much rather have something stand-alone.)
[1] In setting up at Adirondack
Dance Weekend I couldn't find one of my two Pis. It turns out I'd
missed that it was under my mixer and forgotten to pack it:
[2] Built with gcc -I/opt/homebrew/include/ -L/opt/homebrew/lib/
-lportaudio paex_read_write_wire.c -o paex_read_write_wire
after brew install portaudio
to get the library.
[3] Suspiciously this is quite a bit higher than I used to see on my Intel Mac. I used to get 19ms in Chrome and 14ms in Firefox, and I'm now getting 67ms in Chrome and 64ms in Firefox.
Comment via: facebook, lesswrong, mastodon