Skip to content

feat: Connect effects engine to live audio playback path #1100

@ChuxiJ

Description

@ChuxiJ

Problem

EffectsEngine.ts exists with 10+ effect types (EQ3, Compressor, Reverb, Delay, Distortion, Chorus, Flanger, Phaser, Filter, Sidechain), but effects are not connected to the live audio signal chain. Users can add effects to tracks and tweak parameters, but hear completely dry audio during playback.

This is the single most impactful gap in the current DAW — it makes the entire effects system decorative.

Proposed Solution

  1. Refactor EffectsEngine to use native Web Audio nodes (or Tone.js equivalents that integrate cleanly)
  2. Insert effect chain between TrackNode source and master bus in AudioEngine
  3. Ensure parameter changes reflect in real-time (< 16ms)
  4. Support bypass per-effect and per-chain
  5. Handle effect chain reordering without audio glitches

Technical Notes

  • Reference: TASK_QUEUE.md item S1-03
  • Key files: src/engine/EffectsEngine.ts, src/engine/AudioEngine.ts, src/engine/TrackNode.ts
  • Blocked by: nothing
  • Blocks: WAV export with effects (separate issue)

Acceptance Criteria

  • Adding an effect to a track audibly changes playback output
  • Removing an effect reverts to dry signal
  • Effect parameter changes are audible in real-time
  • Bypass toggle works per-effect
  • Reordering effects chain changes the sound
  • No audio glitches when adding/removing effects during playback
  • Unit tests for effect chain signal routing
  • E2E test: add reverb → verify wet signal (or at least verify no errors)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions