Manual básico de JACK

Artículo de referencia original: http://spot.river-styx.com/viewarticle.php?id=14

Qué necesitas para este pequeño ejemplo

Descripción

JACK es un servidor de audio de baja latencia diseñado para estándares de audio profesional. Si lees el manual [HOWTO] de Linux Audio Quality, te puedes asustar al momento de llegar a la parte sobre parchear y recompilar tu kernel. Relájate, Jaromil se ocupó de ello al construir d:b. El manual sigue siendo una buena lectura, especialmente para tips en compatibilidad y resolución de problemas (Quality Troubleshooting). JACK te libera de muchos de los límites tradicionales de sonido en Linux, dándote poderosas capacidades de re-direccionamiento (routing) e interconexión.

Para la mayoría de sistemas d:b, iniciar JACK es tan simple como seleccionarlo de los menús:

AUDIO -> Jack           [para version 2.5.2] 

Esto lanzará qjackctl, un panel de control, como éste:

Muchos de los varios botones llaman a controles adicionales y ventanas de estado. La opción que seguramente más utilizarás será el botón Connect, el cual lanza el panel de conexiones (Connection Panel):

Al ejecutar programas con la opción de salida de audio a través de JACK, se sumarán puertos a las listas de Readable Clients / Otput Ports y Writeables Clients / Input Ports. Nota que tu misma tarjeta de sonido esta en esta lista, típicamente como alsa_pcm. Algunos programas intentarán automáticamente una conexión de su nuevo puerto de salida al puerto de entrada de la tarjeta de sonido (puede sonar confuso al principio, recuerda que los puertos de entrada son en realidad a tu salida de la tarjeta de sonido). Otros programas establecerán puertos y te dejaran las conexiones a ti. Sólo da click en cada puerto que desees conectar, y aprieta el botón Connect. También puedes seleccionar y arrastrar de una columna a la otra. Puedes conectar un grupo completo de puertos, o expandirlo para conectar un sólo canal por ejemplo, en lugar de un par estéreo. Claro que también puedes conectar múltiples puertos, por ejemplo, para mandar dos o más aplicaciones de audio a la tarjeta de sonido al mismo tiempo.

El panel de conexiones también tiene una pestaña nombrada MIDI. Funciona de la misma manera. De igual forma, nota el botón Play en el panel de control principal. Esto habilita diferentes maneras de coordinar sofisticados sistemas MIDI bajo el control de transporte de JACK, pero dejaremos eso como un área para exploración independiente. Date cuenta que hemos rasgado ligeramente la superficie en este bocado de lección.

¿Problemas?

Si por alguna razón el sonido no funciona, o necesitas torcer algunas cosas, aquí hay unos pocos pasos que pueden ayudar para que todo marche bien. Ten en cuenta que para resolver un problema de configuración de manera permanente, necesitarás anidar d:b en tu disco duro o usb. Es muy sencillo hacerlo, y te da muchos beneficios.

Quizá también quieras revisar en el wiki de Dynebolic y en los archivos de la lista de correos en dyne.org para más tips y sugerencias.

Averiguando sobre tu tarjeta de sonido

La primera cosa es encontrar cual es tu tarjeta de sonido en realidad. Principalmente hay tres maneras en que una tarjeta de sonido puede ser agregada a tu sistema. Por mucho la más común en máquinas recientes es vía el bus PCI. Ya sea por medio de la tarjeta o por construcción de la máquina, el sonido se conecta al sistema por medio de un bus, usualmente PCI. Las máquinas algo antiguas deben usar el bus ISA, mientras que algunas más recientes incluyen nuevos módulos de sonido que se conectan con usb. Un módulo de sonido usb puede habilitarse con este comando:

 modprobe snd-usb-audio 

Para tarjetas ISA usualmente necesitarás saber algunas especificaciones de la tarjeta para escoger el driver correcto, y puede que requiera introducir códigos al prompt de boot para habilitarlos completamente.

Para tarjetas PCI incluidas en la máquina, el sistema puede ayudarte a determinar los detalles. Desde un prompt Xterm ejecuta el comando 'lspci'. Esto listará todo lo que esté conectado al bus PCI. Tú buscas Multimedia audio controller. Aquí se muestra una salida ejemplo

