Hay que entender que los milagros no existen.
Monitorizar en tiempo real requiere latencias muy bajas. Por ejemplo, si tienes un cantante y quieres pasarle por cascos una monitorización de su voz con un poquito de rever necesitas latencias comparables a la de la conducción ósea entre boca y oído. Hoy en día estas latencias son difíciles de conseguir (sin clicks o cortes) usando hardware de propósito general como un ordenador. Para eso está el hardware específico de audio, donde la arquitectura de la máquina favorece el transporte y procesado de la información de audio, mientras que en un ordenador el audio tiene que competir con muchas otras cosas.
Igualmente, una red ethernet es de propósito general, no está optimizada para tráfico síncrono y baja latencia.
Si usas netjack tienes que sumar las latencias de dos ordenadores más la de la red, yo veo complicado que se puedan conseguir latencias suficientemente bajas como para monitorizar cómodamente.
Estoy de acuerdo en que para un cantante puede ser complicado, pero para el resto no creo. Yo soy batería y toco la electrónica con VST's en tiempo real y si la latencia es menor de 5ms ni me entero con la monitorización.
Las latencias del netjack con 32 muestras por paquete creo q son de 1.45ms.....
bueno esa latencia de 1,45 ms es la de los bufers de jack, pero debes sumarle la del propio hardware (interface de audio)
Por ejemplo con una TC Konnekt 48, configuro jack a 1 ms (16 x 3) pero la latencia total del bucle (segun jdelay) es de 5.060 ms
Por tanto si que es verdad que mi ordenador corriendo jack generará una latencia de 1 ms de entrada y otro ms de salida pero le he de añadir los 3 ms de retraso que por lo visto genera mi equipo externo.
Que buenos datos. En si mi idea era la de compartir recursos de las distintas pc, para q una trabaje como servidor, con la mayor prioridad en el audio, para que retorne el audio procesado, sin dudas tendre latencias en la red.
Pero si y si dichas latencias fueran menores a las que genera mi equipo por carga de cpu o de memoria? quiza seria bueno, yo he seguido investigando, interesante el proyecto medusa, pero sumandole que netjack es multiplataforma, podria tener un server, basado en linux con un Kernell realTime y que procese el audio por mi dandole libertad a mi procesador.
Son todas ideas, cuando sea concreto algo, les comento...
Saludos
Diego
Quieren que les comente algo mas acerca de este miniproyecto?
He logrado tener un servidor de pluguins LV2 y ladspa (vst no funciona del todo bien por el host)
He instalado el kernell rt de Ubuntustudio 12.04. Quitando todos los servicios innecesarios incluso las X. En un pentium 4, 2.6 ghz, 1 gb de ram.
El resultado: con Netjack, procesamiento de audio con plugins en el servidor y el retorno a ardour.
La configuración: En el host de plugins 4 canales estéreo con plugins precargados, Reverb, delay, chorus, etc. (Nada de dinámica por q los uso como envíos desde ardour).
Latencia casi inapreciable, no se medirla pero monitorizando solo con los envíos de netjack se puede tocar perfectamente.
Lo bueno es el 25 o 30 % de liberación de cpu.
Hice la prueba cargando los mismos plugins en buses de ardour y en las mismas condiciones obtuve desde un 65% a un 70 % de cpu- por lo que con el servidor logre un 40% de consumo.
Estimo que mejorando algunas configuraciones podría incluso mejorar.
Aun no me he puesto con medusa, pero veo q es un proyecto estancado.
También me interesa hacerlo a través del spdif. En cuanto haga unas pruebas les comento.
Gracias por los aportes de todos.
Espero q sigamos compartiendo mas conocimientos.
Abrazo.
Hola diegopicco.
Hace un tiempo tambien hice algunas pruebas de un "cluster" para audio basado en netjack. ( creo que Pablo tambien hizo algunas)
Logicamente no es un tipico cluster ya que con los "streamings" no podemos repartir la carga del mismo modo que otros tipos de procesos.
( posiblemente generasen mas latencia al tener que volver a recomponer los paquetes del "stream").
Pero si que monté algo parecido a tu "miniproyecto". Usaba un PC maestro conectado con netjack a dos PCs más.
Uno de ellos con reverbs (jconvolver) por convolucion las cuales consumen bastantes recursos, delays , etc.
Efectivamente al igual que el tuyo, este estaba dedicado a envios con efectos de procesado de tiempo, donde los problemas de latencia de la red pueden jugar a tu favor.
El otro PC esclavo estaba cargado con instrumentos midi para usarlo como synte.
Con este ultimo debería haber batallado un poco más, pero la cosa estaba ya encaminada y era solo un primer experimento.
Sigue haciéndonos participes de tus experimentos.
Gracias! Monon es muy interesante el tema, claro que no es realmente un cluster, he estado pensando utilizar un SO de clusteres para implementarlo, aunq no se si realmente aportara un beneficio, y no me siento calificado para instalar todos los servicios de un cluster, y ademas adecuarlo para streaming de audio.
Ahora la idea de enviarlo de una pc a otra a travez de spdif, me está pareciendo cada vez mas interesante. ya vere si es factible.
Un abrazo, y gracias por responder.