ff-multiconverter, multimedia, audio, video, linux, ubuntu ubuntu kylin, china, releases, linux terminal, ubuntu, linux, comandos, shell conky, gadgets, ubuntu, linux SpeedTest-Cli, velocidad, red, consola, terminal tag foto 6 pinta, grafica, linux, ubuntu djl, juegos, yum, synaptic, paquetes ubuntu, releases, canonical psensor, ubuntu, linux, sistema, monitor

Como configurar GNU/Linux para producción de audio y música.

Suposiciones:

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.

gnu audio

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

http://jackaudio.org/faq

http://home.gna.org/a2jmidid/

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.

Sintetizadores.

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:

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 y Feedly donde encontrarás información complementaria a este blog. COMPARTE EN!

2 comentarios:

  1. Uso Linux hace diez años, con resultados fristrantes. Es que la mayoría de la información sobre linux esta escrita para gente que sabe, la mayoría de los "gurús" te hablan como si tu supieras lo meismo que él,...o peor
    Este post es una de las honrosas excepciones
    Pero,.. al final es lo mismo. Por ejemplo: habla de Cadence, se entiende que es para ayudarte a conectar aplicaciones entre ellas y al mismo tiempo,... pero no te dice como se hace
    Así que tienes un concepto teórico que no te sirve de nada. Instalas Cadence, eso tarde o temprano lo consigues, ( ó Jack) pero cuendo lo abres, todo se convierte en chino básico. Ves una serie de líneas y no tienes ni idea de lo que significan ni de como haces para conectar el Skype a Mixxx y este a un procesador de audio para enviar la señal on line... Cosa que con windows te lleva un ratito y casi cualquiera lo hace
    El dia que alguien se ponga una consultoría de pago en Linux, donde cobre por soluciones reales a los problemas de los linuxeros,...SE FORRA
    y si no miren los millones de consultas y los millones de respuestas diferentes a los mismos temas

    ResponderEliminar
    Respuestas
    1. La comparación de Linux con Windows será siempre odiosa. Hablamos de un grupo de voluntarios a nivel mundial contra la más grande multinacional en el sector de la informática en el mundo. Linux ha ya hecho grandes pasos en los últimos años. Distribuciones como Ubuntu (sobre todo en su faz inicia) Debian, Linux Mint, Manjaro por citar solo algunas han contribuído a ello. Sobre todo cuando tenemos que hacer uso del terminal. Windows nos ha habituado un poco como Facebook lo está haciendo ahora: clicar en un botón y basta. Ya está. Has instalado algo y no tienes la menor idea de lo que es. Linux no es gurúes (esos están para adivinar la suerte). Linux es un sistema para que nos detengamos un poco y analicemos lo que estamos haciendo. Lo que no significa que todavía haya que recorrer un largo camino. Pero lo que se ha hecho es importantísimo. Como decía Antonio Machado: "caminante no hay caminos, se hace camino el andar". Saludos y gracias por comentar.

      Eliminar