Cadence / interaction plan
Review draft · 18 September 2026 · Listening results

Proposed next experiment · not a capability announcement

From a musical forecast
to a responsive partner.

Make the interaction contract and runtime work on the existing 5k corpus before scaling the same forecast task to 20k. Keep the accepted checkpoint and listening set as a baseline; do not discard what already works.

The target is straightforward: you keep playing right hand, Cadence produces a useful left-hand part, and future output adapts to newly received playing. A MIDI upload followed by a prerecorded answer is not this target.

Observed: trained forecast pilotEvidence: primary sources belowProposal: live MIDI experimentUnproven: continuous accompaniment

This page distinguishes source findings, our measurements, and design choices. It is a proposal for review, not authorization for an unbounded training campaign. No inference model runs on this page.

Domain ownership comes first

Engineering plan Reuse existing owners and public interfaces. Do not create a second scheduler in the web UI or make the MIDI I/O library responsible for musical judgment.

score       MIDI messages, note/pedal lifecycle, ports and score I/O
session     session clock, observed/held state, scheduling, commit log
  stream    adapt incoming device/browser events to the session input
  inference incremental decoding and cache/rollback integration
model       checkpoint loading, vocabulary compatibility, decoder/cache
duet        causal accompaniment serialization and training task
forecast    preserve the accepted fixed-prefix RH → RH+LH task
demo        connection/start/stop controls, visualization and transport
corpus      build causally available training examples and frozen splits
training    bounded fine-tunes, validation and durable checkpoints
evaluation real-clock replay, counterfactuals, traces and listening

The current code already contains MIDI ports, session-loop machinery, held-note state and cache primitives. Those are reusable implementation pieces—not evidence that the accepted forecast checkpoint is compatible with the older duet/session token contract, or that the old accompaniment behavior is musically useful.

Execution started · CPU implementation gates first

The first interaction fine-tune

Starting point: our accepted 5k / step-500 checkpoint. Not base Aria and not random initialization. Preserve that checkpoint and its listening examples; the interaction candidate is a separate run with a fresh optimizer.

Engineering choices StreamMUSE remains the primary interaction/scheduling reference and Moshi the multistream reference. Other sources constrain interpretation; they are not extra architecture requirements. This section specifies our first test, not a claim that either paper validated it.

DecisionFirst implementationGate
Input stateObserved RH and played LH up to the decision cutoff, explicit held-note flags, plus already committed upcoming LH.Changing later human notes or unknown release times cannot change the input prefix.
PredictionOnly uncommitted upcoming LH, beyond a positive scheduling lead where configured.No generated notes enter played history without an actual playback acknowledgement. Joint speculative RH is a later comparison, not ruled out.
InitializationKeep all accepted checkpoint rows/tensors; append only interaction task, timing and active-note controls.Default legacy vocabulary remains unchanged; migration must preserve every old row exactly and verify the source digest.
DataThe same fixed 5,000 files and 4,782 / 98 / 120 train/validation/test split. No new hand labeling or 20k expansion.Source/sidecar identity checks and per-file window coverage; no silently excluded input files.
Training isolationOne source example per batch row, padded rather than concatenated with other windows.No earlier packed window can expose another example's withheld future to the model.
PilotInitial 500-step new-task fine-tune, checkpoints every 100 steps, after corpus and compute admission pass.Saved checkpoint identity and held-out diagnostics before wall-clock replay or a live-quality claim.

The first snapshot tier uses 1/5/10-second observed contexts; candidate leads of 0/250/500/1,000 ms and target spans of 0.5/1/2 seconds. These are experimental training settings, not validated latency budgets. Zero lead is a diagnostic case, not assumed deployable. Initial encoding uses censored note durations plus held-state flags; sustain-pedal behavior is not yet qualified.

Recorded LH history and prior commitments are teacher-forced during the first corpus build; deployment conditions on actual generated and played history. That mismatch remains an explicit evaluation target. Valid silent future windows are retained rather than forcing every example to contain a note.

Current state: four implementation owners are working on vocabulary/warm-start training, causal encoding, corpus construction, and the proposal/commit/playback lifecycle. A combined tiny end-to-end test follows. No interaction-v1 training has started. The separate Reactor serving migration does not count as this training experiment.

What the pilot actually established

