Esta mañana he estado haciendo pruebas de rutear audio desde un ordenador a otro en tiempo real. Es muy divertido. La prueba ha sido con un tecladito MIDI (hardware) que hago sonar con qsynth y también con un reproductor de audio, todo esto en mi netbook, pero la tarjeta de audio que suena está en mi otro ordenador!
Todavía estoy empezando y no me entero mucho, por ejemplo, no entiendo bien la diferencia entre conexión asíncrona y síncrona y en qué casos sería mejor una sobre otra. De momento he sido impaciente y he ido directamente a hacer la prueba con los parámetros por defecto.
Ayer hice la prueba con conexión wireless y fue un desastre, la música se oía fatal. No entiendo casi nada de redes, pero supongo que es normal que compartir audio en tiempo real a través de una red inalámbrica sea dificultoso. En cambio, con los dos ordenadores conectados por cable a la red, es una gozada, puedo tocar el teclado midi conectado al netbook y escucharlo en el desktop sin latencia apreciable.
Mis pruebas con jack1 no resultaron... Me instalé jack2 en los dos ordenadores y vualá, a la primera y superfácil.
Aclaración: Jack1 es el "jack original" de Paul Davies y sólo funciona en Linux y en Mac. Jack2 es una variante, con soporte para multiprocesadores y que también funciona en Windows. 'jackd -v' nos dirá la versión del servidor. Si el primer número es un 0, estamos en "Jack1". Si es un 1. será "Jack2".
Ubuntu jaunty viene con jack1. Se puede actualizar a jack2 a través del repositorio de jaunty backports de 64studio: 'deb http://apt.64studio.com/backports/ jaunty-backports main' o compilarlo desde las fuentes pero yo prefiero la primera opción; es más fácil y funciona. Para otras distros no sé si habrá paquetes precompilados, puede que sí.
Aquí va un pequeño tutorial justo para empezar. Puede que a muchos no les sea útil pero seguro que alguien puede estar interesado en poner varios ordenadores en "red de audio". Además, netjack2 es multiplataforma y vale para Linux / Windows / Mac.
Primero decidiremos cuál va a ser el ordenador maestro. En mi caso, ha sido el desktop, donde tengo la tarjeta buena. En éste lanzamos jack de la forma habitual. Después, desde una terminal, lanzaremos el gestionador de redes de jack con: 'jack_load netmanager'. Esto es un servidor sin interfaz gráfica ni nada, pero es necesario para que el maestro pueda ver a los esclavos. Ahora en el ordenador esclavo, lanzamos desde terminal 'jackd -R -d net' y a continuación abrimos una interfaz gráfica para realizar las conexiones, por ejemplo Jack Control. (Al lanzar Jack Control vemos que el servidor está "activo", claro, ya lo habíamos lanzado desde terminal). Pero antes de seguir con el esclavo, vamos a comprobar que en el maestro aparece nuestro ordenador esclavo, con su hostname, en las conexiones de audio. Hecha esta comprobación, lanzamos las aplicaciones en el esclavo, como primera prueba un reproductor de audio (me gusta aqualung por lo bien que está integrado con jack, lo bien que suena y lo bien que se deja llevar a cualquier punto de una canción sin fallar nunca). Nos aseguramos que las salidas del reproductor estén conectadas a los system:playbacks y ahora volvemos al maestro. En el maestro, conectamos los puertos "from_slave" a los system:playbacks y ala, ya tenemos sonando en un ordenador lo que estamos reproduciendo en el otro.
También podemos hacer que el maestro vea puertos jack MIDI del esclavo, si usamos las opciones -i y -o en el comando que escribimos en el esclavo. (por ejemplo 'jackd -R -d net -i 2 -o 2')
Saludos, Pablo
Créditos y para saber más (y mejor):
http://trac.jackaudio.org/wiki/WalkThro ... r/NetJack2