Имам вълнов файл в 16-битова PCM форма. Имам необработените данни в byte[]
и метод за извличане на проби и ми трябват във формат с плаваща форма, т.е. float[]
, за да направя трансформация на Фурие. Ето моя код, изглежда ли правилно? Работя с Android, така че javax.sound.sampled
и т.н. не е наличен.
private static short getSample(byte[] buffer, int position) {
return (short) (((buffer[position + 1] & 0xff) << 8) | (buffer[position] & 0xff));
}
...
float[] samples = new float[samplesLength];
for (int i = 0;i<input.length/2;i+=2){
samples[i/2] = (float)getSample(input,i) / (float)Short.MAX_VALUE;
}