i tried. and failed. please excuse me.

nix
Pierre Alexandre Tremblay 6 years ago
parent 138f6011e5
commit db1bbe7780

@ -135,7 +135,7 @@ FluidProcessSlices{
total = jobs.size; total = jobs.size;
counter = 0; counter = 0;
completed = 0; completed = 0;
perf = { perf = {|jobID|
var idx,v, k = jobs.pop; var idx,v, k = jobs.pop;
v = bufIdx[k]; v = bufIdx[k];
counter = counter + 1; counter = counter + 1;
@ -150,11 +150,12 @@ FluidProcessSlices{
{ {
var numframes,feature; var numframes,feature;
numframes = v[\bounds].reverse.reduce('-'); numframes = v[\bounds].reverse.reduce('-');
feature = featureFunc.value(sourceBuffer, v[\bounds][0],numframes,k,v,counter-1); jobID.postln;
feature = featureFunc.value(sourceBuffer, v[\bounds][0], numframes, k, v, counter-1, jobID);
SendReply.kr(Done.kr(feature),'/doneFeature' ++ uid ++ idx); SendReply.kr(Done.kr(feature),'/doneFeature' ++ uid ++ idx);
FreeSelfWhenDone.kr(feature); FreeSelfWhenDone.kr(feature);
}.play(server); }.play(server);
}; };
4.do{perf.value}; 4.do{|jobIDs|perf.value(jobIDs)};
} }
} }

@ -1,9 +1,9 @@
// define a few processes // define a few processes
( (
~ds = FluidDataSet(s,\test); // still need a name on the server to make sure we do not forget it exists. it is now permanent aka will resist cmd+. ~ds = FluidDataSet(s,\test); // still need a name on the server to make sure we do not forget it exists. it is now permanent aka will resist cmd+.
~mfccbuf = Buffer.new; ~mfccbuf = Buffer.allocConsecutive(4,s,1);
~statsbuf = Buffer.new; ~statsbuf = Buffer.allocConsecutive(4,s,1);
~flatbuf = Buffer.new; ~flatbuf = Buffer.allocConsecutive(4,s,1);
// here we instantiate a loader which creates a single large buffer with a dictionary of what was included in it // here we instantiate a loader which creates a single large buffer with a dictionary of what was included in it
// ~loader = FluidLoadFolder("/Volumes/machins/projets/newsfeed/smallnum/"); // ~loader = FluidLoadFolder("/Volumes/machins/projets/newsfeed/smallnum/");
@ -15,12 +15,13 @@
}); });
// here we instantiate a process of description and dataset writing, which will run each slice of the previous slice and write the entry. Note the chain of Done.kr triggers. // here we instantiate a process of description and dataset writing, which will run each slice of the previous slice and write the entry. Note the chain of Done.kr triggers.
~extractor = FluidProcessSlices({|src,start, num, idx| ~extractor = FluidProcessSlices({|src,start, num, idx, a, b, i|
var mfcc, stats, writer, flatten,mfccBuf, statsBuf, flatBuf; var mfcc, stats, writer, flatten,mfccBuf, statsBuf, flatBuf;
mfcc = FluidBufMFCC.kr(src,startFrame:start,numFrames:num,numChans:1,features:~mfccbuf,trig:1); [src,start, num, idx, a, b, i].postln;
stats = FluidBufStats.kr(~mfccbuf,stats:~statsbuf,trig:Done.kr(mfcc)); mfcc = FluidBufMFCC.kr(src,startFrame:start,numFrames:num,numChans:1,features:~mfccbuf[i],trig:1);
flatten = FluidBufFlatten.kr(~statsbuf,~flatbuf,trig:Done.kr(stats)); stats = FluidBufStats.kr(~mfccbuf[i],stats:~statsbuf[i],trig:Done.kr(mfcc));
writer = FluidDataSetWr.kr(idx,~flatbuf,~ds,trig:Done.kr(flatten)) flatten = FluidBufFlatten.kr(~statsbuf[i],~flatbuf[i],trig:Done.kr(stats));
writer = FluidDataSetWr.kr(idx,~flatbuf[i],~ds,trig:Done.kr(flatten))
}); });
) )
@ -140,15 +141,15 @@ FluidBufCompose.process(s,~loader.buffer,a,(b-a),numChans: 1, destination: ~targ
( (
{ {
var mfcc, stats, flatten; var mfcc, stats, flatten;
mfcc = FluidBufMFCC.kr(~targetsound,features:~mfccbuf,trig:1); mfcc = FluidBufMFCC.kr(~targetsound,features:~mfccbuf[0],trig:1);
stats = FluidBufStats.kr(~mfccbuf,stats:~statsbuf,trig:Done.kr(mfcc)); stats = FluidBufStats.kr(~mfccbuf[0],stats:~statsbuf[0],trig:Done.kr(mfcc));
flatten = FluidBufFlatten.kr(~statsbuf,~flatbuf,trig:Done.kr(stats)); flatten = FluidBufFlatten.kr(~statsbuf[0],~flatbuf[0],trig:Done.kr(stats));
}.play; }.play;
) )
//find its nearest neighbours //find its nearest neighbours
~friends = Array; ~friends = Array;
~tree.kNearest(~flatbuf,5,{|x| ~friends = x.postln;}) ~tree.kNearest(~flatbuf[0],5,{|x| ~friends = x.postln;})
// play them in a row // play them in a row
( (

Loading…
Cancel
Save