BitMuse
Download — free for 30 days

Room correction on a Mac

Room correction on a Mac is three steps: measure your room at the listening position with a calibrated microphone and REW, generate a correction filter and export it as an impulse response, and convolve playback with that impulse response in real time. The last step is the one that needs a player that can do it. In BitMuse the effect is called Room Correction, and it convolves each output channel with an impulse response you supply.

Why a tone control cannot do this

The biggest thing between your speakers and your ears is the room. Below roughly 300 Hz it imposes standing waves — room modes — that add 10 dB at one frequency and subtract 10 dB a few hertz away, and those peaks and nulls sit wherever your walls happen to be. An equalizer band is a smooth, symmetrical curve; a room mode is not. Correcting one with the other trades a narrow error for a wide one.

Convolution works differently. Instead of a handful of filter shapes, it applies a measured filter: an impulse response that encodes the exact inverse of what your room did, point by point, across the whole spectrum. It can fix a 4 Hz-wide null at 63 Hz without touching 70 Hz, because the correction was derived from the measurement rather than dialled in.

How to measure a room with REW

REW (Room EQ Wizard) is free, runs on macOS, and is the tool most people use for this. The short version:

  1. Get a calibrated microphone. A USB measurement mic — a miniDSP UMIK-1 is the common choice — comes with a calibration file keyed to its serial number. Load that file in REW first; an uncalibrated mic measures its own errors along with the room’s.
  2. Put the mic where your head goes. On a stand, at ear height, at the listening position. Not on the desk, and not where it can pick up a reflection off a nearby surface that you never actually hear.
  3. Run a sweep. REW plays a logarithmic sine sweep through your system and records it. Measure each speaker on its own, then together if you want to see the summed response. Take several measurements around the listening position and average them — a single-point measurement corrects for one spot and can make every other seat worse.
  4. Set a target. In REW’s EQ window, choose a house curve — flat above the transition, with a gentle low-frequency lift if you like it — and let REW match the measured response to it.
  5. Correct the bass, not everything. Limit the correction range to the modal region, roughly 20–300 Hz, and cut rather than boost. Filling a null costs a great deal of amplifier headroom and usually does not fill it, because the null is a cancellation, not a missing signal.
  6. Export the filter as an impulse response. With the filters generated, use File → Export → Export filters impulse response as WAV. The dialog lets you set the sample rate and the sample format — 32-bit float is the safe choice — and offers to normalise the peak to unity. REW writes 131,072 samples by default, comfortably inside what BitMuse will load. Export stereo if you measured the channels separately; the first response goes to the left channel and the second to the right.

Dirac, Acourate and Audiolense produce impulse responses too, and any of them loads the same way.

Loading the filter into BitMuse

Room Correction is an effect in the DSP chain, so you add it, load the file, and it is in the path. The chain ships with only ReplayGain, Equalizer and Dither in it, all switched off, so nothing is happening to your music until you put it there. The panel has one button, Load Impulse Response…, and the file picker accepts audio files. BitMuse decodes it with the system audio frameworks, so WAV and AIFF exports from REW work as they come.

It follows the device rate

This is the part that quietly ruins home-made convolution setups. An impulse response captured at 48 kHz, applied unchanged while the DAC runs at 96 kHz, shifts the whole correction up an octave — your 63 Hz notch lands at 126 Hz and the room mode is untouched. BitMuse keeps the file at its original rate and resamples it to whatever the device is running at, using the same r8brain resampler the player uses for audio, and rebuilds it when the device rate changes under it. So one exported filter covers a library of mixed rates.

Mono or stereo impulse responses

A mono impulse response is applied to both channels; a stereo one maps its first channel to the left output and its second to the right, which is what you want when the two sides of the room are not symmetrical. One convolution engine runs per output channel.

Level, and not clipping

A correction filter has gain in it, and an unnormalised one can push the output past full scale. BitMuse normalises the impulse response to a 0 dB peak by default, using one factor across both channels so stereo balance is preserved, and you can switch that off to apply a calibrated filter exactly as it was exported. A separate IR Gain trim runs from −24 dB to +12 dB in half-decibel steps and takes effect while the music is playing, with no rebuild and no gap.

What it costs in latency and CPU

Nothing in latency. BitMuse convolves with the overlap-save method — one FFT per render block, sized to the real device buffer — so the samples coming out correspond to the samples going in, with no added delay. The transforms run through Accelerate’s vDSP, which is a few hundred microseconds per block on Apple silicon for a filter of the length room correction actually needs. Loading and resampling happen off the audio thread, and the processor takes the filter lock without ever blocking on it, so a slow disk or a badly formed file cannot interrupt playback. The filter is remembered across relaunches through a security-scoped bookmark, so you load it once.

What BitMuse’s Room Correction does not do

Worth knowing before you plan a setup around it:

Room correction and bit-perfect are opposites

They are, and that is fine as long as you know which one is running. Correction changes the samples deliberately, so the path is no longer bit-perfect. BitMuse’s signal path shows what is actually in the chain, and switching integer mode on bypasses the DSP chain outright — the status bar says DSP bypassed in Integer Mode — so you can A/B a corrected path against an untouched one with a single toggle. If your listening is on headphones rather than speakers, the equivalent tool is a measured headphone profile rather than a room measurement.

FAQ

Do I need a measurement microphone for room correction?

Yes, for a real correction. You need a calibrated measurement mic and its calibration file. Correcting by ear with a tone control is not room correction.

Does room correction break bit-perfect playback?

Yes, necessarily — it changes the samples on purpose. The signal path shows which mode you are in, and integer mode bypasses the chain entirely.

What impulse response files can I load?

Audio files macOS can decode; WAV and AIFF are what REW and Dirac export. BitMuse resamples the filter to the device rate.

How long an impulse response can BitMuse use?

Up to 262,144 taps, about 5.9 seconds at 44.1 kHz — twice REW’s default export length. Longer files are truncated.

Try Room Correction — free for 30 days

30 days, every feature, no account and no card.
$99.95 once if you keep it · macOS 15+ · Apple Silicon