Describe the Parametric EQ's zoom, saved on its node (#376)

- Sounds: the wheel on free space zooms the curve's dB, the steps,
  the grid, handles on the edge, saved as `range` and no undo step.
- Sounds: the wheel turns the Q only over a handle now, and the node's
  curve is zoomed as the tab is.
- Development: 1922 editor checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
adminandClaude Opus 5.5 committed 2026-10-09 16:36:45 +02:00
1 parent a907ee1fec
commit bca135494f
2 files changed
+16 -9

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/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/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 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 # 1921 editor checks, screenshots in /tmp/gm-e2e-*.png node tools/seed-e2e.mjs && node tools/e2e.mjs # 1922 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 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 start [GM_STEPS] # the same run detached, see below
./e2e.sh status # live progress, or the last run's result ./e2e.sh status # live progress, or the last run's result
+15 -8
@@ -595,11 +595,18 @@ opens its editor, in a sound FX and in an instrument alike.
loaded. *Play* is in the sound FX's tab, not in the EQ's: loaded. *Play* is in the sound FX's tab, not in the EQ's:
float one of the two (see *The tab row* in [Concepts](Concepts)) to have both in view. float one of the two (see *The tab row* in [Concepts](Concepts)) to have both in view.
- **Delete** in the EQ's tab removes the picked band, never the node. - **Delete** in the EQ's tab removes the picked band, never the node.
- **The curve** takes the room of the tab and shows 20 Hz to 20 kHz in octaves and -24 to +24 dB. - **The curve** takes the room of the tab and shows 20 Hz to 20 kHz in octaves and, unless zoomed,
-24 to +24 dB.
The thick line is all bands together, each band has a thin line in its own colour and a The thick line is all bands together, each band has a thin line in its own colour and a
numbered handle. numbered handle.
- **Zoom** (#376): the mouse wheel on free space zooms the dB the curve shows, always the same
either side of 0: ±3, ±6, ±12, ±24 or ±48 dB. Up zooms in. The lines across the curve follow,
every 1, 2, 3, 6 or 12 dB. A band whose gain is beyond the range keeps its handle on the edge,
where it can still be grabbed. The zoom is saved on the node (`range`), so it is there again
after loading, and it is no undo step: Ctrl+Z undoes edits, not a look at the curve. The
spectrum keeps its own scale.
- **In the node** (#375) the curve of all bands is drawn in small below its rows, on the same - **In the node** (#375) the curve of all bands is drawn in small below its rows, on the same
axes: the 0 dB line, the area up or down to the curve, and the curve. Without a band the box axes, zoomed as the tab is: the 0 dB line, the area up or down to the curve, and the curve. Without a band the box
stays, flat, so the node does not grow at the first one. It follows every change, a drag in the stays, flat, so the node does not grow at the first one. It follows every change, a drag in the
tab as well. A double-click on it opens the tab like anywhere on the node. tab as well. A double-click on it opens the tab like anywhere on the node.
- **The spectrum** (#374): while the EQ's tab is seen, in the tab row or in a window, it draws - **The spectrum** (#374): while the EQ's tab is seen, in the tab row or in a window, it draws
@@ -611,23 +618,23 @@ opens its editor, in a sound FX and in an instrument alike.
analyser, so it falls away softly once the sound has gone. While the tab is not seen, no analyser, so it falls away softly once the sound has gone. While the tab is not seen, no
analyser is fed. analyser is fed.
- **With the mouse:** a double-click on free space adds a peak there. Dragging a handle moves the - **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 band's frequency and, for a peak or a shelf, its gain. The mouse wheel over a handle makes the
while a band is picked, makes it a sixth of an octave narrower or wider. A right-click on a band a sixth of an octave narrower or wider, anywhere else it zooms (see above). A right-click on
handle removes the band. a handle removes the band.
- **Below the curve** are the numbers of the picked band: *Type*, `Hz`, `dB`, `Q` and *Slope*. - **Below the curve** are the numbers of the picked band: *Type*, `Hz`, `dB`, `Q` and *Slope*.
A row the type does nothing with is greyed out. A row the type does nothing with is greyed out.
- **Types:** *Peaking*, *Low shelf*, *High shelf*, *Low cut* (a high-pass), *High cut* (a - **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 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. 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. - **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 - **One undo step** for each drag, each scrub of a field, each wheel notch on a handle, each added
band. or removed band.
- **What is heard:** each band is one `BiquadFilterNode` per voice, or 2 or 4 for a steeper - **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 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. In front of the bands and behind them every voice and every bus has a tap, a uses, at 48 kHz. In front of the bands and behind them every voice and every bus has a tap, a
gain of 1 that does nothing to the sound. Only while the tab is seen do the taps of that node gain of 1 that does nothing to the sound. Only while the tab is seen do the taps of that node
feed its analysers. A bypassed EQ keeps its taps. feed its analysers. A bypassed EQ keeps its taps.
- The bands are saved on the node as a list (`bands`). They have no input, so a parameter of the - The bands are saved on the node as a list (`bands`), the zoom as a number (`range`). They have no input, so a parameter of the
Input or an Envelope cannot move them. Bypass and `wet` work as on every effect. Input or an Envelope cannot move them. Bypass and `wet` work as on every effect.
### Compressor and Limiter ### Compressor and Limiter