Вождение звуковой карты в Linux - PullRequest
1 голос
/ 15 октября 2011

В динамике базовых встраиваемых систем с одной линией выходного сигнала покачивание выходного значения 0 или 1 в течение заданных периодов дает звук.

Я бы хотел сделать нечто подобное на современном рабочем столе Linux.Краткий обзор Portaudio, OpenAL и ALSA подсказывает мне, что большинство людей делают вещи на значительно более высоком уровне.Это нормально, но не то, что я ищу.

(я никогда раньше не работал со звуками в Linux, поэтому , если учебник существует, я бы хотел его увидеть).

Ответы [ 3 ]

2 голосов
/ 15 октября 2011

На самом деле, это ... вроде как.Хотя вы можете самостоятельно генерировать сигнал , вам все равно нужно использовать API, чтобы поставить его в очередь и отправить на аудиооборудование;больше даже не существует разумный способ напрямую переключать звуковую линию.Кроме того, вы получаете кросс-платформенную совместимость бесплатно.

0 голосов
/ 15 октября 2011

Поскольку существует много разных звуковых карт и аудиоинтерфейсов, выпускаемых разными компаниями, нет единого способа получить к ним доступ на низком уровне.Для большинства API-интерфейсов звукового ввода-вывода вам нужно сгенерировать данные PCM и отправить их драйверу.Это практически самый низкий уровень, который вы можете пройти.

Но данные PCM очень похожи на описанный вами подход 0-1.Просто у вас есть промежуточные варианты тоже.0-1 это 1-битный звук.8-, 16-, 24-битный звук - это то, что вы найдете на современной звуковой карте.Существуют также 32- и 64-битные форматы с плавающей точкой.Но они все еще похожи.

0 голосов
/ 15 октября 2011

[...] встроенный системный громкоговоритель с одной линией вывода, извивающий выходной сигнал 0 или 1 в течение заданных периодов, производит звук.

Звучит очень похоже на старый компьютерный динамик. Вы все еще можете найти код для этого в ядре Linux.

Я бы хотел сделать что-то похожее на современном рабочем столе Linux.

Тогда вам нужен AFAIK драйвер для ALSA . Там вы можете найти информацию о , как написать драйвер ALSA . Используйте ШИМ для создания звука.

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