diff --git a/release-packaging/Examples/dataset/1-learning examples/10-weighted-MFCCs-comparison.scd b/release-packaging/Examples/dataset/1-learning examples/10-weighted-MFCCs-comparison.scd index 63b3f0e..1390404 100644 --- a/release-packaging/Examples/dataset/1-learning examples/10-weighted-MFCCs-comparison.scd +++ b/release-packaging/Examples/dataset/1-learning examples/10-weighted-MFCCs-comparison.scd @@ -9,8 +9,8 @@ ~flatbuf = 4.collect{Buffer.new}; // here we instantiate a loader as per example 0 -~loader = FluidLoadFolder("/Volumes/machins/projets/newsfeed/sons/smallnum/"); -// ~loader = FluidLoadFolder("/Volumes/machins/projets/newsfeed/sons/segments/"); +// ~loader = FluidLoadFolder("/Volumes/machins/projets/newsfeed/sons/smallnum/"); +~loader = FluidLoadFolder("/Volumes/machins/projets/newsfeed/sons/segments/"); // here we instantiate a further slicing step as per example 0 ~slicer = FluidSliceCorpus({ |src,start,num,dest| @@ -30,14 +30,16 @@ // here we make another processor, this time with doing an amplitude weighing ~extractorW = FluidProcessSlices({|src,start,num,data| - var label, voice, loud, loud2, loudbuf2, mfcc, stats, flatten; + var label, voice, loud, loud2, loudbuf2, loud3, loudbuf3, mfcc, stats, flatten; loudbuf2 = LocalBuf.new((((num+1024) / 512) - 1).asInteger, 1); //temp buffer to extract what we need + loudbuf3 = LocalBuf.new((((num+1024) / 512) - 1).asInteger, 1); //temp buffer to extract what we need label = data.key; voice = data.value[\voice]; mfcc = FluidBufMFCC.kr(src,startFrame:start,numFrames:num,numChans:1,features:~mfccbuf[voice],trig:1,blocking: 1); loud = FluidBufLoudness.kr(src,startFrame:start,numFrames:num,numChans:1,features:~loudbuf[voice],trig:Done.kr(mfcc),blocking: 1); - loud2 = FluidBufCompose.kr(~mfccbuf[voice],numChans: 1,destination: loudbuf2,trig: Done.kr(loud),blocking: 1); - stats = FluidBufStats.kr(~mfccbuf[voice],stats:~statsbuf[voice], weights: loudbuf2, trig:Done.kr(loud2),blocking: 1); + loud2 = FluidBufCompose.kr(~loudbuf[voice],numChans: 1,destination: loudbuf2,trig: Done.kr(loud),blocking: 1); + loud3 = FluidBufScale.kr(loudbuf2, loudbuf3,inlo: -110,inhi: 0,trig: Done.kr(loud2),blocking: 1); + stats = FluidBufStats.kr(~mfccbuf[voice],stats:~statsbuf[voice], weights: loudbuf2, trig:Done.kr(loud3),blocking: 1); flatten = FluidBufFlatten.kr(~statsbuf[voice],~flatbuf[voice],trig:Done.kr(stats),blocking: 1); FluidDataSetWr.kr(~dsW,label, -1, ~flatbuf[voice], Done.kr(flatten),blocking: 1); }); @@ -96,14 +98,16 @@ FluidBufCompose.process(s,~loader.buffer,a,(b-a),numChans: 1, destination: ~targ //describe the sound to match ( { - var loud, loud2, mfcc, stats, flatten, stats2, loudbuf2; - loudbuf2 = LocalBuf.new((((~targetsound.numFrames+1024) / 512) - 1).asInteger, 1); //temp buffer to extract what we need + var loud, loud2, loud3, mfcc, stats, flatten, stats2, loudbuf2, loudbuf3; + loudbuf2 = LocalBuf.new((((~targetsound.numFrames+1024) / 512) - 1).asInteger, 1); + loudbuf3 = LocalBuf.new((((~targetsound.numFrames+1024) / 512) - 1).asInteger, 1); mfcc = FluidBufMFCC.kr(~targetsound,features:~mfccbuf[0],trig:1); stats = FluidBufStats.kr(~mfccbuf[0],stats:~statsbuf[0],trig:Done.kr(mfcc)); flatten = FluidBufFlatten.kr(~statsbuf[0],~flatbuf[0],trig:Done.kr(stats)); loud = FluidBufLoudness.kr(~targetsound,features:~loudbuf[0],trig:Done.kr(flatten),blocking: 1); - loud2 = FluidBufCompose.kr(~mfccbuf[0],numChans: 1,destination: loudbuf2,trig: Done.kr(loud),blocking: 1); - stats2 = FluidBufStats.kr(~mfccbuf[0],stats:~statsbuf[0], weights: loudbuf2, trig:Done.kr(loud2),blocking: 1); + loud2 = FluidBufCompose.kr(~loudbuf[0],numChans: 1,destination: loudbuf2,trig: Done.kr(loud),blocking: 1); + loud3 = FluidBufScale.kr(loudbuf2, loudbuf3,inlo: -110,inhi: 0,trig: Done.kr(loud2),blocking: 1); + stats2 = FluidBufStats.kr(~mfccbuf[0],stats:~statsbuf[0], weights: loudbuf2, trig:Done.kr(loud3),blocking: 1); FluidBufFlatten.kr(~statsbuf[0],~flatbuf[1],trig:Done.kr(stats2)); }.play; )