!7 sclass MarkedImage { BWImage image; int start, end; } p-exp { L files = audioRecordingsWithSingleClip(); L images = map_printProgress(f wavToFrequencyImage, files); L markedImages = map_printProgress(files, func(File f) -> MarkedImage { BWImage image = wavToFrequencyImage(f); L parts = markerIntRangesForWAV(f, image); ret nu(MarkedImage, +image, start := first(parts).start, end := first(parts).end); }); // Show original clips /*showImage(mergeBWImagesVertically(map(markedImages, func(MarkedImage img) -> BWImage { markIntRangesOnTopOfBWImage(img.image, ll(intRange(img.start, img.end))) })));*/ // Show y-averaged showImage(mergeBWImagesVertically(map(markedImages, func(MarkedImage img) -> BWImage { markIntRangesOnTopOfBWImage(squishBWImage(squishBWImage(img.image, 1), 20), ll(intRange(img.start, img.end))) }))); }