Организация качественного вывода звука на компьютере с установленной ОС Ubuntu 10.04 LTS (ALSA + DeaDBeeF)

Решил написать статью по поводу улучшения качества вывода звука в ОС Ubuntu на примере версии 10.04.

1. Удаление PulseAudio.

1.1 Завершаем работу PulseAudio:
killall pulseaudio

1.2 Удаляем не нужные пакеты:
sudo apt-get remove pulseaudio gstreamer0.10-pulseaudio -y

1.3 Изменяем настройки gstreamer:
gconftool-2 -s --type string /desktop/gnome/sound/default_mixer_device "alsamixer"
gconftool-2 -s --type list --list-type string /desktop/gnome/sound/default_mixer_tracks "[Master]"
gconftool-2 -s --type boolean /desktop/gnome/sound/enable_esd false
gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosink "alsasink"
gconftool-2 -s --type string /system/gstreamer/0.10/default/audiosrc "alsasrc"
gconftool-2 -s --type string /system/gstreamer/0.10/default/chataudiosink "alsasink"
gconftool-2 -s --type string /system/gstreamer/0.10/default/musicaudiosink "alsasink"


1.4 Добавляем репозиторий, содержащий измененный апплет громкости и пакеты, для нормальной работы без PulseAudio:
sudo add-apt-repository ppa:dtl131/ppa

1.5 Обновляем списки репозиториев и обновляем пакеты:
sudo apt-get update
sudo apt-get upgrade


1.6 Перезагружаемся

1.7 Добавляем апплет звука на панель.
Для этого жмем правой кнопкой мыши на панели → Добавить на панель… → в списке выбираем Регулятор громкости.

2. Установка и настройка аудио проигрывателя на примере DeaDBeeF 0.5.1

2.1 Добавление стороннего репозитория и установка проигрывателя DeaDBeeF:
sudo add-apt-repository ppa:alexey-smirnov/deadbeef
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install deadbeef


2.2 Настройка проигрывателя DeaDBeeF:
Запускаем проигрыватель. Открываем настройки программы: Edit → Preferences → Sound. В Output plugin выбираем значение ALSA Output plugin, а в Output device необходимую звуковую карту.
image

Далее переходим на вкладку Playback и отключаем нормализацию звука. Для этого в Replaygain mode ставим Disable. Снимаем галку Replaygain peak scale и проверяем Replaygain preamp — ползунок должен быть на нуле.
image

2.3 Проверка воспроизведения.
Открываем любой трек в проигрывателе в формате lossless. Проигрывание возможно будет или медленнее или быстрее положенного. Это значит, что не совпадают частоты проигрывания и вывода.
Для нормального воспроизведения звука необходимо эти частоты синхронизировать.
Для этого не останавливая воспроизведение трека идем в /proc/asound/card0/pcm0p/sub0/ и отрываем файл hw_params.
access: MMAP_INTERLEAVED
format: S32_LE
subformat: STD
channels: 2
rate: 48000 (48000/1)
period_size: 1024
buffer_size: 8192

Смотрим параметр rate (например, у меня 48000 Гц). Это и будет нужная частота. Далее открываем окно настройки проигрывателя на вкладке DSP, жмем кнопку Add и выбираем Resampler (Secret Rabbit Code). Жмем кнопочку ОК.
Далее выделяем мышкой только что добавленный ресамплер и жмем кнопочку Configure. Ставим в параметре Target Samplerate значение частоты с файла hw_params (например, в моем случае 48000).
image

Также можно выбрать качество ресамплинга. Чем выше — тем больше загружает процессор.
зы. В принципе можно было обойти этот шаг просто поставив галку Use ALSA Resampling в настройках плагина ALSA Output в проигрывателе.
image

В создании статьи были использованы материалы следующих сайтов:
forum.ubuntu.ru
www.linux.org.ru
Tags:
alsa, ubuntu, deadbeef, linux, sound, звук

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