Install media-plugins/alsaequal Configure thus:
/etc/asound.conf:
# Set default card and device; check /proc/asound/cards for the names to use in !card : defaults.pcm.!card PCH defaults.ctl.!card PCH defaults.pcm.!device 0 defaults.ctl.!device 0 ctl.equal { type equal; } pcm.plugequal { type equal; # 32-bit programs will fail because they can't load 64-bit ladspa plugins; point to both in order: path "/usr/lib64/ladspa;/usr/lib32/ladspa"; slave.pcm "plug:dmix"; } pcm.equal { type plug; slave.pcm plugequal; } pcm.asymed { type asym; playback.pcm "plugequal"; capture.pcm "dsnoop"; } pcm.!default { type plug; slave.pcm asymed; }
Use 'alsamixer -D equal' to change the equalizer settings; they will be saved and restored by the OS boot scripts just like any other soundcard volume setting.
And here's a way to switch presets:
#!/bin/sh # Mine: "80 74 68 66 66 66 64 62 58 56" # Flat: "65 65 65 65 65 65 65 65 65 65" set_equalizer_curve() { curve="${*}" ctl=0 for point in ${curve} do ctl=$(( ${ctl} + 1 )) echo cset numid=${ctl} ${point} done | amixer -D equal -s } profile="${1:-mine}" case "${profile}" in mine) curve="80 74 68 66 66 66 64 62 58 56" ;; flat) curve="65 65 65 65 65 65 65 65 65 65" ;; *) echo "Unknown profile ${profile}" >&2 ;; esac [ "${curve}" ] && set_equalizer_curve "${curve}"