Skip to content

feat: add piano roll synth editor shell#1007

Draft
ChuxiJ wants to merge 3 commits intomainfrom
feat/v0.0.x-sprint-01-engine-and-piano-roll
Draft

feat: add piano roll synth editor shell#1007
ChuxiJ wants to merge 3 commits intomainfrom
feat/v0.0.x-sprint-01-engine-and-piano-roll

Conversation

@ChuxiJ
Copy link
Copy Markdown

@ChuxiJ ChuxiJ commented Mar 27, 2026

Summary

  • keep piano roll and transport playback routed through canonical track.instrument state with legacy fallback helpers where needed
  • add a dedicated SynthInstrumentEditor shell for subtractive and FM instruments inside Piano Roll
  • let the piano roll instrument selector switch directly between subtractive presets, FM, and Quick Sampler while always writing canonical instrument state
  • add regression coverage for the new editor wiring and the sampler -> fm -> subtractive selector flow

Verification

  • npx tsc --noEmit
  • npx vitest run tests/unit/SynthInstrumentEditor.test.tsx tests/unit/PianoRoll.test.tsx tests/unit/VirtualKeyboard.test.tsx tests/unit/trackPresets.test.tsx src/utils/__tests__/trackInstrument.test.ts tests/unit/pianoRollContextMenu.test.tsx tests/unit/sessionLaunchModes.test.ts tests/unit/sessionLegato.test.ts
  • npm run build

Notes

  • FM still falls back to the legacy synth voice in the playback engine for now; this PR adds the canonical FM state path and editor shell, not a full FM voice implementation yet.
  • Quick Sampler sample metadata still uses the legacy sampler mirrors for playback, but track identity and editor routing now come from track.instrument.
  • Browser smoke automation was attempted locally, but the desktop Playwright/Chrome environment was unreliable in this session, so this update is backed by typecheck, unit coverage, and build verification.

@ChuxiJ ChuxiJ changed the title feat: route piano roll playback through canonical instruments feat: add piano roll synth editor shell Mar 27, 2026
Copy link
Copy Markdown
Author

ChuxiJ commented Mar 27, 2026

Triage: Hold — Piano roll synth editor shell. Part of synth UX improvements. Defer until core features stable.


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