¿Hay alguna forma de nivelar / comprimir el sonido en todo el sistema?

26

Como usuario de una computadora portátil, estoy seguro de que muchas personas, incluso las que usan Netbooks, ya habrían pasado por este problema. Especialmente cuando escuchas podcasts y lo usas como ejemplo, el sonido puede tener momentos fuertes y momentos tranquilos, una persona habla en voz alta y la otra habla en voz muy baja en el mismo episodio. Por lo tanto, siempre quise que el sonido se comprimiera en todo el sistema, y ​​el otro día me di cuenta de que en Windows, algunos controladores Realtek ya ofrecen esta función.

Ya tenemos un complemento de pulseaudio para ecualización en todo el sistema, y ​​aunque todavía tiene problemas como no permitirnos cambiar sus valores y escuchar el cambio en tiempo real, o descifrar el sonido mientras se cambia el volumen del pulso, me encanta y lo uso. Ahora solo me falta algo para mantener el sonido alrededor de 0db (o cerca del nivel de volumen que está usando) como un complemento de nivelación para pulseaudio.

¿Cualquier sugerencia?

JethroDawnfine
fuente

Respuestas:

16

Tuve éxito con el ejemplo que se muestra en esta respuesta .

  1. Instalar los complementos LADSPA de Steve Harris Instalar complementos swh

    sudo apt install swh-plugins
    
  2. Ejecute pacmdy luego esto ordena:

    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 respuesta explica cómo cargar el complemento de forma permanente.


Los parámetros (la control=1,1.5,401,-30,20,5,12parte anterior) para este compresor se describen en los documentos del complemento LADSPA de Steve Harris :

  1. RMS / pico : el equilibrio entre el RMS y los seguidores de envolvente de pico. RMS es generalmente mejor para la compresión sutil y musical, y el pico es mejor para una compresión y percusión más pesadas y rápidas.
  2. Tiempo de ataque (ms) : el tiempo de ataque en milisegundos.
  3. Tiempo de liberación (ms) : el tiempo de liberación en milisegundos.
  4. Nivel de umbral (dB) : el punto en el que el compresor comenzará a funcionar.
  5. Ratio (1: n) : el ratio de reducción de ganancia utilizado cuando el nivel de señal excede el umbral.
  6. Radio de rodilla (dB) : la distancia desde el umbral donde comienza la curva de rodilla.
  7. Ganancia de maquillaje (dB) : controla la ganancia de la señal de entrada de maquillaje en dB.
  8. Amplitud (dB) : el nivel de la señal de entrada, en decibelios.
  9. Reducción de ganancia (dB) : el grado de reducción de ganancia aplicado a la señal de entrada, en decibelios.

Debido a una limitación de PulseAudio, no es posible ajustarlos en tiempo real.

Para experimentar con diferentes parámetros, también cargué el compresor como un complemento ALSA ajustable en tiempo real a través de Alsaequal Instalar libasound2-plugin-equal creando lo siguiente ~/.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;
}

Se puede reproducir un archivo MP3 de muestra a través del compresor usando mpg321 Instalar mpg321 ,

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

while alsamixer -D compressorpuede usarse para ajustar parámetros en tiempo real.

ændrük
fuente
Si tienes 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.soUbuntu 14.10 pruebaapt-get install libasound2-plugin-equal
Stéphane Gourichon
Uso Ubuntu-Studio 16.04 LTS e instalé el paquete swh-plugins, pero ... las líneas: "pacmd load-module module-ladspa-sink sink_name = compresor plugin = sc4m_1916 label = sc4m control = 1,1.5,401, -30,5,9,3,0,0 pacmd set-default-sink compresor "no funciona. No es un problema de parámetros porque el sistema me da el error: "Módulo no encontrado". Entonces ... se pierde algo del paquete de complementos, pero ... ¿Qué?
Juan
5

Recomiendo los efectos de pulso . Es una aplicación, donde tiene muchas herramientas para manipular el sonido en todo el sistema (incluye compresor). Bastante fácil de usar.

Para mí, esta configuración funciona mejor en películas: ingrese la descripción de la imagen aquí

Instrucciones de instalación

Pulse Effects se puede instalar desde un PPA (Ubuntu> = 18.04) o como flatpak . Recomiendo probar el flatpak primero porque es autónomo y no interfiere con la configuración de su sistema, mientras que la versión PPA instalará un backport de Pulse Audio 12 de 18.10 a 18.04.

Flatpak

Si flatpak aún no está instalado en su sistema, instálelo con el siguiente comando en una terminal:

sudo apt install flatpak

Ahora agregue el repositorio flathub:

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

... e instalar Pulse Effects:

flatpak install flathub com.github.wwmm.pulseeffects

Alternativamente, puede seguir la guía oficial de configuración rápida e instalar PulseEffects desde su página de flathub .

PPA

Si la versión flatpak no funciona o prefiere usar el PPA, ejecute los siguientes comandos en un terminal:

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

Después de la instalación, reinicie su sistema.

kujaw
fuente
3

Estos han sido extremadamente útiles. Gracias por la inspiración. Aunque es imperfecto en este momento, tengo un poco para contribuir. Miré en la documentación de Steve Harris para encontrar que hay varios sabores del compresor, y elegí usar el estéreo. Complicó el uso del control de volumen de audio de pulso para colocar el compresor en múltiples aplicaciones como Chrome y VLC, pero me gusta el resultado. Mi motivación para usar un compresor es colocar un límite inferior y superior muy estrictos en el volumen. Para no despertar a nadie en la casa a altas horas de la noche, no quería subir el volumen constantemente para escuchar a los personajes hablar en los medios, solo para apresurarme a bajarlo cada vez que ocurre una acción de superhéroe o aparece un comercial. . Seguí la inspiración aquí y ajusté los valores en tiempo real. Luego tomé mis valores deseados y los puse nuevamente en el código de muestra. En resumen, el código de muestra que estoy aportando toma prestado descaradamente del ejemplo anterior, pero presenta el compresor estéreo con un límite de volumen superior e inferior bastante estricto. Por último, lo puse en forma de script, que no funciona por completo. No le gusta la línea set_default. Espero que esto sea útil para la comunidad.

#!/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
fuente
En mi análisis de < github.com/swh/ladspa/blob/master/sc4_1882.xml#L116 > parece que hay algunos rangos aplicados a los parámetros. Parece que su ejemplo está un poco fuera de rango en algunos de los parámetros. Como la documentación, del autor Steve Harris , es bastante escasa y carece de ejemplos, podría estar completamente equivocado.
Ale
0

Aquí está el complemento estéreo con mejores configuraciones de control (Mucho menos recorte) después de la respuesta de ændrük que utiliza el ejemplo del complemento mono.

load-module module-ladspa-sink sink_name=compressor plugin=sc4_1882 label=sc4 control=1,1.5,300,-20,3,1,10
RootCookie
fuente
su ejemplo todavía se recorta en la configuración de mi computadora portátil. gotbletu en google + una vez recomendó usar esta configuración, y hasta ahora funcionaron mejor para mí. load-module module-ladspa-sink sink_name = compresor plugin = sc4_1882 etiqueta = sc4 control = 1,1.5,401, -30,20,5,12
Axel Werner