Protocol discovery and tooling for a MIDI router (USB), toward a modern macOS configuration editor.
- macOS 13 or later
- MIDI router connected via USB (for app and probe)
- Xcode (for the app) or Swift/Xcode command line tools (for scripts)
The MidiClockXT macOS app discovers the MIDI router over CoreMIDI, shows device identity and current preset, and lets you recall presets 1–16.
-
Open: Open
MidiClockXT.xcodeprojin Xcode (or open themidi-clock-xtfolder and select the project). -
Build and run: Select the MidiClockXT scheme and run (⌘R). Prerequisite: router connected via USB.
-
Test: With the router connected, launch the app; in Device you should see “Connected” and after Request Device Identity the device identity (manufacturer, family, model, revision). In Presets you can recall a preset and the current preset (from device) should update; it also updates when you change preset on the hardware.
-
Icon not showing in Dock? After a clean build (Product → Clean Build Folder, ⇧⌘K, then build), open the built app in Finder: Product → Show Build Folder in Finder, then open the build folder, find
MidiClockXT.app, and select it → Get Info. If the custom icon appears there, the bundle is correct; clear the Dock icon cache (e.g.rm -f ~/Library/Application\ Support/Dock/iconcache.dbthenkillall Dockor log out/in). If the icon is still the default in Get Info, ensure the MidiClockXT target has Assets.xcassets under Copy Bundle Resources and that AppIcon.appiconset contains all required sizes. -
Run from Applications: Build the app in Xcode (⌘B or ⌘R once). Then Product → Show Build Folder in Finder, open the Debug (or Release if you built for release) folder, and copy MidiClockXT.app to /Applications. You can then launch MidiClockXT from Applications, Spotlight, or the Dock like any other app.
Scripts live in scripts/. To run the SysEx probe (sends request probes and Universal Inquiry to the router, listens for replies):
- From project root:
swift scripts/send_sysex_probe.swift(see options with--help) - Full usage: scripts/README.md
Test the probe: Connect the router, run the script; you should see “Identity: …” and/or “Preset notification: N” in the output.
- docs/PROTOCOL.md – Discovered SysEx protocol (preset, identity)
- docs/PROJECT.md – Project state, progress, and screens to add
- docs/AGENTS.md – Guide for AI agents and project conventions
- CHANGELOG.md – Version and change history