feat(player): add bounded rehearsal playback rates - #1063
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Merge exact-head b96e454 after local and hosted verification.
|
Current-head follow-up for d99c935:\n\n- The count-in scheduler now owns one timer chain outside React commit batching, preserves elapsed beat progress across repeated 0.75x/1.25x changes, and cancels on transport authority loss.\n- Focused transport/player tests pass: 39.\n- Full desktop suite passes: 267 tests across 23 files, 100% statements/branches/functions/lines.\n- Typecheck and lint pass; Vite build passes with the existing large-chunk warning.\n- The current PR body documents the stack topology: #1066, #1067, and #1068 were normally merged into this shared branch before the playback-rate work, so the aggregate diff is intentional and no history was rewritten.\n- AGENTS.md now records that bounded pitch-preserving playback rate is delivered while stem playback remains a separate gap.\n\nHosted Devin review is pending for this exact head; no prior-head result is used as completion evidence. |
435cc02
into
feat/rehearsal-player-first-section-loop
Product gap
Add the next Issue #961 rehearsal-player slice on top of PR #1062: bounded, keyboard-accessible playback-speed control for real local audio.
Exact current identity
feat/rehearsal-player-first-section-loop82ec4538a4452d38253509d142e72c7faa9c6b28d99c9358b4c7bdcbf7d090c287b40d8104f97adeProduct outcome
0.75x,1x, and1.25xonly through the single rehearsal transport state machine.HTMLMediaElement.playbackRateto real media and reapplies it after source reloads.preservesPitchwhen the runtime exposes the standard property.Stack scope
This shared stack branch currently contains the normal merges for PR #1066 (role-filtered loops), PR #1067 (keyboard section-cue navigation), and PR #1068 (manual cue-boundary corrections), followed by the playback-rate work. The current head above is the only head for hosted evidence.
Validation
git diff --checkpassed.d99c9358b4c7bdcbf7d090c287b40d8104f97ade; prior-head results are not used as completion evidence.Security Notes
playbackRateis effective speed andpreservesPitchis enabled when supported: https://html.spec.whatwg.org/multipage/media.htmlAcceptance ceiling
This slice does not claim role/stem isolation, real-device speaker-output acceptance, or Issue #770 known-take accuracy acceptance. Those remain separate product gaps.