el misterioso jack

#1 por jaraujo el 08/01/2015
Migrando de Windows. Se puede explicar este concepto de "Jack" que no logro entender?
Subir
#2 por vagar el 09/01/2015
Al ser un componente básico en aplicaciones de audio jack está bastante bien documentado. Puedes empezar por ejemplo por el blog semicorchux del hispasónico Pablo_F:

http://semicorchux.blogspot.com.es/2010/12/configuracion-del-servidor-de-audio.html

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

Subir
#3 por jaraujo el 09/01/2015
Muichas gracias. Empiezo por alli. No pretendo atajos magicos y se que todo tiene una curva de aprendizaje.
Subir
1
#4 por vagar el 10/01/2015
¡Ése es el espíritu! :ook:

Ánimo, y si tienes alguna duda concreta o necesitas más documentación pregunta.

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

Subir
#5 por jaraujo el 11/01/2015
bueno,la verdad, sigo sin entender bien el concepto de jack.
Vengo de trabajar años en entorno windows (Sonar) y no me asusta configurar driver, hardware y cosas asi.
Pero es como otra lógica.
Por ejemplo, si es una pista midi, estoy acostumbrado a elegir- por ejemplo- un sintetizador virtual y que dispositivo lo va a reproducir,etc ,
En ubuntu, ejecuto musescore, -que es un buen editor de partituras- y las opciones que me muestra en
E/S son:
-audio jack,
-alsa
- port audio.
No visualizo la interaccion de estas funciones.
Como que el esquema general y el concepto todavia no logro comprenderlo bien. Ya ire comprendiendo.
Cualquier aporte , sera bien recibido.
Gracias por la paciencia y la buena onda.
Un abrazo
Subir
#6 por vagar el 11/01/2015
Ajá, es cierto que no es tan fácil encontrar una explicación del gran esquema de las cosas. Hay una al principio del artículo de Dave Philips en LJ (2006), pero está algo anticuada y tampoco llega muy a fondo.

En primer lugar está el driver de audio, que es el software más dependiente del hardware, y se encarga de transferir datos entre la interfaz de audio y el equipo, así como de configurar los parámetros de funcionamiento (frecuencia de muestreo, tamaño de buffer, acceso a funciones como mezclador hardware, etc.) Hay varias familias de drivers: los más comunes son ALSA y FFADO (éste último para dispositivos Firewire). Serían en Linux el equivalente a ASIO.

Hay muchas aplicaciones que pueden usar directamente el driver ALSA para realizar operaciones de E/S de audio: por ejemplo, como mencionas, MuseScore. Pero esto tiene varios problemas:

- Como en ASIO, el acceso a ALSA es exclusivo y bloquea la interfaz de audio para otras aplicaciones (a no ser que se utilicen plugins ALSA como dmix, como se hacía hace unos años, pero ha quedado obsoleto por su dificultad conceptual para el usuario).

- Obliga a repetir la configuración del driver (frecuencia, buffers) en cada aplicación.

- Para un programador la API de ALSA es complicada. Además, acceder directamente al driver obliga a incluir código específico para cada familia de driver que se quiera utilizar, lo que se puede convertir en una pesadilla si además se quiere ser multiplataforma: ALSA, FFADO, ASIO, WDM, DirectSound, Core Audio, etc. La librería Portaudio, que también vemos mencionada en la interfaz de MuseScore, unifica varias de estas familias de drivers en una sola interfaz, facilitando el acceso directo a todas ellas.

Para evitar estos problemas y añadir una serie de funciones de gran utilidad, por encima de los drivers de audio se pone una capa que se denominada servidor de audio.

Hay varios servidores de audio en el mundo Linux, hoy en día los más extendidos son Pulseaudio para aplicaciones de escritorio y Jack para aplicaciones de audio.

