ferraus channels mix

Channel mixer: per-output weights and phase invert

Synopsis

ferraus channels mix <input> [options] [-o <output>]

What it does

Builds each output channel from weighted input channels, like Audition's Channel Mixer. Each --out is 'OUT=expression' where the expression sums terms such as 0.5L, -R, 50%C, or -3dB*L (a dB weight's sign is its gain, not a phase flip). Channels are named L, R, C, LFE, Ls, Rs, M, or by number (1, ch2). Outputs not mentioned pass through; --invert flips the phase of output channels.

This command is also an fx stage and a pipeline op: ferraus fx in.wav -o out.wav --fx "channels mix:key=value".

Examples

Fold to mono in both channels

ferraus channels mix in.wav --out "L=0.5L+0.5R" --out "R=0.5L+0.5R" -o mono-in-stereo.wav

Swap the channels and flip the new right channel's phase

ferraus channels mix in.wav --out "L=R" --out "R=L" --invert R -o swapped.wav

Copy the left channel (the host) over the right; the left passes through unchanged

ferraus channels mix interview.wav --out "R=L" -o host_both.wav

Put the side signal (left minus right) in both channels to hear what is out of phase

ferraus channels mix in.wav --out "L=0.5L+-0.5R" --out "R=0.5L+-0.5R" -o side.wav

Options

FlagTypeDefaultMeaning
--outtext—Output definition, e.g. "L=0.5L+0.5R" (repeatable) Repeatable.
--invertlist—Output channels to phase-invert, e.g. R or L,R
--mixpercent100%Dry/wet balance: 0% returns the input unchanged, 100% is fully processed

Global options

Every command also accepts the global options (-o, --json, --dry-run, --overwrite, --progress, ...). See Global options.

Exit codes

CodeMeaning
0Success
1Processing failed
2Usage or parameter error
3Input missing or unreadable
4Unsupported format or codec
8Cancelled
70Internal error (bug)

Common mistakes

  • Forgetting that outputs are never overwritten: pass --overwrite or a new -o path when re-running.

For models

  • MCP tool: ferraus_channels_mix
  • Schema: ferraus schema channels mix
  • Pipeline: { op: channels mix, args: { ... } } (flag names with _ instead of -)
  • fx stage: yes
{"command": "channels mix", "defaults": {"mix": "100%"}}