web-dev-qa-db-fra.com

Existe-t-il un moyen de niveler / compresser le son à l’échelle du système?

En tant qu'utilisateur d'ordinateur portable, je suis sûr que beaucoup de gens, même ceux qui utilisent des netbooks, auraient déjà vécu ce problème. En particulier lorsque vous écoutez des podcasts et que vous les utilisez comme exemples, le son peut avoir des moments forts et des moments calmes, une personne parlant fort et l’autre parlant très doucement dans le même épisode. Ainsi, j’ai toujours voulu que le son soit compressé à l’échelle du système et j’ai juste remarqué, l’autre jour, que sous Windows, certains pilotes Realtek offrent déjà cette fonction.

Nous avons déjà un plug-in pulseaudio pour l’égalisation dans tout le système, et bien que des problèmes nous empêchent de changer ses valeurs et d’écouter le changement en temps réel, ou de casser le son tout en modifiant le volume de Pulse, je l’aime et je l’utilise. Maintenant, je manque juste quelque chose pour garder le son autour de 0 dB (ou près du niveau de volume que vous utilisez) en tant que plug-in de mise à niveau pour pulseaudio.

Toute suggestion?

23
JethroDawnfine

J'ai eu du succès avec l'exemple présenté dans cette réponse .

  1. Installer les plugins LADSPA de Steve HarrisInstall swh-plugins

    Sudo apt install swh-plugins
    
  2. Exécutez pacmd puis cette commande:

    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
    

Cette réponse explique comment charger le plugin de manière permanente.


Les paramètres (la partie control=1,1.5,401,-30,20,5,12 ci-dessus) de ce compresseur sont décrits dans Documents du plug-in LADSPA de Steve Harris :

  1. RMS/peak : équilibre entre les RMS et les suiveurs d'enveloppe de Peak.RMS est généralement préférable pour la compression musicale subtile et crête. mieux pour une compression et une percussion plus lourdes et rapides.
  2. Temps d'attaque (ms) : temps d'attaque en millisecondes.
  3. Temps de libération (ms) : temps de libération en millisecondes.
  4. Seuil (dB) : Point auquel le compresseur commencera à s’activer.
  5. Ratio (1: n) : rapport de réduction de gain utilisé lorsque le niveau du signal dépasse le seuil.
  6. Rayon du genou (dB) : distance du seuil à partir duquel la courbe du genou commence.
  7. Gain de maquillage (dB) : Contrôle le gain du signal d'entrée du maquillage en dB.
  8. Amplitude (dB) : niveau du signal d'entrée, en décibels.
  9. Réduction de gain (dB) : degré de réduction de gain appliqué au signal d'entrée, en décibels.

En raison d'une limitation de PulseAudio, il n'est pas possible de les ajuster en temps réel.

Pour expérimenter différents paramètres, j'ai également chargé le compresseur en tant que plug-in ALSA réglable en temps réel via AlsaequalInstall libasound2-plugin-equal en créant le ~/.asoundrc suivant:

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;
}

Un exemple de fichier MP3 peut être lu via le compresseur en utilisant mpg321Install mpg321 ,

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

tandis que alsamixer -D compressor peut être utilisé pour ajuster les paramètres en temps réel.

16
ændrük

Je recommande Pulse Effects . Il s’agit d’une application dans laquelle vous disposez de nombreux outils pour manipuler le son à l’échelle du système (y compris le compresseur). Assez facile à utiliser.

Pour moi, cette configuration fonctionne mieux dans les films: enter image description here

Instructions d'installation

Pulse Effects peut être installé à partir de PPA (Ubuntu> = 18.04) ou de flatpak . Je recommande fortement d'essayer d'abord le flatpak car il est autonome et qu'il ne gêne pas la configuration de votre système, alors que la version PPA installe un backport de Pulse Audio 12 de 18.10 à 18.04.

Flatpak

Si flatpak n'est pas encore installé sur votre système, installez-le avec la commande suivante dans un terminal:

Sudo apt install flatpak

Ajoutez maintenant le dépôt flathub:

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

... et installez Pulse Effects:

flatpak install flathub com.github.wwmm.pulseeffects

Vous pouvez également suivre le guide d'installation rapide officiel et installer PulseEffects à partir de son page flathub .

APP

Si la version flatpak ne fonctionne pas ou si vous préférez utiliser le PPA, exécutez les commandes suivantes dans un terminal:

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

Après l'installation, redémarrez votre système.

5
kujaw

Celles-ci ont été extrêmement utiles. Merci pour l'inspiration. Bien que ce soit imparfait pour le moment, j'ai un peu de temps pour contribuer. J'ai consulté la documentation de Steve Harris pour découvrir qu'il existe différentes versions du compresseur et j'ai choisi d'utiliser la version stéréo. Cela a compliqué l'utilisation de Pulse Audio Volume Control pour placer le compresseur sur plusieurs applications telles que Chrome et VLC, mais le résultat me plait. Ma motivation pour utiliser un compresseur est de placer une limite très stricte en termes de volume. Afin de ne réveiller personne dans la maison tard le soir, je ne voulais pas être constamment en train de monter le son pour entendre les personnages parler dans les médias. Je voulais seulement que Rush le coupe à chaque fois que des super-héros se produisent ou qu'une publicité commence. . J'ai suivi l'inspiration ici et ajusté les valeurs en temps réel. Ensuite, j'ai pris mes valeurs souhaitées et les ai remises dans l'exemple de code. En résumé, l'exemple de code que je contribue emprunte sans vergogne à l'exemple ci-dessus, mais présente un compresseur stéréo avec une limite de volume supérieure et inférieure assez stricte. Enfin, je le mets sous la forme d'un script, qui ne fonctionne pas complètement. Il n'aime pas la ligne set_default. J'espère que cela sera utile à la communauté.

#!/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
3
ShoNuff

Voici le plugin stéréo avec de meilleurs paramètres de contrôle (beaucoup moins d'écrêtage) suivant réponse de ændrük qui utilise l'exemple du plugin mono.

load-module module-ladspa-sink sink_name=compressor plugin=sc4_1882 label=sc4 control=1,1.5,300,-20,3,1,10
0
RootCookie