Back to corpus
proposalexperiment writeup candidatescore 40
Phase 2 Implementation Plan – Scheduler & Safety
**Timeline:** Weeks 7-12 (6 weeks) **Status:** Foundation complete (BeatClock trait, Quantizer, SafetyPolicy) **Next:** Action queue, executor, MIDI/OSC integration
Full HTML reader
Read the full artifact
Extracted abstract or opening context
## Overview Phase 2 focuses on integrating Ableton Link synchronization, implementing quantized action execution with safety policies, and adding MIDI/OSC control interfaces. The scheduler coordinates deck operations with beat-synchronized timing while enforcing safety constraints.
**Timeline:** Weeks 7-12 (6 weeks) **Status:** Foundation complete (BeatClock trait, Quantizer, SafetyPolicy) **Next:** Action queue, executor, MIDI/OSC integration
### Completed ✅ - [x] BeatClock trait with `current_beat()`, `phase()`, `tempo_bpm()`, `is_synchronized()`, `num_peers()` - [x] LocalBeatClock implementation for offline use - [x] Helper methods: `time_to_next_beat()`, `time_to_next_bar()` - [x] Unit tests for beat clock functionality
### Remaining Tasks - [ ] **7.1 Link SDK FFI Integration** (Requires Ableton Link SDK) - [ ] Add Link SDK C++ bindings to `link-clock/src/ffi.rs` - [ ] Create `LinkSession` wrapper struct - [ ] Implement `LinkClock` struct implementing `BeatClock` trait - [ ] Expose `beat_time()`, `phase()`, `is_connected()`, `num_peers()` methods - [ ] Handle Link session lifecycle (create, enable, close) - **Dependencies:** Ableton Link SDK license and C++ bindings - **Deliverable:** `LinkClock` compiles and can query Link state
- [ ] **7.2 Link Thread** - [ ] Create `LinkThread` struct in `link-clock` crate - [ ] Poll Link state at configurable interval (e.g., 10ms) - [ ] Publish beat clock updates via SPSC ring (`BeatClockUpdate` message) - [ ] Handle Link tempo changes and peer connections/disconnections - [ ] Graceful shutdown on thread join - **Dependencies:** Link SDK integration (7.1) - **Deliverable:** `cargo run -p link-test` demonstrates Link sync with multiple instances
Promotion decision
What has to happen next
Attach run IDs, datasets, metrics, and reproduction commands.
Why this is not always a full paper yet
Corpus pages are public-safe readers for discovered workspace artifacts. They are not automatically final papers. A corpus item becomes a polished paper only after the editable source, evidence checkpoints, references, figures, render path, and release status are attached through the paper schema.