ferraus autopan
Cyclic automatic panning
Synopsis
ferraus autopan <input> [options] [-o <output>]
What it does
Moves the source left and right with an LFO. Mono sources are panned with the pan law; stereo sources are balanced so their image is kept. --rate accepts Hz or beat values (1/2 = one cycle per half note) with --bpm.
This command is also an fx stage and a pipeline op: ferraus fx in.wav -o out.wav --fx "autopan:key=value".
Examples
Slow sine autopan
ferraus autopan keys.wav -o keys_auto.wav
Tempo-synced triangle autopan
ferraus autopan hats.wav --rate 1/4 --bpm 124 --shape triangle --depth 60% -o hats_auto.wav
Slow, narrow drift for a pad that never lands hard left or right
ferraus autopan pad.wav --rate 0.1Hz --depth 40% -o pad_drift.wav
Hard eighth-note ping-pong that starts on the right
ferraus autopan gtr.wav --rate 1/8 --bpm 100 --shape square --phase 90deg -o gtr_pingpong.wav
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
--rate | text | 0.5Hz | Cycle rate in Hz, or a beat value such as 1/2 |
--depth | percent | 100% | Swing width (100% = hard left to hard right) |
--shape | sine | triangle | square | sine | LFO waveform |
--phase | text | 0deg | Starting phase in degrees (90deg starts hard right) |
--law | -3dB | -4.5dB | -6dB | linear | -3dB | Pan law |
--mix | percent | 100% | 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
| Code | Meaning |
|---|---|
| 0 | Success |
| 1 | Processing failed |
| 2 | Usage or parameter error |
| 3 | Input missing or unreadable |
| 4 | Unsupported format or codec |
| 8 | Cancelled |
| 70 | Internal error (bug) |
Common mistakes
- Forgetting that outputs are never overwritten: pass
--overwriteor a new-opath when re-running. - Percentages accept
80%or the fraction0.8; a bare80means 80x, not 80%.
For models
- MCP tool:
ferraus_autopan - Schema:
ferraus schema autopan - Pipeline:
{ op: autopan, args: { ... } }(flag names with_instead of-) - fx stage: yes
{"command": "autopan", "defaults": {"rate": "0.5Hz", "depth": "100%", "shape": "sine", "phase": "0deg", "law": "-3dB", "mix": "100%"}}