!7 cmodule BaseDrumFinder > DynPrintLog { double windowSize = 5.0; // seconds transient ISegmenter segmenter; transient new L buf; transient int bufSize; start { dm_requireLiveAudioFFT(); segmenter = segmenterFromAGIBlue("Find base drum #1"); dm_vmBus_onMessage_q newAudioFrequencyImage(voidfunc(virtual BWImage img) { buf.add(bwImageColumnBrightnesses_generic(img)); bufSize += l(last(buf)); if (bufSize >= audio_estimatedFrequencyImageWidth(windowSize)) { print("Have img! " + l(buf)); buf.clear(); } }); } }