Audio a través de una red. Experimentos con netjack2

  • 2
#16 por monon el 01/08/2011
Si ese es el fin, monitorizacion, funcionará, pero como bien ha explicado Luis, la utilidad principal de netjack es la de poder renderizar en varias maquinas al mismo tiempo y conseguir un "cluster" a tiempo real, o casi, solo limitado por las latencias propias más las de red.

Sobre una red inalámbrica aumentará la latencia de red de forma considerable, provocada principalmente por perdidas de paquetes y/o redundancias.
Y no hablemos ya de hacerlo con inalámbricas protegidas. La encriptacion y desenciptacion de paquetes es todo un periplo, que se refleja en el tiempo invertido en ello.

Tambien existe un proyecto de la universidad de Sao Paulo llamado Medusa cuyo intencion es crear un entorno facil y accesible sobre una red local. Pero mucho me parece que está en desarrollo y no he encontrado mucha info sobre el tema, aparte de la intervencion hecha en LAC 2011
Subir
#17 por monon el 01/08/2011
Aquí te dejo el enlace al proyecto Medusa
http://sourceforge.net/projects/medusa-audionet/
Subir
#18 por vagar el 01/08/2011
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.

Ars longa, vita brevis.
Mi colección de enlaces web en diigo.

Subir
#19 por daniko el 01/08/2011
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.....
Subir
#20 por monon el 01/08/2011
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.
Subir
#21 por diegopicco el 08/08/2011
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

"La mediocridad para algunos es normal, la locura es poder ver mas alla..."
:::: DIEGO::::

Subir
#22 por diegopicco el 06/09/2012
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.

"La mediocridad para algunos es normal, la locura es poder ver mas alla..."
:::: DIEGO::::

Subir
#23 por monon el 07/09/2012
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.
Subir
#24 por diegopicco el 09/09/2012
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.

"La mediocridad para algunos es normal, la locura es poder ver mas alla..."
:::: DIEGO::::

Subir
Respuesta rápida

Regístrate o para poder postear en este hilo