Entropy-Modulated Dynamic Reverb — User Guide

Offline adaptive convolution reverb that measures short-time spectral entropy and uses it to blend two stochastic IRs and control a time-varying wet amount.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 0.4.1 (2026) License: MIT License Repo: Praat AudioTools
Contents:

What this does

Entropy-Modulated Dynamic Reverb analyzes short-time spectral entropy from the selected Sound, smooths that control curve, creates two random-noise impulse responses, convolves the source with both IRs, and continuously crossfades between the two reverberated signals. The same entropy curve also drives a dynamic wet amount. A second, global Wet_dry_percent then blends that adaptive result with the dry signal.

Offline, content-driven control: this is not real-time processing. The source is analyzed first, then the complete reverb output is rendered.

What is spectral entropy?

Spectral entropy describes how concentrated or spread the spectral power is inside each analysis frame. The script treats the normalized power spectrum as a probability distribution:

p[k] = power[k] / Σ power
H = −Σ p[k] log2(p[k])
Hnorm = H / log2(N)

A spectrum dominated by a few bins tends toward lower entropy; a flatter distribution tends toward higher entropy. The script uses the value as a control descriptor, not as a perceptual classification guarantee.

What is convolution reverb?

An impulse response (IR) describes how an effect responds to an impulse. Convolution applies that response to every sample of the source and sums the shifted copies. Measured convolution reverb uses an IR recorded in a physical space; this tool instead generates two synthetic stochastic IRs from Gaussian noise and exponential amplitude envelopes.

Analysis & control mapping

  1. Speed mode: Full Quality analyzes at the original sample rate; Balanced downsamples analysis to 16 kHz when the source rate is higher; Fast uses 8 kHz. Rendering/convolution remains at the original sample rate.
  2. Spectrogram: Gaussian window, user window and hop, fixed 20 Hz frequency step, and maximum analysis frequency min(3000 Hz, analysis Nyquist).
  3. Entropy: computed from power in every spectrum slice and normalized by log2(number of bins). Very small probabilities (≤ 1e−7) are ignored.
  4. Smoothing: y[n] = alpha × x[n] + (1−alpha) × y[n−1]. Larger alpha follows changes more quickly.
  5. Control signal: the smoothed frame values are converted to a mono step-held control Sound. The same control is used across every output channel.

Two mappings

The dark/bright crossfade is always dark × (1−entropy) + bright × entropy. Invert_mapping does not reverse that crossfade; it only reverses how entropy maps to the dynamic wet amount:

normal: wet = minWet + (1−entropy) × (maxWet−minWet)
inverted: wet = minWet + entropy × (maxWet−minWet)

Dark & bright IRs

Both IRs are mono Gaussian-noise signals generated at the original sample rate. Each is shaped only by broadband exponential amplitude decay and then peak-normalized to 0.9:

dark(t) = noise × exp[−t × (5 + 10·Damping_dark) / Reverb_time_dark]
bright(t) = noise × exp[−t × (8 + 3·Damping_bright) / Reverb_time_bright]
Important: despite the GUI term Damping, this version does not apply a low-pass or frequency-dependent damping filter. The damping values only increase the broadband exponential decay rate. Likewise Reverb_time_*_s is the IR object duration and a decay-scaling parameter; it is not a measured or guaranteed RT60.

The two convolutions are each independently peak-normalized to 0.95 before adaptive mixing. Their random Gaussian excitation has no user seed, so repeated runs can differ.

Presets

PresetWindow / hopαDark: time / dampingBright: time / dampingDynamic wet min–max
Subtle Reactive30 / 30 ms0.201.8 s / 0.700.8 s / 0.250.15–0.60
Medium Reactive25 / 25 ms0.152.5 s / 0.801.0 s / 0.300.10–0.90
Heavy Reactive20 / 20 ms0.103.5 s / 0.851.2 s / 0.350.20–0.95
Extreme Reactive15 / 15 ms0.084.5 s / 0.900.6 s / 0.200.05–1.00
CustomUses the form values.
Preset scope: presets override analysis window/hop, smoothing alpha, both IR time/damping pairs, and dynamic wet bounds. They do not override Speed_mode, Invert_mapping, global Wet_dry_percent, Draw, or Play.

Output & channel behavior

Visualization

The picture shows the original waveform, only the original-duration portion of the result waveform, the smoothed entropy trajectory, the beginning of each generated IR, and a summary strip. The reverberation tail beyond the original duration is therefore present in the output but not shown in the Result panel. The entropy plot is decimated to at most roughly 500 displayed segments.