// synthesis + analysis adc => FFT fft =^ Centroid centroid => blackhole; fft =^ Flux flux; // window and window size Windowing.hamming( 800 ) => fft.window; // fft size 1024 => fft.size; // spork two shreds, each extracting at own rate spork ~ one(); spork ~ two(); // used to keep children shreds going while( true ) { // keep going 1::second => now; } // extractor control fun void one() { while( true ) { // compute centroid centroid.upchuck() @=> UAnaBlob blob; // print out <<< "centroid:", blob.fval(0) >>>; // advance time 100::ms => now; } } // extractor control fun void two() { while( true ) { // compute flux flux.upchuck() @=> UAnaBlob blob; // print out <<< "flux:", blob.fval(0) >>>; // advance time 400::ms => now; } }