Vintage Glue Compressor — User Guide
Analog-style dynamics processing: combines RMS compression with hyperbolic tangent saturation to emulate classic VCA and opto compressors, adding warmth and cohesion reminiscent of vintage hardware.
What this does
This script implements a vintage-style glue compressor that emulates the characteristics of classic analog compression hardware. Unlike digital compressors that focus solely on dynamic control, this processor adds intentional saturation and harmonic generation to mimic the "warmth" and "glue" of analog gear. The dual-stage processing combines: (1) RMS-based compression: Professional dynamic control with auto-calibration. (2) Hyperbolic tangent saturation: Mathematical emulation of analog soft-clipping. (3) 4 vintage-inspired presets: Models classic compressor types including opto, VCA, bus compression, and tape saturation. (4) Adjustable warmth: Continuously variable from clean digital to heavy analog saturation.
Key Features:
- Analog Emulation — Hyperbolic tangent saturation curves
- 4 Vintage Presets — Opto, VCA, bus glue, and tape styles
- Adjustable Warmth — Continuous saturation control
- RMS Detection — Musical, perceptually accurate compression
- Auto-Calibration — Professional level matching
- Harmonic Generation — Adds even-order harmonics
Technical Implementation: (1) Input analysis: Measure peak levels and auto-calibrate thresholds. (2) RMS envelope: Generate musical level detection using Praat's Intensity object. (3) Gain computation: Apply professional compression curves with makeup gain. (4) Compression stage: Multiply audio by gain reduction envelope. (5) Saturation stage: Apply hyperbolic tangent soft-clipping with adjustable drive. (6) Output management: Peak normalization, vintage-style naming, and cleanup. The saturation stage uses tanh(x × drive)/drive to maintain consistent levels while adding harmonics.
Quick start
- In Praat, select exactly one Sound object.
- Run script… →
vintage_glue_compressor.praat. - Choose Preset from dropdown:
- Vocal Opto: Slow, warm LA-2A style compression
- Drum VCA: Fast, snappy SSL-style compression
- Mix Bus Glue: Gentle SSL bus compression
- Tape Squeeze: Heavy saturation and compression
- Or select Custom and adjust:
- Threshold_dB: Compression start point
- Ratio: Amount of compression
- Attack_Release_window: Time response
- Analog_Warmth: Saturation amount (0.0-1.0)
- Makeup_Gain_dB: Output level compensation
- Set Scale_peak (0.99 recommended)
- Enable Play_result for immediate audition
- Enable Keep_original to preserve source
- Click OK — processed sound created with vintage-style suffix
Analog Compression Theory
Vintage Compressor Characteristics
What Makes Analog Compression Different?
Hardware vs digital differences:
Classic Compressor Types
Vintage hardware emulation:
🎛️ Vintage Compressor Families
Opto-Compressors (LA-2A, LA-3A):
- Detection: Light-dependent resistor
- Character: Slow, smooth, musical
- Best for: Vocals, bass, slow material
- Our preset: Vocal Opto
VCA Compressors (SSL, DBX, API):
- Detection: Voltage-controlled amplifier
- Character: Fast, precise, aggressive
- Best for: Drums, buses, mastering
- Our preset: Drum VCA
FET Compressors (1176):
- Detection: Field-effect transistor
- Character: Very fast, colorful
- Best for: Drums, vocals, aggressive material
Variable-Mu (Fairchild, Manley):
- Detection: Tube-based gain reduction
- Character: Warm, smooth, expensive
- Best for: Mix bus, mastering
RMS Detection for Musical Compression
Why RMS for Vintage Emulation?
Perceptual accuracy:
Time Constant Philosophy
Vintage timing characteristics:
Opto-Compressors (LA-2A):
Attack: 10ms (slow)
Release: 500ms-5s (program-dependent)
Character: Lazy, smooth, musical
VCA Compressors (SSL):
Attack: 1-30ms (adjustable)
Release: 100-1100ms (adjustable)
Character: Fast, precise, aggressive
FET Compressors (1176):
Attack: 20-800μs (very fast)
Release: 50-1100ms (fast)
Character: Grabby, aggressive, colorful
Our Implementation:
Unified attack/release window for simplicity
Presets emulate vintage timing characteristics
Custom mode allows fine-tuning
Harmonic Distortion Theory
Even vs Odd Harmonics
Musical distortion characteristics:
Saturation Modeling
Hyperbolic Tangent Saturation
Mathematical Soft Clipping
The tanh() function:
Saturation Curves
Input/Output Characteristics:
Drive=1.0 (Clean):
-1.0 → -0.76 | -0.5 → -0.46 | 0.0 → 0.0 | 0.5 → 0.46 | 1.0 → 0.76
Drive=2.0 (Warm):
-1.0 → -0.96 | -0.5 → -0.76 | 0.0 → 0.0 | 0.5 → 0.76 | 1.0 → 0.96
Drive=3.0 (Saturated):
-1.0 → -1.00 | -0.5 → -0.91 | 0.0 → 0.0 | 0.5 → 0.91 | 1.0 → 1.00
Note: Output normalized for comparisonHigher drive = more soft clipping = more harmonics
Warmth Parameter Implementation
Drive Calculation
Controlling saturation amount:
Harmonic Generation
Spectrum analysis:
analog_Warmth = 0.1 (Subtle):
- 2nd harmonic: -60dB
- 3rd harmonic: -80dB
- Character: Very subtle warmth
analog_Warmth = 0.3 (Warm):
- 2nd harmonic: -40dB
- 3rd harmonic: -60dB
- Character: Noticeable tube-like warmth
analog_Warmth = 0.6 (Saturated):
- 2nd harmonic: -25dB
- 3rd harmonic: -40dB
- 4th harmonic: -50dB
- Character: Obvious saturation, tape-like
analog_Warmth = 1.0 (Heavy):
- 2nd harmonic: -15dB
- 3rd harmonic: -25dB
- Multiple higher harmonics
- Character: Distortion, aggressive
Dual-Stage Processing
Compression Then Saturation
Signal flow rationale:
Level Management
Gain staging considerations:
Vintage Presets
Vocal Opto (Slow & Warm)
| Parameter | Value | Vintage Inspiration |
|---|---|---|
| Threshold | -20 dB | LA-2A, LA-3A opto compressors |
| Ratio | 3.0:1 | Gentle, program-dependent |
| Time Window | 0.10 s | Slow, musical response |
| Makeup Gain | +3.0 dB | Tube-like level boost |
| Analog Warmth | 0.3 | Subtle tube saturation |
| Suffix | _Opto | Opto-compressor style |
🎤 Opto-Compressor Characteristics
Vintage inspiration: Teletronix LA-2A, Universal Audio LA-3A
Sonic character: Smooth, lazy, musical, warm
Best for: Vocals, bass, acoustic instruments, slow material
Technical notes: Slow attack preserves transients, gentle ratio creates natural compression, tube-like warmth adds harmonic richness
Drum VCA (Snappy)
| Parameter | Value | Vintage Inspiration |
|---|---|---|
| Threshold | -18 dB | SSL Bus Compressor, DBX 160 |
| Ratio | 10.0:1 | Aggressive control |
| Time Window | 0.015 s | Fast, punchy response |
| Makeup Gain | +4.0 dB | Significant level boost |
| Analog Warmth | 0.5 | Moderate transformer color |
| Suffix | _VCA | VCA compressor style |
🥁 VCA Compressor Characteristics
Vintage inspiration: SSL 4000 Bus Compressor, DBX 160, API 2500
Sonic character: Fast, punchy, aggressive, controlled
Best for: Drums, percussion, drum buses, aggressive material
Technical notes: Fast attack controls transients, high ratio adds density, transformer saturation adds punch and weight
Mix Bus Glue (The Classic)
| Parameter | Value | Vintage Inspiration |
|---|---|---|
| Threshold | -10 dB | SSL Bus Compressor gentle setting |
| Ratio | 2.0:1 | Very gentle compression |
| Time Window | 0.10 s | Slow, transparent response |
| Makeup Gain | +2.0 dB | Subtle level compensation |
| Analog Warmth | 0.1 | Very subtle console color |
| Suffix | _Glue | Bus compression style |
🎚️ Bus Compressor Characteristics
Vintage inspiration: SSL 4000 Bus Compressor, Neve consoles
Sonic character: Cohesive, transparent, "glued"
Best for: Mix buses, subgroup buses, mastering
Technical notes: Very gentle ratio for transparency, slow timing for smooth operation, subtle console saturation for cohesion
Tape Squeeze (Heavy Saturation)
| Parameter | Value | Vintage Inspiration |
|---|---|---|
| Threshold | -12 dB | Tape machine saturation threshold |
| Ratio | 4.0:1 | Medium compression |
| Time Window | 0.05 s | Medium response |
| Makeup Gain | +5.0 dB | Significant level boost |
| Analog Warmth | 0.8 | Heavy tape saturation |
| Suffix | _Tape | Tape machine style |
- Vocal Opto: Smooth vocals, bass, acoustic instruments
- Drum VCA: Punchy drums, percussion, aggressive material
- Mix Bus Glue: Subtle mix cohesion, mastering
- Tape Squeeze: Creative saturation effects, lo-fi sounds
Parameters & Settings
Compression Parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Threshold_dB | -60 to 0 | -15.0 | Compression start point |
| Ratio | 1.0-20.0 | 4.0 | Compression amount above threshold |
| Attack_Release_window | 0.001-1.0 | 0.05 | Combined time response |
Saturation Parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Analog_Warmth | 0.0-1.0 | 0.2 | Saturation amount (0=clean, 1=heavy) |
Output Parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Makeup_Gain_dB | -20 to +20 | 2.0 | Output level compensation |
| Scale_peak | 0.1-1.0 | 0.99 | Final peak normalization |
| Play_result | boolean | 1 | Auto-play after processing |
| Keep_original | boolean | 1 | Preserve source sound |
Parameter Guidance
- 0.0-0.2: Very subtle, console-like color
- 0.2-0.4: Moderate, tube-like warmth
- 0.4-0.6: Noticeable, transformer color
- 0.6-0.8: Heavy, tape-like saturation
- 0.8-1.0: Extreme, distortion effects
- 0.01-0.03s: Very fast (drums, percussion)
- 0.03-0.07s: Fast (vocals, bass)
- 0.07-0.15s: Medium (general purpose)
- 0.15-0.30s: Slow (opto-style, smooth)
- 0.30s+: Very slow (special effects)
- 1.5:1-3:1: Opto-style, gentle
- 3:1-6:1: General purpose, musical
- 6:1-10:1: VCA-style, aggressive
- 10:1+: Limiting territory, extreme
Applications
Vocal Processing
Use case: Smooth, warm vocal compression
Technique: Use Vocal Opto preset with medium threshold
Benefits: Musical level control, added warmth, reduced sibilance harshness
Drum Enhancement
Use case: Punchy, aggressive drum sounds
Technique: Use Drum VCA preset on drum buses or individual drums
Results: Controlled transients, enhanced sustain, transformer weight
Mix Bus Processing
Use case: Creating cohesive final mixes
Technique: Use Mix Bus Glue preset on stereo mix
Benefits: Gentle cohesion, console-like color, "glued" sound
Creative Saturation
Use case: Adding vintage character to digital sources
Technique: Use Tape Squeeze preset or high Analog_Warmth settings
Results: Tape-like warmth, harmonic richness, reduced digital harshness
Practical Workflow Examples
🎤 Vintage Vocal Chain
Goal: Classic vocal sound with warmth and control
Setup:
- Preset: Vocal Opto
- Source: Lead vocal recording
- Adjustment: Lower threshold for more compression if needed
- Result: Smooth, warm, professional vocal sound
Tip: Increase Analog_Warmth to 0.4-0.5 for more tube-like character
🥁 Punchy Drum Bus
Goal: Aggressive, weighty drum sound
Setup:
- Preset: Drum VCA
- Source: Drum bus or individual drum
- Adjustment: Increase ratio for more aggression
- Result: Powerful, controlled drums with transformer weight
Tip: Use parallel compression for extreme effects
🎚️ Analog Mix Glue
Goal: Cohesive final mix with console character
Setup:
- Preset: Mix Bus Glue
- Source: Stereo mix
- Adjustment: Very subtle - listen for "glue" not obvious effect
- Result: Professional, cohesive mix with analog character
Tip: A/B compare to ensure transparency
Advanced Techniques
- Stage 1: Vocal Opto for smooth leveling
- Stage 2: Drum VCA for aggressive control
- Result: Complex, professional compression chain
- Application: Lead vocals, bass, important elements
- Method: Process copy with heavy saturation, mix with dry signal
- Benefits: Harmonic richness without losing clarity
- Presets: Use Tape Squeeze for parallel processing
- Result: Best of both worlds - clarity and warmth
Troubleshooting Common Issues
Cause: Analog_Warmth too high or makeup gain too high
Solution: Reduce Analog_Warmth, reduce makeup gain, or raise threshold
Cause: Heavy saturation rolling off highs
Solution: Reduce Analog_Warmth, use parallel processing, or EQ after compression
Cause: Too fast release time or too low threshold
Solution: Increase time window, raise threshold, or reduce ratio
Cause: Analog_Warmth too low or inappropriate preset
Solution: Increase Analog_Warmth, try different preset, or use serial processing
Algorithmic Extensions
Advanced Saturation Models
Circuit-Specific Emulation
Beyond basic tanh():
Frequency-Dependent Saturation
Multi-band Warmth
Spectral saturation control:
Advanced Time Constants
Vintage-Specific Timing
Hardware-accurate response: