Existe uma maneira de nivelar / comprimir o sistema de som em todo o sistema?

26

Como usuário de laptop, tenho certeza de que muitas pessoas, mesmo as que usam o Netbooks, já teriam passado por esse problema. Especialmente ao ouvir podcasts e usá-lo como exemplo, o som pode ter momentos altos e tranquilos, uma pessoa falando alto e a outra falando muito baixo no mesmo episódio. Por isso, sempre desejei que o som fosse compactado em todo o sistema e acabei de notar outro dia que, no Windows, alguns drivers da Realtek já oferecem essa função.

Já temos um plug-in pulseaudio para equalização em todo o sistema e, embora ainda tenha problemas como não nos permitir alterar seus valores e ouvir a mudança em tempo real, ou quebrar o som ao alterar o volume do pulso, eu o amo e o uso. Agora estou faltando algo para manter o som em torno de 0db (ou próximo do nível de volume que você está usando) como um plugin de nivelador para o pulseaudio.

Alguma sugestão?

JethroDawnfine
fonte

Respostas:

16

Eu tive sucesso com o exemplo mostrado nesta resposta .

  1. Instale os plugins LADSPA de Steve Harris Instalar swh-plugins

    sudo apt install swh-plugins
    
  2. Execute pacmde, em seguida, este comando:

    load-module module-ladspa-sink sink_name=compressor plugin=sc4m_1916 label=sc4m control=1,1.5,401,-30,20,5,12
    set-default-sink compressor
    

Esta resposta explica como carregar o plugin permanentemente.


Os parâmetros (a control=1,1.5,401,-30,20,5,12parte acima) para este compressor são descritos nos documentos de plugins LADSPA de Steve Harris :

  1. RMS / pico : o equilíbrio entre o RMS e os seguidores do envelope de pico . O RMS geralmente é melhor para compressão sutil e musical e o pico é melhor para compressão e percussão mais pesadas e rápidas.
  2. Tempo de ataque (ms) : o tempo de ataque em milissegundos.
  3. Tempo de liberação (ms) : o tempo de liberação em milissegundos.
  4. Nível de limite (dB) : o ponto em que o compressor começará a funcionar.
  5. Razão (1: n) : a taxa de redução de ganho usada quando o nível do sinal excede o limite.
  6. Raio do joelho (dB) : a distância do limiar em que a curva do joelho começa.
  7. Ganho de maquiagem (dB) : controla o ganho do sinal de entrada de maquiagem em dB.
  8. Amplitude (dB) : O nível do sinal de entrada, em decibéis.
  9. Redução de ganho (dB) : o grau de redução de ganho aplicado ao sinal de entrada, em decibéis.

Devido a uma limitação do PulseAudio, não é possível ajustá-los em tempo real.

Para experimentar diferentes parâmetros, também carreguei o compressor como um plug-in ALSA ajustável em tempo real via Alsaequal Instale libasound2-plugin-equal , criando o seguinte ~/.asoundrc:

ctl.compressor {
  type equal;
  library "/usr/lib/ladspa/sc4m_1916.so";
  module "sc4m";
}

pcm.plugcompressor {
  type equal;
  slave.pcm "plug:pulse";
  library "/usr/lib/ladspa/sc4m_1916.so";
  module "sc4m";
}

pcm.compressor {
  type plug;
  slave.pcm plugcompressor;
}

Um arquivo MP3 de amostra pode ser reproduzido através do compressor usando mpg321 Instale o mpg321 ,

mpg321 -a hw:compressor "04 - Love Song for Yoshimi.mp3"

while alsamixer -D compressorpode ser usado para ajustar parâmetros em tempo real.

ændrük
fonte
Se você entrar ALSA lib dlmisc.c:252:(snd1_dlobj_cache_get) Cannot open shared library /usr/lib/x86_64-linux-gnu/alsa-lib/libasound_module_ctl_equal.sono Ubuntu 14.10 tenteapt-get install libasound2-plugin-equal
Stéphane Gourichon
Eu uso o Ubuntu-Studio 16.04 LTS e instalei o pacote swh-plugins, mas ... as linhas: "pacmd load-module module-ladspa-sink sink_name = compressor plugin = sc4m_1916 label = sc4m control = 1,1,5,401, Compressor -30,5,9,3,0,0 pacmd conjunto-padrão-coletor "não funciona. Não é um problema de parâmetros porque o sistema me dá o erro: "Módulo não encontrado". Então ... algo está faltando no pacote de plugins, mas ... O que ???
Juan Juan
5

Eu recomendo efeitos de pulso . É um aplicativo em que você tem muitas ferramentas para manipular o som em todo o sistema (inclui compressor). Muito fácil de usar.

Para mim, essa configuração funciona melhor nos filmes: insira a descrição da imagem aqui

