"naudio - convert 32 bit wav to 16 bit wav" Code Answer

5

i finally found the solution. i just had to multiply the converted value by 32767 and cast it to short:

void _wavein_dataavailable(object sender, waveineventargs e)
{
    byte[] newarray16bit = new byte[e.bytesrecorded / 2];
    short two;
    float value;
    for (int i = 0, j = 0; i < e.bytesrecorded; i += 4, j += 2)
    {
        value = (bitconverter.tosingle(e.buffer, i));
        two = (short)(value * short.maxvalue);

        newarray16bit[j] = (byte)(two & 0xff);
        newarray16bit[j + 1] = (byte)((two >> 8) & 0xff);
    }
}
By Anton Skybun on March 26 2022

Answers related to “naudio - convert 32 bit wav to 16 bit wav”

Only authorized users can answer the Search term. Please sign in first, or register a free account.