Pulseaudio es un intento de simplificar al máximo el uso del hardware de audio: se las entiende con el driver ALSA centralizando la configuración del hardware y proporcionando valores por defecto fiables, funciona como mezclador para que varias aplicaciones puedan sonar simultáneamente, intenta ocultar toda la complejidad de forma que el usuario no tenga que hacerse un cursillo de configuración a bajo nivel de su interfaz de audio, proporciona herramientas amigables para ajustar niveles, incluir efectos, etc.

Jack es un servidor orientado al trabajo específico de audio: también centraliza la configuración del hardware y el acceso al driver, y añade una serie de funciones útiles para enrutado sofisticado de canales de audio, trabajo en baja latencia, priorización de procesos para evitar cortes de audio, etc.

Pulseaudio y Jack pueden coexistir, típicamente Jack se hace con el control del driver y Pulseaudio se convierte en un cliente Jack que da servicio a las aplicaciones de escritorio (navegador web, audio chat, media player...) Al principio esta coexistencia dio bastantes problemas, pero hoy en día suelen estar bien resueltos en las distribuciones especializadas en audio.

Como has visto MuseScore ofrece varias opciones para hacer sonar las partituras. Podrías sacar datos MIDI y enrutarlos a tu sintetizador hardware o software preferido. O bien puedes usar su sintetizador interno basado en soundfonts.

En un intento de adaptarse a la mayor cantidad de entornos posibles MuseScore ofrece tres posibilidades para hacer sonar este sinte interno: Audio Jack, ALSA y Portaudio. La primera es la más recomendable porque evita conflictos con otras aplicaciones y ofrece garantías de baja latencia o ausencia de chasquidos. En un sistema Linux no hay diferencia entre la segunda y la tercera, ya que Portaudio funciona simplemente como un envoltorio sobre ALSA. En Windows o Mac no tendrías la opción de elegir ALSA.

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

Subir
1
#7 por jaraujo el 11/01/2015
Bueno, si alsa y ffado son, de alguna forma, el equivalente a asio, ya aclara algo en el dibujo de mi cabeza. No es poco.
Algo estuve viendo de la configuracion del jack, y me recordaron los enlaces e/s de algunas consolas digitales.
Ahora que lo pienso, un buen esquema dibujado sería util, para un novato.
Por ejemplo, en los manuales de las consolas digitales - donde no existe ningun ruteo analógico interno- sin embargo los tipos dibujan un diagrama de estructura "mostrando" el flujo del audio, para la mejor visualizacion de los procesos.
Quizas haya algo de eso en linux.
--------------------------------------------------------------------
Había pensado, antes de empezar con ardour -que parece mi destino natural- tener mas claro como se adminstra la gestión y vinculo de drivers, hardward, control de las bajas latencia y cosas asi. Quiero decir, mi intencion es setear una configuración adecuada a una estación de trabajo, donde se priorice la performance y la estabilidad, ( y no la compatibilidad con you tube, o el uso doméstico, por decir algo)

-------------------------------------------------------------------------------
Tendre que leer varias veces tu artículo. Tu comentario al pasar, por ejemplo, que diferencia "aplicaciones de escritorio y aplicaciones de audio" son en principio, conceptos ajenos para mi, a los que no estoy acostumbrado y tendre que empezar a familiarizarme
El trabajo y el estudio del procesamiento del audio (tomas, mezclas, efectos etc) me ha consumido mucha energia y todo lo relativo a funcionamiento del S.O fue pasando a segundo plano.
Tambien voy a leer el articulo de dave que me envias el link...y a seguir familiarizandome con la nueva plataforma.
Estoy en deuda por tu generosidad en compartir tu conocimiento. Muy útil, realmente.
Gracias!
Subir
#8 por vagar el 11/01/2015
Como esquema tienes éste de Jörn Nettingsmeier, pero es muy técnico, orientado más a programadores que a usuarios, y está un poco anticuado (actualmente jack también transporta información MIDI).

JACK-Diagram.png

