sbool audioSplit1_debug = true; static float audioSplit1_threshold = 0.025f; static L audioSplit1(BWImage img) { ret audioSplit1(img, audioSplit1_threshold); } static L audioSplit1(BWImage img, float threshold) { int w = img.getWidth(); float[] f = bwImageColumnBrightnesses(img); new L l; int j = -1; for (int i = 0; i < l(f); i++) if (f[i] >= threshold) { // start / continue streak if (j < 0) j = i; } else { if (j >= 0) { // end streak l.add(intRange(j, i)); j = -1; } } if (j >= 0) l.add(intRange(j, w)); if (audioSplit1_debug) print("audioSplit1: " + w + " => " + sfu(l)); ret l; }