[d:b] ~ #lspci                                                                                          14:41
00:00.0 Host bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX Host bridge (rev 03)
00:01.0 PCI bridge: Intel Corp. 440BX/ZX/DX - 82443BX/ZX/DX AGP bridge (rev 03)
00:07.0 ISA bridge: Intel Corp. 82371AB/EB/MB PIIX4 ISA (rev 02)
00:07.1 IDE interface: Intel Corp. 82371AB/EB/MB PIIX4 IDE (rev 01)
00:07.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01)
00:07.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
00:0d.0 Ethernet controller: Davicom Semiconductor, Inc. Ethernet 100/10 MBit (rev 31)
00:0f.0 Multimedia audio controller: C-Media Electronics Inc CM8738 (rev 10)
00:10.0 Multimedia video controller: Brooktree Corporation Bt878 Video Capture (rev 11)
00:10.1 Multimedia controller: Brooktree Corporation Bt878 Audio Capture (rev 11)
01:00.0 VGA compatible controller: S3 Inc. Savage 4 (rev 03)
[d:b] ~ #

Observa que hay dos dispositivos de audio en la lista, incluyendo la porción de audio de la tarjeta de video Brooktree. Probablemente nosotros estemos más interesados en C-Media en este momento.

Encuentra información de ALSA para tu tarjeta de sonido

Armado con el conocimiento de la tarjeta, el próximo paso es visitar ALSA Souncard Matrix, y buscar notas adicionales para obtener el máximo de tu tarjeta. Quizá necesites modificar el archivo /etc/.asoundrc para obtener todas las ventajas de la tarjeta.

Una vez que hayas identificado los módulos ALSA apropiados para tu tarjeta de sonido, necesitas cargar los módulos del kernel requeridos usando el comando modprobe. Por ejemplo, la tarjeta C-Media requeriría:

  modprobe snd-cmipci

Para casos extremos, también puedes necesitar agregar una línea o dos en /etc/modules.conf. Por ejemplo, aunque la auto-detecte correctamente, la tarjeta C-Media necesita esta línea para permitir soporte MIDI.

 options snd-cmipci mpu_port=0x300                                  

Para tarjetas que no se auto-configuran correctamente, un arreglo permanente es adherir una entrada a /etc/modules.conf como se indica en la documentación de ALSA, similar a ésta:

alias snd-card-0 your-required-module

Jugando con la configuración de JACK

Si el sonido funciona, pero JACK no, unos cuantos movimientos pueden servir. La ventana de Messages puede ofrecer algunas pistas para saber qué está mal. Revisa y después da click en el botón Setup para llamar este panel:

Un problema común es la opción duplex (Audio: en la orilla derecha a media altura). Algunas tarjetas tienen problemas en el modo duplex y seleccionando Playback en lugar de Duplex permitirá operar a JACK. De la misma manera, algunas tarjetas pueden necesitar razones de sampleo (sample rates) o tamaños de bit (bit sizes) más bajos o diferentes, así que probando en estas opciones se puede obtener algo. Pasando el puntero sobre una opción dará una ayuda para brindar una mejor indicación sobre la función del control. Un consejo general es hacerlo lento y de manera metódica. Haz un cambio y después prueba, en lugar de cambiar muchas cosas aleatoriamente. La persistencia por lo regular te recompensará.

Ahora tienes el poder. ¡Ve y crea algo increíble!


Jugando con JACK, Hydrogen y Jack Rack

Artículo de referencia original: http://spot.river-styx.com/viewarticle.php?id=17

==== Qué necesitas para este pequeño ejemplo =====

Descripción

Puede tomarte un tiempo darte cuenta de todo el poder de JACK. En este ejemplo vamos a explorar algunas posibilidades de inter-conexiones. Pongamos manos a la obra. Lanza JACK del menú AUDIO->DEEJAY [esto es en una versión anterior, ahora es simplemente AUDIO], si no esta en operación ya. Todos los programas que vamos a usar se acceden desde este mismo menú [AUDIO->PERFORM en la versión 2.5.2]. También deberás abrir el panel de conexión (Connection Panel), ya que lo necesitaremos dentro de poco. Nos vamos a mover de ventana a ventana constantemente, así que es una buena ocasión para probar los atajos (shortcuts) Alt-1, Alt-2, etc. para cambiar de espacios de trabajo (workspaces).

