Какой простой способ вывести синтезированный звук в Unix? - PullRequest
2 голосов
/ 22 января 2010

Я хочу сделать синтез звука в Mac OS X (и в идеале в других Unix-подобных ОС), используя ANSI C.

Это для целей обучения, а не «Мне нужно решение, любое решение, быстро!»

Допустим, в моей C-программе есть 8-битный буфер, который я обновляю 22050 раз в секунду. Как я могу заставить свои динамики выводить это как сигнал?

Ответы [ 2 ]

3 голосов
/ 22 января 2010

SDL может воспроизводить звуковые буферы. Но PortAudio может работать лучше. PA будет вызывать ваш обратный вызов C, когда ему потребуется больше данных, а затем вы можете передать его в следующий буфер. Это довольно легко на самом деле.

1 голос
/ 23 января 2010

Нет аудио API POSIX или чего-то подобного.Поэтому, если вам нужна поддержка звука в Linux, OSX и т. Д., Вам нужна библиотека, которая оборачивается вокруг собственных звуковых API различных ОС.Посмотрите на этот ТАК * вопрос .Он не запрашивает напрямую OSX, но большинство ответов также должно сработать, за исключением, возможно, libao.По крайней мере, я не нашел ничего на их домашней странице, где написано, что они поддерживают OSX.

...