Esta pasada semana asistí a un interesante curso de audio profesional sobre sistemas Linux. El curso se basó en la distribución UbuntuStudio aunque también sirve para otras distribuciones. El curso se impartió en riereta.net de Barcelona a través del grupo Telenoika. Su profesor, Lluís Carbonell, gran conocedor del entorno de audio en Linux y loco por Ardour ;)

Trataré de explicar aquí los puntos más interesantes que allí se enseñaron y a partir de esto… ¡a jugar con Linux!

Lo primero es entender lo que es la latencia y cómo reducirla para poder trabajar correctamente con nuestros sonidos. La latencia es el retraso temporal que sufre nuestra música al pasar por dispositivos analógicos/digitales de audio. Para más información, buscad por Internet. Lo que hay que tener claro es que cuanto menos latencia tenga nuestro sistema, mucho mejor funcionará la reproducción de música y el trabajo en tiempo real.

Para esto existen algunas distribuciones Linux que consideran esta baja latencia para el sistema:

¡Leer, probar y la que os guste más, instaladla! En caso de tener un Ubuntu a secas, podemos instalar, vía apt-get, todos los paquetes de UbuntuStudio y los módulos de kernel-lowlatency también, como hice yo. Este curso se basa en UbuntuStudio.

A continuación, hacemos unos cambios en la configuración de seguridad del sistema para que se priorice el grupo audio sobre memoria y dispositivos de entrada/salida. Editamos /etc/security/limits.conf y agregamos al final del fichero:

@audio - rtprio 95
@audio - memlock 512000 (memoria total de nuestro ordenador en KB)
@audio - nice -19

Para trabajo profesional con audio normalmente se recurre a tarjetas externas. Estas estarán conectadas al ordenador a través de PCMCIA, USB o FireWire normalmente, aunque existen otras opciones. En nuestro caso, tratamos de configurar una M-Audio FireWire Solo y para eso tenemos que dar permisos de escritura y lectura sobre la interfaz FireWire o IEEE1394, desactivados por defecto en las últimas distribuciones de Linux.

Editamos el fichero /etc/init.d/rc.local y agregamos al final del fichero:

/sbin/modprobe ieee1394
/sbin/modprobe raw1394
/bin/chmod 777 /dev/raw1394
/bin/chmod 777 /dev/dv1394/0

De esta forma aplicamos este conjunto de comandos al arranque del sistema.

En Linux tenemos diferentes interfaces para capturar y reproducir audio. Algunos de estos sistemas por orden de antigüedad:

Estos módulos podrían compararse con lo que llamamos ASIO en sistemas Windows. Nos hacen de puente entre los dispositivos de audio y el servidor de audio. OSS fue creado para sistemas UNIX y nos permite controlar un grupo reducido de dispositivos, ya que no fue creado para fines multimediales. ALSA permite usar un gran número de dispositivos USB, ISA, PCMCIA y PCI entre otros. Con FREEBOB se abrió la puerta a los dispositivos FireWire.

Una de las tarjetas de sonido más adaptadas a sistemas Linux es la RME Hammerfall MULTIFACE II más el PCI/BusCard para conectarla al ordenador. HDSPMixer es el software de control para estas mismas y ya viene instalado en muchas distribuciones.

Así que ya tenemos nuestra tarjeta de sonido conectada, una interfaz como FREEBOB o ALSA para entender los comandos de esta y ahora nos falta una interfaz que comunique nuestros programas de audio con FREEBOB: JACK, el servidor de audio.

Diagrama de audio en Linux

En este diagrama podemos observar las uniones entre las diferentes interfaces de las que se ha hablado hasta el momento.

Para usar jackd, el demonio de JACK, podemos usar qjackctl como GUI. A través de esta interfaz gráfica podemos cambiar las opciones de jackd a nuestras necesidades y también sus conexiones abiertas entre dispositivos y programas. Las conexiones son controladas muy fácilmente a través de este sistema, lo que nos permite el control total de nuestro sistema de audio. Recordad que para usar jackd como servidor no solo hay que abrir qjackctl, sino también dar al botón de play de este para que el demonio jackd sea activado.

Ahora ya tendríamos nuestro sistema de audio funcionando, listo para crear, escuchar, grabar… música. Para todo esto disponemos de varios programas.

  1. Sintetizadores:

  2. Cajas de ritmos/Samplers:

  3. Secuenciadores:

  4. DJ:

  5. Editores de audio:

  6. Procesador de audio:

¡Pero hay muchos más listos para ser descubiertos y usados!

En Linux también tenemos plugins como los VST que encontramos en Windows. Estos se llaman LADSPA. Algunos plugins recomendados son: TAP, CAPS, delayorama, dj flanger, hard limiter y SC4 entre otros.

Para más información:

Si alguien tiene más información, ¡no dudéis en publicarla! La comunidad te lo agradecerá.

Saludos!

Música: Kid Loco