RUBBERBAND(1)

🌈 RUBBERBAND(1) β€” General Commands Manual 🌈

okay bestie, sit down, hydrate, because we're about to talk about rubberband from the General Commands Manual and honestly? it's a vibe. πŸŽ€


✨ NAME ✨

rubberband β€” an audio time-stretching and pitch-shifting utility program πŸ’–


πŸ¦‹ SYNOPSIS πŸ¦‹

rubberband [options]  [input file]  [output file]

that's it. that's the whole shape of it. options, then what goes in, then what comes out. iconic. ✨


🌸 DESCRIPTION 🌸

So this manual page documents, briefly, the rubberband command. That's the assignment. πŸ“

Rubber Band is a program that lets you change the tempo and the pitch of an audio recording independently of one another. Which is genuinely the whole magic trick, no cap β€” tempo and pitch are normally besties who refuse to be separated, and this program is like "not on my watch." πŸ’…


πŸ‘‘ OPTIONS πŸ‘‘

These programs follow the usual GNU command line syntax, with long options starting with two dashes (--). A summary of options is included below. 🫢

bestie listen β€” you MUST specify at least one of the following time and pitch ratio options. at least one. it's giving mandatory. 🚨
  • -t, --time X β€” Stretch to X times original duration, or
  • -T, --tempo X β€” Change tempo by multiple X (equivalent to --time 1/X), or
  • -T, --tempo X:Y β€” Change tempo from X to Y (same as --time X/Y), or
  • -D, --duration X β€” Stretch or squash to make output file X seconds long
  • -p, --pitch X β€” Raise pitch by X semitones, or
  • -f, --frequency X β€” Change frequency by multiple X

🧚 Making the ratios MOVE during the audio 🧚

The following options provide ways of making the time and frequency ratios change during the audio:

  • -M, --timemap F β€” Use file F as the source for time map

A time map (or key-frame map) file contains a series of lines, each with two sample frame numbers separated by a single space. These are source and target frames for fixed time points within the audio data, defining a varying stretch factor through the audio. When supplying a time map you must specify an overall stretch factor using -t, -T, or -D as well, to determine the total output duration. ⏱️

  • --pitchmap F β€” Use file F as the source for pitch map

A pitch map file contains a series of lines, each with two values: the input sample frame number and a pitch offset in semitones, separated by a single space. These specify a varying pitch factor through the audio. The offsets are all relative to an initial offset specified by the pitch or frequency option, or relative to no shift if neither was specified. Offsets are not cumulative. This option implies realtime mode (-R) and also enables a high-consistency pitch shifting mode, appropriate for dynamic pitch changes. Because of the use of realtime mode, the overall duration will not be exact. 😭

  • --freqmap F β€” Use file F as the source for freq map

A frequency map file is like a pitch map, except that its second column lists frequency multipliers rather than pitch offsets (like the difference between pitch and frequency options above). 🌊

πŸŽ€ Sound manipulation and quality πŸŽ€

The following options affect the sound manipulation and quality:

  • -2, --fast β€” Use the R2 (faster) engine

This is the default (for backward compatibility) when this tool is invoked as "rubberband". It was the only engine available in versions prior to v3.0.

  • -3, --fine β€” Use the R3 (finer) engine

This is the default when this tool is invoked as "rubberband-r3". It almost always produces better results than the R2 engine, but with significantly higher CPU load. πŸ’€ (your fans will be working, fr fr)

  • -F, --formant β€” Enable formant preservation when pitch shifting

This option attempts to keep the formant envelope unchanged when changing the pitch, retaining the original timbre of vocals and instruments in a recognisable way. 🎀

  • -c, --crisp N β€” Crispness (N = 0,1,2,3,4,5); default 4 (see below)

This option only has an effect when using the R2 (faster) engine. See below for details of the different levels.

🌈 Fine-tuning the processing mode and stretch algorithm 🌈

The remaining options fine-tune the processing mode and stretch algorithm. The default is to use none of these options. The options marked (2) currently only have an effect when using the R2 engine (see -2, -3 options above). ✨

  • -R, --realtime β€” Select realtime mode (implies --no-threads). This utility does not do realtime stream processing; the option merely selects realtime mode for the stretcher it uses
  • --no-threads β€” No extra threads regardless of CPU and channel count (R2)
  • --threads β€” Assume multi-CPU even if only one CPU is identified (R2)
  • --no-transients β€” Disable phase resynchronisation at transients (R2)
  • --bl-transients β€” Band-limit phase resync to extreme frequencies (R2)
  • --no-lamination β€” Disable phase lamination (R2)
  • --smoothing β€” Apply window presum and time-domain smoothing (R2)
  • --detector-perc β€” Use percussive transient detector (as in pre-1.5) (R2)
  • --detector-soft β€” Use soft transient detector (R2)
  • --window-long β€” Use longer processing window (actual size may vary) (R2)
  • --window-short β€” Use shorter processing window (with the R3 engine this is effectively a quick "draft mode")
  • --pitch-hq β€” In RT mode, use a slower, higher quality pitch shift
  • --centre-focus β€” reserve focus of centre material in stereo (at a cost in width and individual channel quality)
  • --ignore-clipping β€” Ignore clipping at output; the default is to restart with reduced gain if clipping occurs
  • -L, --loose β€” [Accepted for compatibility but ignored; always off]
  • -P, ---precise β€” [Accepted for compatibility but ignored; always on]
  • -d, --debug N β€” Select debug level (N = 0,1,2,3); default 0, full 3 (N.B. debug level 3 includes audible ticks in output) πŸ”ŠπŸ‘€
heads up β€” yes, -L and -P are literally just vibing there. accepted for compatibility, ignored. they show up, they say hi, they do nothing. πŸ«₯

πŸ’… Output control and administration πŸ’…

The following options are for output control and administration:

  • -q, --quiet β€” Suppress progress output
  • -V, --version β€” Show version number and exit
  • -h, --help β€” Show the normal help output
  • -H, --full-help β€” Show the full help output

⭐ "Crispness" levels ⭐

  • 0 β€” equivalent to --no-transients --no-lamination --window-long
  • 1 β€” equivalent to --detector-soft --no-lamination --window-long (for piano)
  • 2 β€” equivalent to --no-transients --no-lamination
  • 3 β€” equivalent to --no-transients
  • 4 β€” equivalent to --bl-transients
  • 5 β€” default processing options
  • 6 β€” equivalent to --no-lamination --window-short (may be good for drums) πŸ₯

🫢 AUTHOR 🫢

Rubber Band was written by Chris Cannam <cannam@all-day-breakfast.com>. πŸ’–

This manual page was written by SzΓ©kelyi Szabolcs <cc@mail.3d.hu> and revised in October 2022 by Dennis Braun <snd@y0o.de> for the Debian system (but may be used by others), because the original program does not have a manual page. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version published by the Free Software Foundation. πŸ“œ

On Debian systems, the complete text of the GNU General Public License can be found in /usr/share/common-licenses/GPL.


and that's the whole page bestie πŸ’œ this was RUBBERBAND(1) from the General Commands Manual, and yes it's still serving the same energy at the bottom as it was at the top, because that's just the kind of icon it is. go stretch something. periodt. πŸŽ€βœ¨πŸ¦‹