lib 1400149 // java-lame static LS _stickyLibs_javaLame_wavToMP3_mono = ll(#1400149); import net.sourceforge.lame.lowlevel.*; static void javaLame_wavToMP3_mono(File wav, File mp3) ctex { long time = sysNow(); temp WAVDecoder decoder = new(newFileInputStream(wav)); time "Decode WAV" { byte[] pcm = byteArrayFromShorts_littleEndian(decodeWAVToMonoSamples(decoder, wav)); } LameEncoder encoder = new(javaSound_pcmSignedLittleEndianMono(decoder.sampleRate)); temp FileOutputStream out = new(mp3); byte[] buffer = new byte[encoder.getPCMBufferSize()]; int bytesToTransfer = min(l(buffer), l(pcm)), bytesWritten; int currentPcmPosition = 0; while (0 < (bytesWritten = encoder.encodeBuffer(pcm, currentPcmPosition, bytesToTransfer, buffer))) { currentPcmPosition += bytesToTransfer; bytesToTransfer = min(l(buffer), l(pcm) - currentPcmPosition); out.write(buffer, 0, bytesWritten); } encoder.close(); done2_always_timeFirst(time, "Pure-Java-converted " + wav + " to " + mp3); }