программирование звука

Все о программировании под *nix
Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

программирование звука

Сообщение tes+or »

надумал я сделать некое абстрактное устройство которое имеет один монофонический вход и два выхода, один моно и другой стерео. эти входы и выходы буду заниматся синтезом и разбором сигнала близкого по характеристикам к звуковому.

для реализации такого устройства мне показалось очевидным использовать звуковую карту и линукс. из линуксов имеется собраный и рабочий LFS, из звуковых карт много разных, но наиболее подходящей мне показалась ESS 1930S, имеющая дополнительный вход неизвестных свойств, что критично в моем случае.

воткнув сию карточку и воскурив это чтиво: http://www.mtu-net.ru/aborovsky/articles/linsnd1.htm я, используя ALSA из ядра в режиме совместимости с OSS, получил условно положительный результат в виде различающихся по уровню звуков в левом и правом ушах соотвественно разных каналов(хотя на микшере я пытался выставлять разные вещи). выяснить являются ли они составляющими одного стереопотока пока не представляется возможным. ситуацию осложняет то, что я нехочу ставить aumix или alsamixer, поскольку очень жажду побольше проблем и желаю чтобы прога которую я пишу умела крутить микшером сама.

т.е. происходящее мне пока довольно слабо понятно. стоит вопрос что использовать? мне ненужны аудиоформаты, а вещи вроде микширования различных сигналов я в состоянии закодить и сам, вопрос только в том, как вывести данные в виде звука и звук преобразовать в поток данных.

насколько понимаю варианта два - ALSA и OSS. OSS меня в принципе устраивает польностью, разве что пока не совсем понятно почему он ведет себя неадекватным образом. кроме того - существуют два вариант для каждого из драйверов - ядерный и юзерспэйсный + либы еще какие-то. просвятите - чем характеризуются все вышеперечисленные варианты и почему я должен использовать какой-то конкретный из них?

michael
Неотъемлемая часть форума
Сообщения: 434
Зарегистрирован: 12 апр 2004, 11:00
Откуда: г. Владивосток
Контактная информация:

Сообщение michael »

Для alsa используется alsa-lib. Простейшие примеры ввода/вывода есть тут: http://equalarea.com/paul/alsa-audio.html. Плюс доки в самой alsa-lib.

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

404

но в любом случае картины это не обрисовывает польностью.

мне вообще интересно, а насколько OSS живое как проект? ее разрабатывают и используют или она забыта как предшественник ALSA?

leave
Неотъемлемая часть форума
Сообщения: 1055
Зарегистрирован: 25 окт 2006, 14:50
Откуда: minsk
Контактная информация:

Сообщение leave »

404
тестор, ради бога, посмотри на урл! точку в конце заметить и убрать религия не позволила?
OSS осталось только в бсд, в линуксе представлена исключительно в целях compatibility со старым софтом, причем работает, по сути, как прослойка между программами и альсой.

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

точку тупо незаметил. да не принципиально пока, пока принципиально разобратся в принципиальных отличиях, вот как. мне пока никто не объяснил, чем кроме API ALSA отличается от OSS, и является ли OSS мертвым проектом или только не используется в линуксе?

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

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

leave
Неотъемлемая часть форума
Сообщения: 1055
Зарегистрирован: 25 окт 2006, 14:50
Откуда: minsk
Контактная информация:

Сообщение leave »

>>но есть опыт, а результате которого ядерное не работало а юзерспэйсное работало, но тогда я не особо вникал

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

OSS в линуксе мертв.

Аватара пользователя
tes+or
Неотъемлемая часть форума
Сообщения: 535
Зарегистрирован: 16 дек 2004, 17:47
Откуда: minsk
Контактная информация:

Сообщение tes+or »

в данном конкретном случае я даже не гентушник а LFSник и ничто мне не мешает приделать что угодно к чему угодно.

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

не, ну смотри, вот поправде, зачем мне делать вот так:
http://www.alsa-project.org/alsa-doc/al ... ample.html
когда можно сделать вот так:
http://manuals.opensound.com/developer/singen.c.html
эти две программы делают одно и тоже, так зачем писать больше?

UPD: хотя, признатся, был невнимателен, пример для алсы более функционален, но всеравно на OSS проще как-то это все выглядит, кроме того документация на OSS куда как лучше.

дело в том, что у меня не то не то не стоит, может кто посмотрит, может там внутри самого пакаджа к алсе доки лежат, а то на сайте у них вообще голяк какой-то, непонятно как люди под нее пишут.

Аватара пользователя
Llama
Неотъемлемая часть форума
Сообщения: 9749
Зарегистрирован: 06 фев 2002, 11:40
Откуда: Менск

Сообщение Llama »

tes+or, разница в том, что OSS - это стандарт для unix пока, а ALSA - сугубо линуксовое. Так получилось что в linux ASLA работае лучше чем некоммерческая версия OSS.
Опыт растет прямо пропорционально выведенному из строя оборудованию

Ответить