Воспроизведение сигнала (массива с плавающей точкой) в качестве звука - PullRequest
7 голосов
/ 30 июня 2011

У меня есть форма волны, представленная в виде массива с плавающей точкой от -1 до 1. Можно ли воспроизвести эту форму волны как повторяющийся звук?

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

Ответы [ 2 ]

1 голос
/ 30 июня 2011

Предполагая, что ваш массив с плавающей запятой содержит данные PCM, и вы хотите воспроизвести их в 8-битном формате, преобразовать его в байтовый массив легко:здесь pcm - ваш массив с плавающей запятой, buffer - байтовый массив.

1 голос
/ 30 июня 2011

Не зная об этом, почему бы вам просто не присвоить диапазон значениям и не воспроизвести этот диапазон по тонам.

-1   ...      1
50Hz ... 20,000Hz

Вы можете легко рассчитать его следующим образом:

//input is the float array
int minPitch = 50;
int maxPitch = 20000;

int pitch = (int)((input[idx] + 1) * ((maxPitch - minPitch) / 2) + minPitch);

Это даст вам высоту значения в массиве.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...