Spectral Effects Suite — User Guide
Six character processors built from frozen-source sample-index rate transforms, differencing, amplitude envelopes and wet/dry mixing; the historical “Spectral” name is retained although the core DSP is time-index based.
What this does
Spectral Effects Suite is a collection of six character processors built from time-index resampling/differencing, amplitude envelopes and wet/dry mixing. The historical suite name is retained for continuity, but the core DSP does not edit FFT or spectrogram bins.
n/a(t) and n×b(t), subtract or average those reads, then shape the result with an amplitude envelope.What is a dual-rate sample-index transform?
The processor freezes the pre-effect waveform and then reads it along two or more index trajectories. A simplified dual-rate branch is:
When a and b differ from 1, the two reads move through the same source at different effective index rates. Their difference creates cancellation, reinforcement, pitch-like shifts, smearing and time-warp character without using a conventional delay line or spectral transform. Wobble modes vary the factors continuously over the file; the constant dual-rate modes use fixed factors.
Quick start
- Select one Sound and run
Spectral_Effects_Suite.praat. - Choose one of the six effects and start with Moderate.
- Leave Envelope mode = Effect default until you understand the transform itself.
- Use Wet_dry_percent for auditioning: 0% is a true dry bypass.
- Use Preserve original channels unless you intentionally want the older mono-core + pseudo-stereo character.
Six effects
| Effect | Index transform | Default envelope |
|---|---|---|
| Wobble | Two continuously varying index-rate branches using Shift_base ± Shift_depth. | Tremolo with Decay |
| Wobbling Shift | Same dual-rate wobble, but the entered/preset Shift_depth is reduced to 30% before processing. | Turbulent Decay (Gaussian) |
| Dual-Rate Decay | Constant difference x[n/base] − x[n×base]; base forced to 1.1. | Exponential Decay |
| Underwater | Average of three slower-rate reads minus one faster branch; Strong/Extreme set base to 1.15. | Random Bubbling |
| Dual-Rate Crescendo | Constant dual-rate difference; base forced to 1.1. | Exponential Crescendo |
| Pulsing Dual-Rate | Constant dual-rate difference; base forced to 1.2. | Rhythmic Pulsing (abs sin) |
Presets
| Preset | Shift depth | Modulation depth | Envelope strength | Phase spans |
|---|---|---|---|---|
| Custom | Form value | Form value | Form value | Form values |
| Subtle | 0.1 | 0.2 | 5 | unchanged |
| Moderate | 0.3 | 0.5 | 10 | unchanged |
| Strong | 0.5 | 0.7 | 15 | unchanged |
| Extreme | 0.7 | 0.9 | 25 | Shift 80 rad; Modulation 40 rad |
Envelope system
With Effect default, the selected effect chooses its envelope automatically. With Custom envelope, the Envelope_type menu is respected directly. The envelope is created as a real Sound object, and that exact realization is used both for DSP and visualization.
| Envelope | Formula / character | Random? |
|---|---|---|
| Exponential Decay | strength^(−t/T) | No |
| Exponential Crescendo | strength^(t/T−1) | No |
| Tremolo with Decay | Exponential decay × sinusoidal modulation around Modulation_center | No |
| Random Bubbling | Exponential decay × uniform random modulation | Yes, unseeded |
| Turbulent Decay | Exponential decay × Gaussian random modulation | Yes, unseeded |
| Rhythmic Pulsing | |sin(phase)| × exponential decay | No |
Controls
| Control | Default | Meaning |
|---|---|---|
| Shift_base | 1.1 | Central index-rate factor. Some effects override it. |
| Shift_depth | 0.3 | Wobble excursion around Shift_base. For wobble effects it is safety-limited to 95% of the base if necessary. |
| Shift_phase_span | 50 rad | Total sinusoidal phase traversed across the entire file; 2π radians = one full cycle. |
| Envelope_strength | 10 | Base of the exponential envelope law; larger values create stronger shaping. |
| Modulation_center / depth | 1.0 / 0.5 | DC center and excursion of tremolo/random modulation. |
| Modulation_phase_span | 20 rad | Total modulation phase traversed across the file. |
| Wet_dry_percent | 100 | 0 = exact dry bypass; 100 = full wet. |
| Stereo_mode | Preserve original channels | Normal multichannel-safe path or explicit legacy mono/pseudo-stereo path. |
| Normalize_output | On | Target-normalizes processed output to Scale_peak; skipped entirely by the 0% wet bypass. |
| Scale_peak | 0.99 | Target peak used only when Normalize_output is enabled. |
Channels, duration and bypass
- Preserve original channels: processes every source row independently and keeps the original channel count.
- Legacy mono + 12 ms pseudo-stereo: for multichannel input, downmixes to mono, processes that mono core, then creates stereo with a 12 ms delayed right channel. On mono input, the legacy branch does not create pseudo-stereo; the result remains mono.
- Wet = 0: exact dry copy with original channel structure. Transform, envelope, legacy pseudo-stereo and normalization are all skipped.
- Duration / sample rate: preserved.
- Normalize_output off: there is no automatic safety ceiling; output can exceed full scale.
Output name: <source>_<effect>_<preset>_v1.3.3.
Processing pipeline
- Apply the preset, then the effect-specific overrides.
- If Wet = 0, copy the source and stop the DSP path.
- Otherwise create the processing source and dry reference, preserving channels or explicitly entering the legacy mono path.
- Freeze a copy of the pre-effect waveform so all alternative-index reads come from unchanged source samples rather than recursively modified output.
- Apply the selected dual-rate or multi-rate sample-index transform.
- Create the exact envelope Sound and multiply the transformed signal by it.
- Blend dry and wet with matched channel structure.
- Optionally create the legacy 12 ms pseudo-stereo output.
- Optionally target-normalize to Scale_peak.
Visualization
- Process diagram: Input → alternative index reads → difference/blur → envelope → wet/dry → output.
- Input and output waveforms: shown on one shared amplitude scale.
- Index-rate factor panel: plots the actual configured trajectories used by each effect.
- Exact envelope: plots the same realized envelope used in processing, including the actual random realization.
- LTAS comparison: input/output on one shared dB axis with log-frequency sampling.
- Summary: core parameters, wet value, input/output peaks, RMS ratio and channel count.