You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
210 lines
3.2 KiB
Plaintext
210 lines
3.2 KiB
Plaintext
(
|
|
// FluidKrToBuf test
|
|
s.waitForBoot{
|
|
Routine{
|
|
var buf = Buffer.alloc(s,5);
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = SinOsc.kr(rrand(1.0.dup(buf.numFrames),4.0));
|
|
FluidKrToBuf.kr(sig,buf);
|
|
}.play;
|
|
|
|
1.wait;
|
|
|
|
defer{buf.plot};
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// FluidBufToKr
|
|
s.waitForBoot{
|
|
Routine{
|
|
var buf = Buffer.loadCollection(s,[0,1,2,3,4,7]);
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = FluidBufToKr.kr(buf);
|
|
sig.poll;
|
|
}.play;
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// test both
|
|
s.waitForBoot{
|
|
Routine{
|
|
{
|
|
var buf = LocalBuf(5);
|
|
var insig = SinOsc.kr(rrand(1.0.dup(buf.numFrames),4.0));
|
|
var outsig;
|
|
FluidKrToBuf.kr(insig,buf);
|
|
outsig = FluidBufToKr.kr(buf);
|
|
outsig.poll;
|
|
}.play;
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// FluidKrToBuf --- kr is longer than buf...
|
|
// it just doesnt write all the values of kr into the buffer
|
|
s.waitForBoot{
|
|
Routine{
|
|
var buf = Buffer.alloc(s,5);
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = SinOsc.kr(rrand(1.0.dup(6),4.0));
|
|
FluidKrToBuf.kr(sig,buf);
|
|
}.play;
|
|
|
|
3.wait;
|
|
|
|
defer{buf.plot};
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// FluidKrToBuf --- kr is shorter than buf...
|
|
// the last index of the buffer is just not being written into, it's still zero
|
|
s.waitForBoot{
|
|
Routine{
|
|
var buf = Buffer.alloc(s,5);
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = SinOsc.kr([1,2,3,4]);
|
|
FluidKrToBuf.kr(sig,buf);
|
|
}.play;
|
|
|
|
3.wait;
|
|
|
|
defer{buf.plot};
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// FluidBufToKr
|
|
|
|
s.waitForBoot{
|
|
Routine{
|
|
var buf = Buffer.loadCollection(s,Array.fill(1001,{arg i; i}));
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = FluidBufToKr.kr(buf);
|
|
sig.poll;
|
|
}.play;
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// FluidBufToKr
|
|
// This should throw an error because this sound file buffer is longer than 1000 samples
|
|
s.waitForBoot{
|
|
Routine{
|
|
var buf = Buffer.read(s,"/Users/macprocomputer/Desktop/_flucoma/code/flucoma-core-src/AudioFiles/Harker-DS-TenOboeMultiphonics-M.wav");
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = FluidBufToKr.kr(buf);
|
|
sig.poll;
|
|
}.play;
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
(
|
|
// FluidKrToBuf test with super long buffer
|
|
// This should throw an error because this sound file buffer is longer than 1000 samples
|
|
s.waitForBoot{
|
|
Routine{
|
|
// var buf = Buffer.alloc(s,1000);
|
|
var buf = Buffer.read(s,"/Users/macprocomputer/Desktop/_flucoma/code/flucoma-core-src/AudioFiles/Harker-DS-TenOboeMultiphonics-M.wav");
|
|
|
|
s.sync;
|
|
|
|
{
|
|
var sig = SinOsc.kr(rrand(1.0.dup(buf.numFrames),4.0));
|
|
FluidKrToBuf.kr(sig,buf);
|
|
}.play;
|
|
|
|
3.wait;
|
|
|
|
defer{buf.plot};
|
|
}.play;
|
|
}
|
|
)
|
|
|
|
// ===================== pass a buffer to a running synth =======================
|
|
(
|
|
s.waitForBoot{
|
|
Routine{
|
|
~synth = {
|
|
arg buf;
|
|
FluidBufToKr.kr(buf,5).poll;
|
|
}.play;
|
|
|
|
2.wait;
|
|
|
|
"make buffer".postln;
|
|
~buffer = Buffer.alloc(s,5);
|
|
s.sync;
|
|
~buffer.setn(0,Array.fill(5,{rrand(0,100)}));
|
|
s.sync;
|
|
~synth.set(\buf,~buffer);
|
|
}.play;
|
|
};
|
|
)
|
|
|
|
(
|
|
// throws error because number of frames not specified
|
|
s.waitForBoot{
|
|
Routine{
|
|
~synth = {
|
|
arg buf;
|
|
FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf);
|
|
|
|
FluidBufToKr.kr(buf).poll;
|
|
}.play;
|
|
|
|
2.wait;
|
|
|
|
~buffer = Buffer.alloc(s,5);
|
|
s.sync;
|
|
~synth.set(\buf,~buffer);
|
|
}.play;
|
|
};
|
|
)
|
|
|
|
(
|
|
// works
|
|
s.waitForBoot{
|
|
Routine{
|
|
~synth = {
|
|
arg buf;
|
|
FluidKrToBuf.kr(SinOsc.kr(Array.fill(5,{rrand(0.0,1.0)})),buf);
|
|
|
|
FluidBufToKr.kr(buf,5).poll;
|
|
}.play;
|
|
|
|
2.wait;
|
|
|
|
~buffer = Buffer.alloc(s,5);
|
|
s.sync;
|
|
~synth.set(\buf,~buffer);
|
|
}.play;
|
|
};
|
|
) |