How Hardware Engineers Fixed MIDI Zipper Noise
When the MIDI 1.0 standard was introduced, volume and continuous controller (CC) messages were limited to a 7-bit resolution, providing only 128 discrete values (0 to 127). Sweeping through these coarse values caused noticeable, stair-stepped amplitude jumps known as "zipper noise." To eliminate these audible artifacts without breaking compatibility with the MIDI standard, hardware engineers implemented several clever workarounds, primarily focusing on hardware slew-rate limiting, digital interpolation, zero-crossing detection, and psychoacoustic curve mapping.
Hardware Slew-Rate Limiting (RC Lag Filters)
In analog and hybrid synthesizers, a 7-bit MIDI volume message is translated into a control voltage (CV) via a digital-to-analog converter (DAC). Feeding this raw voltage directly into a Voltage-Controlled Amplifier (VCA) resulted in instantaneous voltage jumps, producing clicks.
To solve this, hardware engineers placed a low-pass filter—often a simple resistor-capacitor (RC) network or an operational amplifier integrator—between the DAC output and the VCA control port. Known as a slew-rate limiter or lag processor, this circuit smoothed out the instantaneous voltage edges. When a new MIDI volume value arrived, the control voltage rose or fell exponentially rather than jumping instantaneously, transforming the stepped digital input into a continuous analog ramp.
Digital Parameter Smoothing
As hardware synthesizers and digital mixing consoles shifted to Digital Signal Processors (DSP), engineers recreated the analog smoothing behavior in software and firmware. Instead of applying a volume change immediately, the DSP applied parameter smoothing using a single-pole Infinite Impulse Response (IIR) low-pass filter, often called a leaky integrator.
When a 7-bit CC7 message arrived, the target gain was updated, but the actual gain applied to the digital audio was recalculated at every audio sample (or at small buffer intervals) using linear or exponential interpolation. This calculated intermediate values between the 128 MIDI steps, rendering the gain transition completely smooth at sample rates such as 44.1 kHz or 48 kHz.
Zero-Crossing Detection
In digitally controlled analog attenuators and certain digital hardware topologies, engineers utilized zero-crossing detection circuits. These circuits delayed the application of a gain change until the incoming audio waveform crossed the zero-amplitude line (zero volts).
Because the amplitude at a zero-crossing is essentially zero, switching gain levels at this exact moment produces no sudden DC offset or wave discontinuity. Even with coarse 7-bit steps, eliminating wave-shape tearing significantly suppressed the high-frequency clicks that constitute zipper noise.
Logarithmic Tapering and Non-Linear Lookups
Human hearing perceives loudness logarithmically rather than linearly. Dividing a volume control into 128 equal linear steps meant that volume changes at the low end resulted in massive, highly audible decibel shifts, making zipper noise extreme at lower levels.
Engineers compensated for this by routing the 7-bit values through logarithmic lookup tables before sending them to the gain stage. By concentrating the step resolution where the human ear is most sensitive to dynamic shifts and spacing the decibel values evenly across the 0–127 range, the perceived stepping between increments was minimized.