You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Per-section sync 4/5: bake the piecewise warp into note timestamps (offline, with round-trip) #25
Part of #8. Depends on sub-issue 2 (data-model decisions) and sub-issue 3 (alignment results).
Apply the per-section results once, offline, consistent with the rhythm-game model: fixed committed timestamps, no live warping at play time.
Scope
Bake the per-section (factor, offset) / anchors into note timestamps, per the boundary handling and beat-grid decisions from sub-issue 2.
Reconcile the ebeats grid as decided (re-derived or separately authored).
Allow applying or skipping individual sections, so a low-confidence section can be left untouched while others are applied.
Make the change survive the full save / build / XML round-trip, including any schema addition (and, if a pack-format key is involved, only after it has landed in feedpak-spec).
Acceptance criteria
Applying a subset of sections leaves the others' timestamps bit-for-bit unchanged.
Round-trip (save, reload, build, reload) preserves the warped timestamps and the chosen beat grid.
Undo/restore path exists (the editor already has history concerns; state what it uses), so a bad apply is recoverable.
The uniform model's do-no-harm guard from sub-issue 1 still passes.
Out of scope
The alignment engine (sub-issue 3) and the review UI (sub-issue 5).
Activity
pullfrog commentedon Oct 2, 2026
fix: clean up unused imports and simplify per-section apply logic (#25)
fix(sync): pin piecewise map continuity only at skipped seams, expose…
fix(sync): reconcile adjacent accepted seams instead of blocking Apply (
refactor(sync): split the per-section map/apply methods, guard nonpos…
fix(sync): apply-side skip must mirror the builder's acceptance (#25)
feat(sync): per-section sync apply command and piecewise map builder (#…
feat(sync): per-section sync results UI (#26) (#71)