1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
//-----------------------------------------------
//
// Parabolic Grain Envelop : from Ross Bencina
//
//-----------------------------------------------
// integrate values of x starting : 0, x(0), x(0)+x(1),...
//integrate = +~_ : mem;
rintegrate(zero) = (+:*(zero))~_ : mem;
integrate = rintegrate(1);
durationSamples = 10;
grainAmplitude = 2.8;
rdur = 1.0/durationSamples;
rdur2 = rdur*rdur;
curve = -8.0 * grainAmplitude * rdur2;
slope(zero) = 4* grainAmplitude * (rdur - rdur2) + rintegrate(zero,curve);
amplitude(zero) = rintegrate(zero, slope(zero));
trig = integrate(1) == 15;
process = integrate(1), slope(trig), max(0.0,amplitude(trig));
|