Primeiro, verifique se você não sobrecarrega as partes no caminho de mixagem definindo tudo em 75% e verifique se o problema do "mau som" está resolvido.
Se não: continue lendo.
Um dos problemas subestimados no som do Linux é samplerateconversion.
Digamos que você tente reproduzir um arquivo com o sampler 48000, que será convertido pelo pulseaudio para 44100 e será convertido pelo ALSA para 48000 novamente, porque o seu sounddevice não pode fazer 44100.
A amostragem pulseaudio samplerateconversion está OK, mas a samplerateconversão do ALSA é de má qualidade de som.
Portanto, a melhor coisa que você pode fazer é definir a saída de pulseaudio para 48000, para que o ALSA não use samplerateconversion.
Edite a configuração pulseaudio: /etc/pulse/client.conf
mude isto:
; default-sample-format = s16le
; default-sample-rate = 44100
; default-sample-channels = 2
; default-channel-map = front-left,front-right
para isso:
; default-sample-format = s16le
default-sample-rate = 48000
; default-sample-channels = 2
; default-channel-map = front-left,front-right
Se tudo mais falhar, use OSS4 em vez de ALSA + Pulseaudio.
(A qualidade do som do OSS4 é extremamente boa, mas espera alguns inconvenientes)