public static void main(String[] args) { if (args.length < 1) { System.err.println("Must supply filename"); System.exit(1); } try { for (final String filename : args) { final WavFile readWavFile = openWavFile(new File(filename)); readWavFile.display(); final long numFrames = readWavFile.getNumFrames(); final int numChannels = readWavFile.getNumChannels(); final int validBits = readWavFile.getValidBits(); final long sampleRate = readWavFile.getSampleRate(); final WavFile writeWavFile = newWavFile(new File("out.wav"), numChannels, numFrames, validBits, sampleRate); final int BUF_SIZE = 5001; // int[] buffer = new int[BUF_SIZE * numChannels]; // long[] buffer = new long[BUF_SIZE * numChannels]; final double[] buffer = new double[BUF_SIZE * numChannels]; int framesRead = 0; int framesWritten = 0; do { framesRead = readWavFile.readFrames(buffer, BUF_SIZE); framesWritten = writeWavFile.writeFrames(buffer, BUF_SIZE); System.out.printf("%d %d\n", framesRead, framesWritten); } while (framesRead != 0); readWavFile.close(); writeWavFile.close(); } final WavFile writeWavFile = newWavFile(new File("out2.wav"), 1, 10, 23, 44100); final double[] buffer = new double[10]; writeWavFile.writeFrames(buffer, 10); writeWavFile.close(); } catch (final Exception e) { System.err.println(e); e.printStackTrace(); } }