Spectral Band EQ — User Guide

Whole-file spectral equalization with six explicit response modes: parametric bell, bandpass, low pass, high pass, low shelf, and high shelf.

Author: Shai Cohen Affiliation: Department of Music, Bar-Ilan University, Israel Version: 1.2.2 (2026) License: MIT License Repo: Praat AudioTools
Contents:

What this does

Spectral Band EQ applies a static frequency-response curve directly to the complex spectrum of the selected Sound. The same response is applied independently to every input channel, so channel count and inter-channel timing are preserved while the spectral balance changes.

The response is built from smooth raised-cosine transitions. Depending on the selected mode, the script can create a bell-shaped boost or cut, isolate a flat passband, roll off frequencies above or below an edge, or apply a low/high shelf. The processed Spectrum is converted back to Sound, then an optional attenuation-only safety stage prevents peaks from exceeding a user-defined ceiling.

Core idea: the script multiplies each complex Spectrum bin by a real, non-negative gain value. This changes magnitude while retaining the original phase of that bin. The operation is static across the whole file: there is no frame-by-frame analysis, no parameter tracking, and no randomness.

Quick start

  1. Select exactly one Sound in Praat.
  2. Run Spectral_Band_EQ.praat.
  3. Choose a preset, or leave Custom selected and choose one of the six filter modes.
  4. Set the mode-relevant frequency parameters and, for Bell or Shelf modes, the desired Gain (dB).
  5. Leave Safety peak at 0.99 for attenuation-only peak protection, or set it to 0 to disable the safety stage.
  6. Enable Draw response to inspect the theoretical response and Play result for immediate playback.
Parameter semantics depend on the mode. In particular, Bandwidth is the full cosine span for Parametric Bell, but the flat passband width for Bandpass. Low/High Pass and Shelf modes use Center frequency as an edge and use Transition width for the rolloff.

Filter modes

ModeCenter frequency meansBandwidthTransition widthGain
Parametric BellExact frequency of maximum boost/cut.Full raised-cosine span; response returns to 0 dB at the nominal edges.Not used.Peak boost/cut at the center.
BandpassCenter of the flat passband.Width of the flat 0 dB passband.Cosine transition outside each passband edge.Not used.
Low PassUpper edge of the flat passband.Not used.Rolloff from unity above the edge to zero.Not used.
High PassLower edge of the flat passband.Not used.Rolloff from zero below the edge to unity.Not used.
Low ShelfHighest frequency still at the full shelf gain.Not used.Transition above the edge back to 0 dB.Flat shelf gain below the edge.
High ShelfLowest frequency already at the full shelf gain.Not used.Transition below the edge from 0 dB to the shelf.Flat shelf gain above the edge.

Parametric Bell response

G = 10^(Gain_dB / 20) shape(f) = 0.5 × [1 + cos(π × (f − center) / (bandwidth/2))] H(f) = 1 + shape(f) × (G − 1)

Inside the bell span, the cosine reaches 1 exactly at Center frequency and reaches 0 at ±Bandwidth/2. Outside the span, gain is exactly 1 (0 dB).

Boundary behavior in v1.2.2: if a bell extends below 0 Hz or above Nyquist, only the out-of-spectrum portion is truncated. The bell itself is not recentered. For example, Center = 100 Hz and Bandwidth = 500 Hz still reaches its exact maximum at 100 Hz even though the nominal lower edge lies below 0 Hz.

Bandpass and edge filters

Bandpass keeps a flat 0 dB region centered on the requested frequency and uses separate raised-cosine transitions outside its lower and upper edges. Low Pass stays flat through the requested center/edge and rolls down above it. High Pass does the mirror image below its center/edge.

Low Shelf holds the requested gain from DC through the shelf edge and returns smoothly to 0 dB above it. High Shelf reaches the requested gain at the shelf edge and remains there toward Nyquist.

Presets

Selecting a preset overrides the filter mode and the relevant frequency/gain values shown below.

