Unified Vibrato Generator — User Guide
Advanced pitch modulation: combines four distinct vibrato and chorus algorithms in a single unified interface for creating expressive pitch variations, from classic vibrato to complex multi-voice chorus effects.
What this does
This script implements a unified vibrato generator — a comprehensive pitch modulation system that provides four distinct algorithms for creating expressive pitch variations. Unlike simple pitch shifting, this system uses delay-based modulation to create natural-sounding vibrato and chorus effects that mimic performance techniques and analog hardware. The four modes include: (1) Standard Vibrato: Classic constant-speed pitch oscillation. (2) Chirped Vibrato: Accelerating or decelerating pitch modulation for dynamic expression. (3) Rate Modulation: "Wobbly" vibrato with modulated speed for organic, imperfect character. (4) Swarm/Chorus: Multi-voice layered effects that create rich, ensemble-like textures.
Key Features:
- Four Modulation Algorithms — From classic vibrato to complex chorus
- Delay-Based Processing — Natural pitch modulation without artifacts
- Mathematical Precision — Accurate phase accumulation and modulation
- Multi-Voice Layering — Rich chorus effects with configurable voices
- Dynamic Modulation — Time-varying rates and depths for expression
- Efficient Implementation — Real-time capable processing algorithms
Technical Implementation: (1) Delay-line modulation: All modes use variable delay lines to create pitch shifts — shorter delays raise pitch, longer delays lower pitch. (2) Mathematical modulation: Sine waves and more complex functions control delay time variations. (3) Phase accumulation: Careful phase tracking ensures smooth pitch transitions. (4) Boundary handling: Robust sample indexing prevents out-of-bounds errors. (5) Multi-voice synthesis: Swarm mode combines multiple modulated copies with phase offsets. The system uses Praat's efficient formula processing and sample-level precision to create professional-quality modulation effects.
Quick start
- In Praat, select exactly one Sound object.
- Run script… →
Unified_Vibrato_Generator.praat. - Choose Mode from four options based on desired effect.
- Set Base_delay_ms (3-10ms for typical vibrato).
- Adjust Modulation_depth (0.05-0.20 for subtle to strong effects).
- Set Base_rate_hz (4-7 Hz for typical vibrato rates).
- Configure mode-specific parameters as needed.
- Set output normalization and playback options.
- Click OK — processing completes quickly.
- Output appears with descriptive name based on selected mode.
Vibrato Theory
Delay-Line Modulation Fundamentals
Pitch Shifting Through Variable Delay
Time-stretching principles:
Why Delay-Based Modulation?
Advantages over pitch shifting:
- Natural sound: Mimics how performers create vibrato
- Preserves timbre: No spectral processing artifacts
- Continuous variation: Smooth pitch transitions
- Computational efficiency: Simple sample manipulation
- Musical results: Sounds like performance expression
Modulation Mathematics
Phase Accumulation and Waveforms
Sine wave modulation basics:
Why Complex Modulation?
Beyond simple sine waves:
- Expression: Real vibrato varies in speed and depth
- Naturalness: Perfect sine waves sound artificial
- Musical interest: Complex modulation creates richer effects
- Creative possibilities: Unique modulation characters
🎵 Vibrato Intuition
For vocal vibrato:
Rate: 5-7 Hz (natural vocal oscillation speed)
Depth: 10-30 cents (subtle pitch variation)
Result: Expressive, living vocal quality
For string instruments:
Rate: 4-6 Hz (slightly slower than vocals)
Depth: 20-50 cents (more pronounced variation)
Result: Rich, emotional string expression
Multi-Voice Chorus Principles
Ensemble Effect Creation
Layered modulation theory:
Why Multi-Voice Effects?
Sonic benefits:
- Thickening: Makes single sounds appear ensemble-sized
- Spatial widening: Creates stereo-like effect from mono
- Complexity: Richer, more interesting textures
- Analog emulation: Recreates vintage chorus hardware
Four Modes
🎚️ Comprehensive Modulation System
Complete comparison of all four vibrato and chorus algorithms:
Mode 1: Standard Vibrato
| Aspect | Character | Best For | Technical Approach |
|---|---|---|---|
| Modulation | Constant speed, regular | Classic vibrato, vocals | Simple sine wave LFO |
| Rate Behavior | Fixed frequency | Predictable, musical | base_rate_hz constant |
| Sound Quality | Clean, pure | Natural instruments | sin(2π × rate × t) |
| Complexity | Low | Traditional applications | Single modulation source |
Mode 2: Chirped Vibrato
| Aspect | Character | Best For | Technical Approach |
|---|---|---|---|
| Modulation | Accelerating/decelerating | Expressive solos, effects | Linear frequency sweep |
| Rate Behavior | Time-varying | Dynamic expression | rate(t) = base + sweep × t |
| Sound Quality | Evolving, dramatic | Lead lines, synths | Phase integral of rate(t) |
| Complexity | Medium | Creative applications | Quadratic phase accumulation |
Mode 3: Rate Modulation
| Aspect | Character | Best For | Technical Approach |
|---|---|---|---|
| Modulation | Wobbly, irregular | Organic sounds, vintage | Modulated LFO rate |
| Rate Behavior | Modulated speed | Human-like variation | rate(t) = base + sens × sin(2π × mod_rate × t) |
| Sound Quality | Imperfect, alive | Analog emulation | Nested sine modulation |
| Complexity | High | Character effects | Complex phase relationship |
Mode 4: Swarm/Chorus
| Aspect | Character | Best For | Technical Approach |
|---|---|---|---|
| Modulation | Multi-voice, rich | Ensemble effects, pads | Layered detuned voices |
| Rate Behavior | Distributed rates | Thickening, widening | Multiple LFOs with spreads |
| Sound Quality | Dense, wide | Synthesizers, guitars | Weighted voice summation |
| Complexity | Very high | Production effects | Multi-layer processing |
Mode Selection Guide
- Use Standard mode when:
- You want classic, predictable vibrato
- Processing vocals or acoustic instruments
- Creating natural performance expression
- You need clean, musical pitch modulation
- Use Chirped mode when:
- You want expressive, dynamic vibrato
- Processing lead instruments or solos
- Creating dramatic build-up or release effects
- You need time-varying modulation intensity
- Use Rate Modulation when:
- You want organic, human-like vibrato
- Emulating vintage analog effects
- Creating "wobbly" or imperfect modulation
- You need complex, evolving pitch variations
- Use Swarm mode when:
- You want rich chorus or ensemble effects
- Thickening synthesizers or electric guitars
- Creating wide, spacious sounds from mono sources
- You need professional production effects
Each mode offers unique creative possibilities for different musical contexts
Creative Mode Applications
🎤 Vocal Expression
Mode: Standard or Chirped
Application: Add natural vibrato to sustained vocal notes
Result: Expressive, living vocal quality that enhances emotion
🎸 Analog Synth
Mode: Rate Modulation
Application: Process analog-style synthesizer patches
Result: Vintage, organic modulation with character and warmth
🎹 Rich Pads
Mode: Swarm/Chorus
Application: Thicken and widen synth pads and strings
Result: Dense, ensemble-like textures with movement and depth
Parameters Guide
⚙️ Complete Parameter Reference
Detailed explanation of all vibrato and chorus parameters:
Common Parameters (All Modes)
| Parameter | Range | Default | Description |
|---|---|---|---|
| Base_delay_ms | 1.0-20.0 | 5.0 | Center delay time in milliseconds |
| Modulation_depth | 0.01-0.50 | 0.10 | Pitch modulation intensity (0-50%) |
| Base_rate_hz | 0.5-15.0 | 5.0 | Base modulation frequency in Hz |
| Scale_peak | 0.1-1.0 | 0.99 | Output peak normalization level |
| Play_after_processing | 0/1 | 1 | Auto-play result after processing |
Chirped Mode Parameters (Mode 2)
| Parameter | Range | Default | Description |
|---|---|---|---|
| Sweep_rate_hz_per_sec | -10.0 to 10.0 | 2.0 | Rate change speed (Hz per second) |
Rate Modulation Parameters (Mode 3)
| Parameter | Range | Default | Description |
|---|---|---|---|
| Rate_sensitivity | 0.1-10.0 | 3.0 | Rate modulation depth |
| Rate_mod_freq_hz | 0.1-5.0 | 0.8 | Rate modulation frequency |
Swarm Mode Parameters (Mode 4)
| Parameter | Range | Default | Description |
|---|---|---|---|
| Number_of_layers | 2-12 | 6 | Number of chorus voices |
| Layer_spread_hz | 0.1-2.0 | 0.5 | Rate spread between voices |
Parameter Interactions
- Base_delay vs pitch range: Longer delays = wider pitch variation
- Modulation_depth vs intensity: Higher depth = stronger vibrato
- Base_rate vs speed: Higher rates = faster oscillation
- Sweep_rate vs acceleration: Positive = speed up, negative = slow down
- Layer parameters vs richness: More layers + wider spread = thicker chorus
Parameters interact differently in each mode to create unique modulation characters
Recommended Settings
🎻 Natural Vocal Vibrato
Mode: Standard
Settings:
- Base_delay_ms: 5.0
- Modulation_depth: 0.08
- Base_rate_hz: 6.0
🎹 Analog Chorus
Mode: Swarm
Settings:
- Base_delay_ms: 7.0
- Modulation_depth: 0.12
- Base_rate_hz: 4.5
- Number_of_layers: 4
- Layer_spread_hz: 0.3
🎸 Expressive Lead
Mode: Chirped
Settings:
- Base_delay_ms: 6.0
- Modulation_depth: 0.15
- Base_rate_hz: 5.0
- Sweep_rate_hz_per_sec: 3.0
Applications
Vocal Production
Use case: Add expressive vibrato to sustained vocal notes
Technique: Use Standard mode with natural rates and depths
Example: Enhance emotional impact in ballad and opera vocals
Instrument Enhancement
Use case: Create vibrato on instruments without natural modulation
Technique: Use Rate Modulation for organic character
Example: Add expression to sampled instruments and synthesizers
Sound Design
Use case: Create rich chorus and ensemble effects
Technique: Use Swarm mode with multiple layers
Example: Transform mono synthesizers into wide, lush textures
Vintage Emulation
Use case: Recreate classic analog modulation effects
Technique: Use Rate Modulation with medium sensitivity
Example: Emulate tape wow and flutter, analog chorus units
💡 Creative Techniques
Advanced applications:
- Layered modulation: Process different frequency bands with different modes
- Automated parameters: Change rates and depths over time for evolving effects
- Extreme settings: Use very high rates or depths for special effects
- Combination effects: Process already-modulated sounds for complex results
Troubleshooting Common Issues
Cause: Extreme modulation settings or very short sounds
Solution: Use more moderate parameters or longer audio segments
Cause: Low modulation depth or inappropriate rate
Solution: Increase depth or adjust rate for better perception
Cause: Too regular modulation or extreme settings
Solution: Use Rate Modulation mode or more natural parameters
Cause: Swarm mode with many layers on long files
Solution: Reduce layer count or process shorter segments