Hola a todos, hoy vengo con un pequeño experimento y a la vez a una solución (a medias) de un problema que tiene QJACKCTL, la poca capacidad de hacer correr varias tarjetas al mismo tiempo con Jack. Aunque si hay una solución para tal problema. Sin embargo, a pesar de ser algo simple, requerirá de unos pequeños pasos que demostraré a continuación.
Primero, los ingredientes:
Jack (preferiblemente Jack2, por razones a explicar)
ALSA (Instalado por defecto en casi todas las distros, si no es que todas)
2 o más Interfaces o Tarjetas de Sonido que sean soportadas por ALSA (PCI, USB, FireWire, etc)
Cablería necesaria
Un vaso de café
Segundo, saber que vamos a hacer. Al iniciar Jack, usando QJACKCTL, como todo el tiempo a la hora de ir al Patchbay, ustedes verán como siempre esto:
Donde "System" son las entradas y salidas de la interface que por defecto esta seleccionada. En mi caso son, mi computadora tiene una configuración de 2/2 IO (2 entradas/2 salidas), pero tengo ademas una interface USB aparte basada en el Chipset Realtek AC97 la cual gustaría de mover junto a la tarjeta 5.1 que normalmente utilizo. Así, lograría crear una tarjeta virtual con 4/4 IO, compartiendo reloj entre ambas, y por supuesto expandiendo la capacidad del equipo. Entonces haremos lo siguiente, Vamos al terminal, y hacemos esto: Insertamos el poderoso código: cat /proc/asound/cards, para ver los números asignados por ALSA para interface.
Apuntamos la salida, tomamos un sorbo de café, y es aquí donde vamos a hacer alquimia.
Presentado "alsa_in" y "alsa_out"
"alsa_in" y "alsa_out" son los pequeños programas que nos dejaran hacer este truco. Ellos hacen que JACK se de cuenta que hay más dispositivos disponibles para usar con la interface ALSA, y que puede disponer de ellos. Los mismos vienen por defecto en el paquete "jackd", por lo cual no habrá que recompilar absolutamente nada. Las razones por la que es altamente recomendable usar JACK2 en ves de JACK1, es por que JACK2 posee la capacidad de Syncing, primordial cuando se hacen estos trucos, para no oír esos molestos pops y clicks que ocurren cuando las tarjetas no están sincronizadas por algún reloj. Entonces, después de esta pequeña inmersión, abrimos QJACKCTL, ponemos a correr a Jack, y luego usamos este par de códigos:
y
Donde alsa_in y alsa_out nos permitirán arrancar otra interface, aparte de la que ya esta corriendo para disponer de ella con JACK y, por supuesto, poder usarse desde una interface de control gráfica como QJACKCTL.
Los demás parámetros hacen los siguiente: -d es el hardware a usar, -r es la velocidad de muestreo con la que el hardware va a trabajar (Si se quiere no se pone, pero lo puse para que no variara mucho entre tarjeta y tarjeta, y no ocurran los condenados desfases en la grabación y la reproducción) y por último -j es para asignarle un nombre en para ubicarse en los softwares de edición en GNU/Linux, o para localizarla en QJACKCTL. El resto de parámetros están en la hoja de ayuda de alsa_in y alsa_out aquí, o en el terminal escribiendo man alsa_in.
Volviendo al asunto, luego de haber metido esos dos códigos en el terminal, nos vamos al Patchbay de QJACKCTL y vemos que ha sucedido.
Como ven, ya aparecen ambas tarjetas. System, la cual es la principal del sistema, y Realtek AC97, la cual es la interface externa que habilite mediante alsa_in y alsa_out. Algo importante, es que si no necesitas las salidas, y solo necesitas las entradas, o viceversa, solo tienes que usar un solo código. alsa_in para la grabación y alsa_out para la reproducción.
Finalmente, si quieren automatizar el proceso, pueden escribirse un script para poder arrancar ambas tarjetas desde QJACKCTL al hacer uso de la opción de arranque mediante él mismo
Por último, si lanzan los comandos desde el terminal, se verán cuando existe un delay entre JACK y los Pines (o interfaces) para así tener un control total de la situación. También se pueden usar las tarjetas que se quieran, tomando en cuenta el limite físico de la máquina.
Bueno, espero les haya gustado el truco. Yo lo he usado solo con las salidas, ya que lo mío es para audio en vivo, y no tanto para grabación. Aún así, el truco sirve en ambos campos.
¡Pura Vida!
Gracias a Pablo_F por haberme pasado el dato de alsa_in y alsa_out hace casi un año. Había dejado esto en la pizarra de TODO, aunque hace pocos días volví a tomar cartas en el asunto
Primero, los ingredientes:
Jack (preferiblemente Jack2, por razones a explicar)
ALSA (Instalado por defecto en casi todas las distros, si no es que todas)
2 o más Interfaces o Tarjetas de Sonido que sean soportadas por ALSA (PCI, USB, FireWire, etc)
Cablería necesaria
Un vaso de café
Segundo, saber que vamos a hacer. Al iniciar Jack, usando QJACKCTL, como todo el tiempo a la hora de ir al Patchbay, ustedes verán como siempre esto:
Donde "System" son las entradas y salidas de la interface que por defecto esta seleccionada. En mi caso son, mi computadora tiene una configuración de 2/2 IO (2 entradas/2 salidas), pero tengo ademas una interface USB aparte basada en el Chipset Realtek AC97 la cual gustaría de mover junto a la tarjeta 5.1 que normalmente utilizo. Así, lograría crear una tarjeta virtual con 4/4 IO, compartiendo reloj entre ambas, y por supuesto expandiendo la capacidad del equipo. Entonces haremos lo siguiente, Vamos al terminal, y hacemos esto: Insertamos el poderoso código: cat /proc/asound/cards, para ver los números asignados por ALSA para interface.
Apuntamos la salida, tomamos un sorbo de café, y es aquí donde vamos a hacer alquimia.
Presentado "alsa_in" y "alsa_out"
"alsa_in" y "alsa_out" son los pequeños programas que nos dejaran hacer este truco. Ellos hacen que JACK se de cuenta que hay más dispositivos disponibles para usar con la interface ALSA, y que puede disponer de ellos. Los mismos vienen por defecto en el paquete "jackd", por lo cual no habrá que recompilar absolutamente nada. Las razones por la que es altamente recomendable usar JACK2 en ves de JACK1, es por que JACK2 posee la capacidad de Syncing, primordial cuando se hacen estos trucos, para no oír esos molestos pops y clicks que ocurren cuando las tarjetas no están sincronizadas por algún reloj. Entonces, después de esta pequeña inmersión, abrimos QJACKCTL, ponemos a correr a Jack, y luego usamos este par de códigos:
Terminal escribió:alsa_out -d 'hw:0' -r 44100 -j 'Realtek AC97'
y
Terminal escribió:alsa_in -d 'hw:0' -r 44100 -j 'Realtek AC97'
Donde alsa_in y alsa_out nos permitirán arrancar otra interface, aparte de la que ya esta corriendo para disponer de ella con JACK y, por supuesto, poder usarse desde una interface de control gráfica como QJACKCTL.
Los demás parámetros hacen los siguiente: -d es el hardware a usar, -r es la velocidad de muestreo con la que el hardware va a trabajar (Si se quiere no se pone, pero lo puse para que no variara mucho entre tarjeta y tarjeta, y no ocurran los condenados desfases en la grabación y la reproducción) y por último -j es para asignarle un nombre en para ubicarse en los softwares de edición en GNU/Linux, o para localizarla en QJACKCTL. El resto de parámetros están en la hoja de ayuda de alsa_in y alsa_out aquí, o en el terminal escribiendo man alsa_in.
Volviendo al asunto, luego de haber metido esos dos códigos en el terminal, nos vamos al Patchbay de QJACKCTL y vemos que ha sucedido.
Como ven, ya aparecen ambas tarjetas. System, la cual es la principal del sistema, y Realtek AC97, la cual es la interface externa que habilite mediante alsa_in y alsa_out. Algo importante, es que si no necesitas las salidas, y solo necesitas las entradas, o viceversa, solo tienes que usar un solo código. alsa_in para la grabación y alsa_out para la reproducción.
Finalmente, si quieren automatizar el proceso, pueden escribirse un script para poder arrancar ambas tarjetas desde QJACKCTL al hacer uso de la opción de arranque mediante él mismo
Por último, si lanzan los comandos desde el terminal, se verán cuando existe un delay entre JACK y los Pines (o interfaces) para así tener un control total de la situación. También se pueden usar las tarjetas que se quieran, tomando en cuenta el limite físico de la máquina.
Bueno, espero les haya gustado el truco. Yo lo he usado solo con las salidas, ya que lo mío es para audio en vivo, y no tanto para grabación. Aún así, el truco sirve en ambos campos.
¡Pura Vida!
Gracias a Pablo_F por haberme pasado el dato de alsa_in y alsa_out hace casi un año. Había dejado esto en la pizarra de TODO, aunque hace pocos días volví a tomar cartas en el asunto