Skip to content

Transpose the preview live, and start each piece at 0 - #3

Merged
swwallowws merged 1 commit into
mainfrom
live-transpose
Oct 27, 2026
Merged

swwallowws merged 1 commit into
mainfrom
live-transpose

Conversation

@swwallowws

Copy link
Copy Markdown
Owner

Each transpose step rebuilt the whole song, stopped the player, reloaded it and restarted it, so the music froze and the playhead jumped (3.2 s in a headless check on serenade.gp). The preview is now built once in the piece's own key and transposed live by the synth's key shift (the drum channel is left alone), with the roll shifted to match.

  • Measured: the playhead no longer jumps, and no frame takes longer than 17 ms. Notes held at the moment of a change stop, and the next ones come in at the new pitch.
  • Opening a new result or file resets transpose to 0. A result row's preview always plays in its own key.
  • Downloads are unchanged: they're still built at the transpose shown.

🤖 Generated with Claude Code

Each transpose step rebuilt the whole song, stopped the player, reloaded it and restarted, so the music froze and the playhead jumped. The preview is now built once in the piece's own key and transposed by the synth's key shift (drums left alone) and a matching shift on the roll, so the playhead never moves.

Opening a new result or file resets transpose to 0, and a result row's preview always plays in its own key.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@swwallowws
swwallowws merged commit dbf6329 into main Oct 27, 2026
4 checks passed
@swwallowws
swwallowws deleted the live-transpose branch October 27, 2026 16:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant