The producer-feedback round: stable note tracking, the NOTE pitch source with
Key lock and Follow bends, unsure-means-neutral fallbacks, Anvil's Enhance
mode, MAIN and ADVANCED pages, Ballast on Grid by default, and Crucible's
sure-note slice names with a song key.
Adds docs/pitch.md for the shared pitch source, updates every changed
plugin's README and changelog, the release table, the editor previews, the
website bullets, and the status in docs/ideas.md.
Producers found the panels crowded: every control had the same weight. The
header now carries a MAIN / ADVANCED switch (common-ui header_paged). The
main page keeps the controls a first result needs; the advanced page shows
everything, as before.
- Anvil: Mode (Replace or Enhance), Split and Sub level, plus Octave, Ghost,
Keep and Output. Kick lock, Dynamics, Drive, Glide, Phase, Gate and the
pitch switches move to Advanced. The note readout says when the original
sub plays because tracking is unsure.
- Lathe, Temper, Knurl, Planish, Braze: tracking and fine-tuning controls
(Gate, Smooth, Snap, Harmonics, Push at, Floor, Bright, Normalize, band
gains, Phase) move to Advanced. Lathe labels the octaves of the note in Hz
on the harmonic axis.
- Forge passes the page to its module pages.
- Weld: the main page shows the level won back at full height, Mode,
Response and Output; the phase plot, Sections, Low, High and Gate move to
Advanced.
- editor-check renders the advanced pages with --advanced.
Producers found the tracked plugins jumpy: the shared tracker switched notes
after 10 ms and retuned every 5 ms, so growls and formant basses flickered
and every tracked plugin acted on wrong notes.
Shared tracker (common-dsp):
- A new note needs a steady read for 40 ms; an octave down 80 ms, an octave
up 200 ms (an octave-up read still fits the note's period and counts as
agreeing). Inside a note the tuning only moves past a 0.25 semitone
deadband. Follow bends keeps the old fast behaviour as an option.
- A trust score turns the note unsure while reads disagree; Tracker::active
and NoteState report it, and Fallback latches "step back" across note ends.
- Notes end when the window start stays below the gate's release level for
20 ms, so short gaps between notes are seen without waiting for the gate.
- PitchSource replaces the old (midi, gate, glide) arguments: Audio, MIDI or
Note mode (a set note, no detection), plus a key lock (minor, major, root
only) that snaps reads to the key.
- stems.rs: synthetic stems (growls, wobble, reese, formant, 808 slide,
layered drop, noise riser) and a score; examples/tracker_report scores the
corpus or real WAV stems. On the corpus the old behaviour makes up to 28
extra note starts per second; the stable default makes none.
Plugins:
- Anvil, Lathe, Temper, Knurl, Planish, Braze and Forge gain the NOTE pitch
source, the key lock and Follow bends (shared common-params crate and a
shared header switch in common-ui).
- Unsure tracking: Anvil brings the original sub back in place of the sine,
Lathe passes the audio through, Knurl fades its texture out; Temper,
Planish and Braze hold their last sure tuning. Readouts show the note only
when it is sure.
- Anvil gains Mode: Replace or Enhance (keeps the original sub and adds the
sine under it).
- Planish slides its band edges over 6 ms on a new note instead of snapping.
- Ballast defaults to Grid parts, which need no tracking.
Upward and downward compression in four bands whose edges are harmonic
numbers of the tracked note (default 1, 2-4, 5-16, 17 and up), so the
same setting squashes the same harmonics on every note. A fixed-band
OTT puts harmonic 2 of F1 and of C2 in different bands.
- Three Linkwitz-Riley splits at sqrt(k(k+1)) x f0 with allpass
compensation; at Depth 0 the bands sum within 0.05 dB.
- Band level is the RMS over one period of the note, so heavy settings
do not ripple at f0: a 40 Hz sine at Drive +12 dB, Time 10 % gets no
harmonics above -110 dB.
- At Depth 100 % on a saw, harmonics 1-12 change by the same amount on
F1, C2 and G2 (within 0.2 dB).
- Depth, Drive (on the detector only), Upward, Downward, Time, a gain
per band; edges Low 1-8, Mid 2-16, High 3-48 with four splits.
- Pitch from audio with about 67 ms lookahead, or from MIDI.
- Editor: harmonic ruler with draggable edges, level and gain per band.
- Catalog, workflows, editor-check, docs, signal chain and site copy.