Glide: from each voice's own pitch, per oscillator, time as a destination, and glissando #119

Open
opened 2026-10-05 23:35:05 +00:00 by bcox · 0 comments
Owner

bcox asked on 2026-10-05 for a ticket for each engine gap that the third set of instruments in his moregaps.md left without one. Engine claims are from reading the tree at f6aa8eba on main. 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_follow lets 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:

  1. From each voice's own last pitch. Prophet-600, in its manual's words: "the amount of voice glide is the difference between the last and next note to which it is assigned" -- the one primary-source statement of this. Memorymoog: six glide circuits, one per voice. CS-80 and GX-1: inferred from the manuals' wording about chords. Mono/Poly: "polyphonic portamento". The Synthex is the other way: its manual says glide runs from the last note played, which is the rule here.
  2. Per oscillator. Synthex: portamento on oscillator 1, 2 or both, with glide on a synced oscillator 2 singled out. Pro 2: per-oscillator glide.
  3. Time under a controller. GX-1: the knee lever sets the Solo manual's portamento speed. EWI: the glide strip (as CC 5 and 65, which wait on #48). OB-8: with the portamento match switch off, the voices glide at slightly different rates, which is also the per-voice-offset row.
  4. Glissando. CS-80 (glide switched to chromatic steps), OB-8 (quantized portamento), Chroma, DX7. kQuantize exists, but glide is not a matrix lane; the engines read it directly, so no op reaches it.

The work, as a sketch

  1. A seed choice on 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 and pickup_released steals the voice's own pitch is well defined, since a stolen voice knows where it was.
  2. A glide_follow switch per oscillator beside bend_follow, which already splits the lane per oscillator.
  3. Glide time as a destination, in the shape the spec gives: octaves of duration through the exp2 table, as the envelope's time lane is.
  4. A step size on Glide: zero is continuous; a semitone gives glissando. A field rather than an op, because the lane is not in the matrix.

Open

  • Whether 3 moves the time of a glide in progress or only the next one.
  • Whether 4 is time per step or time per glide; the CS-80 and OB-8 may differ.
bcox asked on 2026-10-05 for a ticket for each engine gap that the third set of instruments in his `moregaps.md` left without one. Engine claims are from reading the tree at `f6aa8eba` on `main`. 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_follow` lets 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: 1. **From each voice's own last pitch.** Prophet-600, in its manual's words: "the amount of voice glide is the difference between the last and next note to which it is assigned" -- the one primary-source statement of this. Memorymoog: six glide circuits, one per voice. CS-80 and GX-1: inferred from the manuals' wording about chords. Mono/Poly: "polyphonic portamento". The Synthex is the other way: its manual says glide runs from the last note played, which is the rule here. 2. **Per oscillator.** Synthex: portamento on oscillator 1, 2 or both, with glide on a synced oscillator 2 singled out. Pro 2: per-oscillator glide. 3. **Time under a controller.** GX-1: the knee lever sets the Solo manual's portamento speed. EWI: the glide strip (as CC 5 and 65, which wait on #48). OB-8: with the portamento match switch off, the voices glide at slightly different rates, which is also the per-voice-offset row. 4. **Glissando.** CS-80 (glide switched to chromatic steps), OB-8 (quantized portamento), Chroma, DX7. `kQuantize` exists, but glide is not a matrix lane; the engines read it directly, so no op reaches it. ## The work, as a sketch 1. A seed choice on `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 and `pickup_released` steals the voice's own pitch is well defined, since a stolen voice knows where it was. 2. A `glide_follow` switch per oscillator beside `bend_follow`, which already splits the lane per oscillator. 3. Glide time as a destination, in the shape the spec gives: octaves of duration through the exp2 table, as the envelope's `time` lane is. 4. A step size on `Glide`: zero is continuous; a semitone gives glissando. A field rather than an op, because the lane is not in the matrix. ## Open - Whether 3 moves the time of a glide in progress or only the next one. - Whether 4 is time per step or time per glide; the CS-80 and OB-8 may differ.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
bcox/tymbal#119
No description provided.