Наудио - перевод аудиопотока в значения [-1,1] - PullRequest
0 голосов
/ 21 марта 2012

Привет, все, что мне нужно, чтобы поместить мой аудиопоток в значения [-1,1].

Может кто-нибудь сказать мне хороший подход. Я читал байтовый массив и массив float из потока, но я не знаю, что делать дальше.

Вот мой код:

float[] bytes=new float[stream.Length];
            float biggest= 0;
            for (int i = 0; i < stream.Length; i++)
            {
                bytes[i] = (byte)stream.ReadByte();
                if (bytes[i] > biggest)
                {
                    biggest=bytes[i];
                }
            }

и я не знаю, как поместить значения в поток. Потому что байт это только положительные значения. И мне нужно иметь от [-1,1]

        for (int i = 0; i < bytes.Count(); i++)
        {
            bytes[i] = (byte)(bytes[i] * (1 / biggest));
        }

1 Ответ

0 голосов
/ 21 марта 2012

Во втором фрагменте кода вы масштабируете значения, но используете для этого целые числа.Вы пробовали просто использовать значения с плавающей точкой напрямую:

    for (int i = 0; i < bytes.Length; i++)
    {
        bytes[i] /= biggest;      // scale bytes to 0..1
        bytes[i] *= 2;            // scale bytes to 0..2
        bytes[i]--;               // scale bytes to -1..1 
    }

Кстати bytes - это более чем слегка запутанное имя переменной для массива с плавающей точкой.

...