ObservationRecorded resultBoundary
Data admission5,000 selected files loaded; zero skipped or stale labels. Split: 4,782 train / 98 validation / 120 test.Predicted hand labels; not measured ground-truth hand accuracy.
Training500 steps; 16,384,000 packed input tokens processed; checkpoint saved and verified.Training completion does not establish live behavior.
Conditioning diagnostic391 validation windows: true RH NLL 1.9854; shuffled RH 2.1384; empty RH 5.7150.Same future targets. Empty-prefix padding is also an out-of-distribution perturbation. Not a musical-quality oracle.
ListeningEight fixed examples; all contain generated RH and LH. Informal user feedback accepted this first forecast/play-along pilot; original clip 04 was preferred.Not a controlled preference study. Short endings and weaker examples remain in the set.
TimingOne real upload measured approximately 9.85 seconds of complete forecast generation.Not first-note latency, a p95 measurement, or a verdict on streaming feasibility.
InterfaceMIDI upload, separate parts, shared-timeline RH mute, desktop/phone rendering checked.Fresh input arriving after the prompt is not continuously incorporated.

Our experiment These are Cadence measurements, not claims borrowed from papers. The fixed-prefix decoder is already causal/autoregressive relative to its supplied prompt; missing continuous conditioning does not make its architecture inherently non-causal. AR1AM4

Prior symbolic-music work also uses autoregressive likelihood training; that fact does not establish live capability. MA4AM4 Our corpus begins with transcribed performances and predicted hand assignments, not error-free note/hand truth. AD2PH1 The model's memorization disclosure and the distinction between Pruned pretraining data and our Deduped selection prevent us from asserting pretraining independence. AR2AD3

A 20k forecast run might improve coverage or consistency. It would not, by itself, answer the missing questions about incoming events, actual generated history, scheduling and recovery. That prioritization is our judgment—not a theorem about dataset size.

The live information contract

Design decision At each decision time t, condition on real RH events received by then, actual past LH output, and any LH output already committed for playback. Predict upcoming LH—not an invented human continuation presented as input. SM2MO5

Observed historyHuman note-on/off + pedal, actual played LH. Unknown human future excluded.
Committed outputImmutable during normal replanning. Track exactly what was sent/scheduled.
Revisable proposalsGenerate ahead; replace only uncommitted future material when new input arrives.

Held notes are state, not foreknowledge

A note-on does not reveal its eventual release time. Reuse the existing held-note state, then audit how it is encoded. Either explicit note-on/off events or a faithfully constructed as-of snapshot can work; do not provide final durations early just because the training file contains them.

Encoding choice remains a compatibility experiment, not a commitment to rewrite the entire vocabulary.

One clock, two different timestamps

Record musical event time and the time the controller actually received the event. Freeze a conditioning cutoff per decision. Map browser/device, server and playback clocks explicitly; do not subtract unrelated clocks and call the result latency.

Clocks, source identity and commit ownership belong to the runtime, not a musical heuristic.

Predicted future RH may remain an internal hypothesis, but only genuine device/replay events may update observed human state. A player's new event must not be replaced with the model's guess. Stop/panic is an explicit safety exception: cancel future output and release AI-owned notes without confusing them with the player's notes.

Latency is a measured budget

L = positive time from decision snapshot to earliest scheduled new output
Required budget: generation-ready time + delivery/render allowance + jitter margin < L
Required sustained behavior: output arrives before playback consumes the buffer

This is our sign convention and scheduling contract, not a copied equation. Report time to the first schedulable note, steady-state throughput, p50/p95 delay, late events and underruns separately. Total-shot generation time is neither first-note latency nor acoustic end-to-end delay. SG3SG4SM3

Start with one model/hardware configuration and select lead/commit budgets from measurements. Freeze those budgets before an evaluation run. If the system only works with a long delay, label that honestly; do not make a prerecorded response look live.

Implementation sequence

Each stage earns the next. MIDI first; no microphone transcription, new audio codec or large-model rewrite in the initial scope.

0

Freeze the baseline and audit compatibility

Preserve the accepted checkpoint and all eight takes. Compare the forecast and existing session/duet schemas: vocabulary, task markers, hand ownership, time interpretation, cache state and checkpoint loading. Exercise the actual input/output paths—not merely Pydantic request validation.

Exit: executable tiny integration tests plus an explicit compatibility report. No assumption that an accepted forecast checkpoint becomes a good streaming policy just because it loads.
1

Wire a real event loop and instrument it

