Skip to content

feat: expose filter envelope controls in synth editor#1043

Draft
ChuxiJ wants to merge 1 commit intofeat/v0.0.x-sprint-01-offline-render-parityfrom
feat/v0.0.x-sprint-01-filter-envelope-editor
Draft

feat: expose filter envelope controls in synth editor#1043
ChuxiJ wants to merge 1 commit intofeat/v0.0.x-sprint-01-offline-render-parityfrom
feat/v0.0.x-sprint-01-filter-envelope-editor

Conversation

@ChuxiJ
Copy link
Copy Markdown

@ChuxiJ ChuxiJ commented Mar 27, 2026

Summary

  • add subtractive filter envelope controls to the Piano Roll synth editor so filter ADSR and amount are editable from canonical track.instrument
  • reorganize the subtractive motion section into clearer filter, filter-envelope, LFO/glide, and unison groups
  • extend the focused editor test to cover filter envelope amount and release writes

Why

This closes the Sprint 01 gap between runtime support and editor affordance: filterEnvelope already drives subtractive playback, but the UI did not expose those parameters. It also advances the research-backed Phase 2 synth editor scope (Filter ADSR + LFO with routing).

Verification

  • npx tsc --noEmit
  • npm run build
  • browser smoke via headless Playwright script:
    • create a project
    • add a keyboard pianoRoll track
    • open Piano Roll
    • edit Filter Env Amt to 0.42
    • edit Filt Env Release to 1.8
    • verify window.__store.getState().project.tracks[*].instrument.settings.filterEnvelope reflects the new values

Known limitation

  • npx vitest run tests/unit/SynthInstrumentEditor.test.tsx is still blocked on this machine by the existing Node 18 + jsdom + @exodus/bytes worker startup issue. The test file was updated, but local execution could not complete until that environment issue is resolved.

Copy link
Copy Markdown
Author

ChuxiJ commented Mar 27, 2026

Triage: Merge candidate — Filter envelope controls for synth editor. Standalone feature, good UX improvement. Needs rebase check.


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