Un equalizzatore per ALSA e MPD

Dopo la recente resa dei miei adorati auricolari sony, giacche' ero in fiera, ho comprato degli auricolari in-ear, di una non meglio identificata SOYT ( evviva le cineserie(tm) ) che dalla loro hanno il prezzo - veramente ridicolo - e il doppio jack, rispettivamente da 2.5" e 3.5".. comodo!

Il problema pero' si e' presentato durante l'utlizzo al pc: le cuffie in-ear ( per il fatto di essere in-ear ed.. economiche :D ) amplificano notevolmente i bassi, rendendo il suono troppo ovattato.

In verita', pero', e' piu' una scusa per muoversi: un equalizzatore serve sempre! :)

Per puro caso, mi sono imbattuto in questo plugin per alsa!

Vediamo come ottenerlo e utilizzarlo con MPD ( anche se il suo uso generale e' molto semplice ;) )

Installazione

Semplicemente utilizzate il vostro gestore pacchetti e installatelo. Se non e' presente nel vostro repository vi tocchera' compilarlo :)

In gentoo:

# emerge alsaequal

Configurazione

Premessa: alsaequal lavora per-utente. I settaggi sono memorizzati per-utente.

Se utilizziamo MPD tramite l'utente fittizio mpd (default ) sara' necessario creare il file .asoundrc nella sua home ( default: /var/lib/mpd )

File: .asoundrc

ctl.equal {
  type equal;
}

pcm.plugequal {
  type equal;
  # Modify the line below if you don't
  # want to use sound card 0.
  slave.pcm "plughw:0,0";
}

pcm.equal {
  # Or if you want the equalizer to be your
  # default soundcard uncomment the following
  # line and comment the above line.
# pcm.!default {
  type plug;
  slave.pcm plugequal;
}

Presa direttamente dal sito del progetto.

 

Ora dobbiamo dire a MPD di utilizzare il plugin come uscita audio.

File: /etc/mpd.conf

[..]

audio_output {
  type    "alsa"
  name    "equal"
  device  "plug:plugequal"
}

[..]

Utilizzo

Per controllare in realtime l'equalizzatore e' sufficiente lanciare

$ alsamixer -D equal

e, attraverso la solita interfaccia di alsamixer, potremo controllare l'equalizzazione.

Alsaequal: uno screenshot di alsaequalAlsaequal: uno screenshot di alsaequal

Ma per MPD?

Questo e' quello che mi ha dato un po' di grattacapi. Essendo la configurazione per utente, avevo la necessita' di modificare i settaggi per l'utente mpd ma, non essendo realmente un utente, per sicurezza non puo' usare una shell.

Ho vagliato diverse soluzioni - anche piuttosto esoteriche - ma, finalmente ne ho trovata una parecchio accettabile: attraverso sudo e' possibile eseguire comandi anche come altri utenti - qui viene il bello - anche se non hanno una shell.

Detto fatto:

$ sudo -u mpd HOME="/var/lib/mpd" alsamixer -D equal

( ci ho messo un po' per capire che la variabile d'ambiente HOME andava modificata ^_^ )

Per rapidita' e' possibile fare un veloce alias modificando il file ~/.bashrc aggiungendo

alias mpd-eq="sudo -u mpd HOME="/var/lib/mpd" alsamixer -D equal"

Conclusione

Ecco qua, finalmente una comoda gestione dell'equalizzazione anche per mpd.

Ora devo solo trovare un generatore di playlist dinamiche, come mpd-dynamic, che non si tiri dietro il mondo in perl :D.

Un grande grazie allo sviluppatore di alsaequal :)