En general echar el sistema a andar no es complicado si existe driver ALSA o FFADO para tu interfaz. Simplemente configura Jack para usar tu interfaz, ajusta los parámetros y conecta todas tus aplicaciones de audio a Jack.

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

Subir
#9 por Pablo_F el 12/01/2015
Para visualizar las conexiones de puertos de audio y midi de una forma más clara que en la ventana de conexiones de qjackctl, puedes usar patchage.

Azul: Jack audio
Rojo: Jack MIDI
Verde: ALSA MIDI

Lo de "ALSA" (Advanced Linux Sound Arquitecture) a veces confunde, porque no es un concepto, son varios conceptos a la vez (que me corrija Luis). Desde el punto de vista de usuario, yo lo simplificaría de esta forma, en dos partes:
- Los drivers de las tarjetas de audio, integrados en el kernel Linux
- Las funciones básicas de audio y MIDI

Y dependiendo del contexto, significa cosas diferentes. Para lo que quieres, lo lógico es usar Jack. Para el MIDI, Jack cuando sea posible y alsa cuando no te quede más remedio.

Apunto un recurso más, es reciente y está muy bien:
http://libremusicproduction.com/

Y el manual de ardour referenciado en dicha página (Ardour FLOSS manual) y sobretodo, la guía de jack para principiantes:

http://libremusicproduction.com/articles/demystifying-jack-%E2%80%93-beginners-guide-getting-started-jack

Muy importante es también conocer que las distribuciones GNU/Linux genéricas para escritorio no están optimizadas para trabajo con audio. Te ahorras muchos quebraderos de cabeza con una distro especializada. Otra vez en Libremusic Production está muy bien explicado:

http://libremusicproduction.com/articles/advantages-choosing-audio-orientated-linux-distribution
Subir
#10 por jaraujo el 12/01/2015
Buenisimo, Ya tengo material para estudiar.
Parece que me va a llevar un tiempito entender cabalmente
Instale UbuntuStudio, donde figura una opción de arranque del sistema como ubuntu low latency, y debo suponer que optimiza esta gestion.
Hablando de optimizar, yo utilizo una audiobox usb y el sistema reconoce el dispositivo, supongo como generico, Me pregunto si alguna vez es requerido algun driver propietario del fabricante
No molesto mas, por un tiempo.
Gracias!
Subir
#11 por vagar el 12/01/2015
Pablo_F escribió:
Lo de "ALSA" (Advanced Linux Sound Arquitecture) a veces confunde, porque no es un concepto, son varios conceptos a la vez (que me corrija Luis). Desde el punto de vista de usuario, yo lo simplificaría de esta forma, en dos partes:
- Los drivers de las tarjetas de audio, integrados en el kernel Linux
- Las funciones básicas de audio y MIDI


Mmm, no sé si te sigo, cualquier arquitectura de audio (quizá con la excepción de ASIO) tiene esas dos partes: una de acceso al hardware y otra de infraestructura común, ya que se trata de ofrecer a los programadores de aplicaciones funciones de alto nivel independientes del hardware.

Pablo_F escribió:


Buen artículo.

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

Subir
#12 por Pablo_F el 12/01/2015
Alguien escribió:
Mmm, no sé si te sigo, cualquier arquitectura de audio (quizá con la excepción de ASIO) tiene esas dos partes: una de acceso al hardware y otra de infraestructura común, ya que se trata de ofrecer a los programadores de aplicaciones funciones de alto nivel independientes del hardware.


Perogrullo entonces :-)
Subir
#13 por vagar el 13/02/2015
Una guía actualizada a jack:

http://libremusicproduction.com/articles/demystifying-jack-%E2%80%93-beginners-guide-getting-started-jack

Echo de menos que distinga mejor entre "driver de audio" y "servidor de audio", pero por lo demás está bastante bien.

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

Subir
1
Respuesta rápida

Regístrate o para poder postear en este hilo