=Kit de Conexin de Audio JACK=
==Uso profesional==

Esta versin Musix GNU+Linux 0.26 est preparada para un uso realmente profesional del Kit de Conexin de Audio (JACK) junto con los programas y dispositivos que se conectan mediante ste en tiempo real (realtime).

Para usar JACK profesionalmente, instala Musix en tu disco duro y utiliza el kernel multimedia.

Es aconsejable revisar la documentacin actualizada en:

https://www.musix.org.ar/wiki/index.php/Portada

All encontrars textos tiles para mejorar el rendimiento de JACK.

Se han logrado muy buenos resultados con procesadores con 256kb de memoria cache o ms.

''''En procesadores de 1Ghz debera ser posible grabar 12 pistas en Ardour.
En procesadores de 2Ghz en adelante debera ser posible grabar 20 pistas o ms.''''

Es probable que quieras experimentar un tanto con un comando que configura el comportamiento de tu disco rgido.

==HDPARM==
(slo para usuarios avanzados)

No es obligatorio su uso, puedes saltear esta seccin completamente.

===Por qu usarlo?===
Generalmente podras recurrir a cambiar el modo en que se comporta tu disco duro si, por ejemplo, ests grabando muchas pistas en Ardour y el programa abre un cuadro de mensaje explicndote que el disco duro no fue lo suficientemente rpido como para leer los datos de tantas pistas de audio.

hdparm es un comando que nos permite cambiar parmetros para los discos, y de esa forma podemos incrementar su rendimiento, etc.

Toda esta investigacin toma como fuente el manual de hdparm (man hdparm)

No pretendemos cubrir aqu cada aspecto, slo dar un vistazo a lo ms importante, son bienvenidas las contribuciones.


*Informacin

Antes que nada, es til ejectar un comando de informacin del estado actual del dispositivo, tomaremos /dev/hda

hdparm -v /dev/hda
hdparm -I /dev/hda
hdparm -i /dev/hda

Con esa informacin ser suficiente para poder comenzar a trabajar.

*Mltiples Sectores por interrupcin de e/s

con hdparm -m16 /dev/hda

Permite la transferencia de mltiples sectores (16) por cada interrupcin de entrada/salida, en lugar de 1 sector, que es lo usual, puede incrementar la velocidad de transferencia entre un 5% a un 50%

Puedes ver qu nmero mximo permite tu disco con la opcin -i

hdparm -i /dev/hda

El manual explica que en bajo raras circunstancias se puede producir una corrupcin completa del sistema de archivos por prdidas de datos, prestar atencin...

*Para mejorar la performance en lecturas secuenciales de grandes archivos:

hdparm -a

Por ejemplo
hdparm -a256 /dev/hda

Esta opcin -a puede ser til para trabajos con secuenciadores de audio como Ardour o Rosegarden

*Testear la velocidad:

hdparm -t
hdparm -T (testea ms que nada el cache)

Se pueden combinar ambos, dando resultados ms realistas:

hdparm -t -T /dev/hda

hdparm -k1 /dev/hda  (mantiene la configuracin luego de reiniciar) Nota: en mi caso no funcion

Conviene testear con

hdparm -t -T /dev/hda

varias veces, cambiando los valores de -m y -a, hasta que surja el mejor rendimiento.

Por ejemplo a m me rindi mejor esta combinacin:

hdparm -a64 -m16 /dev/hda

de la info se lee esto:

hdparm -v /dev/hda

/dev/hda:

multcount    = 16 (on)

IO_support   =  1 (32-bit)

unmaskirq    =  1 (on)

using_dma    =  1 (on)

keepsettings =  1 (on)

readonly     =  0 (off)

readahead    = 64 (on)

geometry     = 58168/16/63, sectors = 58633344, start = 0



==Instalando un Kernel Multimedia==

Esto ahora es sinnimo de "Instalar Musix en el disco duro", de ese modo podrs usar un Kernel (ncleo) ms adecuado, llamado kernel multimedia, el cual permite operar en baja latencia sin prdidas de muestras de sonido (xruns).

Desde Musix 0.26 el sistema operativo trae 2 kernels: el kernel 2.6.11 de Knoppix 3.8.2 que es utilizado en modo live-cd, y el kernel multimedia 2.6.12-3 de DeMuDi que se instala junto con el sistema en disco duro.

==Ejemplos de uso de aplicaciones JACK==

''''Antes de ejemplificar, es necesario hablar un poco sobre las prdidas de datos de sonido:''''