Instruções de instalação

O Pulse Effects pode ser instalado a partir de um PPA (Ubuntu> = 18.04) ou como flatpak . Eu recomendo experimentar o flatpak primeiro porque é independente e não interfere na configuração do sistema, enquanto a versão PPA instalará um backport do Pulse Audio 12 de 18.10 a 18.04.

Flatpak

Se o flatpak ainda não estiver instalado no seu sistema, instale-o com o seguinte comando em um terminal:

sudo apt install flatpak

Agora adicione o repositório flathub:

flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

... e instale o Pulse Effects:

flatpak install flathub com.github.wwmm.pulseeffects

Como alternativa, você pode seguir o guia oficial de instalação rápida e instalar o PulseEffects a partir de sua página do flathub .

PPA

Se a versão flatpak não funcionar ou se você preferir usar o PPA, execute os seguintes comandos em um terminal:

sudo add-apt-repository ppa:mikhailnov/pulseeffects -y
sudo apt install pulseeffects pulseaudio --install-recommends

Após a instalação, reinicie o seu sistema.

kujaw
fonte
3

Estes foram extremamente úteis. Obrigado pela inspiração. Embora seja imperfeito no momento, tenho um pouco para contribuir de volta. Procurei na Steve Harris Documentation para descobrir que existem vários sabores do compressor e optei por usar o estéreo. Ele complicou o uso do controle de volume Pulse Audio para colocar o compressor em vários aplicativos como Chrome e VLC, mas eu gosto do resultado. Minha motivação para usar um compressor é colocar um limite inferior e superior muito estrito de volume. Para não acordar ninguém em casa tarde da noite, eu não queria aumentar constantemente o volume para ouvir os personagens falando na mídia, apenas para me apressar para diminuí-lo sempre que uma ação de super-herói acontecer ou quando um comercial aparecer. . Segui a inspiração aqui e ajustei os valores em tempo real. Depois peguei meus valores desejados e os coloquei de volta no código de exemplo. Em resumo, o código de amostra que estou contribuindo descaradamente empresta do exemplo acima, mas apresenta o compressor estéreo com um limite de volume superior e inferior bastante estrito. Por fim, coloquei-o na forma de um script, que não está totalmente funcionando. Não gosta da linha set_default. Espero que isso seja útil para a comunidade.

#!/bin/sh
# ComperssorScript.sh
# Script to start PulseAudio Compressor with desired settings
# Original: 2016 September 17

pacmd load-module module-ladspa-sink sink_name=compressor plugin=sc4_1882 label=sc4 control=9,5,63,-6,15,3,49
set-default-sink compressor

# The parameters (the control=1,1.5,401,-30,20,5,12 for example) for this compressor are described in Steve Harris' LADSPA Plugin Docs:
# RMS/peak: The balance between the RMS and peak envelope followers. RMS is generally better for subtle, musical compression and peak is better for heavier, fast compression and percussion.
# 9, Attack time (ms): The attack time in milliseconds.
# 5, Release time (ms): The release time in milliseconds.
# 63, Threshold level (dB): The point at which the compressor will start to kick in.
# 6, Ratio (1:n): The gain reduction ratio used when the signal level exceeds the threshold.
# -15, Knee radius (dB): The distance from the threshold where the knee curve starts.
# 3, Makeup gain (dB): Controls the gain of the makeup input signal in dB's.
# 49, Amplitude (dB): The level of the input signal, in decibels.
# no value was placed here
# Gain reduction (dB): The degree of gain reduction applied to the input signal, in decibels.
# Due to a limitation of PulseAudio, it is not possible to adjust them in real time.
# no value was placed here
ShoNuff
fonte
Na minha análise de < github.com/swh/ladspa/blob/master/sc4_1882.xml#L116 >, parece que existem alguns intervalos aplicados aos parâmetros. Parece que o seu exemplo está um pouco fora do alcance em alguns dos parâmetros. Como a documentação - do autor Steve Harris - é um tanto pequena e sem exemplos, eu poderia estar completamente errado.
Ale
0

Aqui está o plugin estéreo com melhores configurações de controle (muito menos recorte), seguindo a resposta de ændrük que usa o exemplo de plug-in mono.

load-module module-ladspa-sink sink_name=compressor plugin=sc4_1882 label=sc4 control=1,1.5,300,-20,3,1,10
RootCookie
fonte
seu exemplo ainda se encaixa na configuração do meu notebook. gotbletu no google + recomendou uma vez usar essas configurações e elas funcionaram melhor para mim até agora. carga do módulo module-LADSPA-afundar sink_name = compressor plug-in = sc4_1882 label = controle sc4 = 1,1.5,401, -30,20,5,12
Axel Werner