PortAudio M1 Latency

October 4th, 2023
music, tech
I recently tried to get my whistle-controlled bass synthesizer working on my Mac, as a backup to my Raspberry Pi version. [1] It's written on top of PortAudio, a cross-platform audio library, so getting it to compile and run was mostly a matter of getting the library installed, which went quickly. Unfortunately, the latency was far too high to be useful as a real-time musical instrument.

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, substack

Recent posts on blogs I like:

Contra Aria Schrecker on women’s appearances

Aria Schrecker recently wrote a long deep dive into what physical traits straight men find attractive, as an aid for straight women looking to maximize their beauty.

via Thing of Things September 24, 2026

There's no point at which turning your brain off will work

In early 2025, I started seeing people turn off their brain as they use LLMs1. They would have an LLM take an action (summarize text, write some code, etc.), and just assume that it worked2. This generally didn't work in early 2025 and the result was …

via Posts on September 18, 2026

My Weirdy Creatures

Over the last few days, I've been working on some little creatres. But they're very weird. I call them "weirdy creatures". I've made quite a lot of them, I think maybe 5-6, not sure. Weirdy Predator This is a weirdy predator. They'…

via Anna Wise's Blog Posts September 13, 2026

more     (via openring)