ferraus pitch-bend
Pitch envelope: tape-style varispeed or duration-preserving bend
Synopsis
ferraus pitch-bend <input> [options] [-o <output>]
What it does
Follows a pitch curve of 'time=cents' keyframes over the input's timeline. By default it is tape-style: playback speed changes with pitch, so the duration changes too. With --preserve-duration on, a granular WSOLA shifter keeps the timing and only moves the pitch (good for speech and monophonic material).
This command is also an fx stage and a pipeline op: ferraus fx in.wav -o out.wav --fx "pitch-bend:key=value".
Examples
Tape-style rise of two semitones over 4 s
ferraus pitch-bend riff.wav -o bend.wav
Glide down an octave without changing the timing
ferraus pitch-bend vox.wav --points 0s=0,1s=-1200cents --preserve-duration on -o low.wav
Turntable stop: slow down an octave over 1.5 s (the file gets longer, like a real record)
ferraus pitch-bend vinyl.wav --points 0s=0,1.5s=-1200cents --curve linear -o stop.wav
Lift a sentence three semitones and back without changing its timing
ferraus pitch-bend speech.wav --points 0s=0,2s=+300cents,4s=0 --preserve-duration on -o rise.wav
Options
| Flag | Type | Default | Meaning |
|---|---|---|---|
--points | list | 0s=0,4s=+200cents | Keyframes as time=pitch, pitch in cents or semitones (0s=0,4s=+200cents) |
--curve | linear | spline | spline | Straight segments, or a smooth curve through the keyframes |
--preserve-duration | on|off | off | Keep the duration and shift only the pitch (on), or vary speed like tape (off) |
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.
For models
- MCP tool:
ferraus_pitch_bend - Schema:
ferraus schema pitch-bend - Pipeline:
{ op: pitch-bend, args: { ... } }(flag names with_instead of-) - fx stage: yes
{"command": "pitch-bend", "defaults": {"points": "0s=0,4s=+200cents", "curve": "spline", "preserve_duration": "off"}}