web-dev-qa-db-fra.com

Commutation automatique du préréglage de l'égaliseur en fonction de la sortie audio (haut-parleur interne ou externe)

Les faits ci-dessous proviennent de l'expérience acquise avec Ubuntu 13.10 sur un ordinateur portable 64 bits.

Contexte/problème: mauvais orateurs

Comme beaucoup de gens le savent, les haut-parleurs d'ordinateur portable ont "une réponse en fréquence très inégale", comme le dirait un professionnel de l'audio. Les gens normaux disent: "ils sonnent très mal ".

Solution initiale: égalisation

L'égalisation fournit une solution de contournement valable , améliorant considérablement la qualité sonore avec un seul effort. Par exemple, j'ai installé Equalizer PulseAudio de Web Upd8 .

Pour obtenir de bons résultats, les valeurs d'égalisation doivent être choisies en fonction des mesures, mais c'est une autre histoire (je pourrais le faire avec Ubuntu seul, même si c'est délicat, demandez-moi des détails).

Problème restant: la courbe d'égalisation dépend de la sortie

Les valeurs d'égalisation sont attachées à l'ensemble de la chaîne, même si généralement seuls les locuteurs sont une source majeure de réponse inégale.

Cela signifie que j'ai deux profils d'égalisation:

  • un pour les haut-parleurs d'ordinateur portable (avec une courbe d'égalisation extrêmement variable)
  • une autre (courbe beaucoup plus aplatie, donc désactiver l’égalisation est souvent acceptable) quand une chaîne stéréo externe est branchée, par exemple. une prise de 3,5 mm.

Situation actuelle dans la pratique: auto un/mute, bon mais insuffisant

  • Lorsque vous branchez la prise jack 3,5 mm sur la chaîne stéréo externe, les haut-parleurs internes sont automatiquement coupés et le volume ajusté par la pile Ubuntu. C'est bon mais insuffisant.
  • Lors du débranchement, les haut-parleurs internes sont automatiquement réactivés. C'est bon mais insuffisant.

Amélioration: non seulement mute mais aussi sélection automatique de la courbe eq

Il serait bien préférable d’appliquer le préréglage correct de l’égaliseur lorsque vous débranchez/branchez la prise jack 3,5 mm. Branchez la chaîne stéréo externe, la courbe plate est sélectionnée. Débranchez le stéréo, haut-parleur interne obtenir leur courbe de correction.


Des questions

Comment faire un hack rapide et sale? Comment détecter la prise jack d'un script?

Comment effectuer une configuration propre: assignez la courbe d’égalisation au haut-parleur interne, pas seulement à un événement plug.

Par exemple, disons que je branche un périphérique audio USB et joue de l'audio à travers. Le hack rapide et sale changerait la courbe de l'égaliseur chaque fois que la prise de 3,5 mm est débranchée/connectée, bien que l'audio continue à être transmis au périphérique audio USB et non au haut-parleur interne, ce qui rend le changement de courbe de l'égaliseur sans importance.

Dans une configuration "propre", un profil d'égalisation serait clairement attribué au haut-parleur interne, ce qui le rendrait plus robuste. Quelle que soit la situation, elle serait toujours (et seulement) appliquée en cas de besoin.

Est-ce que quelqu'un y travaille? Un indice?

Merci de votre attention.

3

Parce que j'ai un problème similaire, j'ai créé un script python "rapide et sale" qui utilise les événements DBus de pulseaudio pour détecter quand activer quel profil d'égaliseur.

Installation

Pour l'utiliser, vous devez ajouter la ligne suivante à /etc/Pulse/default.pa:

load-module module-dbus-protocol

Puis désactivez l’égaliseur via pulseaudio-equalizer-gtk et cliquez sur "Apply settings" (Appliquer les paramètres), fermez maintenant l’interface graphique.

Télécharger apply-equalizer.py enregistrez-le quelque part et rendez-le exécutable.

Exécutez-le en tant qu'utilisateur (!). Peut-être devrez-vous installer des modules python supplémentaires. Aussi, vous voudrez peut-être le démarrer automatiquement lors de la connexion (je ne sais pas quel est le meilleur moyen de le faire).

Usage

Le script crée des configurations d’égaliseur par port [1] sous ~/.config/apply-equalizer et les relie par un lien symbolique si un périphérique modifie le port de sortie (c.-à-d. Des écouteurs branchés ou sortants).

[1]: de nombreuses cartes son ont différents ports, par exemple. un port de haut-parleur et un port de casque

Alors:

  1. Débranchez les écouteurs.
  2. Ouvrir l'interface graphique de l'égaliseur pulseaudio
  3. Personnaliser les réglages de l'égaliseur jusqu'à ce que ça sonne bien
  4. "Apply Settings" assignera alors la configuration que vous avez faite (y compris si l'égaliseur est activé) au port actuel (haut-parleurs dans ce cas)
  5. fermez l'interface graphique et recommencez à partir de l'étape 2 pour chaque port que vous souhaitez attribuer (casque non branché)

Désormais, les réglages de l’égaliseur sont automatiquement ajustés à chaque fois que vous passez d’un haut-parleur à un autre.

2
Euro

Voici une solution manuelle pour basculer entre Equalizor ON (avec vos réglages favoris) et OFF:

if [ "$(pulseaudio-equalizer status | grep "Equalizer status" | cut -d"[" -f2 | cut -d"]" -f1)" == "enabled" ]; then
    pulseaudio-equalizer disable
else
    pulseaudio-equalizer enable
fi

Enregistrer sous un fichier en tant que script bash, créez un nouveau démarreur de panneau en permettant de démarrer le script directement à partir du bureau ou de votre panneau de menu.

1
panticz.de