Fractal Spectral Hologram — User Guide

A magnitude-domain spectral processor that blurs, sharpens and layers geometrically scaled copies around a frequency axis while preserving source FFT phase.

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

What this does

Fractal Spectral Hologram transforms the magnitude spectrum of a sound while retaining its original FFT phase. It combines three operations: binomial blur, unsharp spectral sharpening, and a multi-level frequency zoom that layers geometrically scaled copies around a chosen centre frequency.

The “hologram” name is deliberately metaphorical: the script does not model optical holography. Its central gesture is that one spectral feature can appear at several scaled positions, creating crystalline, metallic or bell-like structures.

Fractal-inspired, not recursive: every zoom level is read from one frozen post-blur/post-sharpen source spectrum. Level k+1 is not generated from level k. The self-similarity comes from geometric scaling around a common axis.

What does “fractal spectral hologram” mean here?

A fractal is commonly associated with self-similarity across scale. In this processor, that idea is translated into the frequency domain: one source spectral shape is copied at successively larger or smaller scales around a frequency axis.

M_out(f) = [ M(f) + Σ(k=1…N) d^k · M(c + (f-c)/z^k) ] / [ 1 + Σ(k=1…N) d^k ] A source feature at f_s appears at: f_k = c + z^k (f_s - c) with weight d^k

z is Fractal_zoom, c is the zoom centre, N is the number of levels and d is the per-level decay. The denominator is a weighted magnitude average used to control growth; it is not an energy-conservation law.

Zoom below 1: contraction is supported. When a mapped source position falls outside 0…Nyquist, that copy contributes zero rather than being clamped to DC or Nyquist.

Quick start

  1. Select exactly one Sound.
  2. Run Fractal_Spectral_Hologram.praat.
  3. Start with Subtle Shimmer or Metallic Bell.
  4. Use Fractal_zoom to control the scale separation, Fractal_levels for the number of copies, and Fractal_decay for how quickly later copies weaken.
  5. Use Blur and Sharpen before the zoom to change the spectral material being copied.

Presets

PresetBlurSharpenZoomCentreLevelsDecayWet
Subtle Shimmer30.61.15800 Hz30.500.70
Crystal Echo21.01.301200 Hz50.550.80
Fractal Storm80.31.50500 Hz60.650.90
Holographic Freeze1501.001000 Hz10.500.80
Metallic Bell10.81.40400 Hz50.600.85
Glass Fracture21.51.602000 Hz40.450.75

Controls

ControlDefaultMeaning
Blur_passes3Repeated five-bin binomial smoothing using [1 4 6 4 1] / 16. Zero disables blur; if Sharpen is active, one hidden reference pass is still built for the unsharp mask.
Sharpen_strength0.5Unsharp-mask emphasis of spectral peaks. Zero disables sharpening.
Fractal_zoom1.3Scale ratio per level; 1 = no zoom, >1 expansion, <1 contraction. Valid range 0.5…4.
Zoom_centre_Hz1000Frequency axis around which all scaled copies are placed.
Exact_zoom_centreOffOff preserves the v1.1 nearest-bin character, whose centre sits one FFT bin below the requested-Hz conversion. On uses the nearest true-Hz bin.
Fractal_levels4Number of geometric copy levels, 1…10; they are layers, not recursive generations.
Fractal_decay0.6Weight per level, decay^k; valid range 0…<1.
Dry_wet0.8Linear dry/wet blend, 0…1.
Scale_peak0.95Final target peak applied to every result.

Processing pipeline

  1. For each processed channel, transform the full file to a complex Spectrum.
  2. Extract magnitude only.
  3. Apply multi-pass binomial blur.
  4. Apply an unsharp mask when Sharpen is nonzero.
  5. Freeze that magnitude result and layer the requested geometric zoom copies around the centre axis.
  6. Divide by total copy weight.
  7. Compute the ratio processed magnitude / original magnitude and multiply both real and imaginary Spectrum rows by that ratio, preserving source phase.
  8. Inverse-transform, restore sample-rate metadata and trim FFT padding.
  9. Mix dry/wet and target-normalize the result.

Channels, duration and level

Output name: <source>_hologram_<preset>.

Visualization

Historical and compositional context

The modern language of fractal geometry is associated especially with Benoît Mandelbrot, who coined the word “fractal” in the 1970s and used computational graphics to study self-similar structures across scale. The musical relevance is not that a sound must be a mathematically strict fractal, but that one can organize material through repeated relationships at several scales.

This processor translates that idea into spectral composition: the same post-processed magnitude shape is heard at several frequency scales around one axis. The result can suggest bells, metallic resonators or crystalline spectra because harmonic relationships are stretched away from their original positions. The word hologram is therefore a compositional metaphor for “multiple scaled images of one spectral object,” not a claim that the script implements optical holography.

Further reading: IBM's history of Mandelbrot and fractal geometry provides a concise account of self-similarity and the role of computation: IBM — Fractal geometry.