// our patch
adc => FFT fft =^ RollOff roff50 => blackhole;
// a second rolloff
fft =^ RollOff roff85 => blackhole;
// set parameters
1024 => fft.size;
// set hann window
Windowing.hann(1024) => fft.window;
// compute srate
second / samp => float srate;
// set rolloff percents
.5 => roff50.percent;
.85 => roff85.percent;
// control loop
UAnaBlob blobby;
UAnaBlob blobert;
while( true )
{
// upchuck: take fft then the rolloffs
roff50.upchuck() @=> blobby;
roff85.upchuck() @=> blobert;
// print out
<<< "50% rolloff:", blobby.fvals()[0] * srate / 2,
"85% rolloff:", blobert.fvals()[0] * srate / 2 >>>;
// advance time
fft.size()::samp => now;
}