Consertando o áudio com estalos e interrupções no Pipewire - Parte 2
Nesse link eu mostro como consertar (ou pelo menos tentar consertar) problemas de ruídos estranhos no áudio do seu PC com Linux usando Pipewire: esses problemas englobam interrupções e adição de estalos e outros ruídos no fluxo de som. Agora nessa continuação temos a segunda parte (que pode complementar essa primeira) em referência à latência e prioridade de processos.
Primeiro vamos desabilitar o eventual recurso do sistema de suspender dispositivos de áudio; isso pode ser útil em notebooks para a economia de energia mas ela é tão pequena que nem vale a pena. Abra o Terminal e digite (se já tiver, vá para o arquivo de configuração):
sudo mkdir -p /etc/security/limits.d/
sudo nano /etc/security/limits.d/99-pipewire.conf
Coloque dentro:
@audio - rtprio 95
@audio - memlock unlimited
Salve o arquivo. Ainda no Terminal digite:
groups
e veja se o seu usuário aparece na listagem mostrada; se não aparecer, digite no Terminal:
sudo usermod -aG audio $USER
Copie o arquivo pipewire.conf para a sua home:
mkdir -p ~/.config/pipewire
cp /usr/share/pipewire/pipewire.conf ~/.config/pipewire/
Edite o arquivo:
nano ~/.config/pipewire/pipewire.conf
Procure por "context.exec = [" e deixe assim:
context.exec = [
{ path = "/usr/bin/pipewire", args = ["--realtime", "--nice-level=-10"] }
]
Essa linha normalmente aparece com um comentário mostrando o que é para colocar ali, mais ou menos assim:
context.exec = [
#{ path = <program-name>
# ( args = "<arguments>" | [ <arg1> <arg2> ... ] )
# ( condition = [ { <key> = <value> ... } ... ] )
#}
#
# Execute the given program with arguments.
# If condition is given, the program is executed only when the context
# properties all match the match rules.
#
# You can optionally start the session manager here,
# but it is better to start it as a systemd service.
# Run the session manager with -h for options.
#
#{ path = "/usr/bin/pipewire-media-session" args = ""
# condition = [ { exec.session-manager = null } { exec.session-manager = true } ] }
#
# You can optionally start the pulseaudio-server here as well
# but it is better to start it as a systemd service.
# It can be interesting to start another daemon here that listens
# on another address with the -a option (eg. -a tcp:4713).
#
#{ path = "/usr/bin/pipewire" args = [ "-c" "pipewire-pulse.conf" ]
# condition = [ { exec.pipewire-pulse = null } { exec.pipewire-pulse = true } ] }
]
Apague tudo que tiver # nesse módulo e deixe como mostrado mais acima. Salve o arquivo e reinicie a máquina. No Terminal digite:
ps -eo pid,comm,rtprio,ni | grep pipewire
Deverá aparecer algo como:
726 pipewire - -11
727 pipewire - 0
729 pipewire-pulse - -11
Isso demonstra que as prioridades estão configuradas corretamente; se aparecer 0 em tudo, reveja as configurações. Essa complementação de comandos vai dar as prioridades necessárias às threads de áudio para tentar corrigir o que a matéria anterior não conseguiu resolver.
Nenhum comentário:
Postar um comentário