You need more inputs than one interface has, so you make an aggregate device. Two interfaces, one device, sixteen channels. macOS builds it in about ten seconds and it appears to work perfectly.

Forty minutes into a recording, one half of the channels is a few milliseconds behind the other. By the end of a two-hour show it is enough to hear.

What an aggregate device is

An aggregate device is a CoreAudio construct that presents several physical interfaces as one logical device. It is not a mixer, not a router, and not a hardware feature — it is macOS agreeing to read from and write to multiple devices in the same audio callback and pretend they are one.

The problem is clocks. Every audio interface has its own crystal oscillator setting the sample rate. Two interfaces both set to 48,000 Hz are actually running at, say, 48,000.4 and 47,999.7 Hz. Over one buffer that difference is invisible. Over an hour it is thousands of samples.

The audio callback happens at a fixed rate. If one device delivers slightly more samples per second than the callback consumes, samples accumulate; slightly fewer, and they run out. Either way something has to give.

What drift correction actually does

In Audio MIDI Setup, each device in an aggregate has a Drift Correction checkbox, and one device is the Clock Source — the master.

Drift correction does not synchronise clocks. It cannot: there is no wire between the crystals. What it does is resample. macOS measures how far the subordinate device has drifted from the master and adds or removes samples to keep the count aligned.

That means drift correction is a signal-processing operation applied continuously to everything on that device. In practice it is good enough that most people never hear it on speech or music. What it is not is transparent, and it has two behaviours worth knowing:

  • It costs a little latency, because it needs a buffer to work in.
  • It can produce audible artefacts under stress — when a device drifts more than expected, or when the system is loaded and buffers are tight, correction becomes a click rather than a slow adjustment.

Never enable drift correction on the clock source. It is the reference; correcting it against itself is meaningless and some macOS versions handle the request badly.

When an aggregate is fine, and when it is not

Aggregates get an unfairly bad reputation. They are genuinely appropriate in a lot of situations.

Reasonable:

  • Combining an interface with the Mac’s built-in output so you have a headphone feed. Nobody is sample-aligning a cue mix.
  • Adding a USB microphone to an interface for a talkback or comms position.
  • Any case where the two devices carry unrelated material that will never be summed or compared.
  • Short sessions. Drift is cumulative; twenty minutes rarely matters.

Not reasonable:

  • A multitrack recording where channels will be edited together. A drum kit split across two interfaces will phase, and the phase relationship changes through the recording, so you cannot fix it with a static offset.
  • Anything with a stereo pair split across devices. The image will wander.
  • Long-form live capture. A three-hour show accumulates a lot of correction.
  • Show-critical playback. An aggregate is a software construct that can be rebuilt, renamed or invalidated by a reboot, and it depends on both devices being present. It is one more thing to fail.

The actual fix: a shared clock

If two interfaces must behave as one, give them one clock. That is what word clock and digital audio interconnects are for.

  • Word clock. One device is master, the other slaves to a BNC feed. Both crystals become irrelevant. This is the traditional answer and it works.
  • ADAT or S/PDIF. A digital connection carries clock alongside audio; the receiving device slaves to it. You get expansion and clock in one cable.
  • Dante, AVB or a networked audio protocol. Clock is part of the protocol, distributed to every device on the network with far better accuracy than an aggregate can approximate. If you are building a rig now and channel count is going to grow, this is the direction to build in.
  • One bigger interface. Unglamorous and frequently the right answer. A single 16-input device has one clock and no aggregate to fail.

With a shared clock, the interfaces are genuinely synchronous and you can still aggregate them in macOS to get one device — but now with drift correction off, because there is nothing to correct.

Setting one up so it survives

If you are going to use an aggregate on a show, build it defensively.

  1. Pick the clock source deliberately. The most stable device, ideally the one with the best clock and the most channels — usually the primary interface, not the built-in audio.
  2. Enable drift correction on every device except the clock source.
  3. Match sample rates on the hardware first. If one interface is at 44.1k and the other at 48k, the aggregate will do something you did not intend. Set both, then build the aggregate.
  4. Order the devices intentionally. Channel numbering follows the order in the list, and it is what every application will see. Write the resulting map down — 1–8: MOTU, 9–10: built-in — and put it in the show file.
  5. Name it for the rig. “Aggregate Device” tells the next operator nothing.
  6. Test a full reboot with the interfaces powered. Then test a reboot with one powered off, and know what happens. Usually the aggregate survives with missing channels, which is better than vanishing but worth having seen once.

Where routing comes in

An aggregate solves channel count. It does not solve routing — getting a specific input to a specific application, or one source to several destinations, or audio from one app into another.

That is a separate layer, and on macOS it has historically meant stacking virtual audio devices until something breaks. SpectraRoute exists to make that layer explicit: a matrix of what is connected to what, with levels you can see, rather than a chain of virtual cables whose behaviour you infer. We went through the general problem in routing audio between Mac apps without the virtual cable mess.

The one-line version

An aggregate device is macOS papering over the absence of a shared clock. It is fine when nothing depends on the two halves staying aligned, and it is the wrong tool the moment they do. If alignment matters, spend the money on word clock or a networked audio protocol — the aggregate is free for a reason.

Originally published on the SpectraRig blog.