Arrancamos con la suposición de que usted tiene instalada alguna distribución de GNU/Linux basada en Ubuntu funcionando bien en su computador (En especial los controladores de audioy un escritorio gráfico).
1. Repositorios de software para audio.
Los repositorios de KXStudio proporcionan una manera sencilla de instalar muchos paquetes de creación multimedia, sin necesidad de compilar las aplicaciones y usando la herramientas usuales de Ubuntu: apt-get y el Ubuntu Software Center.
Para instalarlos:
sudo add-apt-repository ppa:kxstudio-team/kxstudio
sudo apt-get update
sudo apt-get install kxstudio-repos
sudo apt-get update
sudo apt-get dist-upgrade
Mas información aquí.
2. Sistemas de Audio en Linux.
Quiero aclarar un poco el tema de los diferentes sistemas de audio en Linux, que puede ser confuso.
Primero que todo, al nivel del sistema, existe ALSA. ALSA es la parte del sistema operativo Linux que brinda soporte para audio y MIDI, brinda una API para implementar aplicaciones que soporten audio y/o MIDI e implementa un conjunto de drivers (controladores) para muchas tarjetas de sonido. La aplicación alsamixer (terminal) y gnome-alsamixer (GUI) son muy útiles para establecer los niveles y parámetros de las tarjetas de sonido.
Por otro lado están los controladores FFADO para tarjetas de sonido FireWire. Análogo a gnome-alsamixer, está FFADO Mixer.
En muchos casos y dependiendo del hardware, ALSA solo soporta que una aplicación utilice la tarjeta de sonido simultáneamente. Para solucionar esto y para brindar una experiencia transparente a los usuarios, se creó PulseAudio. PulseAudio es un proxy entre las aplicaciones de usuario y ALSA. Es decir, es quien permite que aplicaciones como Firefox, el plugin de Flash, Skype, etc. utilicen los recursos brindados por ALSA. En Gnome, cuando se edita la configuración de audio a través de la aplicación System Settings, se están modificando los parámetros de PulseAudio. Normalmente no hay que preocuparse por la existencia de PulseAudio, excepto cuando se quiere lograr que aplicaciones de Jack y aplicaciones de PulseAudio funcionen simultáneamente (mas detalles abajo).
ALSA, FFADO y PulseAudio vienen instaladas por defecto en cualquier distribución basada en Ubuntu que tenga un entorno gráfico.
Por último está Jack.
3. Jack Audio Server.
Jack es un servidor que permite correr aplicaciones de audio y MIDI con muy baja latencia, interconectarlas entre ellas y brinda una API sencilla para implementar aplicaciones. Además de instalar el servidor de Jack, vamos a instalar una herramienta gráfica Cadence para controlar y configurar Jack y para hacer conexiones entre aplicaciones.
sudo apt-get install jack2 cadence
Antes de iniciar Jack, debemos cerciorarnos de que nuestro usuario tenga permisos para iniciar tareas de tiempo real y utilizar cuanta memoria necesite, sin las restricciones normales del sistema.
sudo su -c 'echo @audio - rtprio 99 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - nice -10 >> /etc/security/limits.conf'
sudo su -c 'echo @audio - memlock unlimited >> /etc/security/limits.conf'
sudo adduser <nombre_de_usuario> audio #Cambie <nombre_de_usuario> por su nombre de usuario!
Para tarjetas FireWire, también es necesario que el usuario tenga permiso para acceder al stream “crudo” (raw) del bus FireWire:
sudo adduser video
Agregamos lo siguiente al archivo /etc/udev/rules.d/65-permission-raw.rules y reiniciamos el sistema.
KERNEL=="raw1394", OWNER="root", GROUP="video", MODE="660"
La siguiente parte de la configuración de Jack puede ser un poco frustrante porque se trata de un proceso de ensayo y error. Para hacerlo, hay que abrir Cadence, ir a la pantalla de System -> Configure y establecer los parámetros que funcionen para su sistema. Yo tengo dos tarjetas de sonido, la interna de mi laptop y una externa que se conecta via FireWire. Aquí está la configuración que funciona bien para cada una:
Después de esto, Jack debe funcionar bien. Ahora podemos abrir un par de aplicaciones, conectarlas usando Catia (en Cadence, abra la pantalla Tools -> Cadence) y hacer un poco de ruido :)
Jack y PulseAudio.
Ahora, para que PulseAudio y Jack convivan en harmonía, lo mas sencillo es utilizar el script cadence-pulse2jack escrito por FalkTX. El scrip se puede iniciar manualmente en una terminal o si se selecciona la opción Cadence -> System -> PulseAudio -> Start at login el script correrá automáticamente.
Similarmente, para que los dispositivos de MIDI que utilizan el sistema de MIDI de ALSA y los que utilizan el sistema Jack-MIDI puedan jugar juntos, es necesario utilizar la aplicación a2jmidi que actúa como puente entre los dos sistemas de MIDI:
sudo apt-get install a2jmidid
a2j -e
Para automatizar todo esto y que todo arranque cuando iniciemos nuestro equipo, es suficiente jugar con las opciones de la pantalla Cadence -> System.
En ocasiones, después de que mi computador se va a “suspend”, es necesario reiniciar pulseaudio. Para hacerlo de manera automática, se puede poner el siguiente script en /etc/pm/sleep.d/90_pulseaudio:
#!/bin/sh
case "$1" in
"suspend")
pulseaudio --kill
;;
"resume")
cadence-pulse2jack
;;
esac
exit 0;
Mas información:
https://help.ubuntu.com/community/Ubuntu%20Studio%20Upgrade%20from%20Ubuntu#Real-Time_Support
https://help.ubuntu.com/community/HowToJACKConfiguration
4. Ajustes para tiempo real.
Uno de los aspectos mas importantes en la configuración de un equipo para producción de audio es mantener la latencia al mínimo. La latencia es el tiempo que transcurre entre la entrada de una señal a un sistema y la salida de la respuesta del sistema.
Para esto, vamos a instalar un kernel Linux de tiempo real. Esto es un kernel con un conjunto de cambios que hacen que ciertos procesos del sistema (los procesos lanzados con ciertos permisos) tengan mas prioridad que otros (interfaz gráfica, copia de archivos, etc.).
KXStudio hace muy fácil la instalación de un kernel de baja latencia:
sudo apt-get install kxstudio-kernel-lowlatency
sudo reboot
Para que el sistema arranque por defecto con el nuevo kernel, se puede usar la interfaz gráfica de Grub Customizer.
Otro asunto que nos interesa a los que usamos computadores portatiles es el CPU Frequency Governor. Este es un sistema que ajusta la velocidad de funcionamiento de la CPU segun la demanda (cuando hay muchas aplicaciones funcionando y consumiendo procesador, la CPU funciona mas rápido y cuando no, funciona mas lento). Cuando estamos trabajando con Jack, queremos que el governor deje trabajando a la CPU a su velocidad máxima todo el tiempo para evitar retardos y/o glitches en el audio. Para esto, simplemente instalamos la aplicación indicator-cpu-freq-selector y utilizamos su interfaz gráfica para seleccionar la opción ”performance”.
5. Administrar las conexiones.
La modularidad de Jack brinda mucha flexibilidad pero también es un dolor de cabeza abrir y conectar tantas aplicaciones constantemente. Claudia (Cadence -> Tools -> Claudia) tiene el concepto de estudios y proyectos donde se puede tomar una foto de todas las aplicaciones Jack que están abiertas, sus conexiones y restablecer el estado de todo con un par de clicks. Alternativamente, se puede usar otra aplicación llamada GLADISH para esto. Aquí hay un tutorial completo.
6. Aplicaciones.
Dejaré para después una explicación completa de como utilizar diferentes aplicaciones para hacer música en GNU/Linux. Por ahora los dejo con una lista de vínculos a algunas aplicaciones que me han servido.
Secuenciadores / grabadoras.
- http://www.renoise.com/
- http://ardour.org/ (Ver la version 3. Está en beta pero tiene soporte para MIDI)
- http://qtractor.sourceforge.net/qtractor-index.html
Sintetizadores.
- http://kunz.corrupt.ch/products/tal-noisemaker
- http://yoshimi.sourceforge.net/
- http://qsynth.sourceforge.net/qsynth-index.html
Drum machines.
Una lista completa.
Si te ha gustado el artículo inscribete al feed clicando en la imagen más abajo para tenerte siempre actualizado sobre los nuevos contenidos del blog:
El Mundo de Ubuntu en las Redes Sociales
Espero que esta publicación te haya gustado. Si tienes alguna duda, consulta o quieras complementar este post, no dudes en escribir en la zona de comentarios. También puedes visitar Facebook, Twitter, Google +, Linkedin, Instagram, Pinterest, restantes Redes Sociales y Feedly donde encontrarás información complementaria a este blog. COMPARTE EN!