import javax.sound.sampled.*; svoid spectro_intRangesToWAV(Clip clip, L parts, File wavFile) { if (empty(parts)) ret with deleteFile(wavFile); new L l; for (IntRange r : parts) { if (nempty(l)) l.add(ZerosInputStream(44100/2*2)); // half a second for (int i = r.start; i < r.end; i++) l.add(clip.getAudio(r.start*clip.getFrameTimeSamples(), r.length()*clip.getFrameTimeSamples())); } AudioFormat format = ((AudioInputStream) first(l)).getAudioFormat(); temp AudioInputStream stream = AudioSystem.getAudioInputStream(format, sequenceInputStream(l)); AudioSystem.write(stream, AudioFileFormat.Type.WAVE, wavFile); }