Fractal Feedback — User Guide
Multi-scale recursive delay processing over nested 2/4/8/... temporal regions, with random region delays and feedback that decreases with layer depth.
What this does
Fractal Feedback applies delayed recursive additions at several nested temporal resolutions. Layer 1 divides the sound into 2 regions, layer 2 into 4, layer 3 into 8, and so on. Every region receives its own random delay while the feedback coefficient decreases with layer depth.
The result is a self-similar hierarchy of coarse-to-fine delay activity over the original source duration. This is not the same processor as Fractal Feedback Reverb: Fractal Feedback does not append a reverb tail and does not use the chaos-factor / memory-depth delay cycle.
Quick start
- Select exactly one Sound.
- Run
Fractal_Feedback.praat. - Choose a built-in preset or Custom.
- Set the number of depth layers, delay range, feedback base and Wet/Dry mix.
- Click OK. The processed Sound appears as
<source>_fractal_<preset>.
Presets
The built-in presets override Depth_layers, Delay_min_ms, Delay_max_ms, and Feedback_base. Wet/Dry, Scale_peak and output switches remain as shown in the form.
| Preset | Layers | Delay range | Feedback base |
|---|---|---|---|
| Custom | Form value | Form values | Form value |
| Subtle Fractal | 2 | 15–80 ms | 0.40 |
| Medium Fractal | 3 | 20–150 ms | 0.50 |
| Deep Fractal | 4 | 25–200 ms | 0.55 |
| Extreme Fractal | 5 | 30–300 ms | 0.60 |
Parameters
| Control | Default | Behavior |
|---|---|---|
| Depth_layers | 3 | Requested number of dyadic layers. Internally limited by sample count and capped at 12. |
| Delay_min_ms / Delay_max_ms | 20 / 150 ms | Converted to at least one sample; Custom bounds are internally ordered if entered in reverse. |
| Feedback_base | 0.5 | Base coefficient. Custom values above 0.99 are capped to 0.99; actual layer coefficient is Feedback_base / layer. |
| Wet_dry_percent | 60% | Clamped internally to 0–100%. |
| Scale_peak | 0.95 | Target peak applied to every non-silent result. |
| Draw_visualization / Play_result | yes / yes | Draw the structural summary and/or play the output. |
Multi-scale structure
For effective depth D, layer L contains 2^L equal-duration regions. The final region at each layer absorbs any integer-division remainder samples.
One random delay is generated for every region before processing begins. The same region delay is then used across all channels, so multichannel sources keep channel alignment while each channel reads its own delayed samples.
Processing
Processing starts from a private zero-based copy of the source. At each layer, each region is processed with:
The sine factor approaches zero at region boundaries, reducing abrupt boundary changes. The delayed term is read from the working wet signal, so successive formula passes accumulate recursively rather than adding a single dry tap.
After all layers, Wet/Dry is applied against the untouched private source copy. The result is then peak-normalized to Scale_peak.
Visualization
- Dry waveform and Fractal result waveform, independently autoscaled by Praat.
- Layer diagram showing the 2/4/8/... temporal subdivision hierarchy.
- Parameter line with effective layer count, total region count and feedback base.
- Summary strip identifying the recursive segmentation structure.
Output behavior
- Duration: unchanged.
- Sample rate: unchanged.
- Channels: original channel count preserved, including multichannel input.
- Time origin: a non-zero source start time is restored on the result.
- Randomness: one random delay per region; no user seed is exposed, so repeated runs can differ.
- Output name:
<source>_fractal_<preset>.