Прощай, pulseaudio. LinuxMint

Опубликовано

Что у меня:
Ноутбук: DNS,
Звуковая USB-Audio: Roland Tri Capture
Система: LinuxMint-xfce-19.xx

Сначала я опишу, как удалял pulseaudio, а ниже опишу причины такой хирургической операции и её последствия.

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

В интернете нашёл довольно много информации о способах удаления pulseaudio:
Источники:
https://www.linux.org.ru/forum/talks/13286079 – Мейнтейнер мультимедийной подсистемы Firefox пояснил за PulseAudio и отказ от Alsa

https://forum.ubuntu.ru/index.php?topic=69589.0 – [HOWTO] Выковыриваем pulseaudio из Ubuntu 9.10, 10.04

https://forum.ubuntu.ru/index.php?topic=272993.0 – Настройка ALSA UBUNTU

http://www.bilee.com/alsa-x.html – Как заставить Alsa выбрать предпочтительное звуковое устройство автоматически?

https://www.linux.org.ru/forum/multimedia/9365896 – /etc/asound.conf. настройка

В указанных источниках, и других, не указанных мной, поскольку их много, описаны разнообразные способы конфигурирования ALSA в «постпульсовую» эпоху. Я же опишу только то, что в моём случае оказалось необходимым и достаточным.

Итак! В LinuxMint-xfce-19.xx

1. Убить pulseaudio:
killall pulseaudio

2. Удалить ненужные пакеты:
sudo apt-get remove pulseaudio gstreamer1.0-pulseaudio -y

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/1.0/default/audiosink «alsasink»
gconftool-2 -s —type string /system/gstreamer/0.10/default/audiosrc «alsasrc»
gconftool-2 -s —type string /system/gstreamer/1.0/default/chataudiosink «alsasink»
gconftool-2 -s —type string /system/gstreamer/1.0/default/musicaudiosink «alsasink»

4. Перезагрузить.

5. Далее я создал файл /etc/asound.conf и скопировал в него следующий код:


pcm.SKYPE_IN_MIC { type plug slave.pcm «second_asymed»
}

pcm.SKYPE_OUT_SPEAKERS { type plug slave.pcm «second_asymed»
}

pcm.SKYPE_RINGING { type plug slave.pcm «first_asymed»
}

pcm.first_asymed { type asym playback.pcm «dmix» capture.pcm «dsnoop»
}

pcm.second_asymed { type asym playback.pcm «second_dmix» capture.pcm «second_dsnoop»
}

pcm.!default { type plug slave.pcm «first_asymed»
}

ctl.!default { type hw # Main Card – Main Speakers card 0 # HW ID HERE
}

