Describe the Parametric EQ and its curve editor (#367)

- Sounds: a row for the node in the table of sound FX nodes, and a
  section after Filter on the bands and how the editor sets them.
- Development: 1913 editor checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-10-09 12:00:58 +02:00
1 parent 79220dbf65
commit 658c59c93f
2 files changed
+31 -1

No files matched your search

+1 -1
@@ -19,7 +19,7 @@ php tests/php/accounts.test.php # the API's accoun
php tests/php/snapshots.test.php # the snapshot store (#231), the same way
php tests/php/releases.test.php # the release store (#266), the same way
php tests/php/files.test.php # uploaded files in a folder per account (#344), the same way
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1910 editor checks, screenshots in /tmp/gm-e2e-*.png
node tools/seed-e2e.mjs && node tools/e2e.mjs # 1913 editor checks, screenshots in /tmp/gm-e2e-*.png
GM_STEPS=20 node tools/e2e.mjs # or 1-12, or 6,20 — a subset while working on one step
./e2e.sh start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result
+30
@@ -364,6 +364,7 @@ response of a Reverb, and as what the Sound FX tab tries out. Its row means noth
| **Gain** | Louder or quieter, in dB (`Gain (dB)`): 0 leaves it alone, -6 is about half as loud, +6 twice. Above 0 the sound can clip. |
| **Pitch** | Higher or lower, in semitones (12 is an octave, 0.5 a quarter tone). The sound **keeps its length**, also when the pitch changes while it plays. The pitch is made where the sound is read, so an effect before the Pitch acts as if it came after it. On a [Chip](Instruments#chips) of an instrument it moves the frequency of the Chip itself. Its `wet` takes the semitones from 0 up to all of them, see [below](#bypass-and-wet). |
| **5-Band-EQ** | Five bands in dB: 80 Hz and 12 kHz as shelves, 250 Hz, 1 kHz and 4 kHz as peaks. A band at 0 does nothing. |
| **Parametric EQ** | Up to 10 bands, each a filter of its own type, frequency, gain, Q and slope, drawn together as one curve. A **double-click on the node** opens its editor. A new node has no band and does nothing. See [below](#parametric-eq). |
| **Filter** | **Type** *Low-pass* (the default) takes away what is above `frequency` (Hz, 1000 by default), *High-pass* what is below it, *Band-pass* all but a band around it and *Notch* just that band. *Low shelf* and *High shelf* raise or lower everything below or above it by `gain` (dB), *Peaking* a band around it; only these three have the `gain` row. *All-pass* leaves every frequency as loud as it was and only turns its phase. `Q` (0.707 by default) says how sharp it is: at 0.707 a low- or high-pass has no bump, higher it rings at the frequency, and a band, a notch or a peak gets narrower. **Slope** makes a low-pass, high-pass, band-pass or notch steeper: *12 dB/oct* is one filter, *24* two and *48* four in a row, and only the last of them has the Q. In an [instrument](Instruments#envelopes) an Envelope can move all three numbers while a note plays. See [below](#filter). |
| **Mix** | Blends the sounds at `a` and `b`: at 0 only `a` is heard, at 1 only `b` (0.5 is the default). **Curve** says what lies between: *Crossfade* (the default) gives half of each at 0.5, *Both at center* keeps each full up to the middle. See [below](#the-curve-of-a-mix). |
| **Delay** | An echo: the sound comes back after `time`, again and again, each time `feedback` times as loud. **Sync** says what `time` counts: *Seconds*, or *Beats* in quarter notes at the tempo of the voice. `damping` makes every echo duller than the last. `wet` (0.5) is the sound alone at 0, the sound and its echoes in full at 0.5, the echoes alone at 1. **Ping-pong** sends the echoes left and right in turn. See [below](#delay-and-the-tail-of-a-voice). |
@@ -583,6 +584,35 @@ A **Filter** (#335, #318) is Web Audio's `BiquadFilterNode`, every type it has.
Q 0.707 came out 12.37 dB quieter at 12 dB/oct and 49.5 dB quieter at 48 dB/oct. A peak of
+6 dB at 1 kHz raised a 1 kHz sine by 6.00 dB, a notch there took it down by 124 dB.
### Parametric EQ
A **Parametric EQ** (#367) is up to 10 filters in a row, one per band. A double-click on the node
opens its editor, in a sound FX and in an instrument alike.
- **The editor** is a window over the editor. It leaves the tab usable, so *Play* can be pressed
while the bands are set. Its title bar moves it, *Close* closes it, and it closes by itself when
its node is deleted or another project is loaded. One window is open at a time: a double-click
on another Parametric EQ turns it to that node.
- **The curve** shows 20 Hz to 20 kHz in octaves and -24 to +24 dB. The thick line is all bands
together, each band has a thin line in its own colour and a numbered handle.
- **With the mouse:** a double-click on free space adds a peak there. Dragging a handle moves the
band's frequency and, for a peak or a shelf, its gain. The mouse wheel over a handle, or anywhere
while a band is picked, makes it a sixth of an octave narrower or wider. A right-click on a
handle removes the band.
- **Below the curve** are the numbers of the picked band: *Type*, `Hz`, `dB`, `Q`, *Slope*, and
*Remove*. A row the type does nothing with is greyed out.
- **Types:** *Peaking*, *Low shelf*, *High shelf*, *Low cut* (a high-pass), *High cut* (a
low-pass), *Band-pass* and *Notch*. *Slope* (12, 24 or 48 dB/oct) is there for the cuts, the
band-pass and the notch, as on the [Filter](#filter). A shelf has no Q.
- **Ranges:** frequency 20 to 20000 Hz, gain -24 to +24 dB, Q 0.1 to 30.
- **One undo step** for each drag, each scrub of a field, each wheel notch, each added or removed
band.
- **What is heard:** each band is one `BiquadFilterNode` per voice, or 2 or 4 for a steeper
slope. A peak or a shelf at 0 dB is left out. The curve is worked out with the formulas Web Audio
uses, at 48 kHz.
- The bands are saved on the node as a list (`bands`). They have no input, so a parameter of the
Input or an Envelope cannot move them. Bypass and `wet` work as on every effect.
### Compressor and Limiter
Both (#326) work on the whole sound passing them: on a voice that is one sound, on a