Empieza el juego con Hydrogen

En otro espacio de trabajo abre Hydrogen. Esta caja de ritmos (drum machine) es muy poderosa y ofrece su propio mundo de posibilidades. Para este ejemplo sólo necesitamos un simple ritmo circular, así que abramos el demo GM_kit_Jazzy.h2song en la pestaña File->Open Demo. El demo elegido es sólo por conveniencia, ya que hay muchas maneras de generar un ritmo circular (looping beat) básico en d:b. Por ejemplo baja un sample circular y cárgalo en terminatorX. (Si necesitas ritmos circulares o sampleos de batería, prueba DooleyDrums.com.) Un módulo de Sound Tracker podría ser otra idea. Todo lo que se necesita para este ejemplo es un ritmo que se repita. Si haces cualquier sustitución sólo asegúrate que esté configurada para reproducir audio a través de JACK y ajusta los demás pasos de la manera correspondiente.

Jack Rack a escena

Salta a otro espacio de trabajo y ejecuta Jack Rack , un procesador de efectos basado en LADSPA. Podrá parecer bastante vacío al principio, pero ya nos ocuparemos de eso. Hasta ahora tenemos JACK, Hydrogen y Jack Rack. Regresemos al panel de conexión de JACK y conectemos los dispositivos.

Por omisión Hydrogen se conecta a la salida default, pero queremos que pase por Jack Rack en lugar de eso. Selecciona Hydrogen en la izquierda y alsa_pcm en la derecha y aprieta el botón Disconnect. Ahora conecta Hydrogen a jack_rack, y jack_rack a alsa_pcm como se muestra. Regresa a la ventana de Hydrogen y aprieta play, el botón marcado con un triángulo verde cerca de la esquina superior izquierda (en la versión incluida en d:b 2.5.2 tal botón se encuentra en la orilla inferior casi al centro).

Regresa a Jack Rack.

Presiona el botón Add y selecciona Time->Flangers->DJ Flanger. Presiona Add de nuevo y selecciona el Bode frequency shifter (corredor de frecuencia).

Presiona el botón Wet/Dry en el frecuency shifter y posiciona el control que aparece, jalándolo a la izquierda, aproximadamente en medio. Presiona los botones Enable en ambos efectos. Ahora coge el control Base Shift, muévelo y que inicie la sesión musical.

Éste es un ejemplo muy extremo, pero Jack Rack es capaz de manipulaciones más sutiles. El único límite es tu imaginación (y quizá tu CPU y memoria, pero tampoco requiere la punta de la tecnología en hardware). Solo agrego unas pocas recomendaciones para tratar y hacer tu experimentación más placentera. Algunos efectos no son en tiempo real (RT por sus siglas en inglés) de manera que aplicarlas a una reproducción en curso no funciona. Pero no te desilusiones, hay muchos más, Si las cosas no funcionan bien, el ruido puede ser bastante molesto y sin duda puede dañar las bocinas, así como los oídos.

Y todavía mucho más

Un tip mas. Puedes correr múltiples Jack Racks. El número en la parte superior de la ventana del rack corresponde al número mostrado en la lista de conexión. Hagamos uso de ello en el ejemplo que ya hemos trabajado. Ejecuta un nuevo Jack Rack. Agrégale (con el botón add) Amplitude->Amplifiers->Simple amplifier, y Time->Phasers->Auto. Posiciona los controles cerca de lo que se muestra en la figura, pero no los habilites (con Enable), todavía no.

Regresa al panel de conexión y conecta Hydrogen al nuevo jack_rack y éste a su vez conectalo a alsa_pcm. Escucharás un segundo canal limpio (sin alterar en Jack Rack) del track en Hydrogen. Regresa y habilita ambos canales en el nuevo Jack Rack.

Así que ahora tienes un dispositivo con toneladas de efectos y una fuente interminable de cables de conexión que nunca se enredan. Oh, ¿te diste cuenta de que muchos de ellos pueden ser aplicables al MIDI dando click derecho en un control? ¡Sumérgete y disfruta!

Ahora tienes el poder. ¡Ve y crea algo increíble!

Jack.es (last edited 2009-07-09 04:39:17 by 0v0x)