Spectral Echo Cascade — User Guide

Fibonacci-based delay cascade: applies iterative multi-tap delays with Fibonacci-progression timing, exponential decay, and cosine-modulated spectral coloring for organic, mathematical echo patterns.

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

What this does

This script creates cascading echo effects using Fibonacci sequence for delay timing (1, 1, 2, 3, 5, 8, 13...), exponential amplitude decay per level, and cosine-modulated spectral coloring that varies across the sample. Result: organic-sounding delays with mathematical structure and frequency-dependent intensity variations.

Quick start

  1. Select one Sound object in Praat.
  2. Run script… → Load Spectral Echo Cascade script.
  3. Choose Preset: Default/Gentle/Dense/Long Tails or Custom.
  4. If Custom: Set cascade_levels (4-8), decay_rate (0.7-0.9), delay_base (4-9).
  5. Adjust coloring_center (0.5) and coloring_depth (0.5) for spectral modulation.
  6. Click OK — processing instant, auto-plays result.
Quick tip: Start with Default preset (6 levels, 0.75 decay) for balanced cascade. Gentle Echoes for subtle effect, Dense Cluster for complex textures.

How It Works

Fibonacci Delay Progression

Fibonacci Sequence: 1, 1, 2, 3, 5, 8, 13, 21, 34...
Each number = sum of previous two

Delay calculation:
delayShift = samples / (delay_base + fibonacci_number)

Example: 44100 samples, delay_base=5
Level 1: 44100 / (5+1) = 7350 samples (~167ms)
Level 2: 44100 / (5+1) = 7350 samples
Level 3: 44100 / (5+2) = 6300 samples (~143ms)
Level 4: 44100 / (5+3) = 5512 samples (~125ms)
Level 5: 44100 / (5+5) = 4410 samples (~100ms)
Level 6: 44100 / (5+8) = 3392 samples (~77ms)

Result: Delays get progressively shorter, creating accelerating echo pattern

Processing Formula

For each cascade level: output = input + delayed_input × decay × spectral_coloring Where: delayed_input = self[position - delayShift] decay = decay_rate ^ level (exponential decay) spectral_coloring = center + depth × cos(level × 2π × position/total) Example: Level 3, decay_rate=0.75 decay = 0.75³ = 0.422 (42% amplitude) Spectral coloring oscillates: Creates frequency-dependent intensity Varies across the sound's timeline Center controls baseline, depth controls variation

Spectral Coloring

Cosine modulation creates frequency-dependent echoes:

Presets

PresetLevelsDecayBaseCharacter
Default (balanced)60.755Balanced cascading echoes
Gentle Echoes40.857Subtle, smooth decay
Dense Cluster80.74Many echoes, tight spacing
Long Tails70.99Extended reverberant decay

🌊 Default (Balanced)

Settings: 6 levels, decay 0.75, base 5, coloring center/depth 0.5

Effect: Natural-sounding cascade with organic decay pattern

Best for: General use, musical applications, adding depth

Parameters

ParameterTypeDefaultDescription
PresetchoiceDefaultPreset configuration
cascade_levelsnatural6Number of echo layers (4-8)
decay_ratepositive0.75Exponential decay per level (0.7-0.9)
delay_basepositive5Base offset for Fibonacci delays (4-9)
coloring_centerpositive0.5Baseline spectral intensity
coloring_depthpositive0.5Spectral modulation amount (0-1)
scale_peakpositive0.88Final peak normalization
play_after_processingbooleanyesAuto-play result

Parameter Tuning

Cascade levels (4-8):

Decay rate (0.7-0.9):

Delay base (4-9):

Spectral coloring:

Applications

Music production:

Sound design:

Why Fibonacci? Creates naturally pleasing delay patterns. Ratios approximate golden ratio (1.618...) which appears throughout nature. Results in organic-sounding, non-mechanical echo spacing.

Output

Modified Sound object: "soundObj" (overwrites working copy)

Processing: Instant execution. Each cascade level adds delays iteratively. Spectral coloring creates frequency-dependent intensity variations throughout the sound.