1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
|
//Partitioned Convolution
PartConv : UGen {
*ar { arg in, fftsize, irbufnum,mul = 1.0, add = 0.0;
^this.multiNew('audio', in, fftsize, irbufnum).madd(mul, add);
}
*calcNumPartitions {arg fftsize, irbuffer;
var siz, partitionsize;
partitionsize=fftsize.div(2);
siz= irbuffer.numFrames;
^((siz/partitionsize).roundUp);
//bufsize = numpartitions*fftsize;
}
*calcBufSize {arg fftsize, irbuffer;
^ fftsize* (PartConv.calcNumPartitions(fftsize,irbuffer));
}
}
+ Buffer {
preparePartConv { arg buf, fftsize;
server.listSendMsg(["/b_gen", bufnum, "PreparePartConv", buf.bufnum, fftsize]);
}
}
|