gravy


gravy takes a soundfile, cuts it into frames, and then transposes and/or stretches those frames. The result is a sort of false 'vocoding', whereby a sound can be stretched and transposed independently of its original duration and pitch.

Syntax:


makegen(1, 7, 512, 0, 512, 1) /* function one describes the 'bevel' function of the windows (how the frames are shaped) */

gravy(outskip, inskip, duration, windowsize, amp, lengthmult, transp, inchan, spread) /* window size is in seconds, transposition is in 8ve.pc */

in comment form:

/* gravy -- a time and pitch-shifting instrument
*       (modified 11/89 by D.S. to use parabolic interpolation)
*
*  p0 = output skip
*  p1 = input skip
*  p2 = duration (on input)
*  p3 = window size (in seconds)
*  p4 = amplitude multiplier
*  p5 = length multiplier (of original)
*  p6 = transposition interval (oct.pc)
*  p7 = input channel [optional]
*  p8 = stereo spread (0-1) [optional]
*  assumes function table 1 contains the window envelope
*
*/

An example score:

load("gravy")
input("/sndh/bob.dole.mono.snd")
output("/sndh/bob.dole.gravy.snd")

makegen(1, 25, 1000, 1)
gravy(0, 0, 2.5, 0.1, 0.2, 3.0, 0.00, 0, 0.5)
gravy(0, 0, 2.5, 0.1, 0.2, 3.0, 0.02, 0, .9)
gravy(0, 0, 2.5, 0.1, 0.2, 3.0, -0.03, 0, 0.01)

Another score:

load("gravy")
input("/sndh/bob.dole.mono.snd")
output("/sndh/bob.dole.gravy.snd")
makegen(1, 25, 1000, 1)
gravy(1, 0, 7.0, 0.1, 0.2, 0.7, -0.04, 1, 0.5)
gravy(1, 0, 7.0, 0.1, 0.2, 0.7, -0.09, 0, .4)
gravy(1, 0, 7.0, 0.1, 0.2, 0.7, -0.03, 0, 0.61)