Muda automaticamente a predefinição do equalizador com base na saída de áudio (alto-falante interno ou externo)

3

Os fatos abaixo vêm da experiência com o Ubuntu 13.10 em um laptop de 64 bits.

Contexto / problema: palestrantes ruins

Como muitas pessoas sabem, os alto-falantes portáteis têm uma "resposta de frequência altamente desigual", como diria o profissional de áudio. Pessoas normais dizem: "elas soam muito ruins ".

Solução de primeiro passo: equalização

A equalização fornece uma solução valiosa , melhorando drasticamente a qualidade do som com um esforço único. Por exemplo, eu instalei o Equalizador do PulseAudio da Web Upd8 .

Para obter bons resultados, os valores de equalização devem ser escolhidos com base nas medições, mas isso é outra história (eu poderia fazê-lo apenas com o Ubuntu, embora seja complicado, pergunte-me para detalhes).

Problema restante: a curva de equalização depende da saída

Os valores de equalização estão ligados a toda a cadeia, embora geralmente apenas os oradores sejam uma importante fonte de resposta desigual.

Isso significa que eu tenho dois perfis de equalização:

  • um para alto-falantes portáteis (com uma curva de equalização variando muito)
  • outra (curva muito mais plana, então a equalização de desabilitação é geralmente aceitável) quando um estéreo externo é conectado a, e. um jack de 3,5 mm.

Situação atual na prática: auto un / mudo, bom mas insuficiente

  • Ao conectar a entrada de 3,5 mm ao estéreo externo, os alto-falantes internos são automaticamente silenciados e o volume ajustado pela pilha do Ubuntu. Isso é bom, mas insuficiente.
  • Ao desconectar, os alto-falantes internos são automaticamente ativados novamente. Isso é bom, mas insuficiente.

Melhoria: não apenas auto-mute, mas auto-seleção da curva eq

Seria muito melhor que a predefinição correta do equalizador fosse aplicada quando a tomada de 3,5 mm fosse conectada / desconectada. Conecte o estéreo externo, a curva plana é selecionada. Desligue o estéreo, falante interno obter sua curva de correção.

Perguntas

Como fazer um hack rápido e sujo? Como detectar a tomada de um script?

Como fazer uma configuração limpa: atribua a curva de equalização ao alto-falante interno, não apenas conecte o evento.

Por exemplo, digamos que eu plugue um dispositivo de áudio USB e reproduza áudio através dele. O hack rápido e sujo mudaria a curva de EQ sempre que o conector de 3,5 mm fosse desconectado, embora o áudio continuasse a ir para o dispositivo de áudio USB e não para o alto-falante interno, tornando irrelevante a mudança da curva eq.

Em uma configuração "limpa", um perfil de equalização seria claramente atribuído ao alto-falante interno, tornando a coisa mais robusta. Qualquer que seja a situação, seria sempre (e somente) aplicado quando necessário.

Alguém está trabalhando nisso? Alguma dica?

Obrigado pela sua atenção.

    
por Stéphane Gourichon 08.01.2014 / 16:18

2 respostas

2

Como tenho um problema semelhante, criei um script python "rápido e sujo" que usa o DBus-Events do pulseaudio para detectar quando ativar o perfil do equalizador.

Instalação

Para usá-lo, você deve adicionar a seguinte linha ao /etc/pulse/default.pa:

load-module module-dbus-protocol

Em seguida, desative o equalizador via pulseaudio-equalizer-gtk e clique em "Aplicar configurações", agora feche a GUI.

Faça o download apply-equalizer.py salve-o em algum lugar e torne-o executável.

Execute como usuário (!). Talvez você precise instalar alguns módulos python adicionais. Além disso, você pode querer iniciá-lo automaticamente no login (eu não sei qual é a melhor maneira de fazer isso).

Uso

O script cria configurações de equalizador por porta [1] em ~ / .config / apply-equalizer e as vincula simbolicamente se um dispositivo alterar a porta de saída (ou seja, fones de ouvido conectados ou desligados).

[1]: muitas placas de som têm diferentes portas , por exemplo uma porta de alto-falante e uma porta de fone de ouvido

Então:

  1. Desconecte os fones de ouvido.
  2. Abra a GUI do equalizador pulseaudio
  3. Personalize as configurações do equalizador até que pareça bom
  4. "Aplicar configurações" irá atribuir a configuração que você fez (incluindo se o equalizador estiver habilitado) para a porta atual (alto-falantes, neste caso)
  5. feche a GUI e repita a partir da etapa 2 para cada porta que você deseja atribuir (fones de ouvido não conectados)

Agora, as configurações do equalizador são ajustadas automaticamente sempre que você alterna entre alto-falantes e fones de ouvido.

    
por Euro 10.03.2014 / 14:45
1

Aqui, uma solução manual para alternar entre o Equalizador ON (com suas configurações favoritas) e OFF:

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

Salve como um arquivo como um script bash, crie um novo iniciador de painel para poder iniciar o script diretamente da área de trabalho ou do painel do menu.

    
por panticz.de 28.01.2016 / 14:23