Mejorar el sonido en KDE Neon y distros en general

Luego de indagar y hacer varias pruebas, encontré una configuración que permite mejorar el sonido de manera notable en KDE Neon. Es sabido que por defecto, Pulseaudio viene con una configuración muy básica que en muchas ocasiones impacta negativamente en la experiencia del sonido en Linux. A continuación les diré como he logrado mejorar el sonido en mi distro KDE Neon (que es aplicable a las demás distros que posean al menos la versión 7 de Pulseaudio).

mejorar el sonido

De manera predeterminada, Pulseaudio ha conservado una configuración óptima para CPU’s y tarjetas de sonido del 2005 y años previos. Es por ello que en la actualidad y con la potencia que brindan estos componentes, la experiencia de sonido en Linux es pésima. Comenzando porque aún el método de remuestras conserva el speex-float-1 y el formato de muestreo esta en s16le.

Pasos para mejorar el sonido en nuestra distro

Para mejorar el sonido obviamente tenemos que modificar los parámetros de Pulseaudio, yo en lo personal uso nano pero bien puedes usar gedit o tu editor de texto preferido. El siguiente tutorial lo explicaré con nano y basado en un equipo con sistema surround 5.1, aunque creo que funcionará en cualquier otro sistema de sonido.

Paso 1

Abrimos la terminal o consola y ejecutamos el comando sudo nano /etc/pulse/daemon.conf (recuerda que si prefieres usar gedit, simplemente cambia nano por gedit, dejando el resto invariable ;)). Una vez ejecutado estaremos ante la presencia del demonio de pulse.

mejorar el sonido en linux pulse
mejorar el sonido en linux demonio pulse

Paso 2

Una vez en las configuraciones del demonio de pulse, procedemos como es de esperarse, a modificar!

  • Descomentamos las opciones high-priority = yes, nice-level = -11, realtime-scheduling = yes y realtime-priority = 9 (eliminamos los punto y coma). Esta configuración permitirá que el sistema ejecute en tiempo real el servidor pulse y lo asigne como una tarea principal.
  • descomentamos y modificamos los parámetros:
    • resample-method = soxr-vhq
    • avoid-resampling = false
    • enable-remixing = yes
    • remixing-use-all-sink-channels = no
    • enable-lfe-remixing = yes
    • lfe-crossover-freq = 90

Explicaré brevemente que se logra con esas modificaciones:

El método de remuestras (resample-method) por defecto viene con la antigua configuración speex-float-1 lo cuál sacrifica la calidad de sonido para mitigar el consumo de recursos en el CPU. Esta configuración resultó ser óptima por allá en el año 2005 ya que para ese entonces, muchos equipos aún no contaban con CPU’s que corriesen más allá de 1 Ghz ni soportaban una gran cantidad de instrucciones.

Esto a partir del 2010 resultó ser insignificante ya que el consumo al aumentar el speex-float no era percibido por el usuario ni por la maquina (un 2% si acaso). A partir de la versión 7, la gente de pulseaudio introdujo las bibliotecas soxr-mq, soxr-hq y soxr-vhq las cuales ofrecen una calidad de sonido mas óptima y sin la distorsión que provocaba el método speex-float. Dependerá de las capacidades del equipo trabajar de manera óptima con dichas librerías. Para equipos con poca potencia o aquellos usuarios que no usen archivos multimedia con altas profundidades de bits, soxr-mq o soxr-hq bastará. Si requieres de una mejor experiencia, soxr-vhq es la biblioteca idónea!

avoid-resampling. La recomendación es dejarlo en false ya que si bien, este método cambia de manera dinámica la tasa de muestra al reproducir archivos, suele dar conflictos cuando por ejemplo, se reproducen dos archivos de manera simultánea con tasas diferentes.

enable-remixing = yes. Esta opción permite reproducir un archivo mono como si estuviese en estéreo. Lo recomendable es dejarlo en «Yes».

remixing-use-all-sink-channels = no. Si se habilita esta opción, los sonidos serán reproducidos en todos los altavoces a la vez. En lo personal no me gusta como se escucha ya que pareciese como si todo el sonido saliese de una caja…

enable-lfe-remixing = yes. Si usas un sistema surround que cuente con sub-woffer debes habilitar esta opción para que así se reproduzca adecuadamente el sonido a través de este parlante.

lfe-crossover-freq = 90. Con esta opción controlas la intensidad del sonido que saldrá a través del sub-woffer. Los niveles idóneos están comprendidos entre 80 a 120 Hz. En mi caso, 90Hz resultó ideal pero eso variará dependiendo del subwoffer y la intensidad que quieras reproducir a través de el.

  • Desmarcamos y modificamos:
    • default-sample-format = float32le
    • default-sample-rate = 48000
    • alternate-sample-rate = 96000
    • default-sample-channels = 6
    • default-channel-map = front-left,front-right,rear-left,rear-right,front-center,lfe
    • default-fragments = 2
    • default-fragment-size-msec = 125
mejorar el sonido en linux modificando floats

Explico brevemente la modificación de algunos de esos parámetros:

default-sample-format = float32le: tal como su nombre lo indica, es el formato de muestreo predeterminado y esto determinará la calidad de sonido que se aplicará en cada formato de audio. Por defecto, en pulse se ha conservado la configuración s16le la cuál era la más recomendada para mediados del 2000. Actualmente los procesadores (desde 2008 en adelante) cuentan con soporte para numerosas instrucciones por lo que ya no tiene sentido seguir usando el formato de 16-bit. Si bien Pulse soporta diferentes formatos de muestreo (u8, s16le, s16be, s24le, s24be, s24-32le, s24-32be, s32le, s32be float32le, float32be, ulaw, alaw), el que ha dado mejores resultados es el float32le.

default-sample-rate = 48000 y alternate-sample-rate = 96000. Se trata de la tasa de muestra de calidad del audio. En la actualidad, casi todos los archivos multimedia usan tasas de 48.000Mhz y 96.000Mhz. Si bien por defecto viene con la tasa predeterminada 44.100Mhz, al día de hoy no es muy recomendable usarla ya que puede provocar distorsiones en varios archivos.

Paso 3

Luego de realizar las modificaciones en el demonio de pulse, guardamos los cambios con Ctrl + O, cerramos com Ctrl + X y reiniciamos el servidor de pulseaudio. Para realizar el reinicio de Pulse ejecutamos los siguientes comandos:

  • pulseaudio -k (Matamos el proceso de pulse)
  • pulseaudio –start (iniciamos el servidor pulse)

Realizando dichos pasos, notarán que mejorará significativamente la calidad del sonido en sus distros.