Страница 1 из 1

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

Добавлено: 28 апр 2008, 06:27
tes+or
надумал я сделать некое абстрактное устройство которое имеет один монофонический вход и два выхода, один моно и другой стерео. эти входы и выходы буду заниматся синтезом и разбором сигнала близкого по характеристикам к звуковому.

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

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

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

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

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

Добавлено: 28 апр 2008, 15:19
tes+or
404

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

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

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

Добавлено: 30 апр 2008, 10:58
tes+or
точку тупо незаметил. да не принципиально пока, пока принципиально разобратся в принципиальных отличиях, вот как. мне пока никто не объяснил, чем кроме API ALSA отличается от OSS, и является ли OSS мертвым проектом или только не используется в линуксе?

Добавлено: 30 апр 2008, 11:01
tes+or
еще, кстати, не понятно - зачем одно и тоже реализовано и в ядре и в юзерспэйсе. по сути там одно и тоже как я понял, но есть опыт, а результате которого ядерное не работало а юзерспэйсное работало, но тогда я не особо вникал. заработало и хорошо, а ща хочется узнать.

Добавлено: 30 апр 2008, 11:37
leave
>>но есть опыт, а результате которого ядерное не работало а юзерспэйсное работало, но тогда я не особо вникал

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

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

Добавлено: 30 апр 2008, 11:45
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 куда как лучше.

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

Добавлено: 30 апр 2008, 18:35
Llama
tes+or, разница в том, что OSS - это стандарт для unix пока, а ALSA - сугубо линуксовое. Так получилось что в linux ASLA работае лучше чем некоммерческая версия OSS.