sclass SimpleBaseDrumFinder2 { double windowSize = 5.0; // seconds int imageHeight = 10; // must be >= segmenter.gridSize transient ISegmenter segmenter; transient new L buf; transient int bufSize; transient BWImage lastImage; transient L ranges; L addFrequencyImageBrightnesses(float[] l) { bufSize += l(last(buf)); if (bufSize < audio_estimatedFrequencyImageWidth(windowSize)) null; print("Have img! " + l(buf)); lastImage = floatArraysToBWImageColumns(imageHeight, buf); buf.clear(); bufSize = 0; if (segmenter == null) ret ranges = null; ranges = map rectXRange(segmenter.get(toBufferedImage(lastImage))); print(+ranges); ret ranges; } }