Archivo | junio, 2011

Desmontando a Jack(d): el interfaz de audio

19 Jun

Una vez que ya tenemos instalado Jackd en un equipo con un kernel de tiempo real es el momento de empezar a cacharrear con el audio.
Mi principal objetivo es recoger el sonido de mi guitarra eléctrica para procesarlo en vivo o grabarlo y luego hacer el procesado. Para recoger ese audio la solución más rápida es la de utilizar la tarjeta de sonido del ordenador, conectando la guitarra diréctamente a la entrada de micrófono. El ordenador que utilizo es un portátil sin entrada de linea, que sería más apropiada para esta tarea. Ésta es una mala idea siempre, se puede recoger el sonido pero la calidad es bastante mala.
Para evitar problemas lo mejor es utilizar un interfaz de audio externo. Como el portátil tampoco tiene entrada firewire me decidí por un interfaz USB. La que utilizo es una Cakewalk UA-1G, que por un precio más o menos razonable (sobre 90 euros) ofrece una buena calidad. Tiene solo dos canales de entrada, pero como voy a grabar la guitarra y no sé tocar más de un instrumento a la vez, tampoco es un gran problema.

Una vez conectada la interfaz, que se autoconfigura sola con un driver para sonido usb, hay que ir a las opciones de configuración de qjackctl para decirle que utilice la entrada y salida de esa tarjeta en vez de la tarjeta integrada en la placa. Además podemos modificar los parámetros que determinan la latencia con la que vamos a grabar, yo utilizo de momento una latencia de 16ms, que prácticamente no se aprecia y no aparecen XRUNS.

Los XRUNS son los enemigos de la grabación y ocurren cuando el intercambio entre los buffers de lectura y escritura de audio no ocurre de forma continua. Es algo parecido a lo que pasaba en los primeros tiempos de la grabación en CD, cuando se vaciaba el buffer de lectura se chafaba la grabación. En nuestro caso lo que ocurre es que se oye un pequeño salto o chasquido que arruina la grabación.
Hay que ajustar la latencia hasta un valor que permita que sea usable y no ocurran XRUNS. Si ya tenemos las pistas grabadas podemos aumentar la latencia, ya que solo es problemática para la grabación, no durante el postprocesado o mezcla.
Después, en la pantalla de conexiones de qjackctl asociaremos la entrada de la tarjeta a la salida de la tarjeta y entonces podremos escuchar el sonido de la guitarra por los altavoces. Esta pantalla de conexiones es la que nos va a permitir dirigir el sonido hacia las diferentes aplicaciones.

Anuncios

Desmontando a Jack(d):

15 Jun
Con este título quiero comenzar una serie de posts destinados a la configuración y uso de jackd y herramientas de edición y efectos de audio en linux.

El primer paso es instalar jackd. Jackd es un driver de sonido preparado para trabajar en tiempo real. Es el equivalente a lo que en windows serían los drivers ASIO o Coreaudio en Mac.

Para simplificar la instalación, suponiendo que se use debian o ubuntu, lo más fácil es abrir synaptic, buscar jackd e instalar los paquetes con sus dependencias. Jackd funciona como demonio, en background, por lo que se recomienda usar qjackctl para arrancar y configurar jackd. Otra vez synaptic puede hacer el trabajo más fácil.

Aunque no es necesario, es muy recomendable usar un kernel preparado para tiempo real. Estos kernels permiten trabajar con bajas latencias. La latencia es el principal enemigo del procesamiento de audio. Es la responsable de que a procesar el audio el sonido procesado vaya retardado con respecto al audio original.

La mejor forma de conseguir un kernel de tiempo real es modificar los repositorios de paquetes añadiendo las fuentes de un repositorio con un kernel adecuado e instalarlo con synaptic.

PD: todo lo que se hace con synaptic se puede hacer mediante linea de comandos usando apt-get.