Emulating the optical compressor that defined the sound of recorded voice for six decades
In 1965, Jim Lawrence founded Teletronix Engineering and introduced a compressor that would become synonymous with vocal recording: the LA-2A Leveling Amplifier. Decades later, engineers still reach for LA-2As—original units now command five-figure prices—whenever a voice needs warmth without aggression, control without constraint.
The LA-2A's magic lies in its T4 electro-optical attenuator: an electroluminescent panel paired with a cadmium sulfide photoresistor. Light output changes with the input signal; photoresistor conductance follows the light. This indirect coupling creates inherently smooth gain changes that electronic circuits struggle to replicate.
Bill Putnam, founder of Universal Audio and the man who acquired Teletronix in the 1960s, described the LA-2A's character simply: it "treats your signal lovingly."
The T4's response isn't linear or instantaneous—and that's the point. The photoresistor's conductance changes occur on a molecular level, creating attack and release curves that no capacitor-based design can match:
| Characteristic | T4 Behaviour | Sonic Result |
|---|---|---|
| Attack | ~10ms fixed | Transients pass through naturally |
| Release (initial) | 60ms to 50% | Quick recovery from peaks |
| Release (full) | 1–15 seconds | Graceful return, no pumping |
| Ratio | Programme-dependent | Harder compression on louder signals |
| Knee | Inherently soft | Gradual onset, musical transition |
The two-stage release is the LA-2A's signature: short peaks recover quickly, sustained compression releases slowly. This creates the "levelling" effect—consistent output without the mechanical feel of VCA compression.
Jivetalking captures the LA-2A's programme-dependent behaviour through FFmpeg's acompressor filter with spectral-adaptive parameter tuning. Pass 1 measurements drive every parameter, approximating the way the T4 cell naturally responds to different programme material.
| T4 Characteristic | Implementation Strategy |
|---|---|
| Fixed 10ms attack | Base 10ms with ±2ms transient adaptation |
| Two-stage release | LRA + spectral flux determine release time |
| Programme-dependent ratio | Spectral kurtosis modulates 2.5–3.5:1 range; high-crest override can push toward 5.0:1 based on deficit severity |
| Soft knee | Centroid-adaptive knee (3.5–5.0) |
| Warmth on dark voices | Skewness detection triggers knee + release boost |
When a recording's predicted limiter ceiling deficit is positive, the sub-tuners alone cannot prevent Pass 4's alimiter from clamping. The high-crest override detects this condition using Pass 1 measurements and applies proportional floor values that sub-tuners cannot reduce below.
Detection mirrors calculateLimiterCeiling() in normalise.go:
gainRequired = NormTargetLUFS - InputI
projectedTP = InputTP + gainRequired
idealCeiling = LoudnormTargetTP - gainRequired - safetyMargin
deficit = minLimiterCeilingDB - idealCeiling
When deficit > 0, severity scales linearly: clamp(deficit / 6.0, 0.0, 1.0).
Override floors (linear interpolation from severity 0.0 to 1.0):
| Parameter | Default | At severity 1.0 | Formula | Enforcement |
|---|---|---|---|---|
| Threshold | -18 dB | -40 dB | lerp(-18.0, -40.0, severity) |
min(tunerResult, floor) |
| Ratio | 3.0 | 5.0 | lerp(3.0, 5.0, severity) |
max(tunerResult, floor) |
| Release | 200 ms | 350 ms | lerp(200.0, 350.0, severity) |
max(tunerResult, floor) |
| Knee | 4.0 | 6.0 | lerp(4.0, 6.0, severity) |
max(tunerResult, floor) |
The override blends from no change (deficit just above 0) to maximum aggressiveness (deficit >= 6 dB). Sub-tuners may push values beyond the floor but cannot pull them back.
The LA-2A's fixed 10ms attack is slow enough to let word onsets through—critical for podcast intelligibility. We honour this baseline with minimal adaptation for extreme cases:
| Transient Character | MaxDifference | Attack |
|---|---|---|
| Sharp transients | > 25% | 8 ms |
| Normal speech | 10–25% | 10 ms |
| Soft delivery | < 10% | 12 ms |
The T4 cell's two-stage release gives the LA-2A its breathing room. We approximate this by scaling release time with loudness range and spectral flux:
| Source Character | LRA | Spectral Flux | Release |
|---|---|---|---|
| Expressive speech | > 14 LU | > 0.025 | 300 ms |
| Standard podcast | 8–14 LU | 0.008–0.025 | 200 ms |
| Compressed delivery | < 8 LU | < 0.008 | 150 ms |
Warm voice boost: Dark voices (skewness > 1.5) add 30ms release to preserve body. Heavy compression boost: Large LUFS gap (>15dB) adds 50ms, mimicking the T4's slower recovery after sustained compression. High-crest override: When active, extends the release range to 350 ms to accommodate recordings with large predicted ceiling deficits.
Real LA-2As don't have a fixed ratio—the T4 cell compresses harder on louder signals. We approximate this programme-dependency using spectral kurtosis (peaked vs. flat spectrum):
| Spectral Character | Kurtosis | Ratio |
|---|---|---|
| Peaked/tonal harmonics | > 10 | 2.5:1 |
| Standard speech | 5–10 | 3.0:1 |
| Flat/noise-like | < 5 | 3.5:1 |
Very wide dynamic range (>35dB) adds +0.5 to the ratio for extra control.
The LA-2A's "Peak Reduction" knob sets threshold relative to the incoming signal. We calculate threshold from peak level minus a dynamic range-dependent headroom:
| Dynamic Range | Headroom | Compression Depth |
|---|---|---|
| > 30 dB | 20 dB | Heavy levelling |
| 20–30 dB | 15 dB | Standard LA-2A |
| < 20 dB | 10 dB | Light levelling |
Threshold range: -40 dB to -12 dB (clamped for safety). The high-crest override can push threshold to -40 dB, beyond the range the normal tuner typically selects.
The T4 cell's gradual gain changes produce an inherently soft knee. We adapt knee softness based on voice character:
| Voice Character | Spectral Centroid | Knee |
|---|---|---|
| Dark/warm voice | < 4000 Hz | 5.0 |
| Normal voice | 4000–6000 Hz | 4.0 |
| Bright voice | > 6000 Hz | 3.5 |
Warm voices (skewness > 1.5) add +0.5 knee for extra softness.
Real LA-2As have no parallel compression—they're 100% wet. We default to full wet, reducing mix only for problematic recordings where dry signal masks artefacts:
| Recording Quality | Noise Floor | Mix |
|---|---|---|
| Studio clean | < −65 dBFS | 1.0 |
| Home office | −65 to −45 dBFS | 0.93 |
| Noisy environment | > −45 dBFS | 0.85 |
Makeup gain compensates for compression but shouldn't over-drive downstream processing:
overshoot = peak_level − threshold
reduction = overshoot × (1 − 1/ratio)
makeup = reduction × 0.65
Clamped to 1–5 dB. Let normalisation handle the rest.
| Field | Type | Range | Default | Purpose |
|---|---|---|---|---|
LA2AEnabled |
bool | — | true | Enable/disable filter |
LA2AThreshold |
float64 | −40 to −12 dB | −24 dB | Compression threshold |
LA2ARatio |
float64 | 2.0–5.0 | 3.0 | Compression ratio |
LA2AAttack |
float64 | 8–12 ms | 10 ms | Attack time |
LA2ARelease |
float64 | 150–350 ms | 200 ms | Release time |
LA2AMakeup |
float64 | 1–5 dB | 2 dB | Makeup gain |
LA2AKnee |
float64 | 3.5–6.0 | 4.0 | Knee softness |
LA2AMix |
float64 | 0.85–1.0 | 1.0 | Wet/dry mix |
LA2AHighCrestActive |
bool | — | false | Whether high-crest overrides were applied |
LA2AHighCrestDeficit |
float64 | dB | 0.0 | Predicted ceiling deficit |
LA2AHighCrestSeverity |
float64 | 0.0–1.0 | 0.0 | Override scaling factor |
LA2AHighCrestProjectedTP |
float64 | dBTP | 0.0 | Projected true peak before compression |
acompressor=threshold=-24dB:ratio=3:attack=10:release=200:makeup=2dB:knee=4:mix=1
DS201 Gate (dynamics cleanup) → Dolby SR (noise polish) → LA-2A (levelling) → Limiter
Division of responsibility:
- DS201 Gate: Inter-phrase silence cleanup
- Dolby SR: Spectral noise floor polishing
- LA-2A: Dynamic range levelling with warmth
- Limiter: Final peak control
The LA-2A operates on already-cleaned audio, so it can focus on its strength: gentle, programme-dependent levelling that evens out volume variations while preserving the natural character of speech.
- Teletronix Engineering, LA-2A Leveling Amplifier Manual (1965)
- Universal Audio, "LA-2A Leveling Amplifier" reissue documentation
- Dennis Fink, "The History of the LA-2A" (Mix Magazine, 2003)
- FFmpeg Documentation:
acompressorfilter - https://github.com/aim-qmul/4a2a