PresetModeCenter / edgeBandwidthTransitionGain
Telephone BandpassBandpass1850 Hz3100 Hz flat passband150 Hz
AM Radio BandpassBandpass2500 Hz4000 Hz flat passband200 Hz
Sub Bass ShelfLow Shelf100 Hzignored80 Hz+6 dB
Presence BellParametric Bell3500 Hz3000 Hzignored+4 dB
Mud BellParametric Bell350 Hz300 Hzignored−6 dB
Air ShelfHigh Shelf10000 Hzignored2000 Hz+3 dB
Mid Scoop BellParametric Bell2000 Hz2000 Hzignored−8 dB
Low PassLow Pass2000 Hz passband edgeignored500 Hz
High PassHigh Pass500 Hz passband edgeignored500 Hz
CustomUser-selectedUser valueUser valueUser valueUser value
Preset selection does not change Safety peak, Draw response, or Play result; those remain under direct user control.

Parameters

ParameterDefaultMeaning
PresetCustomSelects one of nine fixed configurations or leaves the manual values active.
Filter modeParametric BellSelects one of the six response families.
Center frequency (Hz)1000Bell center, bandpass center, or pass/shelf edge depending on mode. Values above Nyquist are clamped to Nyquist.
Bandwidth (Hz)500Bell full cosine span or Bandpass flat-passband width. Minimum effective value is 1 Hz.
Transition width (Hz)100Cosine rolloff width for Bandpass, Low/High Pass, and Shelf modes. Minimum effective value is 1 Hz.
Gain (dB)+6Used by Bell and Shelf modes. Internally limited to −120…+36 dB.
Safety peak0.990 disables protection. Otherwise, only attenuates when the processed absolute peak exceeds the requested ceiling. Never boosts quieter output.
Draw responseOnDraws the AudioTools summary visualization.
Play resultOnPlays the final Sound after processing.

Processing pipeline

  1. Store source geometry. Duration, sample rate, channel count, start time, and source peak are read from the selected Sound.
  2. Resolve preset and mode. The script derives passband, transition, or shelf/bell limits and clips only what lies outside 0…Nyquist.
  3. Move a working copy to time zero. This makes the whole-file Spectrum conversion independent of the source Sound's original time domain.
  4. Process each channel independently. Each channel is converted with To Spectrum: "yes", multiplied by the same mode-specific gain formula, then converted back to Sound.
  5. Assemble the output. Filtered channel samples are copied into a new Sound with the source duration, sample rate, and channel count.
  6. Restore the original start time. The output is shifted back to the source xmin.
  7. Apply safety attenuation if needed. If Safety peak is active and the resulting peak is too high, the complete output is scaled down uniformly.

Whole-file Spectrum processing

Praat's Sound: To Spectrum... performs an overall Fourier transform. With Fast = yes, Praat appends zeros as needed so the sample count is a power of two; the setting does not apply a Hann analysis window. Spectrum: To Sound reconstructs the original Sound, or the original Sound plus those appended zeros. This script writes only the source-duration sample range into its output Sound.

Phase behavior

The gain formulas multiply both real and imaginary parts of each complex spectral bin by the same real factor. Therefore the script changes spectral magnitude without rotating the source phase. This is best understood as a static zero-phase, noncausal whole-file filter: its equivalent impulse response is not constrained to occur only after an event.

Input & output behavior

PropertyBehavior
InputExactly one Sound.
ChannelsPreserved. Each channel is processed independently with the same response; there is no downmix.
DurationPreserved exactly by constructing the output at the source duration.
Sample ratePreserved.
Start time / xminPreserved. Processing is performed on a time-zero working copy, then the source start time is restored.
Output name<source>_spectralEQ_<presetName>.
LevelNo automatic normalization upward. Safety peak, when active, is attenuation-only.
RandomnessNone. Given the same source, settings, and Praat implementation, processing is deterministic.

Visualization

When Draw response is enabled, the script draws:

The waveform displays are visualization copies only. They do not alter the multichannel processing path or the resulting audio.

Notes & limitations