Stereo Shimmer - User Guide
Linear‑spaced echoes with high‑frequency enhancement and polarity alternation. Creates a shimmering, ethereal stereo effect. Now with speed modes (downsampling) for 4–8× faster processing!
What this does
Stereo Shimmer generates a dense series of echoes with linear delay spacing
(delays increase linearly from a minimum to a maximum), combined with alternating polarity every four echoes
and high‑frequency enhancement via a simple high‑pass‑like FIR filter: y[n] = x[n] + hf * (x[n] – x[n-1]).
- Linear delay progression – creates a smooth, shimmering tail.
- Polarity alternation (every 4 echoes) – adds phase‑based movement.
- HF enhancement – boosts the high frequencies of each echo, adding air and sparkle.
- Left/right decorrelation – right channel uses slightly different parameters (jitter, decay, HF) for wide stereo image.
- Speed modes – downsample to 22 kHz or 11 kHz for 2–8× faster processing (useful for preview).
Quick start
- In Praat, select exactly one Sound object (mono or stereo).
- Run script… →
Stereo_Shimmer.praat. - Choose a Preset:
- Subtle Shimmer, Medium Shimmer, Heavy Shimmer, Extreme Shimmer
- Select a Speed_mode:
- Full Quality – original sample rate (highest quality, slowest)
- Balanced – downsample to 22 kHz (approx 2× faster)
- Fast – downsample to 11 kHz (approx 4–8× faster)
- For custom mode (preset = Custom), adjust parameters as desired.
- Set Wet_dry_percent (0 = dry only, 100 = wet only).
- Click OK. The script downsamples (if selected), adds linear‑spaced echoes, applies HF enhancement, upsamples back, and imports the result as
originalname_shimmer_preset.
Formula command to add delayed copies of the signal. For long files with many echoes (e.g., 180 echoes), processing can be slow – hence the speed modes.
The 4 presets (+ Custom)
| Preset | Echoes | Delay range (ms) | Decay | HF | Description |
|---|---|---|---|---|---|
| Subtle Shimmer | 40 | 20–800 | 0.96 | 0.15 | Light, gentle shimmer. |
| Medium Shimmer | 80 | 20–1200 | 0.95 | 0.25 | Balanced, clear shimmer. |
| Heavy Shimmer | 120 | 15–1800 | 0.94 | 0.35 | Dense, prominent tail. |
| Extreme Shimmer | 180 | 10–2500 | 0.93 | 0.45 | Extreme, cavernous shimmer. |
Each preset also sets jitter_s appropriately.
Speed modes (downsampling)
Processing many echoes with the Formula command can be slow, especially on long files.
The speed modes downsample the signal before processing, then upsample back to the original sample rate.
This can accelerate processing by a factor of 2–8, with a corresponding reduction in high‑frequency detail.
| Mode | Target SR | Speed factor (approx) | Use case |
|---|---|---|---|
| Full Quality | original | 1× | Final render |
| Balanced | 22 kHz | 2× | Preview / general use |
| Fast | 11 kHz | 4–8× | Rapid prototyping |
After processing, the signal is resampled back to the original sample rate. The HF enhancement still works on the downsampled signal, but its effect may be less pronounced at lower sample rates due to the reduced bandwidth.
Parameters & defaults
Shimmer parameters
| Parameter | Range | Default | Description |
|---|---|---|---|
| Tail_duration_s | any positive | 2.0 s | Length of silent tail added after the original sound (allows echoes to ring out). |
| Number_of_echoes | integer ≥1 | 80 | How many discrete echoes to generate. |
| Base_amplitude | 0–1 | 0.24 | Amplitude of the first echo. |
| Min_delay_s | any positive | 0.02 s (20 ms) | Delay of the first echo. |
| Max_delay_s | any positive | 1.2 s | Delay of the last echo. |
| Decay_factor | 0–1 | 0.95 | Multiplicative decay per echo (applied after base_amplitude). |
| Jitter_s | any non‑negative | 0.012 s (12 ms) | Random delay variation per echo (adds organic texture). |
HF enhancement
| Parameter | Range | Default | Description |
|---|---|---|---|
| HF_enhancement | 0–1 | 0.25 | Strength of high‑frequency boost. Implemented as y = x + hf * (x – x[n-1]). |
Mix
| Parameter | Range | Default | Description |
|---|---|---|---|
| Wet_dry_percent | 0–100 | 60 | 0 = dry only, 100 = wet only. |
Output
| Parameter | Default | Description |
|---|---|---|
| Draw_visualization | yes | Show waveforms, delay pattern, and summary in Praat picture. |
| Play_result | yes | Auto‑play after processing. |
Visualization (Praat picture)
When Draw_visualization = 1, the script draws:
- Original waveform (grey).
- Result waveform (purple) with wet/dry percentage shown.
- Linear delay pattern – a scatter plot of echo impulses:
- X‑axis = delay time in milliseconds (linear scale).
- Y‑axis = amplitude (positive and negative for polarity).
- Positive polarity echoes are blue, negative polarity echoes are red.
- Dotted grey line shows the theoretical decay envelope (from base_amplitude to last echo).
- Parameter summary – speed mode, echo count, processing time, HF enhancement.
FAQ / troubleshooting
Use one of the Speed modes (Balanced or Fast) to downsample before processing. For a 10‑second file with 180 echoes, Fast mode can be 8× faster. The result is upsampled back to the original sample rate, so the final audio length is preserved.
Check that Wet_dry_percent is not 0. Also verify that Number_of_echoes is ≥10 and Base_amplitude is not too low. The script prints the first few delays in the Info window – if they seem reasonable, the effect should be audible.
The HF enhancement is a simple high‑pass‑style FIR. If it causes clipping, reduce HF_enhancement (e.g., to 0.1). The script scales the signal after each HF pass to prevent runaway amplification.
To create a wide stereo image, the right channel uses:
- 25 % more jitter
- Decay factor reduced by 0.01
- HF enhancement scaled by 0.92
- Polarity pattern shifted by 2 echoes
This ensures the left and right echoes are decorrelated without sounding obviously different.
The Info window and visualization show the total processing time (including down/up sampling). This can be used to compare speed modes.
Understanding the HF enhancement formula
The HF enhancement is implemented as: y[n] = x[n] + hf * (x[n] – x[n-1])
This is a simple finite‑difference filter that emphasises changes between samples – i.e., high frequencies.
At sample rate 44.1 kHz, this gives a gentle boost starting around 5 kHz. The hf parameter controls
the strength (0 = none, 0.25 = moderate, 0.5 = strong).