You notice it in specific moments: the video call where your own voice arrives back slightly delayed, the movie where lips move just a hair before the sound, the MIDI keyboard where a note lands a beat late no matter how carefully you play. None of this is your imagination, and none of it is one single bug. It is the sum of several small, mostly unavoidable delays stacked between the moment a sound is generated and the moment it leaves a speaker or headphone.
Latency on a Mac is not one number. It is a chain of hops, and each hop has a reason to exist.
Where the delay actually starts
Audio does not move through a Mac one sample at a time. It moves in chunks, called buffers, because handling audio one sample at a time would demand a system interrupt tens of thousands of times per second, which no general-purpose OS does efficiently. Core Audio, the layer macOS uses to move sound between apps and hardware, negotiates a buffer size in samples, commonly 256, 512 or 1024, and a sample rate, usually 44.1 or 48 kHz.
The buffer size sets a floor for the delay. A 512-sample buffer at 48 kHz takes about 10.7 milliseconds to fill before it can be handed off. Audio typically crosses more than one buffer on its way from an app to your ears, so the round trip runs to two or three times that floor. This is not a macOS shortcoming. A smaller buffer lowers latency but raises the risk of crackling if the CPU misses a deadline; a larger one is safer but slower. Most consumer apps never expose this setting and let the system pick a sensible default. Apps built for musicians, like Logic or GarageBand, let you set it directly in their audio preferences.
The driver layer adds its own hop
Anything that sits between an app and the real output device, a virtual audio driver, a system-wide equalizer, an aggregate device, inserts one more processing stage. That stage has to receive a buffer, do its work, and hand the result onward, all inside the time budget the buffer size allows. A driver that is well written keeps this hop small: the processing has to fit comfortably inside the buffer window or it starts dropping frames, which sounds far worse than a few extra milliseconds ever would. A driver that is poorly written, or that is doing unusually heavy processing, can eat more of that budget and add noticeably to the total.
This is also where real-time effects live: equalization, reverb, limiting. None of that is free, but on modern Apple Silicon it is cheap relative to the buffer time available, so a competent implementation adds low single-digit milliseconds, not something you would notice against buffer latency itself.
Bluetooth is the one that actually matters
Everything above amounts to, at most, a few tens of milliseconds, and most of it is inaudible in ordinary listening. Bluetooth is a different order of magnitude, and it is usually the actual source of a lag a normal person complains about.
A Bluetooth audio codec has to encode the signal, transmit it over a radio link with its own packet timing and error correction, then decode it on the other end. macOS supports two codecs for playback: SBC, the mandatory baseline codec every Bluetooth headset supports, and AAC, which Apple devices including AirPods prefer when both ends support it. AAC is generally the better-behaved of the two on a Mac, but neither is designed for the kind of low latency a wired connection gives you for free. This is why the same movie can feel perfectly in sync on built-in speakers and slightly off through a Bluetooth headset, and why typing on a Bluetooth keyboard next to Bluetooth headphones can occasionally reveal the delay by ear.
Nothing fixes this from the Mac’s side. A codec’s encode-transmit-decode cycle happens on both ends of the link, and no software running on macOS can shorten the radio protocol. If latency matters for what you are doing, a wired connection is the actual fix, not a setting.
Plugins and long chains add up
The Audio Unit format lets effects plugins run on live audio outside of a DAW, which is genuinely useful for shaping system sound without opening a music production app. Each plugin in the chain is one more stage of processing, and most well-behaved AU effects add a small, fixed amount of delay, often listed in their own documentation as “latency” in samples. Chain three or four of them and the numbers add up. For watching a video, this is almost never audible. For anything where you are reacting to sound in real time, it is worth noticing.
What is actually acceptable, by use case
For watching video, sync tolerance is fairly generous. Audio arriving even a few tens of milliseconds ahead or behind picture is rarely noticed by most people; it takes a larger gap before lips visibly disagree with speech. Buffer and driver latency alone essentially never reach that threshold.
For a two-way call, the bar is different, because delay compounds in both directions and interferes with the natural back-and-forth of conversation. This is less about hearing a click late and more about people starting to talk over each other. It is also largely outside the Mac’s control, since network transport usually dominates over local audio processing.
For playing an instrument through the Mac, monitoring yourself in real time, the bar is the strictest. Musicians reliably feel timing is off once round-trip delay climbs into the range where a note and the sound of that note stop feeling simultaneous, which is a good deal tighter than either of the cases above. This is the one scenario where buffer size, driver overhead and, especially, Bluetooth all matter at once, because they stack.
Where ZonaReq sits in this chain
ZonaReq’s driver adds under 5 milliseconds of its own processing at 48 kHz, 32-bit float, which is the “system driver” hop in the diagram above, not the whole path. The rest of the round trip, the buffer stage macOS negotiates and whatever output device you are using, is unchanged by installing it. If that output is Bluetooth, the codec’s delay still dominates everything else combined, and no driver-side optimization changes that. Running a long chain of Audio Unit plugins on top adds its own small increments too, the same as it would on any other audio driver.
None of this is a limitation specific to ZonaReq. Any software sitting in the audio path, a system EQ, a loopback driver, a virtual mixer, faces the same buffer and codec physics.
What to actually change
For movies and everyday listening, stop worrying about it: buffer and driver latency are well under the threshold anyone notices. For calls, the delay you are fighting is almost always the network, not your Mac. For playing an instrument or monitoring your own voice live, the two changes that actually help are going wired instead of Bluetooth, and keeping your effects chain short. Everything else is a few milliseconds you were never going to hear.