Exponential Glide Up Effect — User Guide

Mathematical pitch rises: applies exponential curves for smooth, accelerating pitch glides with precise control over rise amount and steepness.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.1 (2025) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

What this does

This script implements exponential pitch glide up — a mathematical approach to creating smooth, accelerating pitch rises using exponential functions. Creates natural-sounding pitch glides that start gradually and accelerate toward the end, mimicking physical and perceptual acceleration patterns. Process analyzes source pitch, generates dense exponential curves, and resynthesizes audio with precisely controlled pitch rises. Result: smooth pitch transitions (gentle glides, dramatic sweeps, extreme rockets) defined by mathematical curves rather than manual automation.

Key Features:

What are exponential pitch glides? Traditional pitch effects: portamento (linear slides), vibrato (oscillation), pitch correction (static tuning). Exponential glides: mathematically-defined curves that create natural-sounding pitch acceleration. Advantages: (1) Natural perception: Exponential curves match human perception of acceleration. (2) Precision: Exact control over total rise and curve shape. (3) Smoothness: Continuous curves without abrupt changes. (4) Versatility: Applicable from subtle vocal enhancements to dramatic effects. (5) Reproducibility: Same parameters yield identical results. Use cases: Vocal processing (pitch rises), sound design (risers and transitions), music production (build-ups and effects), film/TV (dramatic moments), experimental music (pitch transformations).

Technical Implementation: (1) Pitch Analysis: Extract median pitch from source audio using Praat's pitch detection. (2) Dense Curve Generation: Create 200-2000 control points across duration for smooth transitions. (3) Exponential Calculation: Generate pitch curve using exponential rise formula with normalized time. (4) Steepness Control: Adjust curve shape from near-linear to highly exponential. (5) Frequency Conversion: Convert semitone shifts to frequency ratios using exponential pitch mapping. (6) Range Clamping: Ensure output frequencies stay within reasonable vocal ranges. (7) Resynthesis: Replace original pitch with exponential glide curve using overlap-add synthesis. (8) Output Processing: Cleanup and result selection.

Quick start

  1. In Praat, select exactly one Sound object (preferably monophonic pitched content).
  2. Run script…exponential_glide_up.praat.
  3. Choose preset from dropdown (Gentle Glide, Moderate Rise, etc.) or select "Manual" for custom parameters.
  4. Adjust semitones_rise (total pitch increase, typically 2-24 semitones).
  5. Set curve_steepness (acceleration rate, 1-8 for subtle to dramatic).
  6. Configure pitch analysis parameters (time_step, minimum_pitch, maximum_pitch).
  7. Enable play_after_processing to hear result immediately.
  8. Click OK — exponential glide applied, result named "originalname_glideUp".
Quick tip: Start with presets for immediate results — "Gentle Glide" for subtle vocal rises, "Moderate Rise" for typical portamento, "Dramatic Sweep" for build-ups, "Extreme Rocket" for special effects. Use Manual mode for precise control. Lower semitones_rise (2-6) for subtle expression, moderate (7-12) for musical glides, high (13-24) for dramatic effects. Lower curve_steepness (1-3) for gradual acceleration, higher (4-8) for quick, dramatic rises. Processing time depends on audio length (typically 5-30 seconds).
Important: WORKS BEST WITH PITCHED CONTENT — designed for monophonic sources (vocals, instruments). Polyphonic or noisy audio may produce unpredictable results. Pitch detection critical — ensure minimum_pitch and maximum_pitch brackets the actual pitch range of your audio. Very high semitones_rise (>18) can create extreme pitch variations that may sound artificial or cause artifacts. The effect replaces original pitch contour completely — original pitch variations are replaced by exponential rise. Very short audio files (<0.5s) may not have sufficient time for smooth glides. Enable keep_intermediate_objects for debugging if needed.

Exponential Glide Theory

Exponential Functions

Mathematical Foundation

Exponential rise formula:

