A modulation matrix #7

Closed
opened 2026-10-12 02:21:22 +00:00 by bcox · 0 comments
Owner

The TEO-5 has a modulation matrix: 19 slots, 19 sources and 64 destinations by Oberheim's specification, with audio-rate sources and destinations among them. We will want one in the future. Not now.

Today every route is a parameter with a name of its own (vco1.lfo_pitch, lfo.cutoff, touch.mode), on every instrument. A matrix is a different shape: a slot holds a source, a destination and an amount.

Things to settle when it is taken up:

  • Whether it is the SEM family's or shared in engine/, so that any instrument can have one. The rule in CLAUDE.md says shared.
  • How a slot is stored and named in a patch and in the control protocol, which today knows only numbers by name (mod1.source, mod1.destination, mod1.amount?), and how the page shows a slot.
  • Which sources and destinations, and whether the routes that are named parameters today stay as they are beside it.
  • Audio-rate routes. Pitch, pulse width and cutoff are worked out once a block of 32 samples in the SEM's voice; a matrix that modulates them at audio rate needs them per sample, which costs on the Pi 3B. This is also what the rest of the OB-6's X-Mod wants (the filter envelope and VCO 2 to pulse width, cutoff and filter mode).

The source so far is Oberheim's published specification (docs/references.md); the manual has not been read.

The TEO-5 has a modulation matrix: 19 slots, 19 sources and 64 destinations by Oberheim's specification, with audio-rate sources and destinations among them. We will want one in the future. Not now. Today every route is a parameter with a name of its own (`vco1.lfo_pitch`, `lfo.cutoff`, `touch.mode`), on every instrument. A matrix is a different shape: a slot holds a source, a destination and an amount. Things to settle when it is taken up: - Whether it is the SEM family's or shared in `engine/`, so that any instrument can have one. The rule in CLAUDE.md says shared. - How a slot is stored and named in a patch and in the control protocol, which today knows only numbers by name (`mod1.source`, `mod1.destination`, `mod1.amount`?), and how the page shows a slot. - Which sources and destinations, and whether the routes that are named parameters today stay as they are beside it. - Audio-rate routes. Pitch, pulse width and cutoff are worked out once a block of 32 samples in the SEM's voice; a matrix that modulates them at audio rate needs them per sample, which costs on the Pi 3B. This is also what the rest of the OB-6's X-Mod wants (the filter envelope and VCO 2 to pulse width, cutoff and filter mode). The source so far is Oberheim's published specification (`docs/references.md`); the manual has not been read.
bcox closed this issue 2026-10-17 02:51:37 +00:00
Sign in to join this conversation.
No labels
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/mini-800#7
No description provided.