|
|
|
|
@ -67,7 +67,7 @@ EXAMPLES::
|
|
|
|
|
|
|
|
|
|
code::
|
|
|
|
|
|
|
|
|
|
~path = File.realpath(FluidBufNMF.class.filenameSymbol).dirname.withTrailingSlash +/+ "../AudioFiles/"
|
|
|
|
|
~path = File.realpath(FluidBufNMFCross.class.filenameSymbol).dirname.withTrailingSlash +/+ "../AudioFiles/"
|
|
|
|
|
b = Buffer.read(s,~path+/+"Nicol-LoopE-M.wav")
|
|
|
|
|
t = Buffer.read(s,~path+/+"Tremblay-SA-UprightPianoPedalWide.wav")
|
|
|
|
|
o = Buffer.new
|
|
|
|
|
@ -80,9 +80,15 @@ o.play
|
|
|
|
|
~polyphony = 3; //Avoid overlapping more than this number of source components at the same time
|
|
|
|
|
~continuity = 20; //Encourage the reconstruction to use this many temporally consecutive frames from the source
|
|
|
|
|
|
|
|
|
|
{FreeSelfWhenDone.kr(FluidBufNMFCross.kr(t,b,o,timeSparsity: ~sparsity, polyphony: ~polyphony, continuity: ~continuity, windowSize: 2048).poll)}.play
|
|
|
|
|
//Using the UGen to run the process can be useful to monitor its progress
|
|
|
|
|
o.query
|
|
|
|
|
(
|
|
|
|
|
Routine{
|
|
|
|
|
~cross = FluidBufNMFCross.process(s,t,b,o,timeSparsity: ~sparsity, polyphony: ~polyphony, continuity: ~continuity, windowSize: 2048);
|
|
|
|
|
defer{{FreeSelfWhenDone.kr(~cross.kr).poll}.play;};
|
|
|
|
|
~cross.wait;
|
|
|
|
|
\Done.postln;
|
|
|
|
|
}.play;
|
|
|
|
|
)
|
|
|
|
|
o.play
|
|
|
|
|
::
|
|
|
|
|
|
|
|
|
|
|