Unified Chorus Generator — User Guide
Professional ensemble effects: combines multiple modulated delay lines with intelligent presets to create rich chorus effects that transform single voices into lush ensembles and add spatial depth to any audio source.
What this does
This script implements a unified chorus generator — a sophisticated audio processing system that creates rich ensemble and thickening effects using multiple modulated delay lines. The system works by generating several slightly detuned copies of the original signal, each with unique modulation characteristics, and blending them together to create the illusion of multiple performers. With two distinct processing modes and four carefully crafted presets, this chorus generator can produce everything from subtle shimmer to rich ensemble effects that add depth, width, and professional polish to any audio source.
Key Features:
- Two Processing Modes — Dual Tap (2 voices) and Tri Tap (3 voices) for different complexity levels
- Four Professional Presets — Subtle, Classic, Rich Ensemble, and Deep Shimmer
- Flexible Mix Control — Independent dry/wet mixing for precise effect blending
- Multi-LFO Modulation — Separate modulation rates for each voice prevent phasing
- Phase-Offset Design — Intelligent phase relationships prevent cancellation
- Vectorized Processing — Efficient mathematical implementation for fast operation
Technical Implementation: (1) Multiple delay lines: Create 2 or 3 independent delayed copies of the original signal. (2) LFO modulation: Apply sine-wave modulation to each delay line at different rates. (3) Phase offset: Use mathematical phase shifts (2.0, 2.1, 4.2 radians) to prevent synchronization. (4) Vectorized processing: Apply all modulation mathematically in a single formula for efficiency. (5) Mix blending: Combine dry and wet signals with user-controlled ratios. (6) Preset system: Pre-configured parameter sets for immediate professional results. The system uses delay-based pitch shifting rather than spectral processing, creating natural-sounding chorus effects without artificial artifacts.
Quick start
- In Praat, select exactly one Sound object.
- Run script… →
Unified_Chorus_Generator.praat. - Choose Chorus_Mode: Dual Tap (2 voices) or Tri Tap (3 voices).
- Select a Preset or choose "Custom" for manual control.
- Adjust Dry_Mix and Wet_Mix for effect intensity.
- Fine-tune delay and modulation parameters if using custom settings.
- Set output normalization and playback options.
- Click OK — processing completes almost instantly.
- Output appears as "originalname_chorus_dual" or "originalname_chorus_tri".
Chorus Theory
Ensemble Effect Fundamentals
Psychoacoustic Principles
How chorus creates the ensemble illusion:
Why Multiple Voices?
Sonic benefits of multi-voice design:
- Richness: More voices create denser, more complex textures
- Stability: Multiple modulation sources prevent obvious patterns
- Width: Different modulation rates create spatial impression
- Naturalness: Closer approximation to real ensemble behavior
Delay-Line Modulation Mathematics
Pitch Shifting Through Variable Delay
Time-varying delay principles:
Why Delay-Based Pitch Shifting?
Advantages over spectral methods:
- Natural sound: Mimics how ensemble timing variations work
- Preserves transients: No windowing or frame artifacts
- Continuous variation: Smooth pitch transitions
- Computational efficiency: Simple sample manipulation
🎵 Chorus Intuition
For a string section:
Multiple violinists play the same part
Each has slightly different timing and intonation
Result: Rich, warm ensemble sound instead of single instrument
Chorus recreates this by:
Creating multiple delayed copies (different "players")
Adding slight pitch variations (different "intonation")
Mixing together for ensemble richness
Phase Relationship Design
Preventing Cancellation Artifacts
Intelligent phase offset strategy:
Why Careful Phase Design?
Avoiding common chorus problems:
- Phase cancellation: Voices cancel each other at certain frequencies
- Static effects: Synchronized modulation sounds artificial
- Thinning: Poor phase relationships can reduce body
- Repetition: Obvious modulation patterns become tiresome
Rate Selection Strategy
Modulation Frequency Relationships
Choosing effective LFO rates:
Why Multiple Rate Speeds?
Creating complex modulation:
- Temporal richness: Different modulation timescales
- Natural variation: Mimics real ensemble timing differences
- Sonic interest: Prevents monotonous modulation
- Wide application: Works across different musical contexts
Effect Presets
🎛️ Four Professional Chorus Characters
Carefully tuned presets for immediate professional results:
Preset 1: Custom
| Character | Parameters | Application | Technical Details |
|---|---|---|---|
| User-defined | All parameters adjustable | Experimental, specific needs | Full manual control |
Preset 2: Subtle Chorus
| Character | Parameters | Application | Technical Details |
|---|---|---|---|
| Gentle thickening | Delay: 8ms, Depth: 0.08 | Vocals, acoustic instruments | Rates: 2.0, 3.5, 5.0 Hz |
Preset 3: Classic Chorus
| Character | Parameters | Application | Technical Details |
|---|---|---|---|
| Balanced, musical | Delay: 12ms, Depth: 0.15 | General purpose, guitars | Rates: 2.5, 4.2, 6.3 Hz |
Preset 4: Rich Ensemble
| Character | Parameters | Application | Technical Details |
|---|---|---|---|
| Dense, wide | Delay: 15ms, Depth: 0.20 | Synths, pads, ensembles | Rates: 1.5, 3.8, 5.5 Hz |
Preset 5: Deep Shimmer
| Character | Parameters | Application | Technical Details |
|---|---|---|---|
| Dramatic, washy | Delay: 20ms, Depth: 0.25 | Ambient, special effects | Rates: 0.8, 2.4, 4.0 Hz |
Preset Selection Guide
- Use Subtle Chorus when:
- Processing vocals or delicate acoustic instruments
- You want enhancement without obvious effect
- Maintaining natural character is priority
- Adding professional polish subtly
- Use Classic Chorus when:
- Processing electric guitars or synthesizers
- You want recognizable chorus character
- Creating 1980s-style chorus effects
- General purpose thickening and enhancement
- Use Rich Ensemble when:
- Creating dense synth pads or string sections
- You want maximum thickening and width
- Transforming single sounds into ensembles
- Professional production applications
- Use Deep Shimmer when:
- Creating ambient or special effects
- You want dramatic, obvious chorus
- Processing sounds for atmospheric contexts
- Experimental and sound design applications
Each preset creates a distinct chorus character suitable for different musical contexts
Creative Preset Applications
🎤 Vocal Enhancement
Preset: Subtle Chorus
Application: Process lead vocals for professional polish
Result: Fuller, more professional vocal sound without obvious effect
🎸 Electric Guitar
Preset: Classic Chorus
Application: Process clean or slightly distorted guitar
Result: Classic 1980s chorus guitar sound with richness and movement
🎹 Synth Pads
Preset: Rich Ensemble
Application: Transform simple synth patches into lush pads
Result: Wide, dense textures with professional ensemble quality
Parameters Guide
⚙️ Complete Parameter Reference
Detailed explanation of all chorus parameters:
Core Parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Chorus_Mode | Dual/Tri Tap | Tri Tap | Number of chorus voices (2 or 3) |
| Preset | Custom + 4 presets | Classic | Pre-configured parameter sets |
| Dry_Mix | 0.0-1.0 | 0.7 | Original signal level in output |
| Wet_Mix | 0.0-1.0 | 0.5 | Chorus effect level in output |
Delay and Modulation Parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Base_delay_ms | 1.0-30.0 | 10.0 | Center delay time in milliseconds |
| Modulation_depth | 0.01-0.50 | 0.15 | Pitch modulation intensity |
| Rate_1 | 0.1-10.0 | 2.5 | First LFO modulation rate (Hz) |
| Rate_2 | 0.1-10.0 | 4.2 | Second LFO modulation rate (Hz) |
| Rate_3 | 0.1-10.0 | 6.3 | Third LFO modulation rate (Hz) |
Output Parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Scale_peak | 0.1-1.0 | 0.99 | Output peak normalization level |
| Play_after_processing | 0/1 | 1 | Auto-play result after processing |
Parameter Interactions
- Base_delay vs ensemble size: Longer delays = larger ensemble illusion
- Modulation_depth vs pitch variation: Higher depth = more detuning
- Dry/Wet mix vs effect intensity: Balance determines chorus prominence
- Rate spread vs complexity: Wider rate differences = richer modulation
- Voice count vs density: More voices = thicker, more complex chorus
Parameters work together to create the overall chorus character and intensity
Recommended Custom Settings
🎻 String Section
Goal: Create realistic string ensemble from solo instrument
Settings:
- Chorus_Mode: Tri Tap
- Base_delay_ms: 18.0
- Modulation_depth: 0.12
- Rates: 1.2, 3.6, 5.8 Hz
- Dry_Mix: 0.6, Wet_Mix: 0.6
🎹 Vintage Synth
Goal: Classic analog synthesizer chorus
Settings:
- Chorus_Mode: Dual Tap
- Base_delay_ms: 14.0
- Modulation_depth: 0.18
- Rates: 2.8, 5.2 Hz
- Dry_Mix: 0.5, Wet_Mix: 0.7
🎤 Background Vocals
Goal: Thicken and blend background vocal tracks
Settings:
- Chorus_Mode: Tri Tap
- Base_delay_ms: 9.0
- Modulation_depth: 0.09
- Rates: 2.2, 3.9, 5.5 Hz
- Dry_Mix: 0.8, Wet_Mix: 0.4
Applications
Vocal Production
Use case: Add professional polish and thickness to vocals
Technique: Use Subtle Chorus preset with Tri Tap mode
Example: Transform thin vocal recordings into rich, professional tracks
Guitar Processing
Use case: Create classic chorus guitar sounds
Technique: Use Classic Chorus preset with Dual Tap mode
Example: Process clean electric guitar for 1980s-style chorus effects
Synthesizer Enhancement
Use case: Transform simple synth patches into rich textures
Technique: Use Rich Ensemble preset with Tri Tap mode
Example: Create lush pads and strings from basic synthesizer sounds
Sound Design
Use case: Create atmospheric and special effects
Technique: Use Deep Shimmer preset with extreme settings
Example: Process sounds for ambient, cinematic, or experimental contexts
💡 Creative Techniques
Advanced applications:
- Frequency-specific chorus: Process different frequency bands separately
- Automated parameters: Change mix balances or rates over time
- Layered effects: Apply chorus before or after other effects
- Extreme settings: Use very long delays or high depths for special effects
Troubleshooting Common Issues
Cause: Poor dry/wet balance or extreme modulation
Solution: Adjust mix balance or use more moderate modulation settings
Cause: Base delay too long for the material
Solution: Reduce base_delay_ms to 5-15ms range
Cause: Low wet mix or shallow modulation
Solution: Increase wet_mix and/or modulation_depth
Cause: Too much modulation or inappropriate rates
Solution: Use more natural rates (2-6 Hz) and moderate depth