SEM family: the OB-1 #37

Open
opened 2026-10-12 21:15:40 +00:00 by bcox · 6 comments
Owner

Ben asked on 2026-10-12 which instruments of the families already here were missed, and for an issue a family. Everything below is from recollection, with no manual read; issue #20's list was wrong in several places for the same reason, so read the manuals first and correct this. Each is to be an extension of the existing instrument, as the Jupiters and the JX family are, never a "model" switch.

  • OB-Xa (1980) and OB-8 (1983): half here already (filter.four_pole, split and double as zones, the OB-8's portamento ways), but never gone through as instruments. The OB-8's Page 2 is partly #9.
  • OB-SX (1980): recalled as a preset OB-X/OB-Xa.
  • OB-1 (1978): one voice, two VCOs with a sub-octave and waveform shape controls, a filter of two or four poles. Not now, by Ben's word on 2026-10-12.

Goes with #14: Oberheim's manuals were never read.

Ben asked on 2026-10-12 which instruments of the families already here were missed, and for an issue a family. **Everything below is from recollection, with no manual read**; issue #20's list was wrong in several places for the same reason, so read the manuals first and correct this. Each is to be an extension of the existing instrument, as the Jupiters and the JX family are, never a "model" switch. - **OB-Xa** (1980) and **OB-8** (1983): half here already (`filter.four_pole`, split and double as zones, the OB-8's portamento ways), but never gone through as instruments. The OB-8's Page 2 is partly #9. - **OB-SX** (1980): recalled as a preset OB-X/OB-Xa. - **OB-1** (1978): one voice, two VCOs with a sub-octave and waveform shape controls, a filter of two or four poles. **Not now**, by Ben's word on 2026-10-12. Goes with #14: Oberheim's manuals were never read.
Author
Owner

Done on the family-extensions branch, without the OB-1. Written by Claude; nothing here has been played or heard, and Ben has not confirmed any choice in it.

What was found

Oberheim's own, on archive.org, all now in docs/references.md:

  • OB-X owner's manual, second edition, June 1980, and its service manual of September 1979 (skimmed).
  • OB-Xa owner's manual, third edition, April 1982, and its service manual, third edition, June 1982 (skimmed; schematics not read).
  • OB-8 owner's manual, first edition, November 1982, and its service manual of January 1983 (skimmed).
  • OB-SX: no owner's manual was found, only a set of service sheets (DIP switches, test procedure, voice card calibration, schematics of 15 August 1980) and a blog post quoting the manual.

The manuals against this issue's recollection

  • OB-Xa and OB-8, "half here already": more than half. Beyond filter.four_pole and split and double as zones, F-ENV is a SEM's envelope 2 to VCO 2's pitch (vco2.env_pitch), pink noise is in both specifications (noise.pink, which was put in as the OB-X8's), OSC 2 ONLY is bend.target, the lever panel's own LFO is stick.lfo2, and the OB-8's VOLUME MOD and its two sawtooths were in as the OB-6's.
  • "The OB-8's portamento ways": of the three ways in engine/portamento.h only the steps are the OB-8's (QUANTIZE, half steps). Its other two are MATCH (off: each voice glides at a slightly different rate; the OB-Xa calls it OFFSET and starts with it on) and PORTAMENTO BEND (every note slides in from a set interval). Neither was here. Legato-only and time-per-octave are in no Oberheim manual read.
  • OB-SX, "a preset OB-X/OB-Xa": borne out as far as the sheets go. Four to six voices; a panel of VCF frequency, attack, VCF decay, VCA release, VCO 2 detune, LFO rate and portamento knobs, UNISON, HOLD, CHORD and the OB-X's bend box. Whether its voice card has the four-pole filter was not read off the schematic.
  • Unison plays the lowest key held on the OB-X, OB-Xa and OB-8. mini-SEM's plays the latest.
  • The sustain footswitch holds no key. It sets every envelope's release to about seven seconds (OB-Xa) or to the patch's PEDAL SUSTAIN, up to 20 seconds (OB-8). HOLD is a different footswitch.
  • The OB-8 has a triangle on both VCOs (neither SAW nor PULSE on), and a pulse width for each.

What was built

Seven parameters, each at nothing until asked for, so every stored patch renders as before:

  • vco1.triangle (each sound).
  • env.pedal and env.pedal_release (each sound): controller 64 as the sustain footswitch, starting at the OB-Xa's 7 seconds, to the OB-8's 20.
  • voice.low_note: a unison on the lowest key held.
  • voice.portamento_offset: OFFSET, or MATCH off, as a fixed error in each voice's glide time.
  • voice.portamento_bend: the OB-8's, -12 to +18 semitones, which is its quarter tone a key.

Nothing in engine/ changed. No bench was run: nothing was added to what every patch works out a sample or a block. CLAUDE.md lists which settings make an OB-Xa, an OB-8 and an OB-SX.

Not built, and why

  • The OB-8's Page 2 LFO functions, left to #9. For whoever takes that up, the OB-8's manual gives: QUANTIZE 1 and 2 (the LFO's sweep in half steps, for each of the two depth groups); LFO PHASE 90 and 180 degrees, of voices 5 to 8 against 1 to 4; TRIG, any waveform restarted by each key, with a TRIG POINT anywhere in the cycle; an envelope for each depth group with DELAY and ATTACK of nothing to 3.5 seconds each and INVERT; LFO TRACK, the rate doubling every four octaves; and LFO ENV MOD, the second LFO envelope on the rate. Also a "sampled vibrato LFO", a sample and hold of the lever panel's LFO.
  • Split transposition, balance and lower detune as settings of a zone. Reachable through each half's sound (vco*.tune, amp.level, vco*.detune), less the filter's tracking. The JX family's zone.shift, zone.level and zone.detune would fit.
  • Hold, chord and the CHORD button's envelope reset (#11), the arpeggiator (the shared one stands for it), memories, cassette, the pedals, the pan pots as the factory sets them (voices 1 to 4 left, 5 to 8 right).

For Ben

Listed under "Open decisions" in CLAUDE.md. The ones that matter most: whether a unison should play the lowest key as it comes; whether controller 64 on this instrument should be this release pedal or #11's hold; how large the portamento offset should be, the manuals saying only "slightly"; and whether zones should gain shift, level and detune.

Done on the `family-extensions` branch, without the OB-1. Written by Claude; nothing here has been played or heard, and Ben has not confirmed any choice in it. ## What was found Oberheim's own, on archive.org, all now in `docs/references.md`: - OB-X owner's manual, second edition, June 1980, and its service manual of September 1979 (skimmed). - OB-Xa owner's manual, third edition, April 1982, and its service manual, third edition, June 1982 (skimmed; schematics not read). - OB-8 owner's manual, first edition, November 1982, and its service manual of January 1983 (skimmed). - OB-SX: **no owner's manual was found**, only a set of service sheets (DIP switches, test procedure, voice card calibration, schematics of 15 August 1980) and a blog post quoting the manual. ## The manuals against this issue's recollection - **OB-Xa and OB-8, "half here already"**: more than half. Beyond `filter.four_pole` and split and double as zones, F-ENV is a SEM's envelope 2 to VCO 2's pitch (`vco2.env_pitch`), pink noise is in both specifications (`noise.pink`, which was put in as the OB-X8's), OSC 2 ONLY is `bend.target`, the lever panel's own LFO is `stick.lfo2`, and the OB-8's VOLUME MOD and its two sawtooths were in as the OB-6's. - **"The OB-8's portamento ways"**: of the three ways in `engine/portamento.h` only the steps are the OB-8's (QUANTIZE, half steps). Its other two are MATCH (off: each voice glides at a slightly different rate; the OB-Xa calls it OFFSET and starts with it on) and PORTAMENTO BEND (every note slides in from a set interval). Neither was here. Legato-only and time-per-octave are in no Oberheim manual read. - **OB-SX, "a preset OB-X/OB-Xa"**: borne out as far as the sheets go. Four to six voices; a panel of VCF frequency, attack, VCF decay, VCA release, VCO 2 detune, LFO rate and portamento knobs, UNISON, HOLD, CHORD and the OB-X's bend box. Whether its voice card has the four-pole filter was not read off the schematic. - **Unison** plays the lowest key held on the OB-X, OB-Xa and OB-8. mini-SEM's plays the latest. - **The sustain footswitch holds no key.** It sets every envelope's release to about seven seconds (OB-Xa) or to the patch's PEDAL SUSTAIN, up to 20 seconds (OB-8). HOLD is a different footswitch. - **The OB-8 has a triangle on both VCOs** (neither SAW nor PULSE on), and a pulse width for each. ## What was built Seven parameters, each at nothing until asked for, so every stored patch renders as before: - `vco1.triangle` (each sound). - `env.pedal` and `env.pedal_release` (each sound): controller 64 as the sustain footswitch, starting at the OB-Xa's 7 seconds, to the OB-8's 20. - `voice.low_note`: a unison on the lowest key held. - `voice.portamento_offset`: OFFSET, or MATCH off, as a fixed error in each voice's glide time. - `voice.portamento_bend`: the OB-8's, -12 to +18 semitones, which is its quarter tone a key. Nothing in `engine/` changed. No bench was run: nothing was added to what every patch works out a sample or a block. CLAUDE.md lists which settings make an OB-Xa, an OB-8 and an OB-SX. ## Not built, and why - **The OB-8's Page 2 LFO functions**, left to #9. For whoever takes that up, the OB-8's manual gives: QUANTIZE 1 and 2 (the LFO's sweep in half steps, for each of the two depth groups); LFO PHASE 90 and 180 degrees, of voices 5 to 8 against 1 to 4; TRIG, any waveform restarted by each key, with a TRIG POINT anywhere in the cycle; an envelope for each depth group with DELAY and ATTACK of nothing to 3.5 seconds each and INVERT; LFO TRACK, the rate doubling every four octaves; and LFO ENV MOD, the second LFO envelope on the rate. Also a "sampled vibrato LFO", a sample and hold of the lever panel's LFO. - **Split transposition, balance and lower detune** as settings of a zone. Reachable through each half's sound (`vco*.tune`, `amp.level`, `vco*.detune`), less the filter's tracking. The JX family's `zone.shift`, `zone.level` and `zone.detune` would fit. - **Hold, chord and the CHORD button's envelope reset** (#11), the arpeggiator (the shared one stands for it), memories, cassette, the pedals, the pan pots as the factory sets them (voices 1 to 4 left, 5 to 8 right). ## For Ben Listed under "Open decisions" in CLAUDE.md. The ones that matter most: whether a unison should play the lowest key as it comes; whether controller 64 on this instrument should be this release pedal or #11's hold; how large the portamento offset should be, the manuals saying only "slightly"; and whether zones should gain shift, level and detune.
Author
Owner

Ben answered on 2026-10-12 which key a unison plays: "put in a switch. the user can choose lowest if they want. that switch should also be available on other instruments where it is relevant." So voice.low_note stays off as it comes on the SEM family, and the DW-8000, the Juno, the MS-20 (voice.low_note) and the JX family (zone.low_note) were given the same switch, on the family-extensions branch.

Ben answered on 2026-10-12 which key a unison plays: "put in a switch. the user can choose lowest if they want. that switch should also be available on other instruments where it is relevant." So `voice.low_note` stays off as it comes on the SEM family, and the DW-8000, the Juno, the MS-20 (`voice.low_note`) and the JX family (`zone.low_note`) were given the same switch, on the `family-extensions` branch.
Author
Owner

The low note switch is now a key priority switch of three positions, as Ben asked on 2026-10-12 ("low, high, last"): voice.key_priority, or a zone's zone.key_priority, 0 the latest key, 1 the lowest, 2 the highest, on the SEM family, the DW-8000, the Juno, the SH-101, the MS-20, the JX family and the Jupiters. Each starts where it was (the latest; the MS-20 the highest), and a Jupiter patch stored with zone.low_note still loads. On branch family-extensions, not merged.

The low note switch is now a key priority switch of three positions, as Ben asked on 2026-10-12 ("low, high, last"): `voice.key_priority`, or a zone's `zone.key_priority`, 0 the latest key, 1 the lowest, 2 the highest, on the SEM family, the DW-8000, the Juno, the SH-101, the MS-20, the JX family and the Jupiters. Each starts where it was (the latest; the MS-20 the highest), and a Jupiter patch stored with `zone.low_note` still loads. On branch `family-extensions`, not merged.
Author
Owner

The unison's key priority, again (2026-10-12, branch family-extensions, not pushed). Ben asked that the shared switch start at whatever the original's own rule is. So voice.key_priority on the SEM family now starts at 1, the lowest key, as the OB-X's, OB-Xa's and OB-8's owner's manuals have it, where it started at 0, the latest. A patch stored with no voice.key_priority line played the latest and now plays the lowest; 0 gives back what it played. The highest, 2, is none of the three's.

The unison's key priority, again (2026-10-12, branch `family-extensions`, not pushed). Ben asked that the shared switch start at whatever the original's own rule is. So `voice.key_priority` on the SEM family now **starts at 1, the lowest key**, as the OB-X's, OB-Xa's and OB-8's owner's manuals have it, where it started at 0, the latest. A patch stored with no `voice.key_priority` line played the latest and now plays the lowest; 0 gives back what it played. The highest, 2, is none of the three's.
Author
Owner

Ben's word on 2026-10-12: the OB-Xa and OB-8 are done; the OB-SX is a preset OB-X and is dropped as something to look into further; this stays open for the OB-1, which is not to be done now.

Ben's word on 2026-10-12: the OB-Xa and OB-8 are done; the OB-SX is a preset OB-X and is dropped as something to look into further; this stays open for the OB-1, which is not to be done now.
bcox changed title from SEM family: the OB-Xa, OB-8 and OB-SX by name, and the OB-1 to SEM family: the OB-1 2026-10-13 01:27:32 +00:00
Author
Owner

Progress on the night of 2026-10-12. This stays open for the OB-1 alone, which is not to be done now.

  • Ben played the OB-X, OB-Xa and OB-8 settings on his laptop and found them nice.
  • The OB-X's square LFO going downward only is a switch, as he asked: lfo.square_down in each sound and lfo2.square_down for the second LFO, off as they come. On, the square rests at nothing and steps down by the depth wherever the LFO goes. He heard it and asked for nothing of it to change.
  • Confirmed: the two as settings and seven parameters; the portamento offset staying in this instrument for now.
  • The pedal is to be a choice of three in the patch, nothing, sustain or hold, when hold is built: noted on #11.
  • A zone's key assign, shift, level and detune, as the JX has: #60.
  • Still wanted from Ben: whether vco1.xmod should read as a switch at its hardware depth, which nobody knows. The OB-8's Page 2 LFO functions are #9.

Everything said here is on main, pushed, on the night of 2026-10-12. What was heard was heard on Ben's laptop, not on the Pi.

Progress on the night of 2026-10-12. **This stays open for the OB-1 alone**, which is not to be done now. - **Ben played the OB-X, OB-Xa and OB-8 settings** on his laptop and found them nice. - **The OB-X's square LFO going downward only is a switch**, as he asked: `lfo.square_down` in each sound and `lfo2.square_down` for the second LFO, off as they come. On, the square rests at nothing and steps down by the depth wherever the LFO goes. He heard it and asked for nothing of it to change. - **Confirmed**: the two as settings and seven parameters; the portamento offset staying in this instrument for now. - **The pedal** is to be a choice of three in the patch, nothing, sustain or hold, when hold is built: noted on #11. - **A zone's key assign, shift, level and detune**, as the JX has: #60. - Still wanted from Ben: whether `vco1.xmod` should read as a switch at its hardware depth, which nobody knows. The OB-8's Page 2 LFO functions are #9. Everything said here is on `main`, pushed, on the night of 2026-10-12. What was heard was heard on Ben's laptop, not on the Pi.
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#37
No description provided.