Skip to content

feat: align offline slide playback with live synth behavior#1053

Draft
ChuxiJ wants to merge 1 commit intofeat/v0.0.x-sprint-01-glide-runtimefrom
feat/v0.0.x-sprint-01-slide-offline-parity
Draft

feat: align offline slide playback with live synth behavior#1053
ChuxiJ wants to merge 1 commit intofeat/v0.0.x-sprint-01-glide-runtimefrom
feat/v0.0.x-sprint-01-slide-offline-parity

Conversation

@ChuxiJ
Copy link
Copy Markdown

@ChuxiJ ChuxiJ commented Mar 27, 2026

Summary

  • share slide-note source resolution and slide scheduling between live transport playback and offline synth rendering
  • make offline piano-roll render paths honor slide notes instead of rendering them as plain attack-release notes
  • add focused node-environment tests for slide source resolution and shared slide scheduling behavior

Why

Before this PR, live playback respected isSlide notes via playSlideNote(...), but offline rendering ignored slides entirely. That meant export, freeze, bounce, and share could sound different from what users heard during playback. This change closes that parity gap.

Verification

  • npx tsc --noEmit
  • npx vitest run --environment node src/engine/__tests__/SynthEngine.test.ts
  • npm run build

Notes

  • This PR intentionally reuses the same slide helper from both useTransport and offlineRender so future glide changes stay in one place.

Copy link
Copy Markdown
Author

ChuxiJ commented Mar 27, 2026

Triage: Hold — Stacked on synth improvement chain. Depends on #1019.


Generated by Claude Code

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