Release velocity: dropped at the router, and no source carries it #134
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#134
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
bcox asked on 2026-10-05 for a ticket for each engine gap in his
moregaps.mdfeature table that no existing ticket covers. Engine claims are from reading the tree atf6aa8ebaonmain. Instrument claims are from that day's research, read mostly as archive.org OCR of the manuals by research agents and not re-checked; the sources are listed in that document. Nothing here is built, measured or listened to.Summary
A MIDI note-off's velocity never reaches a voice: the router passes the key and not the second data byte (
midi/router.h:246-247), and the shared sources have velocity at note-on only (kSharedVelocity,dsp/mod_source.h). The instruments that use it:It is also what every modern keyboard and MPE controller sends, and CLAP carries it as a note expression.
The work, as a sketch
kSharedReleaseVelocity: a shared source that is zero until note-off and holds the release velocity from then on, so a route from it only matters in the release, which is what the instruments do with it (release time, release level).fabric/event.h:27,kNoteOff); a note-on with velocity zero is a note-off with no release velocity, as the MIDI spec says.Open
kSharedVelocityat note-off (one source, two meanings, as some instruments do) rather than be a second one; a second is cleaner for a route that wants both.