raedwulf / alsaequal

GNU Lesser General Public License v2.1
32 stars 13 forks source link

How to set a single global equalizer that works for all audio sources? #4

Open timothyjward opened 4 years ago

timothyjward commented 4 years ago

This is probably a result of me missing something important in the documentation, but I am struggling to get the equaliser applied across all the audio sources for my Raspberry Pi.

I primarily use MPD and Shairport-Sync, both of which run as services using the standard user ids (mpd and shairport-sync). I then have another user account which I can use to access the box over SSH or via a web ui. When I play music the sound is therefore coming from one (or more) of these three accounts.

Initially I tried using all the default configuration for the equaliser with my pcm and ctl entries named equaliser. This worked well when I tested using aplay and alsamixer -D equaliser but not when I used mpd or anything else. I found that mpd could be controlled if I used sudo -H -u mpd alsamixer -D equal (which doesn't match any pcm or ctl that I have defined...).

Reading more of the docs I saw that the default config file location is under $HOME which seemed to be a potential problem (neither mpd nor shairport-sync have home directories). I therefore explicitly defined a folder /equaliser and set controls to be /equaliser/.alsaequal.bin. Once I set the permissions correctly (folder and file owned by my user account and group audio, file permissions 664) I was able to access the control from all three accounts.

My problem, however, remains. If I change the equaliser using alsamixer -D equaliser then it only affects audio played by my user account. What I want is to make changes using alsamixer and have that affect the audio from mpd and shairport-sync as well. Is that possible, and if so what do I need to do to get it working?

Thank you!

clort81 commented 2 years ago

Make it your default with a pcm.!default { ... } entry in ~/.asoundrc