static ImageSurface showAudioFileWithEditableMarkers(final File audioFile) { L markers = safeUnstruct(getOneLineFileInfoField(audioFile, 'markers)); final ImageSurfaceWithXMarkers is = ImageSurfaceWithXMarkers(audioFileToFrequencyImage(audioFile).getBufferedImage(), markers); is.onMarkersChanged = r { setOneLineFileInfoField(audioFile, markers := struct(is.markers)) }; is.setZoom(2); showPackedFrame(is); ret is; }