Metamodulator — Advanced Ring Modulation User Guide
A sophisticated phase/frequency modulation toolkit: 8 algorithms, 30+ presets for creating everything from subtle harmonic distortion to extreme spectral transformations.
What this does
The Metamodulator implements advanced ring modulation with phase distortion techniques — far beyond simple amplitude modulation. It transforms audio through 8 distinct algorithms that manipulate phase relationships, frequency sweeps, and time-varying modulations. Each algorithm applies mathematical functions (cubic, quadratic, exponential, logarithmic, sinusoidal) to the phase argument of a sine wave modulator, creating complex sidebands, harmonic distortions, and evolving spectral textures. With 30+ carefully crafted presets, this tool provides instant access to sounds ranging from subtle vintage warmth to extreme sci-fi transformations.
Key Features:
- 8 Core Algorithms — From cubic phase distortion to spiral FM
- 30+ Curated Presets — Organized by character and application
- Phase-Based Distortion — Harmonic manipulation through phase functions
- Time-Varying Modulations — Dynamic frequency evolution
- Precise Parameter Control — Fine-tune frequency, depth, and rate
- Instant Transformation — Real-time application with visual feedback
Technical Implementation: (1) Signal multiplication: Original signal × modulator function: output = input × sin(φ(t)), where φ(t) is a time-varying phase function. (2) Algorithm selection: Each algorithm defines φ(t) differently: cubic φ(t) = 2πf₀t + αt³, exponential sweep φ(t) = 2πf_start·exp(ln(f_end/f_start)·t/t_max)·t, etc. (3) Parameter mapping: User parameters (f0, mod_factor, mod_rate) adjust algorithm coefficients. (4) Preset logic: Pre-configured parameter sets optimized for specific timbral effects. (5) Normalization: Output scaled to prevent clipping while maintaining dynamic range. (6) Real-time processing: Formula applied directly to sound buffer for immediate results.
Quick start
- In Praat, select exactly one Sound object (mono or stereo).
- Run script… →
metamodulator.praat. - Choose a Preset from the categorized list (easiest way to start).
- For manual control, select Custom (Use Manual Settings) and choose algorithm.
- Set Carrier_Frequency_Hz (main modulation frequency, 50-2000Hz typical).
- For sweep algorithms, set Start_Frequency_Hz and End_Frequency_Hz.
- Adjust Modulation_Factor (distortion depth/amount).
- For FM algorithms, set Modulation_Rate_Hz (LFO speed).
- Set Scale_peak to 0.99 for safe output levels.
- Enable Play_result to hear immediately.
- Click OK — processing is instantaneous.
Modulation Theory
Core Mathematical Framework
🔧 Fundamental Equation
General Metamodulation Formula:
output(t) = input(t) × sin(φ(t))
where φ(t) is the phase function — the heart of each algorithm
Traditional ring modulation: φ(t) = 2πf₀t (fixed frequency)
Metamodulation: φ(t) = complex function of time with multiple terms
Phase vs Frequency Modulation
Understanding the relationship:
Sideband Generation Mathematics
How Modulation Creates New Frequencies
For input signal with frequency f_input:
Algorithm Classification
Three Fundamental Approaches
📊 Algorithm Categories
1. Phase Distortion (Algorithms 1, 4): Add polynomial terms to phase (t², t³)
2. Frequency Sweep (Algorithms 2, 3, 7): Time-varying instantaneous frequency
3. Frequency Modulation (Algorithms 5, 6, 8): Modulator frequency itself modulated
Common thread: All manipulate φ(t) to create specific spectral/temporal effects
Algorithm Details
Algorithm 1: Cubic Phase Distortion
🎛️ Harsh, Edgy Harmonic Distortion
Formula: output = input × sin(2πf₀t + αt³)
Character: Aggressive, metallic, inharmonic sidebands
Phase function: φ(t) = 2πf₀t + αt³
Instantaneous frequency: f_inst(t) = f₀ + (3α/2π)t²
Key parameter: α = Modulation_Factor (typically 0.5-4.0)
Use: Industrial sounds, metallic percussion, aggressive vocal processing
Algorithm 2: Exponential Frequency Sweep
📈 Smooth Exponential Rise/Fall
Formula: output = input × sin(2πf_start·exp(ln(f_end/f_start)·t/t_max)·t)
Character: Smooth, musical sweeps, doppler-like effects
Phase function: φ(t) = 2πf_start·exp(k·t)·t where k = ln(f_end/f_start)/t_max
Instantaneous frequency: f_inst(t) = f_start·exp(k·t)·(1 + k·t)
Key parameters: f_start, f_end (50-2000Hz typical)
Use: Riser effects, transitions, sci-fi sounds, sound design
Algorithm 3: Logarithmic Frequency Sweep
📉 Logarithmic Descent
Formula: output = input × sin(2πf_start·exp(-ln(f_start/f_end)·t/t_max)·t)
Character: Descending sweeps, falling effects, impact tails
Phase function: φ(t) = 2πf_start·exp(-k·t)·t where k = ln(f_start/f_end)/t_max
Instantaneous frequency: f_inst(t) = f_start·exp(-k·t)·(1 - k·t)
Key parameters: f_start > f_end for descent
Use: Falling objects, descending tones, impact decays
Algorithm 4: Quadratic Phase Modulation
🎚️ Softer, Tubey Distortion
Formula: output = input × sin(2πf₀t + αt²)
Character: Warm, vintage, harmonic distortion
Phase function: φ(t) = 2πf₀t + αt²
Instantaneous frequency: f_inst(t) = f₀ + (α/π)t
Key parameter: α = Modulation_Factor (typically 0.1-1.5, can be negative)
Use: Vintage effects, tube amp simulation, warm harmonic enhancement
Algorithm 5: Sinusoidal FM
🎵 Classic Frequency Modulation
Formula: output = input × sin(2π(f₀ + β·sin(2πf_m t))t)
Character: Rich, evolving, synth-like textures
Phase function: φ(t) = 2πf₀t + (β/f_m)·cos(2πf_m t)
Instantaneous frequency: f_inst(t) = f₀ + β·sin(2πf_m t)
Key parameters: f₀ (carrier), β = Modulation_Factor (depth), f_m = Modulation_Rate_Hz
Use: FM synthesis textures, bell-like sounds, evolving pads
Algorithm 6: Spiral FM
🌀 Complex Evolving Modulation
Formula: output = input × sin(2π(f₀ + β·sin(ωt)·t/t_max)t)
Character: Swirling, vortex-like, hypnotic motion
Phase function: Complex integral form
Instantaneous frequency: f_inst(t) = f₀ + β·sin(ωt)·t/t_max
Key parameters: β = Modulation_Factor (50-250), ω = 2π·Modulation_Rate_Hz
Use: Hypnotic textures, swirling effects, psychedelic sounds
Algorithm 7: Time-Varying (Chirp)
⚡ Quadratic Chirp Modulation
Formula: output = input × sin(πf₀t²)
Character: Metallic, glitchy, rising tension
Phase function: φ(t) = πf₀t²
Instantaneous frequency: f_inst(t) = f₀t (linear increase)
Key parameter: f₀ controls sweep rate (100-800Hz typical)
Use: Laser sounds, glitch effects, rising tension, sci-fi
Algorithm 8: Trembling (Vibrato+Chirp)
🎭 Combined Vibrato and Chirp
Formula: output = input × sin(πf₀(1 + ε·sin(2πf_m t))t²)
Character: Wobbly, unstable, organic modulation
Phase function: φ(t) = πf₀t² + (πεf₀/f_m)·t·cos(2πf_m t)
Instantaneous frequency: f_inst(t) = f₀t(1 + ε·sin(2πf_m t))
Key parameters: ε = Modulation_Factor (0.01-0.15), f_m = Modulation_Rate_Hz
Use: Vocal processing, organic textures, unstable effects, vintage synth
Presets Gallery
🎯 Cubic Phase Distortion Presets
Cubic: Mild Distortion — Subtle harmonic enhancement, f₀=100Hz, α=1
Cubic: Strong Distortion — Aggressive metallic effect, f₀=200Hz, α=4
Cubic: High Frequency — Bell-like, upper harmonics, f₀=300Hz, α=2.5
📈 Exponential Sweep Presets
ExpSweep: Slow — Gentle rise 100→600Hz, musical sweep
ExpSweep: Fast — Quick rise 50→1200Hz, dramatic effect
ExpSweep: Narrow Range — Subtle 200→400Hz, delicate modulation
📉 Logarithmic Sweep Presets
LogSweep: Descending Classic — Falling tone 800→50Hz
LogSweep: Fast Descent — Quick fall 1000→100Hz
🎚️ Quadratic Phase Presets
Quad: Gentle Bend — Warm enhancement, f₀=150Hz, α=0.3
Quad: Classic Sweep — Vintage tube sound, f₀=200Hz, α=0.5
Quad: Dramatic Warp — Noticeable distortion, f₀=250Hz, α=1.0
Quad: Reverse Bend — Descending phase, f₀=180Hz, α=-0.4
Quad: Extreme Distortion — Heavy saturation, f₀=300Hz, α=1.5
Quad: Subtle Shimmer — Just noticeable, f₀=120Hz, α=0.1
🎵 Sinusoidal FM Presets
SinFM: Classic — Traditional FM, f₀=300Hz, f_m=2Hz, β=100
SinFM: Deep Modulation — Rich texture, f₀=400Hz, f_m=3Hz, β=200
🌀 Spiral FM Presets
Spiral: Gentle — Subtle swirl, f₀=200Hz, f_m=0.5Hz, β=80
Spiral: Classic Vortex — Medium swirl, f₀=250Hz, f_m=0.8Hz, β=150
Spiral: Intense Whirlpool — Strong motion, f₀=300Hz, f_m=1.2Hz, β=200
Spiral: Deep Rotation — Low swirl, f₀=150Hz, f_m=0.6Hz, β=120
Spiral: Hypnotic Spin — Fast swirl, f₀=400Hz, f_m=1.5Hz, β=180
Spiral: Cosmic — Extreme swirl, f₀=180Hz, f_m=0.7Hz, β=250
⚡ Time-Varying (Chirp) Presets
TimeVar: Subtle Shimmer — Gentle chirp, f₀=100Hz
TimeVar: Rising Metallic — Medium rise, f₀=200Hz
TimeVar: Sci-Fi Sweep — Strong rise, f₀=300Hz
TimeVar: Laser Beam — Intense rise, f₀=500Hz
TimeVar: Extreme Glitch — Very fast rise, f₀=800Hz
🎭 Trembling (Vibrato+Chirp) Presets
Tremble: Gentle Warble — Subtle vibrato, f₀=200Hz, f_m=5Hz, ε=0.03
Tremble: Radio Interference — Medium warble, f₀=440Hz, f_m=25Hz, ε=0.08
Tremble: Deep Space — Slow wobble, f₀=100Hz, f_m=10Hz, ε=0.1
Tremble: Vintage Synth — Classic LFO, f₀=300Hz, f_m=20Hz, ε=0.06
Tremble: Alien Voice — Extreme wobble, f₀=150Hz, f_m=30Hz, ε=0.12
Parameters
Preset Selection
| Parameter | Type | Default | Description |
|---|---|---|---|
| Preset | option | Custom | 30+ categorized presets for instant effects |
Manual Algorithm Selection
| Parameter | Type | Default | Description |
|---|---|---|---|
| Manual_Algorithm | option | Cubic Phase Distortion | 8 algorithms with distinct characters |
Frequency Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
| Carrier_Frequency_Hz | positive | 200 | 20-5000 | Base modulation frequency (algorithms 1,4,5,6,7,8) |
| Start_Frequency_Hz | positive | 100 | 20-5000 | Starting frequency for sweep algorithms (2,3) |
| End_Frequency_Hz | positive | 800 | 20-5000 | Ending frequency for sweep algorithms (2,3) |
Modulation Parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
| Modulation_Factor | real | 2.0 | -10 to 10 | Depth/amount: α for algorithms 1,4; β for 5,6; ε for 8 |
| Modulation_Rate_Hz | positive | 5.0 | 0.1-100 | LFO rate for algorithms 5,6,8 (FM speed) |
Output Control
| Parameter | Type | Default | Description |
|---|---|---|---|
| Scale_peak | positive | 0.99 | Output normalization level (0.5-1.0) |
| Play_result | boolean | 1 (yes) | Auto-play processed sound |
Algorithm-Specific Parameter Mapping
| Algorithm | Carrier_Frequency | Modulation_Factor | Modulation_Rate | Start/End Freq |
|---|---|---|---|---|
| 1. Cubic Phase | f₀ (center frequency) | α (cubic coefficient) | — | — |
| 2. Exponential Sweep | — | — | — | f_start, f_end |
| 3. Logarithmic Sweep | — | — | — | f_start, f_end |
| 4. Quadratic Phase | f₀ (center frequency) | α (quadratic coefficient) | — | — |
| 5. Sinusoidal FM | f₀ (carrier frequency) | β (modulation depth) | f_m (modulation rate) | — |
| 6. Spiral FM | f₀ (center frequency) | β (spiral depth) | ω (spiral rate) | — |
| 7. Time-Varying Chirp | f₀ (chirp rate) | — | — | — |
| 8. Trembling | f₀ (base frequency) | ε (vibrato depth) | f_m (vibrato rate) | — |
Applications
Vocal Processing & Transformation
Use case: Creating robot voices, alien speech, vintage radio effects
Recommended algorithms: Cubic Phase (aggressive), Trembling (organic), Quadratic (warm)
Presets: "Tremble: Alien Voice", "Cubic: Strong Distortion", "Quad: Vintage Synth"
Sound Design for Media
Use case: Sci-fi effects, magical transformations, industrial sounds
Recommended algorithms: Time-Varying (lasers), Spiral FM (vortex), Exponential Sweep (risers)
Presets: "TimeVar: Laser Beam", "Spiral: Cosmic", "ExpSweep: Fast"
Musical Texture Creation
Use case: Adding harmonic interest, creating evolving pads, enhancing percussion
Recommended algorithms: Sinusoidal FM (bells), Quadratic Phase (warmth), Spiral FM (motion)
Workflow:
- Process individual instrument tracks with subtle modulation
- Create ensemble effects by processing groups
- Use different algorithms on different frequency ranges
- Combine with reverb and delay for atmospheric results
Experimental & Electroacoustic Composition
Use case: Radical timbral transformation, spectral manipulation
Recommended algorithms: All algorithms with extreme settings
Advantages:
- Mathematically precise control over spectral evolution
- Repeatable transformations for compositional structure
- Complex results from simple parameter changes
- Integration with other Praat processing tools
Practical Workflow Examples
🎤 Vocal Robotization (Podcast/Media)
Goal: Create clear robot voice effect without losing intelligibility
Settings:
- Algorithm: Cubic Phase Distortion
- Carrier Frequency: 150Hz (male) or 250Hz (female)
- Modulation Factor: 1.5-2.0
- Post-process: Light compression, EQ boost around 2kHz
Result: Intelligible robot voice suitable for dialogue
🎬 Sci-Fi Laser Effect (Film/Game Audio)
Goal: Create convincing laser beam sound with rising pitch
Settings:
- Algorithm: Time-Varying (Chirp)
- Carrier Frequency: 500Hz
- Source: White noise burst or synth zap
- Post-process: Add short reverb, slight distortion
Result: Classic sci-fi laser with characteristic rise
🎵 Vintage Tape Warmth (Music Production)
Goal: Add analog warmth and subtle harmonic distortion
Settings:
- Algorithm: Quadratic Phase Modulation
- Carrier Frequency: 120Hz
- Modulation Factor: 0.3-0.5
- Mix: 30-50% wet/dry (process copy and mix with original)
Result: Subtle tube-like warmth without obvious modulation
Advanced Techniques
- Cubic → Exponential: Aggressive distortion followed by sweep
- Quadratic → Trembling: Warmth with organic motion
- Spiral → Time-Varying: Swirling vortex that accelerates
- Multiple passes: Same algorithm with different parameters
Process sound, rename, process again with different settings
- Speech: Best with clear, dynamic recording
- Percussion: Creates metallic, bell-like effects
- Sustained tones: Shows frequency evolution clearly
- Complex mixtures: Creates dense, evolving textures
- Simple tones: Demonstrates algorithm characteristics clearly
Different source materials highlight different aspects of each algorithm
Troubleshooting Common Issues
Cause: Carrier frequency too high relative to source, or modulation too subtle
Solution: Lower Carrier_Frequency_Hz (try 50-150Hz), increase Modulation_Factor
Cause: Modulation_Factor too high, or source too loud
Solution: Reduce Modulation_Factor, ensure Scale_peak=0.99, lower source amplitude
Cause: Parameters inappropriate for algorithm, or misunderstanding effect
Solution: Try presets first, ensure Play_result=1, check audio output
Cause: Carrier frequency close to source fundamental, interference patterns
Solution: Adjust Carrier_Frequency_Hz away from source harmonics, try different algorithm
Technical Reference
Mathematical Derivations
Instantaneous Frequency Calculations
For each algorithm: