martes, 31 de julio de 2012

Un sintetizador software (decente) para Linux

Este verano me dio un día por conectar un viejo teclado USB (controlador MIDI parecido a éste) que tengo cogiendo polvo desde hace años para marcarme unos acordes e intentar emular algunos ambientes épicos y/o melancólicos al estilo de Vangelis o Angelo Badalamenti

El auténtico reto fue decidir prescindir de Windows y centrarme en Linux, ya que desde hace un tiempo es mi sistema operativo predeterminado. Ya había tanteado el asunto un par de veces a lo largo de la última década y recordaba algunas de las frustraciones asociadas a la configuración del sonido, aunque por suerte también recordaba algunas de las soluciones y programas disponibles.

Lo primero era hacerme con un sintetizador software de cierta calidad, y tras una búsqueda del término "sintetizador" en Ubuntu Software Center (el Agregar y quitar programas del Ubuntu que uso) y un par de búsquedas en San Google para "desempatar" entre los paquetes disponibles, me decidí por Yoshimi, un derivado mejorado de ZynAddSubFX, programa open source que recordaba haber probado y apreciado hacía tiempo. En menos de un minuto lo tenía instalado, aunque no listo para usar :(

Uno de los mayores engorros técnicos relacionados con el audio en Linux es el uso de distintas capas / componentes software que tienen que estar debidamente instalados y configurados para que las aplicaciones (en este caso Yoshimi) funcionen correctamente. Desde los drivers (ALSA vs. OSS) que complementan al kernel a los llamados servidores de sonido como JACK o PulseAudio, que hacen de intermediarios entre los anteriores y las distintas aplicaciones de usuario.

Como reza la breve descripción en la web de Yoshimi, su uso está especialmente indicado para ALSA y JACK. Como el primero ya viene instalado por defecto en Ubuntu, me dispuse a instalar JACK, pero en lugar de hacerlo "a pelo", lo hice junto a un panel de control llamado QjackCtl que recordaba de otras batallas y que facilita mucho su uso. Tras ser instalado, el icono para lanzarlo (al igual que el de Yoshimi) podemos encontrarlo en la categoría Multimedia si usamos Ubuntu o alguna distro derivada.

Una vez ejecutado y funcionando se trata de ejecutar también Yoshimi, encender el teclado USB y usar QjackCtl (su ventana se titula JACK Audio Connection Kit) para interconectarlos. Aunque se pueden presentar diversos problemas que impidan su correcto funcionamiento recomiendo comprobar en la pantalla de configuración que la interfaz de audio es la correcta (podemos tener más de una tarjeta de sonido) desplegando la lista mediante el botón con la flecha y eligiendo la tarjeta principal usando su descripción, aunque el identificador de dispositivo se lea como hw:1 o algo similar. Si todo está en orden veremos que el estado es Iniciado y podemos proceder a conectarlo todo (dando por hecho que hemos iniciado después el "sinte" Yoshimi y el teclado) abriendo la ventana Conexiones y realizando las siguientes acciones:
  • En la pestaña Audio: se trata de conectar los dos puertos de salida de Yoshimi con los puertos de entrada del sistema (system). En mi caso, conecto el puerto izquierdo (left) de Yoshimi con el puerto playback_1 de system y el puerto derecho (right) de Yoshimi con playback_2. Así ya podremos escuchar cómo suena Yoshimi cargándole un instrumento (opción Instrument-Show instrument Bank) y usando el teclado virtual (opción Instrument-Virtual keyboard).
  • En la pestaña MIDI: se trata de conectar el puerto de salida de system correspondiente al teclado USB (en mi caso suele ser midi_capture_3) al puerto de entrada de Yoshimi (llamado midi_in). Así lo que hacemos es enviar los mensajes MIDI del teclado al programa Yoshimi para que reproduzca las notas pulsadas en aquél con el sonido del instrumento seleccionado en éste.
Ahora solo queda ir probando los distintos sonidos de Yoshimi clasificados en los distintos bancos (Organ, Pads, Strings, etc.) y aprender algunos acordes para sacarle más partido. En mi opinión suena (casi) todo bastante decente...