pcm.!dmix { type dmix ipc_key 10000 ipc_key_add_uid false

slave { # Main speakers pcm «hw:0,0» # HW ID HERE period_time 0 buffer_time 0 period_size 2048 buffer_size 32768 channels 2 format S32_LE rate 192000 }

bindings { 0 0 1 1 }
}

pcm.!dsnoop { type dsnoop ipc_key 20000 ipc_key_add_uid false

slave { # Mic – Main Card pcm «hw:0,0» # HW ID HERE period_time 0 buffer_time 0 period_size 1024 buffer_size 2048 format S32_LE rate 96000 }
}

pcm.second_dmix { type dmix ipc_key 30000 ipc_key_add_uid false

slave { # Headphones – Second Card pcm «hw:1,0» # HW ID HERE period_time 0 buffer_time 0 period_size 1024 buffer_size 2048 }

bindings { 0 0 1 1 }
}

pcm.second_dsnoop { type dsnoop ipc_key 40000 ipc_key_add_uid false

slave { # Mic – Second Card pcm «hw:1,0» # HW ID HERE period_time 0 buffer_time 0 period_size 1024 buffer_size 2048 format S16_LE # HW supports ONLY 48000 # rate 48000 # Skype does not work rate 44100 # Skype works! }
}


Есть более лаконичные варианты, но я выбрал наиболее полный.

6. Теперь необходимо в asound.conf прописать номер карты USB-Audio, чтобы она железно запускалась по умолчанию.
При запуске в терминале cat /proc/asound/cards:

Номер карты USB-Audio – 2. Я прописал его в asound.conf:


pcm.SKYPE_IN_MIC { type plug slave.pcm «second_asymed»
}

pcm.SKYPE_OUT_SPEAKERS { type plug slave.pcm «second_asymed»
}

pcm.SKYPE_RINGING { type plug slave.pcm «first_asymed»
}

pcm.first_asymed { type asym playback.pcm «dmix» capture.pcm «dsnoop»
}

pcm.second_asymed { type asym playback.pcm «second_dmix» capture.pcm «second_dsnoop»
}

pcm.!default { type plug slave.pcm «first_asymed»
}

ctl.!default { type hw # Main Card – Main Speakers card 2 # HW ID HERE
}

pcm.!dmix { type dmix ipc_key 10000 ipc_key_add_uid false

slave { # Main speakers pcm «hw:2,0» # HW ID HERE period_time 0 buffer_time 0 period_size 2048 buffer_size 32768 channels 2 format S32_LE rate 192000 }

bindings { 0 0 1 1 }
}

pcm.!dsnoop { type dsnoop ipc_key 20000 ipc_key_add_uid false

slave { # Mic – Main Card pcm «hw:2,0» # HW ID HERE period_time 0 buffer_time 0 period_size 1024 buffer_size 2048 format S32_LE rate 96000 }
}

pcm.second_dmix { type dmix ipc_key 30000 ipc_key_add_uid false

slave { # Headphones – Second Card pcm «hw:2,0» # HW ID HERE period_time 0 buffer_time 0 period_size 1024 buffer_size 2048 }

bindings { 0 0 1 1 }
}

pcm.second_dsnoop { type dsnoop ipc_key 40000 ipc_key_add_uid false

slave { # Mic – Second Card pcm «hw:2,0» # HW ID HERE period_time 0 buffer_time 0 period_size 1024 buffer_size 2048 format S16_LE # HW supports ONLY 48000 rate 48000 # Skype does not work # rate 44100 # Skype works! }
}


Sample rate я указал 48000.

Для более подробной информации можно использовать команды:
1. cat /proc/asound/modules
2. aplay-l

Теперь о причинах удаления pulseaudio и последствиях удаления.

До недавнего времени у меня никаких претензий к pulseaudio не было. Коммутировать входы/выходы и карты удобно, а сравнить качество звука с pulseaudio и без него не было возможности, поскольку пульса – везде, где надо и не надо. Но в течение последнего года я стал замечать значительное ухудшение ситуации. В UbuntuStudio-16, linuxMint-17, LinxMint-18 и LinuxMint-19 – одно и тоже: щелчки, заикания, пропуски. Да и чистота звука оставляла желать лучшего. И стал я догадываться о причинах такого безобразия.

Хочу отдельно описать «заикания». Пульса запоминает сэмпл из реального звукового потока длительностью до пол-секунды и, затем, через одну-две секунды замещает этим сзмплом какой-нибудь кусочек реального звука. Допустим, некая говорящая голова произносит фразу: «Маша ела кашу».Пульса запоминает первый слог в слове «Маша» (Ма-) и замещает им первый слог в слове «кашу». В результате получается фраза: «Маша ела Машу». Здорово?! Разумеется, строгой периодичности или нет, или её трудно заметить.

Теперь о последствиях удаления pulseaudio. Щелчки и заикания исчезли напрочь, звук стал чистым, звонким и глубоким, и громкость увеличилась раза в полтора. Если карта выбрана внутренняя, регулятор громкости в трее можно организовать. Ну, а если карта USB, то придётся обходиться без него, довольствуясь регуляторами громкости в плеере (или редакторе), на самой карте и на колонках.

Теперь о firefox. Установил apulse и запустил firefox командой
apulse firefox.Звук есть.

15.01.2019
Опыт применения apulse для firefox оказался не совсем положительным. Время от времени firefox «падает» (crashed). Но после перезапуска звук восстанавливается. Всё-таки, костыль (apulse) есть костыль и полностью проблему не решает.

Включил одновременно: в firefox ролик с ютуба, локально аудио в плеере, аудио в редакторе Audacity и видео в медиаплеере – всё звучало одновременно!

Микрофон тоже работает. Чувствительность значительно увеличилась.

А о Скайпе у меня заботы нет.

Об asoundrc. Поначалу я его создал, а потом удалил. И без него работает.



RSS / Atom