Glide: from each voice's own pitch, per oscillator, time as a destination, and glissando #119
Labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
bcox/tymbal#119
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 that the third set of instruments in his
moregaps.mdleft without one. 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
Glide is one setting per program: mode (off, always, fingered), fixed time or fixed rate, and a curve (
dsp/layer.h:303-316). The allocator seeds every new note from the channel's last-started key (dsp/voice_allocator.h:222-234), and the ramp runs on the pitch lane every oscillator reads.bend_followlets an oscillator ignore bend but not glide (dsp/va_oscillator.h:1095-1098). The glide design's "Reserved, not built" list names glide time as a destination and smarter seeds, and says nothing blocks either (docs/superpowers/specs/2026-09-07-pitch-lane-glide-design.md:379-392).Four variants the instruments have, none of them here:
kQuantizeexists, but glide is not a matrix lane; the engines read it directly, so no op reaches it.The work, as a sketch
Glide: the channel's last-started key (today), or the voice's own last realized pitch -- the spec's reserved "per-copy realized pitch" seed. With unison copies andpickup_releasedsteals the voice's own pitch is well defined, since a stolen voice knows where it was.glide_followswitch per oscillator besidebend_follow, which already splits the lane per oscillator.timelane is.Glide: zero is continuous; a semitone gives glissando. A field rather than an op, because the lane is not in the matrix.Open