Real-time MIDI sequencer engine with external clock synchronization and transport state management.
- External MIDI Clock Sync - Slave mode synchronization (src/midi/external_clock.rs)
- Transport State Management - Play/stop/position tracking (src/transport/mod.rs)
- Mock MIDI Backends - Testable with
--features test-mock
(src/midi/mock_engine.rs) - Scheduler Core - Tick-driven event queue (src/scheduler.rs)
- CLI Interface - Interactive transport control (src/cli/mod.rs)
# Clone and build
git clone https://github.com/jgumbley/phasorsyncrs
cd phasorsyncrs
make run
src/
├── midi/ # MIDI I/O implementations
│ ├── external_clock.rs - Clock synchronization logic
│ └── mock_engine.rs - Test mock implementation
├── transport/ # Transport state machine
│ └── mod.rs - Play/stop/position tracking
├── ui/ # Status display interfaces
│ └── mod.rs - Transport visualization
└── scheduler.rs - Core timing engine
tests/
└── midi_tests.rs - MIDI I/O validation tests
# Test with mock MIDI (no hardware required)
make run
# Run bound onto ext device (config in makefile)
make run-oxi
Key design decisions documented in ADRs:
MIT - See LICENSE for details