General exponential form: f(u) = 1 + A * (1 - exp(-k * u)) / (1 - exp(-k)) Where: u = normalized time (0 to 1) A = total amplitude factor k = steepness parameter (curve_steepness) exp() = exponential function Applied to pitch glides: pitch_factor = 1 + (semitones_rise / 12) * (1 - exp(-curve_steepness * u)) / (1 - exp(-curve_steepness)) Special case (linear fallback): If curve_steepness ≈ 0: pitch_factor = 1 + (semitones_rise / 12) * u Frequency conversion: new_f0 = median_f0 * (2 ^ (semitones_shift / 12)) semitones_shift = (pitch_factor - 1) * 12

Why Exponential Curves?

Advantages of exponential pitch glides:

Vs other pitch transitions:

Curve Steepness Control

Steepness Parameter Effects

How curve_steepness affects glide shape:

curve_steepness values and effects: k = 0.5: Very gradual, almost linear rise - Slow initial acceleration - Gentle throughout k = 1.0: Moderate exponential rise - Noticeable acceleration - Natural-sounding k = 2.0: Clear exponential character - Significant acceleration - Dramatic but smooth k = 4.0: Strong exponential rise - Quick initial rise, rapid acceleration - Very dramatic k = 8.0: Extreme exponential - Nearly instant rise, then gradual - Special effect character Mathematical insight: As k → 0: approaches linear (1 - e^(-ku)) ≈ k*u As k → ∞: approaches step function

Why Steepness Control Matters

Perceptual and musical significance:

📈 Curve Visualization

Same semitones_rise (12), different steepness:

k=1: Gradual rise throughout, 50% complete at ~70% time

k=3: Clear acceleration, 50% complete at ~50% time

k=6: Dramatic rise, 50% complete at ~30% time

Effect: Different steepness = different emotional character

Pitch Mapping Mathematics

Semitone to Frequency Conversion

Exponential pitch relationship:

Equal temperament tuning: frequency_ratio = 2 ^ (semitones / 12) Where: semitones = pitch interval in semitones frequency_ratio = multiplication factor Examples: +12 semitones (octave): ratio = 2^(12/12) = 2 +7 semitones (fifth): ratio = 2^(7/12) ≈ 1.498 +1 semitone: ratio = 2^(1/12) ≈ 1.059 Application in script: total_semitones = (pitch_factor - 1) * 12 new_f0 = median_f0 * (2 ^ (total_semitones / 12)) Why exponential? Human pitch perception is logarithmic Equal semitone steps = equal ratio steps Exponential mapping preserves musical intervals

Why Exponential Pitch Mapping?

Perceptual and musical advantages:

Linear vs Exponential pitch mapping:

Linear frequency increase: +100 Hz at 100 Hz = +12 semitones (octave) +100 Hz at 1000 Hz = +1.7 semitones (minor second) - Perceptually inconsistent - Musically unusable

Exponential (semitone) increase: +12 semitones at any frequency = octave +7 semitones at any frequency = perfect fifth - Perceptually consistent - Musically meaningful

Exponential mapping preserves musical relationships across different starting pitches

Dense Point Sampling

Smooth Curve Generation

Adaptive point density algorithm:

Point calculation: npoints = round(duration / 0.01) Constrained: 200 ≤ npoints ≤ 2000 Where: duration = audio length in seconds 0.01 = target point spacing (10 ms) 200 = minimum points (for very short audio) 2000 = maximum points (for very long audio) Example: 3 second audio npoints = round(3 / 0.01) = 300 points Example: 25 second audio npoints = round(25 / 0.01) = 2500 → clamped to 2000 Why dense sampling? - Prevents stair-stepping in pitch - Ensures smooth exponential curves - Maintains natural vocal quality - Prevents audible artifacts

Why Dense Sampling Matters

Audio quality considerations:

Sparse sampling problems: - Audible pitch steps (stair-stepping) - Rough, unnatural transitions - Potential artifacts in resynthesis - Mechanical, synthetic sound Dense sampling benefits: - Smooth, continuous pitch motion - Natural vocal/instrument quality - Clean resynthesis - Professional audio quality Trade-off: Processing time vs quality - 200 points: Fast, adequate for short audio - 2000 points: Slower, optimal for long audio - Adaptive algorithm balances both

