Skip to content

Expand Roland S-1 MIDI CC definition to full spec#9

Merged
pnilan merged 4 commits intomainfrom
feat/s-1-midi-config
Mar 13, 2026
Merged

Expand Roland S-1 MIDI CC definition to full spec#9
pnilan merged 4 commits intomainfrom
feat/s-1-midi-config

Conversation

@pnilan
Copy link
Owner

@pnilan pnilan commented Mar 13, 2026

Summary

  • Expands the Roland S-1 synth definition from 35 to 54 CC parameters, matching the official MIDI implementation chart
  • Adds 19 missing parameters: mod wheel, pan, expression, damper pedal, LFO mode, 6 chord voice controls, and 4 OSC draw/chop controls
  • Documents discrete value mappings via notes fields on 17 switched parameters (e.g., polyphony mode, envelope trigger, LFO waveform, sub octave type)
  • Updates tests to validate the expanded parameter count and new fields

Test plan

  • All 15 existing tests pass (test_synth_yamls.py + test_synth_definitions.py)
  • New test assertions verify 54-parameter count, polyphony mode notes, draw/chop section, and chord section
  • Manual verification: load agent and confirm list_synths shows all 54 S-1 parameters

🤖 Generated with Claude Code

pnilan added 2 commits March 13, 2026 08:25
Add 19 missing CC parameters (mod wheel, pan, expression, damper pedal,
LFO mode, chord voice controls, OSC draw/chop controls) and document
discrete value mappings via notes fields for 17 switched parameters.
@pnilan
Copy link
Owner Author

pnilan commented Mar 13, 2026

I checked this against Roland's official S-1 documentation and found a few spec mismatches:

  1. The YAML still uses midi_channel: 1, but Roland documents the S-1 default synth MIDI channel as 3 (and 16 for program change).
  2. lfo_waveform notes are incomplete/incorrect. The manual lists six waveforms: sawtooth, inverted sawtooth, triangle, square, random, and noise. The current note string only models five buckets, so the value mapping is not reliable.
  3. osc_draw_sw is not a binary off/on parameter. Roland documents three states: OFF, STEP, and SLOPE.

The CC numbers themselves look consistent with Roland's control-change list; the issues are the default channel and some of the metadata/value descriptions.

Sources:

pnilan added 2 commits March 13, 2026 08:33
- Default MIDI channel 1 -> 3 per Roland documentation
- LFO waveform: add missing inv-sawtooth (6 waveforms, not 5)
- osc_draw_sw: three states (off/step/slope), not binary on/off
@pnilan pnilan merged commit 1419b2f into main Mar 13, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant