forked from abh1nash/ace-daw
-
Notifications
You must be signed in to change notification settings - Fork 6
Labels
enhancementNew feature or requestNew feature or request
Description
Summary
Currently, all sends are implicitly post-fader — the send taps audio after the channel volume/pan. Professional DAWs support pre-fader sends (tap before volume) for use cases like headphone mixes, parallel compression, and cue sends.
Reference: openDAW implements AudioSendRouting { Pre, Post } enum on AuxSendBox, with AuxSendProcessor applying ramped gains at the appropriate tap point.
Current State
// src/types/project.ts
interface Send {
returnTrackId: string;
amount: number; // 0-1
}- Send always taps after
volumeGaininTrackNodesignal chain - No option to choose tap point
- 2 hardcoded send slots (separate issue #TBD)
Proposed Changes
Data Model
interface Send {
returnTrackId: string;
amount: number; // 0-1
preFader?: boolean; // default false (post-fader)
}Audio Engine (TrackNode.ts)
- Create two tap points in signal chain:
- Pre-fader tap: after EQ, before
volumeGain - Post-fader tap: after
volumeGain, beforeanalyserNode
- Pre-fader tap: after EQ, before
- Each send connects to the appropriate tap based on
preFaderflag - Send gain node applies
amountwith 5ms ramp (click-free)
UI (MixerPanel.tsx)
- Add toggle button (PRE/POST) next to each send amount slider
- PRE = orange indicator, POST = default (matches DAW conventions)
Acceptance Criteria
-
Sendinterface haspreFader?: booleanfield - Pre-fader sends tap audio before volume/pan in
TrackNode - Post-fader sends tap audio after volume/pan (existing behavior, now explicit)
- Toggling pre/post updates audio routing in real-time without clicks
- UI shows PRE/POST toggle per send slot
- Undo/redo works for pre/post toggle changes
- Unit tests for pre/post signal path
- E2E test: toggle pre-fader, verify send level independent of fader
Files to Modify
src/types/project.ts— Send interfacesrc/engine/TrackNode.ts— Add pre/post tap pointssrc/engine/AudioEngine.ts— Wire sends to correct tapsrc/store/projectStore.ts—updateTrackSendactionsrc/components/mixer/MixerPanel.tsx— PRE/POST toggle UI
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or request