I have some troubles with a wav reading. I have to read a wav file sample per sample.
To do this, I first try to print my 128 first samples to see if I have good values (I know what they are). To do that :
private int bytesToInt(byte[] fenetre, int debut, int nbByte) {
int res = 0;
for (int i = 0; i < nbByte; i++) {
res <<= 8;
res += fenetre[debut + i];
}
return res;
}
public void afficherPremiereFenetre() throws IOException {
int tailleFenetre = 128;
int nbBytePerSample = au.getFormat().getFrameSize();
int nbBytePerFrame = tailleFenetre * nbBytePerSample;
byte[] fenetre = new byte[nbBytePerFrame];
au.read(fenetre, 0, nbBytePerFrame);
for (int i = 0; i < nbBytePerFrame; i += nbBytePerSample) {
System.out
.println((double) bytesToInt(fenetre, i, nbBytePerSample));
}
}
So my question is : how to really translate my byte[] frame to double ?