Complete Processing Pipeline

SETUP: Select Sound object (monophonic pitched content) Choose preset or manual parameters Set semitones_rise, curve_steepness PITCH ANALYSIS: Copy original sound → "originalname_tmp" To Manipulation: time_step, minimum_pitch, maximum_pitch Extract median pitch (reference frequency) EXPONENTIAL CURVE GENERATION: Create PitchTier with 200-2000 points FOR each point (0 to npoints-1): Calculate normalized time u = position/duration Compute exponential pitch factor Convert to frequency using semitone mapping Clamp to min/max pitch range Add point to PitchTier RESYNTHESIS: Replace pitch tier in Manipulation Get resynthesis (overlap-add) Rename: "originalname_glideUp" OUTPUT PROCESSING: Cleanup intermediate objects Select final result Optional: Play result OUTPUT: "originalname_glideUp" with exponential pitch rise

Glide Presets

Preset Overview

🎛️ Character-Based Configuration

Philosophy: Each preset captures specific musical/emotional character through glide parameters

Parameters: Semitone rise and steepness optimized for each character

Character: Immediate expressive results without manual tuning

Best for: Quick results, specific effects, production workflow

Built-in presets:

PresetSemitones RiseCurve SteepnessCharacterTypical Use
Gentle Glide5 st2.0Subtle, natural riseVocal expression, subtle transitions
Moderate Rise8 st3.0Musical portamentoTypical pitch slides, musical phrases
Dramatic Sweep12 st4.0Exciting build-upDramatic rises, tension building
Extreme Rocket24 st6.0Special effect riseExtreme effects, risers, impacts
Slow Build6 st1.0Gradual tensionSlow crescendos, atmospheric builds
Quick Jump4 st8.0Instant then gradualQuick transitions, jump effects
Cinematic Rise18 st2.5Epic, sweepingFilm scores, dramatic moments

Preset Applications

🎵 Musical Expression Presets

Gentle Glide: Natural vocal inflection, subtle pitch rises

Moderate Rise: Traditional portamento, musical phrase endings

Slow Build: Atmospheric tension, gradual emotional build

🎭 Dramatic Effect Presets

Dramatic Sweep: Build-ups, tension before drops

Cinematic Rise: Film/TV drama, epic moments

Extreme Rocket: Special effects, risers, impacts

⚡ Technical Effect Presets

Quick Jump: Instant transitions, percussive pitch effects

Extreme Rocket: Sound design risers, special effects

Parameters

Glide Parameters

ParameterTypeDefaultRangeDescription
presetoptionManual8 optionsGlide character preset or manual configuration
semitones_risepositive71-48Total pitch rise in semitones
curve_steepnesspositive30.1-10Exponential steepness (higher = faster initial rise)

Pitch Analysis Parameters

ParameterTypeDefaultRangeDescription
time_steppositive0.0050.001-0.05Pitch analysis time step (seconds)
minimum_pitchpositive5030-200Minimum expected pitch (Hz)
maximum_pitchpositive900200-2000Maximum expected pitch (Hz)

Output Parameters

ParameterTypeDefaultDescription
play_after_processingbooleanyesAuto-play result after processing
keep_intermediate_objectsbooleannoKeep temporary objects for debugging

Applications

Vocal Production

Use case: Adding expressive pitch rises to singing vocals

Technique: Use Gentle Glide or Moderate Rise presets

Example: Apply to phrase endings for natural pitch lift

Electronic Music Production

Use case: Creating build-ups and risers

Technique: Use Dramatic Sweep or Extreme Rocket presets

Example: Process synth sounds for tension before drops

Sound Design

Use case: Creating special pitch effects

Technique: Extreme parameter settings or multiple processing passes

Workflow:

Film & Game Audio

Use case: Dramatic pitch effects for media

Advantages:

Example: Processing sounds for dramatic moments in films or games

Instrument Processing

Use case: Adding portamento to monophonic instruments