Connect a MIDI keyboard—or browser keyboard for the first test—to the existing session input abstraction. Stream event identities, note-on/off, pedal and timestamps. Use local synthesis/MIDI output for playback, not a WAV-rendering round trip after every phrase. Add start/stop, connection state, active-note display and a panic control.

Expose incremental decoding sufficiently to measure the first complete schedulable note. Test whether the current checkpoint can support a useful probe. Neither success nor failure is predetermined by the fact that its prompt is fixed. MI1SM1

Exit: real-clock event and output traces, no stuck AI notes after stop, explicit cache invalidation when conditioning changes, and measured latency/throughput. This stage is instrumentation—not musical qualification.
2

Align training with rolling LH accompaniment

Use the existing verified 5k files and their fixed composition/recording splits. Composition-level separation is also an explicit MAESTRO criterion, though its split does not certify ours. MA2 Construct decisions from only causally available RH, actual past LH and explicitly committed LH. Predict a bounded upcoming LH region with target-only loss. Training history may use recorded LH under teacher forcing; deployment uses actual generated/played LH, so evaluate that mismatch explicitly. AM4SM4SG1

Initialize from the accepted checkpoint where the tested migration supports it. Verify any new task/active-note tokens and preserve model identity; do not silently fall back to a random or different base. Keep Aria's event representation initially rather than switching wholesale to a beat-grid format. AR1SM1

If profiling later motivates hierarchical generation, Moshi supplies a speech precedent for time/depth factorization—not a music-capability result or a reason to replace our decoder now. MO1

Any time/pitch transformation must be coherent across paired parts. Do not perturb an arbitrary melody while retaining an incompatible accompaniment target. Generated-history augmentation or RL are later controlled experiments, not assumed remedies.

Exit: no future-human or future-release leakage, full data accounting, a bounded causal-task fine-tune if the probe demonstrates a mismatch, and durable compatible checkpoints. Preserve the original forecast mode as a control.
3

Test replanning at actual playback speed

Replay held-out MIDI in wall-clock time, then test pauses/restarts, tempo drift, changed motifs and late-arriving events. Pair sessions with an identical prefix but different subsequent human input; keep seeds and runtime settings fixed where possible. Log the observations each decision consumed and distinguish played, committed and revisable notes.

Musical response does not mean every changed note must trigger a different bass note. It means new input is genuinely available to the model and the resulting continuation remains useful under musical review. A noisy output that changes constantly is not a pass.

Exit: immutable commit history, no fabricated human observations, measured deadline compliance and failure rates, and retained interruption/failure recordings. Accelerated replay is labeled simulated and cannot substitute for live timing.
4

Play with it continuously

Run a recorded, at least two-minute unscripted MIDI session, including a pause/restart and an intentional musical change. Inspect isolated LH and the complete performance. Include fresh human playing rather than relying only on two hand tracks from one prerecorded performance.

Judge response, harmony, phrasing, density, continuity and recovery. Preserve weak takes and report early endings. Lower NLL, zero audio errors or a running server are not substitutes for a player's listening verdict.

Exit: a reproducible live-session trace and audible recording, plus explicit user acceptance of accompaniment—not just the already-accepted fixed forecast.
5

Scale only the limiting factor

Move to 20k when the live contract and timing work and the remaining weakness is plausibly musical coverage, robustness or data quality. If the bottleneck is scheduling or stale context, fix it there. Qualify microphone transcription and audio rendering only after the MIDI loop is useful. MA1MA3

Exit: a matched comparison using the same live task and evaluation protocol. A bigger offline model is not reported as a live-interaction improvement without that test.

Definition of done

GateEvidence requiredDoes not count
G1 · Causal inputsEvery decision's trace identifies source events received by its cutoff; active-note state uses no unknown final duration.A causal attention mask alone.
G2 · Commit integrityZero rewriting of played/committed notes in normal replanning; explicit logged stop/panic handling.Approximate or thresholded agreement with previously played output.
G3 · Real timingFirst-note, steady-state and tail latency; deadline/underrun counts under the predeclared lead and commit budgets.GPU utilization, virtual time, a single best run or total-clip time relabeled first-note latency.
G4 · Genuine adaptationMatched input forks plus trace evidence that newly received events affect conditioning; musically meaningful response is assessed by listening.Different random output, or predicted RH fed back as human input.
G5 · Useful performanceRecorded continuous human session and explicit acceptance of the LH partner, with failure cases retained.One attractive precomputed example or a lower teacher-forced loss.
G6 · ReproducibilityPinned model/data/task identities, resolved paths, saved traces, and declared inference/timing settings.Schema-valid requests that refer to wrong or nonexistent artifacts.

