Skip to content

First commit of proposed 00 Simple MIDI v2 - #129

Draft
chrisgjohnson wants to merge 16 commits into
TomWhitwell:mainfrom
chrisgjohnson:simple_midi_v2
Draft

First commit of proposed 00 Simple MIDI v2#129
chrisgjohnson wants to merge 16 commits into
TomWhitwell:mainfrom
chrisgjohnson:simple_midi_v2

Conversation

@chrisgjohnson

@chrisgjohnson chrisgjohnson commented Mar 29, 2026

Copy link
Copy Markdown
Collaborator

First commit of a prototype ComputerCard-based 00 Simple MIDI card, put in a v2_prototype subdirectory of this card.

New features:

  • Web-based auto-calibration of CV outs and WS oscillator trimming
  • Supports USB MIDI Host and Device
  • Pitchbend (±2 semitone)
  • Handles multiple notes down with overlapping note on/off more gracefully

Remaining TODOs:

  • Lots of testing
  • Calibration of audio/CV inputs
  • Calibration modes for standalone Computer and Workshop System calibration from an external 1V/oct oscillator
  • ?

@chrisgjohnson
chrisgjohnson marked this pull request as draft March 30, 2026 13:50
@chrisgjohnson

Copy link
Copy Markdown
Collaborator Author

Version for testing at https://chris-j.co.uk/misc/simple_midi_2/ with firmware https://chris-j.co.uk/misc/simple_midi_2/simple_midi_2.uf2 . I'll try to keep these up to date with the version here.

@chrisgjohnson

Copy link
Copy Markdown
Collaborator Author

I'm leaving as a draft PR for now as this is not 'my' card to edit. Everything is in a v2_prototype subdirectory so it won't overwrite the old card.

chrisgjohnson and others added 10 commits March 30, 2026 21:38
Lots of bug fixes:
- MIDI pitch --> CV outputs now work even if no calibration saved
- Fixed Bernoulli gate triggered by pulse in or MIDI gate
- Fixed Turing machine clock divider when triggered by pulse in
- Fixed reverb freeze driven by MIDI note
- Fixed board ID bug
- Fixed MIDI bug where both sysex and non-sysex in one USB packet
- Fixed bug where note on with velocity 0 counted as trigger for Turing Machine
- Fixed CV out (with divider) triggered by pulse in

Improvements to UI:
- Removed dependency on WebMIDI.js, in so doing fixing 100% CPU usage in Chrome if MIDI connection removed
- Populated <option> tags through JS
- Re-compressed base64-encoded PNGs
- Horizontal rules now separate sections of the sentence UI
- Result of these is to reduce HTML size from ~250KB to ~50KB.
@TomWhitwell

Copy link
Copy Markdown
Owner

Finally after so long got round to testing this.

Worked exactly as expected, hosting worked first time with an elderly keystep and KO-2

Nice to have pitchbend!

Calibration also went very smoothly - the only UX issue I had - and it's very small - after the calibration I get a graph and it says ±1 cent - is this OK? I had no idea what normal would mean.

I feel if you're still happy with it that we should:

  1. Restructure the folder so this becomes the new card, with a legacy folder (rather than a prototype folder)
  2. Once that's in place I can announce it on Discord and in Newsletter
  3. You or me or someone should make a demo video to explain it
  4. We get Thonk to put this version on new systems.

@chrisgjohnson

Copy link
Copy Markdown
Collaborator Author

Thanks Tom,

Calibration UI - yes I also had no idea what the accuracy was going to be, but most people are between -1 and +1 cent, except at the lowest octave when it tends to drop to more like -2 cents. I think it needs a sentence to that effect, which I'll add.

Full disclaimer before we merge:

  • The input calibration is not all that well tested (not least because I haven't even updated the public ComputerCard to use it)
  • Output calibration differs between WS and standalone Computer modes because of different corrections for the assumed input impedance of the oscillators used. Someone will be tripped up by this at some point and find their oscillators aren't in tune, but I don't think there's a perfect solution to this, without hardware changes.
  • The whole UI is heavily vibe coded and could be doing something I'm not aware of (but on the other hand has worked successfully for I think 20+ people at this point).

Mitigating most of these concerns is that almost all the calibration logic is in the web UI, not the card itself, and so even if we did fix/improve any of these issues later, it'd probably be an update to the website only.

@github-actions

github-actions Bot commented Aug 10, 2026

Copy link
Copy Markdown

✅ Program card PR validation succeeded

PR validation is intended for maintainers, not card authors. If you're a card author and don't understand this report, don't worry about it!

1 info.yaml file(s) checked · 0 error(s) · 0 warning(s)

Triggered by:

  • D releases/00_Simple_MIDI/info.yaml
  • M files under releases/00_Simple_MIDI/
  • A files under releases/00_Simple_MIDI/firmware/
  • D files under releases/00_Simple_MIDI/Arduino Code/Simple_Midi_0_6_6/
  • A files under releases/00_Simple_MIDI/legacy/Arduino Code/Simple_Midi_0_6_6/
  • D files under releases/00_Simple_MIDI/Documentation/
  • A files under releases/00_Simple_MIDI/legacy/Documentation/
  • D files under releases/00_Simple_MIDI/Old versions/
  • A files under releases/00_Simple_MIDI/legacy/Old versions/
  • D files under releases/00_Simple_MIDI/Old versions/Simple_Midi_0_5_0/
  • A files under releases/00_Simple_MIDI/legacy/Old versions/Simple_Midi_0_5_0/
  • D files under releases/00_Simple_MIDI/Old versions/Simple_Midi_0_6_0/
  • A files under releases/00_Simple_MIDI/legacy/Old versions/Simple_Midi_0_6_0/
  • A files under releases/00_Simple_MIDI/legacy/
  • D files under releases/00_Simple_MIDI/
  • D files under releases/00_Simple_MIDI/uf2 Installer/
  • A files under releases/00_Simple_MIDI/legacy/uf2 Installer/
  • A files under releases/00_Simple_MIDI/ui/images/
  • A files under releases/00_Simple_MIDI/ui/

Affected release directories: 00_Simple_MIDI

✅ All changed info.yaml files validate cleanly.

Other rules

✅ All submission rules 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.

2 participants