LINUX.ORG.RU

Два вопроса о звуке


1

0

Как переключиться с alsa на oss, если сейчас весь звук выводится через alsa, надо каждую программу индивидуально настраивать на oss или есть какие-то общие настройки?

Звук воспроизводит звуковая плата, все ею синтезируется, так почему различается качество звучания для alsa и oss?

Спасибо.

anonymous

>Как переключиться с alsa на oss, если сейчас весь звук выводится через alsa, надо каждую программу индивидуально настраивать на oss или есть какие-то общие настройки?

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

>Звук воспроизводит звуковая плата, все ею синтезируется, так почему различается качество звучания для alsa и oss?

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

kranky ★★★★★
()

>Как переключиться с alsa на oss,
Наверное нужно выгрузить модули алсы и загрузить модули осс.
Проги по-умолчанию используют /dev/dsp или audio или фиг знает что,
поэтому им пофиг алса этот девайс держит или что-то другое.
>почему различается качество звучания для alsa и oss?
наверное дрова разные. 

fugu
()
Ответ на: комментарий от fugu

> Проги по-умолчанию используют /dev/dsp или audio или фиг знает что, поэтому им пофиг алса этот девайс держит или что-то другое.

4.2

INFOMAN ★★★★★
()

> почему различается качество звучания для alsa и oss?

Какая карта? Наблюдается ли дефект только на звуке с CD-качеством (44.1 kHz), или звуковые дорожки DVD (48 kHz) тоже страдают? В каких приложениях наблюдается дефект?

У ALSA очень плохие умолчания.

<начало куска, который надо пропустить при установленном pulseaudio - у него передискретизатор хороший. P.S. pulseaudio не пользуюсь, но код читал>

Без установленного пакета alsa-plugins используется передискретизация звука для микширования с 44.1 на 48 kHz методом линейной интерполяции, который дает нежелательные призвуки на высоких частотах ("металлический" звук). Чтобы использовать другой метод, надо поставить alsa-plugins (в Debian - libasound2-plugins), тогда (если этот пакет собран с поддержкой speex) умолчание изменится само на высококачественный и быстрый передискретизатор от speex. Если пакет собран с поддержкой libsamplerate, а не speex, надо добавить такую строчку в ~/.asoundrc:

defaults.pcm.rate_converter "samplerate"

Проблема остается только в том, что у xine-lib свой собственный передискретизатор, который используется, даже если ALSA умеет это делать лучше. Начиная с версии 1.1.8, это "честная" линейная интерполяция, а до того было <ругательство вырезано цензурой> - см. http://bugs.debian.org/396881. При использовании OSS передискретизация выключена, что и приводит к улучшению звука. Решение: отказаться от использования плееров на основе xine-lib, или выставить частоту дискретизации для dmix в 44.1 kHz (но тогда пострадают DVD) с помощью такой строчки в ~/.asoundrc:

defaults.pcm.dmix.rate 44100

<конец куска, который надо пропустить при установленном pulseaudio>

Кроме того, на картах без аппаратного регулятора громкости используется софтовый регулятор - но беда в том, что он по умолчанию применяется ALSA к 16-битному звуку. При ослаблении на 12 dB от звука остается всего 14 бит (на слух это воспринимается как шипение на тихих, но не совсем молчаливых участках). В то же время, такие карты, как правило, поддерживают 24-битный звук и, очевидно, способны на большее. Исправляем добавлением такой строчки в ~/.asoundrc:

defaults.pcm.dmix.format S32_LE

FIXME: как настроить pulseaudio на 32-битный звук?

AEP ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.