Мне нужна библиотека для MS VC6, которая кодирует дискретизированные данные, которые находятся в форме массива с плавающей запятой, в формат аудиофайла, предпочтительно wav.Также есть библиотека, которая может кодировать образцы в форму pcm и воспроизводить их напрямую через звуковую карту без сначала сохранить файл WAV ??
Библиотека C / C ++ для кодирования файлов .wav
comment
duplicate: stackoverflow.com/questions/1451606/
- person Georg Fritzsche   schedule 30.11.2009
Ответы (2)
Как уже отмечалось, формат файла WAV очень прост. Чтобы просто проиграть семплы, используйте функции waveOut; они задокументированы.
Чтобы преобразовать образец с плавающей запятой в 16-разрядный образец PCM со знаком, просто преобразуйте образец в 16-разрядный диапазон. Например, предположив, что образец находится в диапазоне от -1,0 до +1,0, умножьте его на 32767,0 и преобразуйте его в целое число:
int16_t sample = static_cast<int16_t>(32767.0 * float_sample);
Когда они у вас есть, просто используйте функции waveOut * для воспроизведения сэмплов.
person
janm
schedule
01.12.2009
Похоже, libsndfile (www.mega-nerd.com/libsndfile/) и SndLib (ccrma.stanford.edu/software/snd/sndlib/) сделает то, что вы хотеть.
person
Larry Engholm
schedule
30.12.2009