Форум русскоязычного сообщества Ubuntu


Получить помощь и пообщаться с другими пользователями Ubuntu можно
на irc канале #ubuntu-ru в сети Freenode
и в Jabber конференции ubuntu@conference.jabber.ru

Автор Тема: How-To: [ALSA] Использование сабвуфера для вывода низких частот в режиме 5.1  (Прочитано 2572 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Lion-Simba

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
Что?
Данное хауту рассказывает, как с помощью несложной конфигурации ALSA заставить басы из фронтальных каналов подмешиваться в сабвуфер.

Зачем?
На первый взгляд название название хауту вводит в заблуждение: ведь режим 5.1 и так предполагает вывод низких частот через сабвуфер. Но по умолчанию через сабвуфер выводится только содержимое LFE-канала источника. Басы же из фронтальных каналов, центрального канала и тыловых каналов выводятся через них самих и на сабвуфер не передаются. Однако зачастую бывает так, что у недорогих акустических систем формата 5.1 сателлиты не обладают низкочастотными динамиками. Поэтому получается, что при просмотре фильма со звуком 5.1 такая акустическая система сносно воспроизводит низкочастотные спецэффекты (взрывы, удары), но не воспроизводит низкочастотные ноты фоновой музыки, которая обычно записана только в передних каналах.

Для кого?
Данное хауту предназначено для тех, кто не использует PulseAudio в Ubuntu. Возможно в PulseAudio это делается как-то проще.

Как?
С помощью переопределения реального устройства surround51 своим собственным виртуальным.

Необходимо добавить в ваш конфигурационный файл ALSA (~/.asoundrc, если его нет, то его нужно создать) следующую секцию:
pcm.!surround51 {  
    type plug
    slave.pcm cards.pcm.surround51
    slave.channels 6
    slave.format "unchanged"
    ttable {
0.0 1
1.1 1
2.2 1
3.3 1
4.4 1
5.5 1

0.5 0.5
1.5 0.5
    }
}

Секция озаглавлена pcm.!surround51. Восклицательный знак перед названием устройства вывода означает "переопределить" (использовать вместо существующего).
Параметр slave.pcm указывает на дочернее устройство, через котрое фактически будет выводится звук. Здесь указано "старое" устройство surround51.
Параметр slave.channels указывает, сколько каналов у дочернего устройства (их шесть - пять сателлитов и сабвуфер).
Параметр slave.format указывает на формат аудиоданных, которые будут приходить на дочернее устройство. Внимание: если этот параметр не указать, некоторые плееры (например vlc) откажутся работать с нашим виртуальным устройством. Поскольку нам преобразование формата не нужно - ставим ключевое слово "unchanged" - "без изменений".

Параметр ttable указывает таблицу маршрутизации звуковых каналов от нового виртуального устройства к реальному устройству. Формат каждой записи таков:
X.Y Z
X - номер канала виртуального устройства.
Y - номер канала реального устройства.

(Нажмите, чтобы показать/скрыть)

Z - дробное число от 0 до 1, определяющее количество звука из канала X, попадающего в канал Y.

Таким образом, согласно нашей таблице маршрутизации, мы отправляем все каналы виртуального устройства в каналы реального устройства без изменений (первые шесть записей), а также отправляем в сабвуфер половину левого (0) и половину правого (1) каналов (две последние записи).

По желанию можно также отправлять в сабвуфер центральный и задние каналы.

Такая схема годится, если в вашей акустической системе на сабвуфере стоит хороший фильтр низких частот. Ибо если это не так, то из сабвуфера вы услышите весьма неприятную какофонию, включающую средние и возможно даже высокие частоты. Чтобы этого избежать, можно подключить программный фильтр низких частот. Однако привести рабочий .asoundrc для этой конфигурации я пока затрудняюсь.
« Последнее редактирование: 19 Апрель 2010, 10:12:13 от Lion-Simba »
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

Оффлайн Scorry

  • Активист
  • *
  • Сообщений: 842
    • Просмотр профиля
Цитировать
Такая схема годится, если в вашей акустической системе на сабвуфере стоит хороший фильтр низких частот.
это не относится к звуковым системам, для которых, по идее, предназначен этот рецепт.
надо бы озаботиться фильтрацией.

Оффлайн atem32

  • Активист
  • *
  • Сообщений: 596
    • Просмотр профиля
а где взять .asoundrsc? написано скрытый в папке пользователя но у меня его там нет((9.10)пульс выковырян)

Оффлайн Lion-Simba

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1126
    • Просмотр профиля
а где взять .asoundrsc? написано скрытый в папке пользователя но у меня его там нет((9.10)пульс выковырян)
Тогда его нужно создать.

How-To поправил.
Оказываю индивидуальную платную техподдержку широкого профиля. Обращаться в ЛС или Jabber.

 

Страница сгенерирована за 0.059 секунд. Запросов: 25.