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.
flucoma-sc/test/FluidWaveform raster scratc...

48 lines
1.4 KiB
Plaintext

(
~raster = {
arg rasterBuffer;
var colors;
colors = CSVFileReader.readInterpret(FluidFilesPath("../Resources/color-schemes/%.csv".format("CET-L16"))).collect{
arg row;
Color.fromArray(row);
};
rasterBuffer.loadToFloatArray(action:{
arg vals;
"n vals in raster buffer: %".format(vals.size).postln;
fork({
var img = Image(rasterBuffer.numFrames,rasterBuffer.numChannels);
var min = vals.minItem;
var max = vals.maxItem;
var range = max - min;
"min: %".format(min).postln;
"max: %".format(max).postln;
"range: %".format(range).postln;
vals = (vals - min) / range;
vals = (vals * 255).asInteger;
vals.do{
arg val, index;
img.setColor(colors[val], index.div(rasterBuffer.numChannels), rasterBuffer.numChannels - 1 - index.mod(rasterBuffer.numChannels));
};
img.plot;
},AppClock);
});
};
)
// show mels
~drums = Buffer.read(s,FluidFilesPath("Nicol-LoopE-M.wav"));
~rasterBuffer = Buffer(s);
FluidBufMelBands.processBlocking(s,~drums,features:~rasterBuffer,numBands:512,windowSize:1024,action:{"done".postln});
FluidBufSTFT.processBlocking(s,~drums,magnitude:~rasterBuffer,windowSize:1024,action:{"done".postln});
FluidBufMFCC.processBlocking(s,~drums,features:~rasterBuffer,windowSize:1024,action:{"done".postln});
FluidBufChroma.processBlocking(s,~drums,features:~rasterBuffer,action:{"done".postln});
~rasterBuffer.postln;
~raster.(~rasterBuffer);