Java Code Examples for javax.sound.sampled.AudioInputStream#getFrameLength()
The following examples show how to use
javax.sound.sampled.AudioInputStream#getFrameLength() .
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example 1
Source File: AiffFileWriter.java From openjdk-jdk8u with GNU General Public License v2.0 | 6 votes |
public int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException { //$$fb the following check must come first ! Otherwise // the next frame length check may throw an IOException and // interrupt iterating File Writers. (see bug 4351296) // throws IllegalArgumentException if not supported AiffFileFormat aiffFileFormat = (AiffFileFormat)getAudioFileFormat(fileType, stream); // we must know the total data length to calculate the file length if( stream.getFrameLength() == AudioSystem.NOT_SPECIFIED ) { throw new IOException("stream length not specified"); } int bytesWritten = writeAiffFile(stream, aiffFileFormat, out); return bytesWritten; }
Example 2
Source File: AiffFileWriter.java From jdk8u60 with GNU General Public License v2.0 | 6 votes |
public int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException { //$$fb the following check must come first ! Otherwise // the next frame length check may throw an IOException and // interrupt iterating File Writers. (see bug 4351296) // throws IllegalArgumentException if not supported AiffFileFormat aiffFileFormat = (AiffFileFormat)getAudioFileFormat(fileType, stream); // we must know the total data length to calculate the file length if( stream.getFrameLength() == AudioSystem.NOT_SPECIFIED ) { throw new IOException("stream length not specified"); } int bytesWritten = writeAiffFile(stream, aiffFileFormat, out); return bytesWritten; }
Example 3
Source File: RecognizeHugeWaveExtFiles.java From openjdk-jdk9 with GNU General Public License v2.0 | 6 votes |
/** * Tests the {@code AudioInputStream} fetched from the fake header. * <p> * Note that the frameLength is stored as long which means that {@code * AudioInputStream} must store all possible data from wave file. */ private static void testAIS(final int[] type, final int rate, final int channel, final long size) throws Exception { final byte[] header = createHeader(type, rate, channel, size); final ByteArrayInputStream fake = new ByteArrayInputStream(header); final AudioInputStream ais = AudioSystem.getAudioInputStream(fake); final AudioFormat format = ais.getFormat(); final long frameLength = size / format.getFrameSize(); if (frameLength != ais.getFrameLength()) { System.err.println("Expected: " + frameLength); System.err.println("Actual: " + ais.getFrameLength()); throw new RuntimeException(); } if (ais.available() < 0) { System.err.println("available should be >=0: " + ais.available()); throw new RuntimeException(); } validateFormat(type[1], rate, channel, format); }
Example 4
Source File: WaveFileWriter.java From jdk8u-jdk with GNU General Public License v2.0 | 6 votes |
public int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException { //$$fb the following check must come first ! Otherwise // the next frame length check may throw an IOException and // interrupt iterating File Writers. (see bug 4351296) // throws IllegalArgumentException if not supported WaveFileFormat waveFileFormat = (WaveFileFormat)getAudioFileFormat(fileType, stream); //$$fb when we got this far, we are committed to write this file // we must know the total data length to calculate the file length if( stream.getFrameLength() == AudioSystem.NOT_SPECIFIED ) { throw new IOException("stream length not specified"); } int bytesWritten = writeWaveFile(stream, waveFileFormat, out); return bytesWritten; }
Example 5
Source File: AiffFileWriter.java From openjdk-8 with GNU General Public License v2.0 | 6 votes |
public int write(AudioInputStream stream, AudioFileFormat.Type fileType, OutputStream out) throws IOException { //$$fb the following check must come first ! Otherwise // the next frame length check may throw an IOException and // interrupt iterating File Writers. (see bug 4351296) // throws IllegalArgumentException if not supported AiffFileFormat aiffFileFormat = (AiffFileFormat)getAudioFileFormat(fileType, stream); // we must know the total data length to calculate the file length if( stream.getFrameLength() == AudioSystem.NOT_SPECIFIED ) { throw new IOException("stream length not specified"); } int bytesWritten = writeAiffFile(stream, aiffFileFormat, out); return bytesWritten; }
Example 6
Source File: SoftMixingClip.java From openjdk-jdk8u with GNU General Public License v2.0 | 5 votes |
public void open(AudioInputStream stream) throws LineUnavailableException, IOException { if (isOpen()) { throw new IllegalStateException("Clip is already open with format " + getFormat() + " and frame lengh of " + getFrameLength()); } if (AudioFloatConverter.getConverter(stream.getFormat()) == null) throw new IllegalArgumentException("Invalid format : " + stream.getFormat().toString()); if (stream.getFrameLength() != AudioSystem.NOT_SPECIFIED) { byte[] data = new byte[(int) stream.getFrameLength() * stream.getFormat().getFrameSize()]; int readsize = 512 * stream.getFormat().getFrameSize(); int len = 0; while (len != data.length) { if (readsize > data.length - len) readsize = data.length - len; int ret = stream.read(data, len, readsize); if (ret == -1) break; if (ret == 0) Thread.yield(); len += ret; } open(stream.getFormat(), data, 0, len); } else { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] b = new byte[512 * stream.getFormat().getFrameSize()]; int r = 0; while ((r = stream.read(b)) != -1) { if (r == 0) Thread.yield(); baos.write(b, 0, r); } open(stream.getFormat(), baos.toByteArray(), 0, baos.size()); } }
Example 7
Source File: AudioFileSoundbankReader.java From openjdk-8-source with GNU General Public License v2.0 | 5 votes |
public Soundbank getSoundbank(AudioInputStream ais) throws InvalidMidiDataException, IOException { try { byte[] buffer; if (ais.getFrameLength() == -1) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buff = new byte[1024 - (1024 % ais.getFormat().getFrameSize())]; int ret; while ((ret = ais.read(buff)) != -1) { baos.write(buff, 0, ret); } ais.close(); buffer = baos.toByteArray(); } else { buffer = new byte[(int) (ais.getFrameLength() * ais.getFormat().getFrameSize())]; new DataInputStream(ais).readFully(buffer); } ModelByteBufferWavetable osc = new ModelByteBufferWavetable( new ModelByteBuffer(buffer), ais.getFormat(), -4800); ModelPerformer performer = new ModelPerformer(); performer.getOscillators().add(osc); SimpleSoundbank sbk = new SimpleSoundbank(); SimpleInstrument ins = new SimpleInstrument(); ins.add(performer); sbk.addInstrument(ins); return sbk; } catch (Exception e) { return null; } }
Example 8
Source File: AudioFileSoundbankReader.java From Bytecoder with Apache License 2.0 | 5 votes |
public Soundbank getSoundbank(AudioInputStream ais) throws InvalidMidiDataException, IOException { try { byte[] buffer; if (ais.getFrameLength() == -1) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buff = new byte[1024 - (1024 % ais.getFormat().getFrameSize())]; int ret; while ((ret = ais.read(buff)) != -1) { baos.write(buff, 0, ret); } ais.close(); buffer = baos.toByteArray(); } else { buffer = new byte[(int) (ais.getFrameLength() * ais.getFormat().getFrameSize())]; new DataInputStream(ais).readFully(buffer); } ModelByteBufferWavetable osc = new ModelByteBufferWavetable( new ModelByteBuffer(buffer), ais.getFormat(), -4800); ModelPerformer performer = new ModelPerformer(); performer.getOscillators().add(osc); SimpleSoundbank sbk = new SimpleSoundbank(); SimpleInstrument ins = new SimpleInstrument(); ins.add(performer); sbk.addInstrument(ins); return sbk; } catch (Exception e) { return null; } }
Example 9
Source File: DataClip.java From javagame with MIT License | 5 votes |
public DataClip(AudioInputStream audioStream) throws IOException { index = 0; format = audioStream.getFormat(); // WAVE�t�@�C���̑傫�������߂� int length = (int)(audioStream.getFrameLength() * format.getFrameSize()); // ���̑傫����byte�z���p�� data = new byte[length]; // data��WAVE�f�[�^���i�[���� DataInputStream is = new DataInputStream(audioStream); is.readFully(data); }
Example 10
Source File: DataClip.java From javagame with MIT License | 5 votes |
public DataClip(AudioInputStream audioStream) throws IOException { index = 0; format = audioStream.getFormat(); // WAVE�t�@�C���̑傫�������߂� int length = (int)(audioStream.getFrameLength() * format.getFrameSize()); // ���̑傫����byte�z���p�� data = new byte[length]; // data��WAVE�f�[�^���i�[���� DataInputStream is = new DataInputStream(audioStream); is.readFully(data); }
Example 11
Source File: JavaSoundAudioClip.java From openjdk-8 with GNU General Public License v2.0 | 5 votes |
private boolean loadAudioData(AudioInputStream as) throws IOException, UnsupportedAudioFileException { if (DEBUG || Printer.debug)Printer.debug("JavaSoundAudioClip->openAsClip()"); // first possibly convert this stream to PCM as = Toolkit.getPCMConvertedAudioInputStream(as); if (as == null) { return false; } loadedAudioFormat = as.getFormat(); long frameLen = as.getFrameLength(); int frameSize = loadedAudioFormat.getFrameSize(); long byteLen = AudioSystem.NOT_SPECIFIED; if (frameLen != AudioSystem.NOT_SPECIFIED && frameLen > 0 && frameSize != AudioSystem.NOT_SPECIFIED && frameSize > 0) { byteLen = frameLen * frameSize; } if (byteLen != AudioSystem.NOT_SPECIFIED) { // if the stream length is known, it can be efficiently loaded into memory readStream(as, byteLen); } else { // otherwise we use a ByteArrayOutputStream to load it into memory readStream(as); } // if everything went fine, we have now the audio data in // loadedAudio, and the byte length in loadedAudioByteLength return true; }
Example 12
Source File: AudioFileSoundbankReader.java From jdk8u_jdk with GNU General Public License v2.0 | 5 votes |
public Soundbank getSoundbank(AudioInputStream ais) throws InvalidMidiDataException, IOException { try { byte[] buffer; if (ais.getFrameLength() == -1) { ByteArrayOutputStream baos = new ByteArrayOutputStream(); byte[] buff = new byte[1024 - (1024 % ais.getFormat().getFrameSize())]; int ret; while ((ret = ais.read(buff)) != -1) { baos.write(buff, 0, ret); } ais.close(); buffer = baos.toByteArray(); } else { buffer = new byte[(int) (ais.getFrameLength() * ais.getFormat().getFrameSize())]; new DataInputStream(ais).readFully(buffer); } ModelByteBufferWavetable osc = new ModelByteBufferWavetable( new ModelByteBuffer(buffer), ais.getFormat(), -4800); ModelPerformer performer = new ModelPerformer(); performer.getOscillators().add(osc); SimpleSoundbank sbk = new SimpleSoundbank(); SimpleInstrument ins = new SimpleInstrument(); ins.add(performer); sbk.addInstrument(ins); return sbk; } catch (Exception e) { return null; } }
Example 13
Source File: PCMtoPCMCodec.java From jdk8u-jdk with GNU General Public License v2.0 | 4 votes |
PCMtoPCMCodecStream(AudioInputStream stream, AudioFormat outputFormat) { super(stream, outputFormat, -1); int sampleSizeInBits = 0; AudioFormat.Encoding inputEncoding = null; AudioFormat.Encoding outputEncoding = null; boolean inputIsBigEndian; boolean outputIsBigEndian; AudioFormat inputFormat = stream.getFormat(); // throw an IllegalArgumentException if not ok if ( ! (isConversionSupported(inputFormat, outputFormat)) ) { throw new IllegalArgumentException("Unsupported conversion: " + inputFormat.toString() + " to " + outputFormat.toString()); } inputEncoding = inputFormat.getEncoding(); outputEncoding = outputFormat.getEncoding(); inputIsBigEndian = inputFormat.isBigEndian(); outputIsBigEndian = outputFormat.isBigEndian(); sampleSizeInBits = inputFormat.getSampleSizeInBits(); sampleSizeInBytes = sampleSizeInBits/8; // determine conversion to perform if( sampleSizeInBits==8 ) { if( AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_SIGNED_8BIT"); } else if( AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_SIGNED_8BIT"); } } else { if( inputEncoding.equals(outputEncoding) && (inputIsBigEndian != outputIsBigEndian) ) { conversionType = PCM_SWITCH_ENDIAN; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_ENDIAN"); } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_UNSIGNED_LE2SIGNED_BE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_UNSIGNED_LE2SIGNED_BE"); } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_SIGNED_LE2UNSIGNED_BE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SIGNED_LE2UNSIGNED_BE"); } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_UNSIGNED_BE2SIGNED_LE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_UNSIGNED_BE2SIGNED_LE"); } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_SIGNED_BE2UNSIGNED_LE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SIGNED_BE2UNSIGNED_LE"); } } // set the audio stream length in frames if we know it frameSize = inputFormat.getFrameSize(); if( frameSize == AudioSystem.NOT_SPECIFIED ) { frameSize=1; } if( stream instanceof AudioInputStream ) { frameLength = stream.getFrameLength(); } else { frameLength = AudioSystem.NOT_SPECIFIED; } // set framePos to zero framePos = 0; }
Example 14
Source File: PCMtoPCMCodec.java From jdk8u_jdk with GNU General Public License v2.0 | 4 votes |
PCMtoPCMCodecStream(AudioInputStream stream, AudioFormat outputFormat) { super(stream, outputFormat, -1); int sampleSizeInBits = 0; AudioFormat.Encoding inputEncoding = null; AudioFormat.Encoding outputEncoding = null; boolean inputIsBigEndian; boolean outputIsBigEndian; AudioFormat inputFormat = stream.getFormat(); // throw an IllegalArgumentException if not ok if ( ! (isConversionSupported(inputFormat, outputFormat)) ) { throw new IllegalArgumentException("Unsupported conversion: " + inputFormat.toString() + " to " + outputFormat.toString()); } inputEncoding = inputFormat.getEncoding(); outputEncoding = outputFormat.getEncoding(); inputIsBigEndian = inputFormat.isBigEndian(); outputIsBigEndian = outputFormat.isBigEndian(); sampleSizeInBits = inputFormat.getSampleSizeInBits(); sampleSizeInBytes = sampleSizeInBits/8; // determine conversion to perform if( sampleSizeInBits==8 ) { if( AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_SIGNED_8BIT"); } else if( AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_SIGNED_8BIT"); } } else { if( inputEncoding.equals(outputEncoding) && (inputIsBigEndian != outputIsBigEndian) ) { conversionType = PCM_SWITCH_ENDIAN; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_ENDIAN"); } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_UNSIGNED_LE2SIGNED_BE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_UNSIGNED_LE2SIGNED_BE"); } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_SIGNED_LE2UNSIGNED_BE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SIGNED_LE2UNSIGNED_BE"); } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_UNSIGNED_BE2SIGNED_LE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_UNSIGNED_BE2SIGNED_LE"); } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_SIGNED_BE2UNSIGNED_LE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SIGNED_BE2UNSIGNED_LE"); } } // set the audio stream length in frames if we know it frameSize = inputFormat.getFrameSize(); if( frameSize == AudioSystem.NOT_SPECIFIED ) { frameSize=1; } if( stream instanceof AudioInputStream ) { frameLength = stream.getFrameLength(); } else { frameLength = AudioSystem.NOT_SPECIFIED; } // set framePos to zero framePos = 0; }
Example 15
Source File: SoftJitterCorrector.java From jdk8u60 with GNU General Public License v2.0 | 4 votes |
public SoftJitterCorrector(AudioInputStream stream, int buffersize, int smallbuffersize) { super(new JitterStream(stream, buffersize, smallbuffersize), stream.getFormat(), stream.getFrameLength()); }
Example 16
Source File: AlawCodec.java From openjdk-jdk9 with GNU General Public License v2.0 | 4 votes |
AlawCodecStream(AudioInputStream stream, AudioFormat outputFormat) { super(stream, outputFormat, -1); AudioFormat inputFormat = stream.getFormat(); // throw an IllegalArgumentException if not ok if ( ! (isConversionSupported(outputFormat, inputFormat)) ) { throw new IllegalArgumentException("Unsupported conversion: " + inputFormat.toString() + " to " + outputFormat.toString()); } //$$fb 2002-07-18: fix for 4714846: JavaSound ULAW (8-bit) encoder erroneously depends on endian-ness boolean PCMIsBigEndian; // determine whether we are encoding or decoding if (AudioFormat.Encoding.ALAW.equals(inputFormat.getEncoding())) { encode = false; encodeFormat = inputFormat; decodeFormat = outputFormat; PCMIsBigEndian = outputFormat.isBigEndian(); } else { encode = true; encodeFormat = outputFormat; decodeFormat = inputFormat; PCMIsBigEndian = inputFormat.isBigEndian(); tempBuffer = new byte[tempBufferSize]; } if (PCMIsBigEndian) { tabByte1 = ALAW_TABH; tabByte2 = ALAW_TABL; highByte = 0; lowByte = 1; } else { tabByte1 = ALAW_TABL; tabByte2 = ALAW_TABH; highByte = 1; lowByte = 0; } // set the AudioInputStream length in frames if we know it if (stream instanceof AudioInputStream) { frameLength = stream.getFrameLength(); } // set framePos to zero framePos = 0; frameSize = inputFormat.getFrameSize(); if( frameSize==AudioSystem.NOT_SPECIFIED ) { frameSize=1; } }
Example 17
Source File: PCMtoPCMCodec.java From Bytecoder with Apache License 2.0 | 4 votes |
PCMtoPCMCodecStream(AudioInputStream stream, AudioFormat outputFormat) { super(stream, outputFormat, -1); int sampleSizeInBits = 0; AudioFormat.Encoding inputEncoding = null; AudioFormat.Encoding outputEncoding = null; boolean inputIsBigEndian; boolean outputIsBigEndian; AudioFormat inputFormat = stream.getFormat(); // throw an IllegalArgumentException if not ok if ( ! (isConversionSupported(inputFormat, outputFormat)) ) { throw new IllegalArgumentException("Unsupported conversion: " + inputFormat.toString() + " to " + outputFormat.toString()); } inputEncoding = inputFormat.getEncoding(); outputEncoding = outputFormat.getEncoding(); inputIsBigEndian = inputFormat.isBigEndian(); outputIsBigEndian = outputFormat.isBigEndian(); sampleSizeInBits = inputFormat.getSampleSizeInBits(); sampleSizeInBytes = sampleSizeInBits/8; // determine conversion to perform if( sampleSizeInBits==8 ) { if( AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; } else if( AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; } } else { if( inputEncoding.equals(outputEncoding) && (inputIsBigEndian != outputIsBigEndian) ) { conversionType = PCM_SWITCH_ENDIAN; } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_UNSIGNED_LE2SIGNED_BE; } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_SIGNED_LE2UNSIGNED_BE; } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_UNSIGNED_BE2SIGNED_LE; } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_SIGNED_BE2UNSIGNED_LE; } } // set the audio stream length in frames if we know it frameSize = inputFormat.getFrameSize(); if( frameSize == AudioSystem.NOT_SPECIFIED ) { frameSize=1; } if( stream instanceof AudioInputStream ) { frameLength = stream.getFrameLength(); } else { frameLength = AudioSystem.NOT_SPECIFIED; } // set framePos to zero framePos = 0; }
Example 18
Source File: WAVtoLYG.java From Data_Processor with Apache License 2.0 | 4 votes |
@SuppressWarnings({ "rawtypes", "unused" }) public WAVtoLYG(String WAVf, String LYGf) throws IOException, UnsupportedAudioFileException{ LYGFileIO IO = new LYGFileIO(); IO.reset(); //IO.creat(); IO.header=new Header(); IO.adataFrame=new AdataFrame(); //IO.WAVRead("C:\\Users\\yaoguang\\Desktop\\study\\sound\\AHag.wav"); //File F=new File("C:\\Users\\yaoguang\\Desktop\\study\\sound\\AHag.wav"); File F=new File(WAVf); System.out.println(F.length()); AudioInputStream ais=AudioSystem.getAudioInputStream(F); //get header IO.header.SBigEndian=ais.getFormat().isBigEndian(); IO.header.SChannels=ais.getFormat().getChannels(); IO.header.SEn=ais.getFormat().getEncoding(); IO.header.SFrameRate=ais.getFormat().getFrameRate(); IO.header.SFrameSize=ais.getFormat().getFrameSize(); IO.header.SSampleRate=ais.getFormat().getSampleRate(); IO.header.SSampleSizeInBits=ais.getFormat().getSampleSizeInBits(); IO.header.SFrameLeangth=ais.getFrameLength(); //get array //time double times; long milliseconds = (long)((IO.header.SFrameLeangth * 1000) / IO.header.SFrameRate); times = milliseconds / 1000.0; // if((int)times<times){ times=(int)(times+1); } //loop store main array to sub array SoundWaveVector sv = new SoundWaveVector(); Vector lines = sv.getVectorLines(ais,IO.header.SFrameRate); IO.adataFrame.audioArray = sv.audioData; for(int i=0;i<times-1;i++){ IO.adataFrame.next = new AdataFrame(); IO.adataFrame.next.prev = IO.adataFrame; IO.adataFrame = IO.adataFrame.next; sv = new SoundWaveVector(); lines = sv.getVectorLines(ais,IO.header.SFrameRate); IO.adataFrame.audioArray = sv.audioData; } //out IO.toHead(); IO.lygWrite(LYGf); IO.reset(); }
Example 19
Source File: JavaSoundSampleLoader.java From jsyn with Apache License 2.0 | 4 votes |
private float[] loadSignedPCM(AudioInputStream audioInputStream) throws IOException, UnsupportedAudioFileException { int totalSamplesRead = 0; AudioFormat format = audioInputStream.getFormat(); int numFrames = (int) audioInputStream.getFrameLength(); int numSamples = format.getChannels() * numFrames; float[] data = new float[numSamples]; final int bytesPerFrame = format.getFrameSize(); // Set an arbitrary buffer size of 1024 frames. int numBytes = 1024 * bytesPerFrame; byte[] audioBytes = new byte[numBytes]; int numBytesRead = 0; int numFramesRead = 0; // Try to read numBytes bytes from the file. while ((numBytesRead = audioInputStream.read(audioBytes)) != -1) { int bytesRemainder = numBytesRead % bytesPerFrame; if (bytesRemainder != 0) { // TODO Read until you get enough data. throw new IOException("Read partial block of sample data!"); } if (audioInputStream.getFormat().getSampleSizeInBits() == 16) { if (format.isBigEndian()) { SampleLoader.decodeBigI16ToF32(audioBytes, 0, numBytesRead, data, totalSamplesRead); } else { SampleLoader.decodeLittleI16ToF32(audioBytes, 0, numBytesRead, data, totalSamplesRead); } } else if (audioInputStream.getFormat().getSampleSizeInBits() == 24) { if (format.isBigEndian()) { SampleLoader.decodeBigI24ToF32(audioBytes, 0, numBytesRead, data, totalSamplesRead); } else { SampleLoader.decodeLittleI24ToF32(audioBytes, 0, numBytesRead, data, totalSamplesRead); } } else if (audioInputStream.getFormat().getSampleSizeInBits() == 32) { if (format.isBigEndian()) { SampleLoader.decodeBigI32ToF32(audioBytes, 0, numBytesRead, data, totalSamplesRead); } else { SampleLoader.decodeLittleI32ToF32(audioBytes, 0, numBytesRead, data, totalSamplesRead); } } else { throw new UnsupportedAudioFileException( "Only 16, 24 or 32 bit PCM samples supported."); } // Calculate the number of frames actually read. numFramesRead = numBytesRead / bytesPerFrame; totalSamplesRead += numFramesRead * format.getChannels(); } return data; }
Example 20
Source File: PCMtoPCMCodec.java From openjdk-8 with GNU General Public License v2.0 | 4 votes |
PCMtoPCMCodecStream(AudioInputStream stream, AudioFormat outputFormat) { super(stream, outputFormat, -1); int sampleSizeInBits = 0; AudioFormat.Encoding inputEncoding = null; AudioFormat.Encoding outputEncoding = null; boolean inputIsBigEndian; boolean outputIsBigEndian; AudioFormat inputFormat = stream.getFormat(); // throw an IllegalArgumentException if not ok if ( ! (isConversionSupported(inputFormat, outputFormat)) ) { throw new IllegalArgumentException("Unsupported conversion: " + inputFormat.toString() + " to " + outputFormat.toString()); } inputEncoding = inputFormat.getEncoding(); outputEncoding = outputFormat.getEncoding(); inputIsBigEndian = inputFormat.isBigEndian(); outputIsBigEndian = outputFormat.isBigEndian(); sampleSizeInBits = inputFormat.getSampleSizeInBits(); sampleSizeInBytes = sampleSizeInBits/8; // determine conversion to perform if( sampleSizeInBits==8 ) { if( AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_SIGNED_8BIT"); } else if( AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) ) { conversionType = PCM_SWITCH_SIGNED_8BIT; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_SIGNED_8BIT"); } } else { if( inputEncoding.equals(outputEncoding) && (inputIsBigEndian != outputIsBigEndian) ) { conversionType = PCM_SWITCH_ENDIAN; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SWITCH_ENDIAN"); } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_UNSIGNED_LE2SIGNED_BE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_UNSIGNED_LE2SIGNED_BE"); } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && !inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && outputIsBigEndian) { conversionType = PCM_SIGNED_LE2UNSIGNED_BE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SIGNED_LE2UNSIGNED_BE"); } else if (AudioFormat.Encoding.PCM_UNSIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_SIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_UNSIGNED_BE2SIGNED_LE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_UNSIGNED_BE2SIGNED_LE"); } else if (AudioFormat.Encoding.PCM_SIGNED.equals(inputEncoding) && inputIsBigEndian && AudioFormat.Encoding.PCM_UNSIGNED.equals(outputEncoding) && !outputIsBigEndian) { conversionType = PCM_SIGNED_BE2UNSIGNED_LE; if(Printer.debug) Printer.debug("PCMtoPCMCodecStream: conversionType = PCM_SIGNED_BE2UNSIGNED_LE"); } } // set the audio stream length in frames if we know it frameSize = inputFormat.getFrameSize(); if( frameSize == AudioSystem.NOT_SPECIFIED ) { frameSize=1; } if( stream instanceof AudioInputStream ) { frameLength = stream.getFrameLength(); } else { frameLength = AudioSystem.NOT_SPECIFIED; } // set framePos to zero framePos = 0; }