Chaotic Bloom — User Guide
Convolution-based reverberation using Poisson processes to create dense, shimmering, blooming ambiences with stereo imaging.
What this does
This script creates chaotic bloom reverberation using convolution with impulse responses generated from Poisson processes. Unlike traditional reverb (which simulates room acoustics) or the Cascading Echoes script (which uses iterative delays), Chaotic Bloom convolves your audio with a mathematically-generated "bloom" impulse — a dense cloud of randomized events that creates shimmering, diffuse, otherworldly reverberation. The result "blooms" outward from the source like light diffracting through a crystal.
Key Features:
- Poisson Process Generation — Random event timing following natural statistical distribution
- Convolution Reverb — Mathematically precise impulse response processing
- Complex Modulation — Exponential decay, sinusoidal envelopes, frequency sweeps
- Stereo Imaging — Independent L/R processing with dynamic panning
- 4 Presets — Dense bloom, sparse bloom, wide stereo shimmer, plus custom
- Shimmer Quality — Unique spectral animation through time-varying modulation
Technical Implementation: (1) Create Poisson point process (random event times with density λ events/sec), (2) Convert to pulse train (impulses at Poisson event times), (3) Apply complex modulation: amplitude envelope = sin²(πt/T) × 80^(-t/T) × (1 + 0.8×sin(2π×200×t²/T)) — combines quadratic envelope, exponential decay, and frequency-swept modulation, (4) Convolve input sound with modulated pulse train, (5) Mix original + convolved (mix_amplitude), (6) For stereo: process L/R independently with different Poisson densities (3000 vs 3200 events/sec), then apply complementary panning (sin vs cos modulation at different rates), (7) Peak normalize to 0.85. Convolution implemented via Praat's Convolve command (multiplication in frequency domain via FFT). Processing time proportional to input_duration × IR_duration.
Quick start
- In Praat, select a Sound object (this processes existing audio).
- Run script… →
Chaotic_Bloom.praat. - Choose Preset (start with "Default (balanced)").
- Click OK — script generates impulse response, convolves, plays result.
- For experimentation, choose "Custom" and adjust parameters.
Convolution & Poisson Process Theory
🌸 The "Bloom" Metaphor
Input sound: Seed or spark
Poisson process: Random crystalline structure
Convolution: Sound propagates through structure, diffracting into bloom
Result: Dense cloud of reflections that "blossom" from original, shimmering and evolving
Convolution Mathematics
Convolution is the fundamental operation in reverb, filters, and many audio effects. Mathematical definition:
(f ✱ g)[n] = Σ f[k] × g[n - k]
For audio: each output sample is weighted sum of input samples with impulse response.
Convolution Properties
- Linear: Convolution is linear time-invariant (LTI) system
- Commutative: f ✱ g = g ✱ f (can swap input and IR)
- Time-shifting: Shifting input shifts output by same amount
- Duration: Output length = input_length + IR_length - 1
- Reverb interpretation: Each input sample generates copy of IR; all copies sum
Why Convolution for Reverb?
Physical rooms have impulse responses — tap your hands in a hall, hear the decay. Record that decay, convolve with any sound → sound "placed in" that hall. This script: instead of recording real rooms, generates mathematical IRs with characteristics impossible in physical spaces.
🎲 Poisson Process
Definition: Random point process where events occur independently at constant average rate λ
Key property: Inter-arrival times follow exponential distribution
Probability: P(N(t) = k) = (λt)^k × e^(-λt) / k!
Parameters: λ = average event rate (events per unit time)
Poisson Process in Audio
Why Poisson for reverb? Poisson processes model random arrivals — perfect for diffuse reflections in complex spaces. Natural reverberation in irregular spaces (forests, caves, ruins) follows Poisson-like statistics.
Script Implementation
- Create Poisson process: Generate random event times over 6-second duration with density λ (e.g., 3000 events/sec)
- Convert to pulse train: Place impulses at Poisson event times
- Shape impulses: Each pulse has width (0.04 samples default) and amplitude (1.0)
- Apply modulation envelope: Complex formula shapes the impulse response over time
The Modulation Formula
The impulse response is shaped by:
IR(t) = sin²(πt/T) × 80^(-t/T) × (1 + 0.8×sin(2π×200×t²/T))
Component breakdown:
1. sin²(πt/T) — Raised Sine Envelope
- Range: 0 to 1 (smooth fade in/out)
- Effect: Eliminates clicks at start/end, creates gradual bloom onset
- Shape: Gentle rise, sustain, gentle fall
2. 80^(-t/T) — Exponential Decay
- Base 80: Very rapid initial decay
- Effect: Early reflections strong, tail fades quickly
- Physical analog: Energy absorption in highly diffusive space
- At t=T: Amplitude reduced to 1/80 ≈ 1.25% of initial
3. (1 + 0.8×sin(2π×200×t²/T)) — Frequency-Swept Modulation
- Frequency: 200×(t/T) — starts at 0 Hz, increases to 200 Hz
- Quadratic phase: t² term creates accelerating frequency sweep (chirp)
- Amplitude: ±80% modulation depth
- Effect: Creates shimmer — spectral animation as bloom evolves
- Perceptual result: Sound doesn't just decay, it transforms spectrally
Why This Formula Creates "Bloom"
- Poisson events: Dense random timing (3000/sec) creates diffuse cloud
- Exponential decay: Bright start fades to ambience
- Frequency sweep: Adds temporal evolution — not static decay
- Combination: Thousands of modulated impulses convolve with input, creating complex interference patterns that shimmer and bloom
Stereo Processing
Stereo version processes L/R independently with different parameters:
| Channel | Poisson Density | Sweep Frequency | Decay Base | Panning Rate |
|---|---|---|---|---|
| Left | 3000 events/sec | 200 Hz | 80 | 2.0 Hz |
| Right | 3200 events/sec | 180 Hz | 75 | 1.8 Hz |
Effect of differences:
- Density difference (200 events/sec): R slightly denser → brighter bloom
- Sweep difference (20 Hz): Different spectral evolution L vs R
- Decay difference (base 80 vs 75): Right fades slightly slower
- Panning difference (2.0 vs 1.8 Hz): Asynchronous spatial motion
Dynamic Panning
After convolution, signals are panned dynamically:
- Left signal: L_out = signal × (0.5 + 0.5×sin(2π×2.0t)), R_out = signal × (0.5 - 0.5×sin(2π×2.0t))
- Right signal: L_out = signal × (0.5 - 0.5×sin(2π×1.8t)), R_out = signal × (0.5 + 0.5×sin(2π×1.8t))
Creates complementary rotation — as one signal moves left, other moves right, but at slightly different rates (2.0 vs 1.8 Hz) creating complex spatial patterns.
Presets (4 Effect Types)
1. Default (balanced) Versatile
Tail duration: 2 seconds
Poisson density: 3000 events/second
Pulse parameters: Amplitude 1.0, width 0.04, period 2500
Mix amplitude: 0.4 (40% wet, 60% dry)
Scale peak: 0.85
Character: Balanced diffusion, moderate density, natural bloom
Impulse Response Analysis:
- Event density: 3000 events/sec over 6 seconds = 18,000 total impulses
- Average spacing: 1/3000 sec ≈ 0.33 ms between events
- Initial bloom: sin² envelope creates gradual onset over ~0.5 seconds
- Decay time: 80^(-1) reached at full duration (T) = very fast decay
- Sweep range: 0-200 Hz frequency modulation across duration
Sonic characteristics:
- Dense but not overwhelming reflection pattern
- Shimmering quality from frequency sweep
- Natural sense of space without being "room-like"
- Retains source intelligibility (40% mix preserves clarity)
Use cases:
- General-purpose ambient reverb
- Vocal enhancement (adds air without washing out)
- Percussion (adds shimmer to transients)
- Synth pads (creates movement and depth)
- When you want "otherworldly" but not extreme
Best with: Almost any material — vocals, percussion, melodic instruments, synths. Good starting point. 2-second tail appropriate for most contexts without becoming overwhelming.
2. Dense Bloom Maximum
Tail duration: 3 seconds (50% longer)
Poisson density: 4500 events/second (50% denser)
Pulse parameters: Amplitude 1.1, width 0.05, period 2200
Mix amplitude: 0.5 (50% wet, 50% dry)
Scale peak: 0.85
Character: Very dense, thick bloom, maximum diffusion, wall-of-sound quality
Impulse Response Analysis:
- Event density: 4500 events/sec × 6 sec = 27,000 impulses (50% more than Default)
- Average spacing: 0.22 ms — approaching perceptual fusion threshold
- Longer tail: 3 seconds allows more complete evolution
- Higher amplitude: 1.1× pulse amplitude = brighter initial bloom
- Wider pulses: 0.05 vs 0.04 = slightly broader spectral response
Sonic characteristics:
- Extremely dense reflection field — continuous shimmer
- Source material becomes "embedded" in bloom
- Long tail sustains ambience well beyond source
- 50/50 mix means wet signal as prominent as dry
- Can obscure transients — smooths everything
Use cases:
- Ambient music (Brian Eno-style atmospheres)
- Shoegaze/dream-pop textures
- Cinematic soundscapes
- Creating "impossible spaces" (denser than physical rooms)
- When source material should merge with reverb, not sit on top
Caution: Very dense — can make mix muddy if overused. Best on sparse arrangements or as special effect. Not suitable for rhythm-critical material (drums, bass) unless muddiness desired. Processing time longer due to 3-second tail.
Best with: Synth pads, vocals (for ethereal quality), guitar feedback, sparse melodic material. Avoid on full mixes or busy arrangements.
3. Sparse Bloom Defined
Tail duration: 1.5 seconds (25% shorter)
Poisson density: 1800 events/second (40% less dense)
Pulse parameters: Amplitude 0.9, width 0.03, period 2800
Mix amplitude: 0.3 (30% wet, 70% dry)
Scale peak: 0.85
Character: Light, airy, transparent bloom — source clarity preserved
Impulse Response Analysis:
- Event density: 1800 events/sec × 6 sec = 10,800 impulses (40% of Dense Bloom)
- Average spacing: 0.56 ms — individual reflections more distinct
- Shorter tail: 1.5 seconds = tight, controlled ambience
- Lower amplitude: 0.9× = gentler bloom
- Narrower pulses: 0.03 = sharper transients, less spectral smearing
Sonic characteristics:
- Transparent, glass-like quality
- Source material clearly audible through bloom
- Reflections heard as individual sparkles rather than dense cloud
- 30% mix keeps effect subtle and supportive
- Transients preserved — good for rhythmic material
Use cases:
- Adding shimmer without washing out source
- Percussion (adds sparkle while keeping definition)
- Vocals in dense mixes (needs to cut through)
- When reverb should be felt, not heard prominently
- Tight productions requiring clarity
- Pop/rock where reverb is accent, not feature
Best with: Rhythmic material, full mixes, anything needing clarity. Drums, bass, lead vocals, plucked instruments. Fast processing time due to 1.5-second tail.
4. Wide Stereo Shimmer Spatial
Tail duration: 2.5 seconds
Poisson density: 3200 events/second
Pulse parameters: Amplitude 1.0, width 0.035, period 2600
Mix amplitude: 0.35 (35% wet, 65% dry)
Scale peak: 0.85
Character: Emphasis on stereo width and spatial movement, shimmer-focused
Impulse Response Analysis:
- Event density: 3200 events/sec (slightly denser than Default)
- Longer tail: 2.5 seconds allows spatial patterns to fully develop
- Moderate mix: 35% balances presence with clarity
- L/R differences: Enhanced stereo decorrelation (see Stereo Processing section)
Sonic characteristics:
- Extreme stereo width: Bloom spreads across entire stereo field
- Spatial animation: Dynamic panning creates movement
- Shimmer emphasis: Spectral sweep modulation more noticeable
- Three-dimensional quality: Sound appears to come from multiple locations
- Headphone-optimized: Best experienced on headphones or near-field monitors
Stereo processing specifics:
- L: Poisson 3000/sec, sweep 200 Hz, decay base 80, pan 2.0 Hz
- R: Poisson 3200/sec, sweep 180 Hz, decay base 75, pan 1.8 Hz
- Complementary panning (when L moves right, R moves left)
- Slightly different rates (2.0 vs 1.8 Hz) = complex Lissajous-like patterns
Use cases:
- Headphone mixes (immersive experience)
- Electronic music production (spatial effects)
- Sound design (otherworldly spaces)
- Psychedelic/experimental music
- When stereo width is creative goal
- Creating "bigger than room" impression
Caution: Poor mono compatibility — stereo differences cause phase issues when summed. Test in mono if broadcast/phone playback required. Spatial movement may be distracting in some contexts.
Best with: Mono sources that benefit from spatialization (synth leads, vocals, mono synths). Less effective on already-wide stereo sources. Ideal for centered material needing width.
Parameters (Custom Mode)
Core Settings
| Parameter | Type |
|---|