'''Xruns (prdidas de datos)'''

Desde el Live-CD es probable que obtegas "xruns", cosa que vers en el display de JACK Control: si sucede, donde veas 0 (0) vers que crece el marcador a medida que ocurren ms xruns.

Los "xruns" son prdidas de muestras de audio, pero no necesariamente estas prdidas deben producir un mal sonido en todos los casos. Cada usuario, segn su equipo, obtendr resultados diferentes.

''''Tambin puede ser que sucedan muchas pedidas de datos con Musix instalado en disco duro: en ese caso debers revisar los parmetros de configuracin de JACK.

Si an as no logras resolver el problema, trata de insertar la placa de sonido en otra ranura de la placa madre de tu PC.
''''
Ten en cuenta que es recomendado trabajar con procesadores (CPU) de 1Ghz en adelante.


===Qu cosas puedo hacer con JACK y Musix GNU+Linux?===

Todo lo que aqu se explica, puede ser realizado de mejor forma si instalas Musix en disco duro.

* Bsicamente puedes conectar distintas salidas y entradas entre aplicaciones de audio y MIDI compatibles con JACK.


===Sintetizadores con JACK===

*Puedes utilizar los sintetizadores disponibles (Qsynth, Zynaddsubfx, Specimen, timidity, etc.) y la caja de ritmos "Hydrogen".
*Puedes utilizar los sintetizadores DSSI desde Rosegarden.
*Puedes usar Swami para crear/modificar Soundfonts, ya que Swami conecta fluydsynth a JACK, y de ese modo puedes escuchar cada instrumento/sample.


===Procesadores de Seal Digital en tiempo real===
(DSP)

*Puedes conectar cualquier cosa en una entrada de tu placa de sonido y procesarla con efectos en tiempo real, como si fuera un Rack de Efectos. Tienes decenas de efectos para probar. Prueba conectando un micrfono, cargando Q-JACK Control, y luego jack-rack, creox o Jamin.


===Grabacin Multipista con JACK===

*Puedes grabar y reproducir audio multipista en Rosegarden o en Ardour. Te recomiendo Ardour: es el programa que hace mejor uso de la potencialidad de JACK. He testeado Ardour con 16 pistas trabajando con una latencia de 3ms en una PC con CPU Duron 1800, con 64 kb de cache. Tambin he realizado pruebas con latencias inferiores: 1.6ms, y los resultados son aceptables.


===Masterizacin con JACK===
*Puedes masterizar profesionalmente una cancin con Jamin, ya sea desde el live-cd o instalado en HD.

===Escritura de partituras===
*Puedes usar Rosegarden + timidity o qsynth, todos conectados a JACK, para reproducir las partituras que escribes. Sin embargo, quiz sea mejor idea iniciar timidity como servidor de sonido mediante ALSA, evitando JACK: para esa tarea no se necesita baja latencia, procesamiento en tiempo real.

Si tienes problemas, prueba con la opcin "Rosegarden + Timidity + ALSA (para PC de muy bajo rendimiento) 22050", desde el icono de Rosegarden en el panel del escritorio.

*Puedes usar Noteedit+timidity


===Y mucho ms...===

Puedes hacer muchas cosas ms. Ten en cuenta siempre que es aconsejable un poseer un equipo con un procesador de 1 GHz en adelante, ms de 256 MB de memoria RAM, disco duro rpido y una buena placa de sonido.
Las placas de sonido ms ordinarias no se llevan bien con el sistema de drivers ALSA. Mnimamente trata de usar una SB.

Desde Musix 0.26 hemos testeado el sistema en procesadores de 500mhz con resultados aceptables.


==Las mejores configuraciones==

Este apartado pretende servir de ayuda en base a testeos realizados para encontrar cules son los "nmeros mgicos" en cada caso, para cada programa, para cada combinacin de programas, para cada placa. Es decir, pretende formar una base de datos conteniendo las mejores configuraciones.

Son bienvenidas las contribuciones de los usuarios; necesitamos saber sus experiencias.

En todos los casos, la configuracin que se muestra es la que contiene el archivo oculto llamado: .jackdrc , ubicado en el directorio del usuario (en el caso de Musix se encuentra en /root/.jackdrc)

Pueden ver ese archivo escribiendo en una consola:

cat /root/.jackdrc


==Sound Blaster Live==
Pruebas realizadas en un equipo Duron 2000MHz, 64kb cache, 128mb RAM, HD 30 GB 7200RPM, SB Live!


