FluidBufToKr has optional numFrames argument

nix
Ted Moore 4 years ago
parent 7736fb0f1d
commit 90aef92f35

@ -1,9 +1,15 @@
FluidKrToBuf { FluidKrToBuf {
*kr { *kr {
arg krStream, buffer; arg krStream, buffer;
if(buffer.numFrames == 0) {"FluidKrToBuf: UGen will have 0 outputs!".warn};
if(buffer.numFrames > 1000) {"FluidKrToBuf: Buffer is % frames. This is probably not the buffer you intended.".format(buffer.numFrames).error}; if(buffer.isKindOf(Buffer).or(buffer.isKindOf(LocalBuf)),{
^buffer.numFrames.do{ if(buffer.numFrames == 0) {"FluidKrToBuf:kr Buffer has 0 frames".warn};
if(buffer.numFrames > 1000) {
Error("FluidKrToBuf:kr Buffer is % frames. This is probably not the buffer you intended.".format(buffer.numFrames)).throw;
};
});
^krStream.numChannels.do{
arg i; arg i;
BufWr.kr(krStream[i], buffer, i); BufWr.kr(krStream[i], buffer, i);
} }
@ -12,12 +18,21 @@ FluidKrToBuf {
FluidBufToKr { FluidBufToKr {
*kr { *kr {
arg buffer; arg buffer, numFrames;
if(buffer.numFrames == 0) {"FluidKrToBuf: Buffer has 0 frames!".warn};
if(buffer.numFrames > 1000) {"FluidKrToBuf: Buffer is % frames. This is probably not the buffer you intended.".format(buffer.numFrames).error}; if((buffer.isKindOf(Buffer).or(buffer.isKindOf(LocalBuf))).not.and(numFrames.isNil),{
Error("FluidBufToKr:kr needs to be passed either an existing buffer or an OutputProxy and a number of frames for the buffer that will be supplied").throw;
});
numFrames = numFrames ?? {buffer.numFrames};
if(numFrames == 0) {"FluidKrToBuf:kr indicated numFrames is zero.".warn};
if(numFrames > 1000) {
Error("FluidKrToBuf: Buffer is indicated to have % frames. This is probably not the buffer you intended.".format(numFrames)).throw;
};
if(buffer.numFrames > 1,{ if(numFrames > 1,{
^buffer.numFrames.collect{ ^numFrames.collect{
arg i; arg i;
BufRd.kr(1,buffer,i,0,0); BufRd.kr(1,buffer,i,0,0);
} }

@ -64,7 +64,7 @@ s.waitForBoot{
FluidKrToBuf.kr(sig,buf); FluidKrToBuf.kr(sig,buf);
}.play; }.play;
3.wait; 1.wait;
defer{buf.plot}; defer{buf.plot};
}.play; }.play;
@ -85,7 +85,7 @@ s.waitForBoot{
FluidKrToBuf.kr(sig,buf); FluidKrToBuf.kr(sig,buf);
}.play; }.play;
3.wait; 1.wait;
defer{buf.plot}; defer{buf.plot};
}.play; }.play;
@ -137,7 +137,7 @@ s.waitForBoot{
s.sync; s.sync;
{ {
var sig = SinOsc.kr(rrand(1.0.dup(buf.numFrames),4.0)); var sig = SinOsc.kr(rrand(1.0.dup(10),4.0));
FluidKrToBuf.kr(sig,buf); FluidKrToBuf.kr(sig,buf);
}.play; }.play;
@ -177,7 +177,7 @@ s.waitForBoot{
arg buf; arg buf;
FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf); FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf);
FluidBufToKr.kr(buf).poll; FluidBufToKr.kr(buf).poll; ///////// this will now throw an error asking for a numFrames
}.play; }.play;
2.wait; 2.wait;
@ -194,10 +194,10 @@ s.waitForBoot{
s.waitForBoot{ s.waitForBoot{
Routine{ Routine{
~synth = { ~synth = {
arg buf; arg buf = 999;
FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf); FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf);
FluidBufToKr.kr(buf,5).poll; FluidBufToKr.kr(buf,5).poll; ////////// this will work becaues it knows how many frames the buffer will be
}.play; }.play;
2.wait; 2.wait;
@ -207,4 +207,4 @@ s.waitForBoot{
~synth.set(\buf,~buffer); ~synth.set(\buf,~buffer);
}.play; }.play;
}; };
) )

Loading…
Cancel
Save