Harmonic Resonance Processor — User Guide

Exponential harmonic processing: applies iterative bidirectional time-shifts with exponentially increasing offsets, weighted amplitude decay, creating metallic resonances and harmonic reverb textures.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel

What this does

This script creates harmonic resonance effects through iterative bidirectional time-shift processing with exponential scaling. Each iteration applies formula mixing forward and backward delays at harmonically-related intervals (base^iteration), with amplitude decay proportional to iteration depth. Result: metallic, resonant textures with harmonic overtone structure and reverberant tail.

Quick start

  1. Select one Sound object in Praat.
  2. Run script… → Load this harmonic processing script.
  3. Choose Preset: Subtle/Medium/Heavy/Extreme or Custom.
  4. If Custom: Set num_iterations (4-15), harmonic_base (1.5-6.0), decay_factor (0.4-0.85).
  5. Adjust Tail_duration (reverb length) and Fadeout_duration.
  6. Click OK — processing completes instantly, auto-plays result.
Quick tip: Start with Medium Harmonics preset — balanced resonance without overwhelming source. Subtle for gentle shimmer, Heavy/Extreme for radical metallic transformation.

How It Works

Exponential Harmonic Scaling

For each iteration k (1 to num_iterations): 1. Calculate shift factor: shiftFactor = harmonicBase ^ k Example: base=2.5, k=3 shiftFactor = 2.5³ = 15.625 2. Calculate delay offset: b = total_samples / shiftFactor Example: 44100 samples, factor=15.625 b = 44100 / 15.625 = 2822 samples (~64ms) 3. Apply bidirectional formula: output = (forward_delay - backward_delay) × (1/k) forward_delay = self[position + b] backward_delay = self[position - b/2] Weighting: 1/k (iteration 1 = 100%, iteration 7 = 14%) 4. Apply amplitude decay: output = output × (1 - k/iterations × decay_factor) Result: Exponentially increasing delays create harmonic series

Key Characteristics

Presets

PresetIterationsBase RangeDecayCharacter
Subtle Harmonics41.3-2.20.4Gentle shimmer, transparent
Medium Harmonics71.5-4.00.6Balanced resonance (recommended)
Heavy Harmonics102.0-4.80.75Dense metallic texture
Extreme Harmonics152.5-6.00.85Radical transformation, cascading

🎵 Medium Harmonics (Default)

Settings: 7 iterations, base 1.5-4.0, decay 0.6, tail 2s

Effect: Clear harmonic resonance, noticeable but musical

Best for: General use, adding harmonic richness without overwhelming

Parameters

ParameterTypeDefaultDescription
PresetchoiceCustomPreset configuration or manual
Tail_durationpositive2.0sSilent tail for reverb decay
num_iterationsnatural7Number of harmonic layers (4-15)
harmonic_base_min/maxpositive1.5 / 4.0Random base range (exponential factor)
use_fixed_basebooleannoUse fixed base instead of random
fixed_harmonic_basepositive2.5Fixed exponential base value
decay_factorpositive0.6Amplitude decay rate (0.4-0.85)
scale_peakpositive0.95Final peak normalization
Fadeout_durationpositive1.0sCosine fade at end
play_after_processingbooleanyesAuto-play result

Parameter Tuning

Harmonic Base (1.5-6.0):

Iterations (4-15):

Decay Factor (0.4-0.85):

Applications

Sound design:

Music production:

Best source material: Percussive sounds (bells, metallic hits), sustained tones with clear pitch, short impulsive sounds. Less effective: noise, very complex material.

Output

New Sound object: "originalname_harmonics"

Processing: Instant execution regardless of duration. Stereo sounds processed preserving channels. Original file preserved.