Stereo Shimmer — User Guide

Bright feed-forward stereo multi-tap ambience with jittered delays, alternating polarity and non-recursive high-frequency emphasis.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 1.2.1 (2026) License: MIT License Repo: https://github.com/ShaiCohen-ops/Praat-plugin_AudioTools
Contents:

What this does

Stereo Shimmer creates a bright stereo ambience from many independent delayed copies of the source. Tap times are linearly distributed across a delay range, then independently jittered for left and right. Later taps decay exponentially and their polarity alternates in a repeating pattern, producing a diffuse, phase-rich field.

“Shimmer” does not mean octave shimmer in this tool. There is no pitch transposition or octave feedback. The name refers to the bright spatial texture created by dense multi-tap delays plus high-frequency emphasis.

The effect uses true feed-forward taps rather than recursive feedback. A non-recursive first-difference stage adds high-frequency emphasis to the wet signal only.

Quick start

  1. Select exactly one mono or stereo Sound.
  2. Run Stereo_Shimmer.praat.
  3. Choose Subtle, Medium, Heavy, Extreme, or Custom.
  4. Select a Speed_mode. This changes only the wet processing sample rate; the dry path remains full-rate.
  5. Adjust tap count, delay range, decay, jitter and HF enhancement as needed.
  6. Set the wet/dry balance and run.

Presets

PresetTailTaps / sideBase ampDelay rangeDecayJitterHF
Subtle Shimmer1.5 s400.1520–800 ms0.968 ms0.15
Medium Shimmer2.0 s800.2420–1200 ms0.9512 ms0.25
Heavy Shimmer3.0 s1200.3215–1800 ms0.9418 ms0.35
Extreme Shimmer4.0 s1800.4010–2500 ms0.9325 ms0.45
CustomUses the values entered in the form.
Presets overwrite the shimmer parameters shown above but do not change Speed_mode, Wet_dry_percent, visualization or playback.

Parameters

ParameterDefaultMeaning
Speed_modeBalancedFull Quality processes wet at the source sample rate; Balanced targets 22.05 kHz; Fast targets 11.025 kHz. The script never upsamples a lower-rate source merely for processing.
Tail_duration_s2.0 sMinimum tail beyond the dry source. The effective tail is increased if the latest jittered tap lies later.
Number_of_echoes80Independent taps generated per side.
Base_amplitude0.24Starting tap-amplitude scale; must be below 1.
Min_delay_s / Max_delay_s0.02 / 1.2 sRange for the linearly spaced nominal tap delays.
Decay_factor0.95Exponential tap decay for the left side. The right uses Decay_factor - 0.01.
Jitter_s0.012 sRandom timing offset. Left and right are generated independently; right requests 1.25× more jitter, subject to the same safety bound.
HF_enhancement0.25Non-recursive first-difference emphasis applied to the wet field. The right side uses 92% of the left value.
Wet_dry_percent60%Linear wet/dry mix.
Draw_visualizationyesDraw dry/output waveforms, the actual stereo tap field and summary.
Play_resultyesPlay the resulting stereo Sound when processing finishes.

Tap field and HF enhancement

nominalDelay[k] = minDelay + (maxDelay - minDelay) × (k-1)/(N-1) actualDelayL/R[k] = nominalDelay[k] + random jitter ampL[k] = baseAmplitude × decay^k × polarityL[k] ampR[k] = baseAmplitude × (decay-0.01)^k × polarityR[k]

Polarity changes in a repeating four-tap pattern, with the right side phase-shifted relative to the left. The wet accumulator contains only delayed taps—there is no hidden unity dry signal. After all taps are summed, the HF stage uses a frozen copy of the wet signal:

wetHF(x) = wet(x) + HF × (wet(x) - wet(x - oneSample))
Randomness: no seed is set. Every run may generate a new stereo tap field. The visualization uses the exact delays and signed amplitudes generated for that run.

Channels, duration and level

Visualization

The display shows dry and full-length output waveforms, then an Independent stereo tap field. Every plotted stem represents an actual DSP tap with its actual delay and signed amplitude; large tap counts are decimated only for display legibility. The summary reports delay range, decay, effective jitter, HF enhancement, tail, wet processing sample rate and processing time.

Output

The result is named <source>_shimmer_<preset> using Custom, Subtle, Medium, Heavy or Extreme.