Chaotic Bloom — User Guide

Convolution-based reverberation using Poisson processes to create dense, shimmering, blooming ambiences with stereo imaging.

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 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:

What is Convolution Reverb? Convolution multiplies your audio signal with an impulse response (IR) — a recording or mathematical function representing how a space or effect responds to sound. Traditional convolution reverb uses actual room recordings (concert halls, chambers). This script generates synthetic IRs using Poisson processes, creating impossible acoustic spaces with characteristics unavailable in physical rooms — hence "chaotic bloom" rather than "room simulation."

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

  1. In Praat, select a Sound object (this processes existing audio).
  2. Run script…Chaotic_Bloom.praat.
  3. Choose Preset (start with "Default (balanced)").
  4. Click OK — script generates impulse response, convolves, plays result.
  5. For experimentation, choose "Custom" and adjust parameters.
Quick tip: Best results with dry, short sounds (percussion, plucks, vocals). The bloom effect works by diffusing transients into shimmering clouds. Already-reverberant sources can become muddy. Processing time depends on tail_duration (longer tail = longer convolution). 2-second tail typical, 3+ seconds can take 10-30 seconds to process. Watch console for progress.
Important: Must select Sound object before running. Script extends input by tail_duration, so 5-second input + 2-second tail = 7-second output. Very long inputs (>1 minute) with long tails (>3 seconds) can take significant processing time (minutes). For long sources, consider processing shorter segments or reducing tail length.

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

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

  1. Create Poisson process: Generate random event times over 6-second duration with density λ (e.g., 3000 events/sec)
  2. Convert to pulse train: Place impulses at Poisson event times
  3. Shape impulses: Each pulse has width (0.04 samples default) and amplitude (1.0)
  4. 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

2. 80^(-t/T) — Exponential Decay

3. (1 + 0.8×sin(2π×200×t²/T)) — Frequency-Swept Modulation

Why This Formula Creates "Bloom"

  1. Poisson events: Dense random timing (3000/sec) creates diffuse cloud
  2. Exponential decay: Bright start fades to ambience
  3. Frequency sweep: Adds temporal evolution — not static decay
  4. 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:

ChannelPoisson DensitySweep FrequencyDecay BasePanning Rate
Left3000 events/sec200 Hz802.0 Hz
Right3200 events/sec180 Hz751.8 Hz

Effect of differences:

Dynamic Panning

After convolution, signals are panned dynamically:

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.

Historical Context: Poisson-based reverberation was explored by Schroeder (1960s) and Moorer (1970s) in early digital reverb research. Schroeder's use of prime-number delay lengths mimics statistical irregularity of Poisson processes. Modern convolution reverb (1990s+) typically uses recorded IRs, but algorithmic IR generation (like this script) allows impossible acoustic characteristics — denser than physical spaces permit, with spectral evolution unavailable in static rooms. Curtis Roads discussed stochastic reverberation in "Computer Music Tutorial" (1996), connecting Poisson processes to acoustic diffusion.

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

ParameterType