jueves, 10 de agosto de 2017

Cómo usar más de una tarjeta de sonido a la vez con Jack

ADVERTENCIA: Esto es altamente inestable. No se recomienda para entornos de producción, no al menos sin haber realizado varias pruebas antes.

Es posible hacer funcionar el servidor de audio Jack con dos o más tarjetas o interfaces de audio. Ya sean externas o internas del equipo, aunque insisto en que ni es recomendable ni es estable.

Si necesitas hacer sonar una misma fuente sonora por dos tarjetas de sonido diferentes a la vez, o necesitas grabar de dos tarjetas de sonido para aprovechar todas sus entradas, este pequeño tip es para ti.

En el ejemplo voy a hacer sonar Audacity por la salida de auriculares de la tarjeta interna de mi portátil y, al mismo tiempo, que suene por la salida de mi interfaz USB M-Audio Fast Track

En primer lugar vamos a averiguar con qué nombres conoce el sistema mi hardware de audio conectado y operativo. Abrimos una Terminal y le decimos esto:

cat /proc/asound/cards

En mi caso me da este resultado:

0 [HDMI ]: HDA-Intel - HDA Intel HDMI HDA Intel HDMI at 0xc1210000 irq 52
1 [PCH ]: HDA-Intel - HDA Intel PCH HDA Intel PCH at 0xc1214000 irq 50
2 [Track ]: USB-Audio - Fast Track M-Audio Fast Track at usb-0000:00:14.0-3, full speed

PCH corresponde a la tarjeta de sonido interna y Track a mi Fast Track. No perdamos de la memoria estos datos.

Teniendo ya el servidor de audio Jack funcionando, vamos a crear una salida virtual para la tarjeta interna del portátil, mientras Jack está gestionando directamente la Fast Track. Para ello, aprovechando que tenemos la terminal abierta (no la habrás cerrado, ¿verdad?) y damos esta orden:

alsa_out -dhw:PCH

También podría valer:

alsa_out -dhw:1

Porque en esta sesión, hw:1 es la PCH, la tarjeta interna del portátil, pero como vimos en una entrada anterior, es mejor usar los nombres que los números de dispositivo.

Si abrimos Catia, Patchage o cualquier otro programa que permita gestionar conexiones, comprobaremos que se nos ha creado un nuevo nodo, llamado alsa_out. Si ponemos a reproducir Audacity y nos vamos a nuestro patchbay preferido, ya podremos conectar la salida de Audacity (la de PortAudio, ver imagen de cabecera) a la segunda tarjeta de sonido. Y quien dice dos, dice tres o más... Pero ya sabéis lo fácil es que pete esto...

En este ejemplo tengo un vídeo de Youtube reproduciendo, y sonando a través del puente Pulseaudio-Jack, y haciéndolo sonar a través de tres tarjetas a la vez: la Fast Track, la interna del portátil, y una StealthPlug que tengo por aquí.

Para personalizar el nombre, se añade el argumento -j nombre. Viene bien para identificar mejor las entradas y salidas generadas. Para el ejemplo he ejecutado:

alsa_out -dhw:PCH -j Interna_Port

Para acceder a las entradas se usa alsa_in. Por ejemplo, para usar la entrada de línea de la StealthPlug y aprovecharla para grabar en Ardour, por ejemplo:

alsa_in -dhw:StealthPlug -j StealthPlug

Por último, sugiero automatizar estos comandos en scripts para no tener abiertas las terminales mientras se ejecutan, o ejecutarlos usando los medios que tiene la línea de comandos para poner en segundo plano. Si no, se corre el riesgo de cortar la conexión por el simple hecho de cerrar el emulador de terminal.

Todo esto lo aprendí en una entrada de Semicorchux. Valía la pena rescatar esa información del olvido. Para más detalles, os invito a visitar la entrada de Pablo.

Puedes visitar la entrada original en www.JoseGDF.net, leer los comentarios e incluso dejar el tuyo, si lo deseas.

No hay comentarios:

Publicar un comentario

No hay normas especiales para publicar comentarios en este blog. Sólo las básicas: respeta, no insultes, y no hagas SPAM descaradamente. Tampoco se admitirán comentarios que vulneren la Ley. Cualquier aportación, consulta y crítica es bienvenida, a condición de cumplir estas normas básicas.

Si lo que quieres es ponerte en contacto directamente conmigo, dispones para ello de un formulario de contacto.