A turn-taking keyboard demo can be a valuable intermediate result. It must remain labeled as turn-taking, not substituted for this simultaneous-interaction gate. GH1GH2

Claims we will not build on

Tempting claimCorrection / implication
MAESTRO proves 3 ms live transcription.The number describes recording alignment. A causal audio frontend needs its own measured latency and accuracy. MA3
Anticipation means predicting the human's unknown future.AMT's supplied future controls and an improvising human are different information contracts. AM1AM2AM3
Cross-entropy cannot work interactively.Neither these autoregressive precedents nor the reported generation gaps establish that universal claim. Specify the task and test it. AM4SM4SG2
StreamMUSE quantified a latency penalty of causality.The cited highest-base-latency comparison concerns network deployment, not causal versus offline architecture. SM3
Future visibility is a free inference knob.The accompaniment study trains a model grid. Its printed sign and delay arithmetic also need care; our scheduler uses independently defined positive lead time. SG1SG3SG4
Moshi provides one unchanged checkpoint for three music products.Speech-task delay variants and an aligned text stream are useful analogies, not that product claim. §5.7 explicitly describes training ASR/TTS variants. MO2MO3
A speech codec's frame rate fixes every musical onset to that grid.Latent codec rate, transcript alignment, waveform sample rate and MIDI event timing are distinct quantities. MO4
Apache model/code licenses make the corpus commercially cleared.Track model, code, documentation, compiled data and underlying works separately; Mido itself declares different terms for code and documentation. MI2MI3 AR3AD1PH2
Passing tests means the older session engine already accompanies well.Tests establish specific implementation properties. Checkpoint/task compatibility and live musical behavior still require the gates above. Our assessment

Decisions for review

  1. Product target: continuous LH accompaniment is the target; turn-taking remains an explicitly separate milestone.
  2. Initial input: MIDI keyboard/browser notes, not microphone audio. Keep synthesis local where practical.
  3. First training scope: the verified 5k corpus and accepted model family, with a tested causal-task migration—not a 20k labeling campaign by default.
  4. Timing: measure before selecting and freezing the lead/commit budgets. Report delays honestly rather than adopting a universal perceptual threshold from another setup.
  5. Learning: supervised causal visibility first; any generated-history/RL or audio-factorization experiment needs its own hypothesis and matched evaluation.
  6. Acceptance: real causal traces and useful continuous human playing, not model activity or a single polished clip.

These are proposed decisions. Citations motivate or constrain them; no paper is being used as authority for a design choice it did not test.

Primary-source claim ledger

Every literature point used in this plan

Ten primary papers/cards/documentation sources, 34 claim records. Each record exposes the claim, a short exact excerpt, a precise location, its scope limit, and our intended use. Noncontiguous excerpts are separated with an ellipsis. Source findings are not automatically Cadence findings.

34 claims

Coverage, verification and limits

This is an exhaustive ledger of the literature premises used by this proposed plan, not an exhaustive survey of all interactive-music research. Secondary chat summaries are not treated as primary evidence. ArXiv links identify the inspected version; moving model cards and documentation reflect the 18 September 2026 inspection. Section and paragraph references are identified at the granularity actually checked; documentation line numbers can drift.

The source audit was followed by adversarial checking. A coordinator pass additionally checked the streaming paper's sign/delay equations and Moshi's delay-training section. The result is still a reviewable draft, not a guarantee of infallibility. In particular, first-note/tail latency, causal-task learning, robustness to a new player and musical responsiveness remain experiments to run.

The exact four-slot/384-frame preprocessing recipe discussed earlier is not adopted or relied on here; a repository-level audit would be needed before treating those implementation details as our specification. Cadence currently uses Aria-compatible event timing, not that tick-grid recipe. We make no novelty/first-system claim, no universal impossibility claim, and no claim of commercial clearance.

All literature-derived claims above map to this ledger. Domain placement, state ownership, test procedures, budget notation, stage order and acceptance criteria are explicitly our engineering proposals. Pilot results are our observations; model-generated future RH is never presented as observed human input.