Crystalline Cascade (Quantum Flutter) — User Guide
Create shimmering, crystalline reverb tails using Poisson-process stochastic impulses, reverse-exponential envelopes, and triple-layer mixing for complex, organic textures.
What this does
This script creates quantum flutter reverb — a sophisticated multi-layer effect combining stochastic (random) impulse generation via Poisson processes, reverse-exponential amplitude envelopes, complex frequency modulation, and triple-layer mixing. The result: shimmering, crystalline, organic reverb tails that sound like cascading ice crystals, quantum particle decay, or complex acoustic reflections in impossible spaces. Unlike traditional reverb (simple exponential decay) or algorithmic delay (regular echoes), quantum flutter creates dense, random-yet-structured textures with evolving spectral content. The name reflects the quantum-mechanical inspiration: randomness with statistical regularity, like radioactive decay or photon emission.
Key Features:
- Poisson Process — Statistically random impulse timing (like radioactive decay)
- Reverse Exponential Growth — Impulses grow from silence, peak, then decay
- Complex FM Modulation — Nested sinusoidal modulation for shimmer
- Triple-Layer Mixing — Original + attenuated + convolved layers
- Stereo-Aware — Independent left/right processing with different parameters
- 4 Presets — Subtle, Medium, Heavy, Extreme flutter densities
Technical Implementation: (1) Extend input with silent tail (duration parameter) to allow reverb space, (2) Split stereo to L/R channels (process independently), (3) Create Poisson process: random point pattern with specified density (avg impulses per second), (4) Convert Poisson points to pulse train Sound, (5) Apply reverse-exponential envelope: base^((t-t_start)/(t_end-t_start)-1) — grows from near-zero to peak then decays, (6) Apply nested FM modulation: amplitude × (1 + depth × cos(2πft + nested_sin)), (7) Convolve modulated impulse train with input, (8) Mix three layers: (a) original × 1.0, (b) original × attenuation (0.7), (c) convolved × mix (0.35), (9) Peak normalize final output. Key insight: Poisson randomness + exponential growth + FM = complex, evolving texture impossible with simple delay/reverb algorithms. Triple mixing creates depth and richness.
Quick start
- In Praat, select exactly one Sound object (mono or stereo).
- Run script… →
Crystalline_Cascade.praat. - Choose preset: Subtle (light), Medium (balanced), Heavy (dense), Extreme (very dense).
- Or select Custom and adjust parameters manually.
- Click OK — script processes (10-30 seconds depending on length/density).
Stochastic Process Theory
⚛️ Quantum Inspiration
Quantum mechanics: Particles exhibit random behavior with statistical regularity
Radioactive decay: Atoms decay randomly, half-life predictable but exact timing unknown
Photon emission: Light quanta emitted stochastically from atoms
Audio parallel: "Quantum flutter" = statistically random impulses like particle events
Poisson Process Fundamentals
Mathematical Definition
Poisson process: Random point process where events occur independently with constant average rate λ (lambda)
Key Properties
1. Memoryless (Markov property):
- Probability of next event independent of previous events
- No "memory" of history
- Unlike periodic patterns (strongly dependent on past)
2. Stationary:
- Rate λ constant over time
- Statistical properties don't change
- Average density same throughout duration
3. Independent increments:
- Events in non-overlapping intervals independent
- Knowing events in [0,1] tells nothing about events in [1,2]
4. Exponentially distributed inter-event times:
- Time between consecutive events follows exponential distribution
- Most gaps short, occasional long gaps
- Never perfectly regular, never strongly clustered
Audio Application: Poisson Impulse Trains
Why Poisson for Reverb?
| Method | Character | Problems |
|---|---|---|
| Regular spacing | Periodic echoes | Comb filtering, metallic, unnatural |
| Pure random | Unpredictable | Clusters and gaps, inconsistent density |
| Poisson process | Natural randomness | None — optimal for organic texture |
Perceptual advantage:
- Sounds like complex natural reflections (room acoustics)
- No artificial periodicity or patterns
- Statistically regular but locally random
- Models actual acoustic scattering in rough surfaces
🎲 Poisson in Nature & Science
Physics: Radioactive decay, cosmic ray arrivals, Brownian motion
Biology: Neuron firing patterns, bacterial colony growth, mutation events
Astronomy: Photon detection, star distribution in galaxies
Engineering: Network packet arrivals, traffic flow, queue theory
Audio: Natural sound textures (rain, gravel, granular synthesis)
Reverse Exponential Envelope
Formula Breakdown
Envelope applied to impulse train:
Reverse Exponential Behavior
Traditional exponential decay: e^(-t) — starts loud, decays to silence
Reverse exponential growth: base^(t-1) — starts quiet, grows to peak, then decays
Why "reverse" creates appealing texture:
- Builds from silence — gentle onset, no jarring start
- Peak in middle — energy concentrated, not immediate
- Natural decay — still present but sounds organic
- Mimics acoustic resonance build-up in physical spaces
Effect of Base Parameter
| Base | Growth Rate | Character |
|---|---|---|
| 50-80 | Slow growth | Gradual build, extended texture |
| 100-120 | Moderate growth | Balanced build, musical |
| 140-160 | Fast growth | Quick onset, concentrated peak |
| >180 | Very fast growth | Abrupt, almost gate-like |
Complex FM Modulation
Full Modulation Formula
Modulation Components
1. Carrier frequency (60 Hz):
- Primary modulation rate — 60 oscillations per second
- Creates rapid amplitude flutter
- Human perception: shimmering, crystalline quality
2. Nested modulation (3 Hz):
- Slow variation of phase — 3 cycles per second
- Creates "wobble" in flutter pattern
- Adds organic complexity, prevents static shimmer
3. Modulation depth (0.6):
- Controls intensity of modulation
- 0.6 = amplitude varies ±60% around baseline
- Higher = more dramatic flutter, lower = subtler
Combined effect:
- Fast shimmer (60 Hz) with slow evolution (3 Hz)
- Never static — constantly changing character
- Sounds alive, organic, complex
- Similar to chorus/flanger but applied to impulse envelope
Triple-Layer Mixing Architecture
Layer Structure
Why Triple-Layer?
Layer 1 (Original):
- Preserves clarity and definition
- Maintains transients and attack
- Keeps source recognizable
Layer 2 (Attenuated):
- Adds body and fullness
- Creates smooth blend between dry and wet
- Prevents thin sound (common in heavy reverb)
Layer 3 (Convolved):
- Provides shimmer and space
- Creates quantum flutter effect
- Adds movement and complexity
Combined result:
- Depth without muddiness
- Space without loss of definition
- Complex texture without overwhelming source
Stereo Processing
Independent Channel Parameters
Left channel (from parameters):
- Poisson density = poisson_density parameter
- Pulse width = pulse_width parameter
- Pulse period = pulse_period parameter
- All modulation parameters as specified
Right channel (hardcoded variants):
- Poisson density = 850 (vs left's variable)
- Pulse width = 0.075 (vs left's variable)
- Pulse period = 1250 (vs left's variable)
- Exponential base = 115 (vs left's 120)
- Modulation depth = 0.55 (vs left's 0.6)
- Modulation frequency = 65 Hz (vs left's 60 Hz)
- Nested modulation phase offset (different)
Why Different L/R Parameters?
Decorrelation:
- Different Poisson realizations → independent random patterns
- Different modulation frequencies → phase drift between channels
- Creates stereo width without simple L/R delay
Natural stereo imaging:
- Real spaces have asymmetric reflections
- L/R decorrelation mimics acoustic reality
- Wider, more spacious image than mono→stereo copy
Shimmer complexity:
- L/R flutter patterns interfere → beating/panning effects
- Perceived movement in stereo field
- More interesting than static stereo reverb
Parameters & Presets
Preset Options
| Preset | Tail | Density | Character |
|---|---|---|---|
| Custom | User | User | Full manual control |
| Subtle Flutter | 1.5s | 500/s | Light shimmer, transparent |
| Medium Flutter | 2.0s | 800/s | Balanced, musical (default) |
| Heavy Flutter | 2.8s | 1100/s | Dense, lush ambience |
| Extreme Flutter | 4.0s | 1500/s | Very dense, experimental |
Core Parameters (Custom Mode)
| Parameter | Type | Default | Description |
|---|---|---|---|
| Preset | option | Custom | Choose preset or custom |
| tail_duration_seconds | positive | 2 | Reverb tail length |
| poisson_density | positive | 800 | Average impulses per second |
| pulse_width | positive | 0.08 | Impulse duration (fraction) |
| pulse_period | positive | 1200 | Internal pulse generation period |
| exponential_base | positive | 120 | Reverse-exponential growth rate |
| modulation_depth | positive | 0.6 | FM modulation intensity |
| modulation_frequency | positive | 60 | Flutter rate (Hz) |
| convolution_mix | positive | 0.35 | Wet/dry mix for convolved layer |
| layer2_amplitude | positive | 0.7 | Attenuated original level |
| scale_peak | positive | 0.88 | Peak normalization level |
| play_after_processing | boolean | yes | Auto-play result |
Parameter Details
tail_duration_seconds
Range: 0.5-10.0 seconds
Default: 2.0 seconds
Controls:
- Length of added reverb tail
- Output = input_duration + tail_duration
- Longer = more spacious, ambient
- Shorter = tighter, controlled
poisson_density
Range: 100-3000 (practical: 300-1500)
Default: 800 impulses/second
Controls: Average number of random impulses per second
Density effects:
- 300-500: Sparse, discrete impulses audible
- 600-1000: Moderate density, smooth flutter
- 1200-1500: Dense, almost continuous shimmer
- >2000: Very dense, may sound like noise
pulse_width
Range: 0.01-0.5
Default: 0.08 (8% of period)
Controls: Duration of each impulse relative to pulse_period
Effect:
- Smaller = sharper clicks, brighter
- Larger = smoother pulses, warmer