===Hydrogen en combinacin con Jamin===

'''Pruebas realizadas en Musix 0.23'''
(En musix 0.26 los resultados son mucho ms favorables)

Latencia:85.3ms
/usr/bin/jackd -R -m -dalsa -dhw:0 -r48000 -p2048 -n2 -P -s -S
Latencia: 42.7ms, hardware mode
/usr/bin/jackd -R -m -dalsa -dhw:0 -r48000 -p1024 -n2 -P -S
Latencia: 21.3ms; Jamin slo tuvo 2 xruns
/usr/bin/jackd -R -m -dalsa -dhw:0 -r48000 -p512 -n2 -P -s -S


===Specimen===

Specimen no funciona aceptablemente en Musix GNU+Linux 0.23, pensamos que el rendimiento debera haber mejorado en Musix 0.26

'''Pruebas realizadas en Musix 0.23'''
(En musix 0.26 los resultados son mucho ms favorables)

*As produce muchas prdidas de muestras (xruns), pero funciona en muy baja latencia; y jackd no muere.
/usr/bin/jackd -R -m -dalsa -dhw:0 -r22050 -p128 -n2 -P -s -S
*Suena mejor, y produce menos xruns:
/usr/bin/jackd -R -m -dalsa -dhw:0 -r32000 -p512 -n2 -P -s -S
*Suena mejor, similar prdida de muestras, no muere jackd, 23ms latencia.
/usr/bin/jackd -R -m -dalsa -dhw:0 -r44100 -p512 -n2 -P -s -S
*Igual sonido; mayor latencia 46ms, menos xruns:
/usr/bin/jackd -R -m -dalsa -dhw:0 -r44100 -p1024 -n2 -P -s -S
*Latencia 92ms: No produce prdidas (xruns), ideal para conectar a un secuenciador, slo para reproducir, la interpretacin en vivo se hace un poco dificultosa:
/usr/bin/jackd -R -m -dalsa -dhw:0 -r44100 -p2048 -n2 -P -s -S
*Idem, menor latencia: 85.3ms; pero jackd muri inesperadamente:
/usr/bin/jackd -R -m -dalsa -dhw:0 -r48000 -p2048 -n2 -P -s -S



==Memoria cache del CPU==

Es sabido que JACK funciona mucho mejor en CPUs con una buena cantidad de memoria cache; puedes averiguar cunta memoria cache tiene tu cpu ejecutando en una terminal:
cat /proc/cpuinfo | grep cache

Si la memoria cache es inferior a 128, quiz ests en problemas. Yo personalmente poseo una PC con CPU Duron 1800, con 64 kb de cache, y JACK funciona peor que con los CPUs AMD Semptron que poseen 256 kb de cache.

==Genius Sound Maker==
Si posees una placa de sonido con un chip cs46xx, generalmente conocida como Genius Sound Maker, debers ingresar un valor de Frames/Periods igual o inferior a 512; es decir, todas las pruebas que aqu se muestran con parmetros como -p1024 no funcionaran con tu placa cs46xx.

NOTA: con Musix instalado en HD, muchas de las opciones de los mens de Rosegarden+algo, se cargarn con -p512.

Esta situacin de las placas cs46xx en alguna medida es positiva dado que la latencia es menor.

==Latencia==
En trminos de instrumentos musicales digitales (MIDI), la latencia es el tiempo de retardo que existe entre, por ejemplo, la presin de una tecla en un teclado electrnico, y la reproduccin del sonido correspondiente.

En trminos de audio digital, un ejemplo vlido sera el de un cantante frente a un micrfono: la latencia en ese caso es el tiempo de retardo entre que el cantante pronuncia una frase, la PC la procesa, y el sonido sale efectivamente por los parlantes de un equipo de msica.

Segn la configuracin de JACK tendrs ms o menos latencia, y la configuracin de JACK depende a su vez del equipamiento informtico que poseas.

Generalmente toda la gente quiere tener baja latencia. Para algunas tareas sto no es necesario, como por ejemplo, si ests masterizando un archivo de audio stereo conectando un reproductor a Jamin, en ese caso no importar si la latencia de audio es de 1,6ms o de 92ms: el trabajo se realizar con idntica comodidad.

En cambio si ests grabando voces en vivo mediante JACK y un secuenciador, o ests procesando efectos en tiempo real con jack-rack, o ests interpretando algo con un instrumento MIDI, seguramente querrs lograr el mnimo de latencia posible.
