Inspired by Chad Kirby's SuperCollider2 Warp1 class, which was inspired by Richard Karpen's sndwarp for CSound. A granular time stretcher and pitchshifter.
the number of channels in the soundfile used in bufnum.
the buffer number of a mono soundfile.
the position in the buffer. The value should be between 0 and 1, with 0 being the beginning of the buffer, and 1 the end.
the amount of frequency shift. 1.0 is normal, 0.5 is one octave down, 2.0 is one octave up. Negative values play the soundfile backwards.
the size of each grain window.
the buffer number containing a signal to use for the grain envelope. -1 uses a built-in Hanning envelope.
the number of overlapping windows.
the amount of randomness to the windowing function. Must be between 0 (no randomness) to 1.0 (probably too random actually)
the interpolation method used for pitchshifting grains. 1 = no interpolation. 2 = linear. 4 = cubic interpolation (more computationally intensive).