[marf-cvs] marf/src/marf/Storage/Loaders WAVLoader.java,1.10,1.11
Brought to you by:
mokhov
From: Serguei A. M. <mo...@us...> - 2004-06-10 23:13:49
|
Update of /cvsroot/marf/marf/src/marf/Storage/Loaders In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv1107/src/marf/Storage/Loaders Modified Files: WAVLoader.java Log Message: Add ByteUtils to convert some common data types (such as String, int, and short for the time being) from a raw array of bytes. Make use of one of these routines in WAVLoader.java. Others are used elsewhere and might become useful for MARF when I get around to add NLP stuff. Clean up WAVLoader a bit along the way. Index: WAVLoader.java =================================================================== RCS file: /cvsroot/marf/marf/src/marf/Storage/Loaders/WAVLoader.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** WAVLoader.java 9 Feb 2003 16:24:03 -0000 1.10 --- WAVLoader.java 10 Jun 2004 23:13:38 -0000 1.11 *************** *** 72,87 **** AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED; ! float rate = DEFAULT_FREQUENCY; ! int bitSampleSize = DEFAULT_SAMPLE_BIT_SIZE; ! int channels = DEFAULT_CHANNELS; ! oAudioFormat = new AudioFormat ( encoding, ! rate, ! bitSampleSize, ! channels, ! (bitSampleSize / 8) * channels, ! rate, false ); --- 72,87 ---- AudioFormat.Encoding encoding = AudioFormat.Encoding.PCM_SIGNED; ! float fRate = DEFAULT_FREQUENCY; ! int iBitSampleSize = DEFAULT_SAMPLE_BIT_SIZE; ! int iChannels = DEFAULT_CHANNELS; ! this.oAudioFormat = new AudioFormat ( encoding, ! fRate, ! iBitSampleSize, ! iChannels, ! (iBitSampleSize / 8) * iChannels, ! fRate, false ); *************** *** 136,164 **** int MSB, LSB; ! byte[] audioBuffer = new byte[audioData.length * 2]; ! int nbrBytes = this.oAudioInputStream.read(audioBuffer); wcount = (nbrBytes / 2) + (nbrBytes % 2); for(int i = 0; i < wcount; i++) ! { ! if(this.oAudioFormat.isBigEndian()) ! { ! // First byte is MSB (high order) ! MSB = (int)audioBuffer[2 * i]; ! // Second byte is LSB (low order) ! LSB = (int)audioBuffer[2 * i + 1]; ! } ! else ! { ! // Vice-versa... ! LSB = (int)audioBuffer[2 * i]; ! MSB = (int)audioBuffer[2 * i + 1]; ! } ! ! // Merge high-order and low-order byte to form a 16-bit double value. ! // Values are divided by maximum range ! audioData[i] = (double) (MSB << 8 | (255 & LSB)) / 32768; ! } return wcount; --- 136,146 ---- int MSB, LSB; ! byte[] abAudioBuffer = new byte[audioData.length * 2]; ! int nbrBytes = this.oAudioInputStream.read(abAudioBuffer); wcount = (nbrBytes / 2) + (nbrBytes % 2); for(int i = 0; i < wcount; i++) ! audioData[i] = (double)ByteUtils.byteArrayToShort(abAudioBuffer, 2 * i, this.oAudioFormat.isBigEndian()) / 32768; return wcount; |