Technique: Moderate Rise with appropriate steepness

Application: Synth leads, wind instruments, string instruments

Practical Workflow Examples

🎤 Vocal Phrase Ending (Music Production)

Goal: Add natural pitch rise to vocal phrase endings

Settings:

  • Preset: Gentle Glide
  • semitones_rise: 3-6 st
  • curve_steepness: 1.5-2.5

Result: Natural-sounding vocal inflection at phrase ends

🎧 Build-Up Riser (Electronic Music)

Goal: Create tension-building riser effect

Settings:

  • Preset: Dramatic Sweep
  • semitones_rise: 12-18 st
  • curve_steepness: 3-5

Result: Exciting build-up before drop or transition

🎬 Cinematic Impact (Film Scoring)

Goal: Create epic, sweeping pitch rise

Settings:

  • Preset: Cinematic Rise
  • semitones_rise: 18-24 st
  • curve_steepness: 2-3

Result: Dramatic pitch sweep for epic moments

Advanced Techniques

Creative parameter combinations:
  • Small rise + high steepness: Quick, subtle inflection
  • Large rise + low steepness: Gradual, dramatic transformation
  • Extreme rise + medium steepness: Balanced dramatic effect
  • Multiple passes: Layer different glides for complex effects

Experiment with non-standard combinations for unique effects

Source material considerations:
  • Vocals: Use moderate settings for natural results
  • Synths: Can handle more extreme parameters
  • Percussion: Quick jumps work well for pitched percussion
  • Ambient sounds: Slow builds create atmospheric tension

Troubleshooting Common Issues

Problem: No pitch detected/effect doesn't work
Cause: Pitch outside min/max range or non-pitched content
Solution: Adjust minimum_pitch and maximum_pitch brackets, use pitched content
Problem: Artificial or robotic sounding result
Cause: Parameters too extreme for source material
Solution: Use more subtle settings, ensure natural source audio
Problem: Glide doesn't complete before audio ends
Cause: Audio too short for selected steepness
Solution: Use higher steepness or longer source audio
Problem: Artifacts or distortion in output
Cause: Extreme pitch variations or poor source quality
Solution: Reduce semitones_rise, use cleaner source audio

Technical Deep Dive

Exponential Mathematics

Curve Normalization

Normalized exponential function:

General exponential rise: f(u) = 1 - exp(-k * u) Problem: f(1) = 1 - exp(-k), not 1 Solution: Normalize to ensure f(1) = 1 Normalized form: f(u) = (1 - exp(-k * u)) / (1 - exp(-k)) Properties: f(0) = 0 f(1) = 1 Shape controlled by k (curve_steepness) Application to pitch: pitch_factor = 1 + (semitones_rise / 12) * f(u) This ensures exact semitones_rise at end

Special Cases and Limits

Behavior at extreme steepness values:

As k → 0 (linear limit): (1 - exp(-k*u)) / (1 - exp(-k)) ≈ (k*u) / k = u Result: Linear rise from 0 to 1 As k → ∞ (step function limit): f(u) ≈ 0 for u < 1, f(1) = 1 Result: Instant jump at end Numerical stability: For very small k (< 0.001), use linear approximation Prevents division by very small numbers Practical range: k = 0.1: Very gradual, almost linear k = 10: Very steep, nearly instant rise Most musical: k = 1-6

Pitch Range Management

Frequency Clamping Algorithm

Range protection system:

Clamping logic: IF new_f0 < minimum_pitch THEN new_f0 = minimum_pitch IF new_f0 > maximum_pitch THEN new_f0 = maximum_pitch Why clamp? - Prevents unnaturally low frequencies (artifacts) - Prevents unnaturally high frequencies (aliasing) - Maintains reasonable vocal/instrument ranges Typical ranges: - Male speech: 85-180 Hz - Female speech: 165-255 Hz - Singing: 80-1000 Hz - Instruments: 20-4000 Hz Default settings: minimum_pitch = 50 Hz (safe for most content) maximum_pitch = 900 Hz (safe for most vocals)