|October 4th, 2023|
Testing with PortAudio's demo paex_read_write_wire.c
suggestedLatency changed from
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.  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
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.)
 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:
 Built with
gcc -I/opt/homebrew/include/ -L/opt/homebrew/lib/
-lportaudio paex_read_write_wire.c -o paex_read_write_wire
brew install portaudio to get the library.
 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.