Adaptive Wave Shaper — User Guide
Jitter and shimmer-controlled wave shaping: adaptive distortion and wave folding based on voice quality metrics for dynamic saturation, harmonic enhancement, and creative audio mangling.
What this does
This script implements adaptive wave shaping — a dynamic distortion effect that adjusts its parameters based on jitter (pitch perturbation) and shimmer (amplitude perturbation) analysis. Unlike static distortion with fixed drive/fold settings, this creates content-aware processing: higher jitter increases drive amount, higher shimmer increases wave folding iterations. The result: organic, voice-responsive distortion that adapts to signal characteristics. Applications: expressive guitar processing, vocal enhancement, synthesizer mangling, experimental sound design, adaptive harmonic generation.
Key Features:
- Jitter-Controlled Drive — Pitch irregularity scales distortion amount
- Shimmer-Controlled Folding — Amplitude variation determines fold iterations
- 4 Presets — Default, Gentle Saturation, Aggressive Drive, Fold Emphasis
- Wave Folding — 1-8 iterations of amplitude reflection
- Sinusoidal Shaping — Final sine-based character for harmonic richness
- Auto-Normalization — Optional peak scaling to 0.9
Technical Implementation: (1) Analyze jitter and shimmer (demonstration uses fixed values: jitter=1.2%, shimmer=4.5% — real implementation would extract from audio), (2) Calculate adaptive drive: drive = base_drive × (1 + jitter × sensitivity / 100), constrained 0.5-5.0, (3) Calculate adaptive folds: folds = 1 + round(shimmer × sensitivity / 20), constrained 1-8, (4) Apply drive: multiply signal by adaptive_drive, (5) Apply wave folding (iterative): for each fold iteration, reflect values >0.6 to 0.6-(value-0.6), reflect values <-0.6 to -0.6-(value+0.6), (6) Apply sinusoidal shaping: output = sin(signal × 2) × 0.3 + signal × 0.7, (7) Optional normalize to peak 0.9. Key insight: Jitter/shimmer metrics (normally used for voice quality assessment) repurposed as creative control parameters. High perturbation = more aggressive processing. Adaptive to source material characteristics.
Quick start
- In Praat, select exactly one Sound object.
- Run script… →
Adaptive_Wave_Shaper.praat. - Choose Preset: Default (drive 2.0), Gentle Saturation, Aggressive Drive/Folds, Fold Emphasis, or Custom.
- If Custom: adjust Base_drive (distortion amount), Jitter_sensitivity (pitch response), Shimmer_sensitivity (amplitude response), Normalize (yes/no).
- Click OK — processing applies adaptive wave shaping, displays results in Info window, auto-plays.
Wave Shaping Theory
Fundamental Concepts
Nonlinear Transformation
Linear processing: Output proportional to input (gain, EQ, delay)
Nonlinear processing: Output related to input via curve/function (distortion, compression)
Harmonic generation:
- Linear processing preserves frequency content
- Nonlinear processing generates harmonics (multiples of input frequencies)
- Sine wave input → multiple sine waves output (fundamental + overtones)
- More extreme nonlinearity = more harmonics = richer/harsher timbre
Drive (Gain-Based Distortion)
Concept
Drive = pre-distortion gain boost
Effect on Spectrum
Low drive (1.0-1.5):
- Subtle saturation
- Low-order harmonics (2nd, 3rd)
- Warm, tube-like character
Medium drive (1.5-3.0):
- Moderate distortion
- Mid-order harmonics (2nd-6th)
- Crunchy, overdriven character
High drive (3.0-5.0):
- Heavy distortion
- High-order harmonics (all overtones)
- Harsh, fuzzy, aggressive character
Wave Folding
Concept
When signal exceeds threshold, reflect it back
Multiple Folds (Iterations)
Each fold iteration re-applies threshold check
Harmonic Effect
Wave folding adds upper harmonics:
- Each fold adds sharp discontinuities
- Discontinuities = high-frequency content
- Result: bright, metallic, bell-like timbre
- Classic Buchla/Serge modular sound
- Different from clipping (more musical, less harsh)
Sinusoidal Shaping
Formula
output = sin(signal × 2) × 0.3 + signal × 0.7
Perceptual Effect
Character:
- Smooth saturation
- Warmth without harshness
- Retains original dynamics (70% preservation)
- Adds richness without overwhelming
Jitter and Shimmer as Control
Jitter (Pitch Perturbation)
Definition: Cycle-to-cycle variation in fundamental frequency
Typical values:
- Stable tone: <1% (0.01)
- Normal voice: 0.5-1.5%
- Expressive/vibrato: 2-5%
- Irregular/rough: >5%
Control mapping:
Shimmer (Amplitude Perturbation)
Definition: Cycle-to-cycle variation in peak amplitude
Typical values:
- Stable tone: <3% (0.03)
- Normal voice: 2-5%
- Breathy/irregular: 5-10%
- Unstable: >10%
Control mapping:
Complete Processing Pipeline
Parameters & Presets
Preset Options
🎵 Default (drive 2.0)
Parameters: Base drive 2.0, Jitter sens 1.5, Shimmer sens 1.2
Character: Balanced distortion, moderate saturation
Best for: General use, guitars, synths, vocals
💫 Gentle Saturation
Parameters: Base drive 1.2, Jitter sens 1.0, Shimmer sens 0.8
Character: Subtle warmth, tape-like saturation
Best for: Acoustic instruments, vocals, subtle enhancement
🔥 Aggressive Drive/Folds
Parameters: Base drive 4.0, Jitter sens 2.0, Shimmer sens 1.8
Character: Heavy distortion, intense folding, aggressive
Best for: Experimental sound design, harsh textures, heavy processing
🌀 Fold Emphasis
Parameters: Base drive 2.5, Jitter sens 1.2, Shimmer sens 2.5
Character: Metallic folding, moderate drive, complex reflections
Best for: Bell tones, metallic percussion, Buchla-style sounds
Custom Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| Preset | option | Default | Choose preset or Custom |
| Base_drive | positive | 2.0 | Initial drive/gain amount (0.5-5.0 typical) |
| Jitter_sensitivity | positive | 1.5 | Pitch perturbation response scaling |
| Shimmer_sensitivity | positive | 1.2 | Amplitude perturbation response scaling |
| Normalize | boolean | yes | Scale output peak to 0.9 |
Parameter Details
Base_drive
Range: 0.5-5.0 (practical), unlimited (script constrains calculated value)
Default: 2.0
Effect:
- 0.5-1.0: Clean to minimal saturation
- 1.0-2.0: Subtle to moderate distortion (sweet spot)
- 2.0-3.5: Heavy distortion, crunchy
- 3.5-5.0: Extreme distortion, fuzzy
Interaction: Multiplied by jitter factor — actual drive varies per signal
Jitter_sensitivity
Range: 0.0-5.0 (typical 0.5-2.5)
Default: 1.5
Effect:
- 0.0: No jitter influence (static drive)
- 0.5-1.0: Subtle adaptation
- 1.0-2.0: Moderate adaptation (recommended)
- >2.0: Strong adaptation (can over-respond)
Formula impact: Higher sensitivity → drive increases more with jitter
Shimmer_sensitivity
Range: 0.0-5.0 (typical 0.5-3.0)
Default: 1.2
Effect:
- 0.0: No shimmer influence (1 fold always)
- 0.5-1.5: Subtle folding changes (1-2 folds typical)
- 1.5-2.5: Moderate folding (2-4 folds)
- >2.5: Heavy folding (4-8 folds possible)
Formula impact: Higher sensitivity → more fold iterations with shimmer
Normalize
Options: Yes (1) or No (0)
Default: Yes
Effect:
- Yes: Peak scales to 0.9 (prevents clipping, may reduce dynamics)
- No: Raw output (may clip, preserves relative levels)
Recommendation: Enable for safety, disable for manual gain staging
Calculated Output Values
Info window displays:
Applications
Voice Processing
Use case: Adaptive vocal saturation
Preset: Gentle Saturation or Default
Effect:
- Irregular/expressive moments get more distortion
- Stable passages stay cleaner
- Natural-sounding dynamic processing
- Adds character without over-processing
Guitar/Bass
Use case: Dynamic overdrive
Preset: Default or Aggressive Drive
Effect:
- Pick attack variations influence distortion
- Vibrato sections get more harmonics
- Responsive, player-sensitive tone
- Alternative to static pedal distortion
Synthesis
Use case: Harmonic enhancement
Preset: Fold Emphasis or Custom
Effect:
- Adds upper harmonics to simple waveforms
- Metallic, bell-like character
- Buchla/Serge-style wave folding
- Transforms sine → complex timbre
Sound Design
Use case: Experimental mangling
Preset: Aggressive Drive/Folds or Custom high settings
Effect:
- Extreme transformation of source material
- Unpredictable, organic results
- Harsh textures, industrial sounds
- Granular/glitchy artifacts with high folds
Mixing Applications
Comparison to Traditional Distortion
| Feature | Traditional | Adaptive Shaper |
|---|---|---|
| Parameter control |