Skip to content

Event list: bends, pressure and SysEx; SysEx entry; clock port fixes - #26

Merged
fabox-os merged 1 commit into
midi-clock-infrom
event-list-fixes
Nov 6, 2026
Merged

fabox-os merged 1 commit into
midi-clock-infrom
event-list-fixes

Conversation

@fabox-os

@fabox-os fabox-os commented Nov 6, 2026

Copy link
Copy Markdown
Owner

Tenth PR in the stack. Base is #25 (→ #24 → … → #17). Merge #16 to #25 first.

Event list

  • Pitch bend shows its full 14-bit value (it was clamped to one byte).
  • Channel pressure shows as Aftertouch.
  • Each System Exclusive message is one row, with its bytes in hex in the Info column.

SysEx entry

  • SysEx… in the event list header opens a window. Type a message in hex (F0 … F7, with or without 0x, separated by spaces or commas).
  • Insert puts it into the selected MIDI region at the playhead. The text is checked first, and the window says what is wrong with it.

Fixes found while reviewing

  • A followed MIDI clock port that is missing was searched for on every frame. It is now looked for every three seconds.
  • Clearing the followed clock port kept its name, so choosing that port again waited out the retry time for nothing. The test that caught this is in the PR.

Testing

  • cargo xtask check passes all 7 steps with Add the 10 missing interface strings to every locale #16 included (run on this branch plus Add the 10 missing interface strings to every locale #16).
  • SysEx parsing and insertion tests (hex forms, framing, length, refusal on audio regions).
  • Event list tests: a SysEx message is one row, and a bend keeps its 14 bits.
  • Clock input: the retry throttle, and the real-port test still passes.
  • All 16 locales have the new strings (machine-written; they need a native-speaker check).
  • Screenshot scenes (default, extras, select-all, MIDI out, settings, track menu) render without panics.

Not done: SysEx for audio, Pattern and Drummer regions; the Length column is empty for SysEx rows.

🤖 Generated with Claude Code

- The event list shows pitch bend with its full 14-bit value, channel pressure
  as Aftertouch, and each System Exclusive message as one row with its bytes
  in hex. Before, a bend was clamped to one byte and every SysEx byte was its
  own row.
- Event list > SysEx… opens a window that takes a message typed in hex (F0 to
  F7, with or without 0x, separated by spaces or commas) and puts it into the
  selected MIDI region at the playhead. The text is checked before Insert.
- Fix: a followed MIDI clock port that is missing was searched for on every
  frame; it is now looked for every three seconds.
- Fix: clearing the followed port kept its name, so choosing that port again
  waited out the retry time for nothing.

New strings are translated into all 16 locales.

Co-Authored-By: Claude Haiku 5.5 <noreply@anthropic.com>
@fabox-os
fabox-os merged commit 07e6e70 into midi-clock-in Nov 6, 2026
7 of 10 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