forked from abh1nash/ace-daw
-
Notifications
You must be signed in to change notification settings - Fork 7
Closed
Labels
architecturepriority: P1ImportantImportantrefactorCode refactoring and architecture improvementsCode refactoring and architecture improvements
Description
Description
Three parallel instrument implementations in different states of maturity:
SynthEngine.ts— Legacy 6 hard-coded presets (not parameterizable)SamplerEngine.ts— Sample playback with ADSR (works)fmSynthPlugin.ts— FM synthesis as WAP plugin (works but isolated)
Proposed Architecture
InstrumentEngine (interface)
├── SubtractiveEngine — Maps SubtractiveTrackInstrument to Tone.js
├── SamplerEngine — Refactored to implement interface
├── FMSynthEngine — Extracted from WAP plugin
└── InstrumentFactory — Creates engine from TrackInstrument type
Acceptance Criteria
- Unified
InstrumentEngineinterface:noteOn,noteOff,setParameter,dispose - All three types implement same interface
- Legacy
SynthEngine.createSynthForPreset()deprecated - Factory creates correct engine from discriminated union
- Unit tests for each engine type
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
architecturepriority: P1ImportantImportantrefactorCode refactoring and architecture improvementsCode refactoring and architecture improvements