rubberband
rubberband(
@stretching 1
@pitchshift 0
@pitchunit 0
@timeunit 2
@envtimeunit 2
@blocksize 1024
@fftwin 1
@phase 0
@pitchmode 2
@formants 0
@smoothing 0
@stretchmode 0
@detector 0
@transients 2
) -> llll
Generates an audio process operation for applying rubberband pitch-shifting/time-stretching to a buffer.
Arguments
@stretching[int/float/llll]: Stretching amount, as single number or envelope. (default:1).@pitchshift[int/float/llll]: Pitch shifting amount, as single number or envelope. (default:0).@pitchunit[int]: Unit for@pitchshift. (default:0).0: Cents1: MIDI2: Hertz3: Frequency ratio
@timeunit[int]: Time unit for@stretching. (default:2).0: Milliseconds1: Samples2: Duration ratio3: Milliseconds difference4: Samples difference
@envtimeunit[int]: Time unit for@stretchingenvelope. (default:2).0: Milliseconds1: Samples2: Duration ratio3: Milliseconds difference4: Samples difference
@blocksize[int]: Size for granular processes, such as envelopes, in samples. (default:1024).@fftwin[int]: FFT window type. (default:1).0: Short1: Standard2: Long
@phase[int]: Phase adjustment mode. (default:0).0: Elastic1: Precise
@pitchmode[int]: Pitch shift mode. (default:2).0: High speed1: High quality2: High consistency
@formants[int]: Formant processing. (default:0).0: Off1: On
@smoothing[int]: Time-domain smoothing. (default:0).0: Off1: On
@stretchmode[int]: Stretch mode. (default:0).0: Elastic1: Precise
@detector[int]: Transient detection algorithm. (default:0).0: Compound1: Percussive2: Soft
@transients[int]: Transient type. (default:2).0: Crisp1: Mixed2: Smooth
Output
Rubberband operation [llll]
Usage
rubberband is meant to be used with the process function:
$buffer = importaudio('singing.wav'); ## input buffer
$op = rubberband(@stretching 0.5); ## processing operation
$buffer = $buffer.process($op); ## apply processing
$buffer.view('after rubberband process')