Организация качественного вывода звука на компьютере с установленной ОС Ubuntu 10.04 LTS (ALSA + DeaDBeeF)
Invite pending
Решил написать статью по поводу улучшения качества вывода звука в ОС Ubuntu на примере версии 10.04.
1.1 Завершаем работу PulseAudio:
1.2 Удаляем не нужные пакеты:
1.3 Изменяем настройки gstreamer:
1.4 Добавляем репозиторий, содержащий измененный апплет громкости и пакеты, для нормальной работы без PulseAudio:
1.5 Обновляем списки репозиториев и обновляем пакеты:
1.6 Перезагружаемся
1.7 Добавляем апплет звука на панель.
Для этого жмем правой кнопкой мыши на панели → Добавить на панель… → в списке выбираем Регулятор громкости.
2.1 Добавление стороннего репозитория и установка проигрывателя DeaDBeeF:
2.2 Настройка проигрывателя DeaDBeeF:
Запускаем проигрыватель. Открываем настройки программы: Edit → Preferences → Sound. В Output plugin выбираем значение ALSA Output plugin, а в Output device необходимую звуковую карту.

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

2.3 Проверка воспроизведения.
Открываем любой трек в проигрывателе в формате lossless. Проигрывание возможно будет или медленнее или быстрее положенного. Это значит, что не совпадают частоты проигрывания и вывода.
Для нормального воспроизведения звука необходимо эти частоты синхронизировать.
Для этого не останавливая воспроизведение трека идем в /proc/asound/card0/pcm0p/sub0/ и отрываем файл hw_params.
Смотрим параметр rate (например, у меня 48000 Гц). Это и будет нужная частота. Далее открываем окно настройки проигрывателя на вкладке DSP, жмем кнопку Add и выбираем Resampler (Secret Rabbit Code). Жмем кнопочку ОК.
Далее выделяем мышкой только что добавленный ресамплер и жмем кнопочку Configure. Ставим в параметре Target Samplerate значение частоты с файла hw_params (например, в моем случае 48000).

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

В создании статьи были использованы материалы следующих сайтов:
forum.ubuntu.ru
www.linux.org.ru
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 необходимую звуковую карту.

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

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).

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

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