ferraus echo

Multi-tap echo with per-repeat filtering

Synopsis

ferraus echo <input> [options] [-o <output>]

What it does

Adds --taps repeats spaced --time apart (a beat fraction such as 1/4 follows --bpm, else 120 BPM; or a time such as 375ms). Each repeat is --feedback quieter than the one before and passes through --tap-eq once more, so repeats get progressively darker. --pingpong alternates repeats between left and right (a mono input becomes stereo). The output keeps the input length.

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

Examples

Quarter-note echoes at 96 BPM

ferraus echo vox.wav --bpm 96 -o echo.wav

Telephone-like ping-pong repeats

ferraus echo gtr.wav --taps 6 --time 375ms --feedback 55% --tap-eq highpass:300Hz,lowpass:3kHz --pingpong -o echo.wav

A single slapback repeat, rockabilly style

ferraus echo vox.wav --taps 1 --time 110ms --feedback 35% -o slap.wav

Long, bright half-note echoes with no darkening filter

ferraus echo announcer.wav --taps 8 --time 1/2 --bpm 80 --tap-eq none -o canyon.wav

Options

FlagTypeDefaultMeaning
--tapsinteger3Number of repeats Range: 1..32.
--timetime1/4Spacing between repeats: a beat fraction (1/4, 1/8D) or a time (375ms)
--feedbackpercent40%Level of each repeat relative to the previous one, in percent
--tap-eqlistlowpass:4kHzFilter(s) applied once more to every repeat, e.g. lowpass:4kHz or none
--pingpongflag—Alternate repeats between left and right
--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.
  • Beat-based times (4b, 1/4) need a tempo: pass --bpm or write 4b@120.
  • Percentages accept 80% or the fraction 0.8; a bare 80 means 80x, not 80%.

For models

  • MCP tool: ferraus_echo
  • Schema: ferraus schema echo
  • Pipeline: { op: echo, args: { ... } } (flag names with _ instead of -)
  • fx stage: yes
{"command": "echo", "defaults": {"taps": "3", "time": "1/4", "feedback": "40%", "tap_eq": "lowpass:4kHz", "mix": "100%"}}