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.
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.
Quick start
- Select exactly one Sound in Praat.
- Run
Spectral_Band_EQ.praat. - Choose a preset, or leave Custom selected and choose one of the six filter modes.
- Set the mode-relevant frequency parameters and, for Bell or Shelf modes, the desired Gain (dB).
- Leave Safety peak at 0.99 for attenuation-only peak protection, or set it to 0 to disable the safety stage.
- Enable Draw response to inspect the theoretical response and Play result for immediate playback.
Filter modes
| Mode | Center frequency means | Bandwidth | Transition width | Gain |
|---|---|---|---|---|
| Parametric Bell | Exact 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. |
| Bandpass | Center of the flat passband. | Width of the flat 0 dB passband. | Cosine transition outside each passband edge. | Not used. |
| Low Pass | Upper edge of the flat passband. | Not used. | Rolloff from unity above the edge to zero. | Not used. |
| High Pass | Lower edge of the flat passband. | Not used. | Rolloff from zero below the edge to unity. | Not used. |
| Low Shelf | Highest frequency still at the full shelf gain. | Not used. | Transition above the edge back to 0 dB. | Flat shelf gain below the edge. |
| High Shelf | Lowest 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
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).
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.
| Preset | Mode | Center / edge | Bandwidth | Transition | Gain |
|---|---|---|---|---|---|
| Telephone Bandpass | Bandpass | 1850 Hz | 3100 Hz flat passband | 150 Hz | — |
| AM Radio Bandpass | Bandpass | 2500 Hz | 4000 Hz flat passband | 200 Hz | — |
| Sub Bass Shelf | Low Shelf | 100 Hz | ignored | 80 Hz | +6 dB |
| Presence Bell | Parametric Bell | 3500 Hz | 3000 Hz | ignored | +4 dB |
| Mud Bell | Parametric Bell | 350 Hz | 300 Hz | ignored | −6 dB |
| Air Shelf | High Shelf | 10000 Hz | ignored | 2000 Hz | +3 dB |
| Mid Scoop Bell | Parametric Bell | 2000 Hz | 2000 Hz | ignored | −8 dB |
| Low Pass | Low Pass | 2000 Hz passband edge | ignored | 500 Hz | — |
| High Pass | High Pass | 500 Hz passband edge | ignored | 500 Hz | — |
| Custom | User-selected | User value | User value | User value | User value |
Parameters
| Parameter | Default | Meaning |
|---|---|---|
| Preset | Custom | Selects one of nine fixed configurations or leaves the manual values active. |
| Filter mode | Parametric Bell | Selects one of the six response families. |
| Center frequency (Hz) | 1000 | Bell center, bandpass center, or pass/shelf edge depending on mode. Values above Nyquist are clamped to Nyquist. |
| Bandwidth (Hz) | 500 | Bell full cosine span or Bandpass flat-passband width. Minimum effective value is 1 Hz. |
| Transition width (Hz) | 100 | Cosine rolloff width for Bandpass, Low/High Pass, and Shelf modes. Minimum effective value is 1 Hz. |
| Gain (dB) | +6 | Used by Bell and Shelf modes. Internally limited to −120…+36 dB. |
| Safety peak | 0.99 | 0 disables protection. Otherwise, only attenuates when the processed absolute peak exceeds the requested ceiling. Never boosts quieter output. |
| Draw response | On | Draws the AudioTools summary visualization. |
| Play result | On | Plays the final Sound after processing. |
Processing pipeline
- Store source geometry. Duration, sample rate, channel count, start time, and source peak are read from the selected Sound.
- Resolve preset and mode. The script derives passband, transition, or shelf/bell limits and clips only what lies outside 0…Nyquist.
- Move a working copy to time zero. This makes the whole-file Spectrum conversion independent of the source Sound's original time domain.
- 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. - Assemble the output. Filtered channel samples are copied into a new Sound with the source duration, sample rate, and channel count.
- Restore the original start time. The output is shifted back to the source
xmin. - 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
| Property | Behavior |
|---|---|
| Input | Exactly one Sound. |
| Channels | Preserved. Each channel is processed independently with the same response; there is no downmix. |
| Duration | Preserved exactly by constructing the output at the source duration. |
| Sample rate | Preserved. |
| Start time / xmin | Preserved. Processing is performed on a time-zero working copy, then the source start time is restored. |
| Output name | <source>_spectralEQ_<presetName>. |
| Level | No automatic normalization upward. Safety peak, when active, is attenuation-only. |
| Randomness | None. Given the same source, settings, and Praat implementation, processing is deterministic. |
Visualization
When Draw response is enabled, the script draws:
- Input waveform — mono display copy of the source.
- Output waveform — mono display copy of the processed Sound.
- Theoretical spectral gain — the same gain law used by the DSP, plotted from 0 Hz to Nyquist in dB.
- Summary strip — mode, center/edge, bandwidth, transition width, gain, channel count, sample rate, input/output peak, safety setting, and source start time.
Notes & limitations
- Static response: the same response is applied to the entire file; there is no automation or time-varying EQ.
- Whole-file/noncausal filtering: smooth cosine transitions avoid hard discontinuities in the response, but they do not make the filter causal and do not eliminate time-domain ringing.
- Frequency resolution: the requested curve is sampled at the FFT bin frequencies determined by the zero-padded whole-file transform.
- Boundary truncation: frequency regions below 0 Hz or above Nyquist cannot exist in the sampled spectrum. In v1.2.2 Bell mode keeps its requested center and simply loses the out-of-range side of the nominal span.
- Safety peak is not loudness matching: it only prevents peaks above the ceiling and does not compensate cuts or equalize perceived loudness.