!7 cmodule AudioClip { File audioFile; transient JAmplitudeGraph graph; transient float[] volumeProfile; double windowSize = 0.01; // seconds visual withComputing(r updateGraph, graph = swingNu JAmplitudeGraph()); void updateGraph enter { if (volumeProfile == null) volumeProfile = decodeWAVToMonoSamples_floatVolumeProfile(windowSize); graph?.setValues(volumeProfile); } void updateProfile enter { volumeProfile == null; updateGraph(); } }