static short[] decodeWAVToMonoSamples(File wavFile) ctex { temp WAVDecoder decoder = new(newFileInputStream(wavFile)); ret decodeWAVToMonoSamples(decoder, wavFile); } // weird signature static short[] decodeWAVToMonoSamples(WAVDecoder decoder, File wavFile) { ret decodeWAVToMonoSamples(decoder); } static short[] decodeWAVToMonoSamples(WAVDecoder decoder, long maxSamples default Int.MAX_VALUE) ctex { new L chunks; while ping (maxSamples > 0) { short[] buf = new short[(int) min(maxSamples, 4096)]; int n = decoder.readMonoSamples(buf); if (n <= 0) break; chunks.add(subArray(buf, 0, n)); maxSamples -= n; } ret concatShortArrays(chunks); }