¿Puedo configurar un dispositivo de audio loopback?

16

Si puedo enviar audio a los dispositivos de salida, entonces puedo grabar el mismo audio que una onda. Con los sistemas de archivos, puede configurar un sistema de archivos de bucle invertido y escribir datos binarios en un archivo en lugar de un dispositivo.

Mi pregunta es: ¿puedo enviar la señal de audio a (por ejemplo) un archivo WAV en lugar de mis dispositivos de audio? ¿Cómo?

D4RIO
fuente
El video introdujo cuatro modos de loopback de tarjeta de sonido. youtu.be/pqV3P9zRyYc

Respuestas:

11

Si.

En realidad hay muchas formas. Puede configurar un dispositivo de tarjeta de sonido ficticio que simplemente puede extraer los datos del dispositivo ... sin embargo, este no es un formato muy útil.

Más útil para usted es algo como la arecordutilidad que le permite espiar la secuencia de salida de alsa y guardarla en varios formatos conocidos. Básicamente, todo lo que puede reproducir en el sistema de sonido alsa puede copiarse en un archivo de sonido de formato estándar.

Existen herramientas similares para el audio de pulso .

Caleb
fuente
8

Si su sistema, o solo la aplicación que desea grabar, dirige su salida a un servidor de sonido , busque posibilidades de grabación para ese servidor de sonido. Por ejemplo, en Ubuntu, el servidor de sonido oficial es PulseAudio , que viene con el pareccomando (del pulseaudio-utilspaquete Instalar pulseaudio-utils http://bit.ly/software-small ). Puede que necesite convertir la salida de parecalgo usable con SoX (Ubuntu: Install sox http://bit.ly/software-small ).sox

parec -r --rate=44100 | sox --type raw --rate 44100 - --type ogg recording.ogg
Gilles 'SO- deja de ser malvado'
fuente
eso no funcionó para mí, pero esta variación del tema sí lo hizo: askubuntu.com/questions/60837/…
ixtmixilix
4

Se supone que es posible grabar directamente en Audacity, pero no pude hacer que eso funcione en mi sistema (Ubuntu 10.10). Entonces, siguiendo las instrucciones aquí de la wiki de Audacity, uso el ALSAdispositivo de reproducción para desviar el audio a un archivo.

Esto utiliza un .asoundrcarchivo (en su directorio de inicio):

pcm.teeraw {
   type empty
   slave.pcm "tee:default,'/tmp/out.raw',raw"
   # 48000 S16_LE 2ch (aplay -t raw -f dat)
}

Para grabar desde flash (en firefox), uso

FLASH_ALSA_DEVICE=teeraw firefox

El archivo resultante, /tmp/out.raw está en formato sin formato, por lo que la conversión necesita saber cuáles son los parámetros correctos. Curiosamente, lameparece capaz de resolver esto por sí mismo, pero soxnecesita saberlo explícitamente. Entonces, lo siguiente parece funcionar:

aplay -t raw -f dat -r 44100 /tmp/out.raw # to play
sox -r 44100 -b 16 -e signed -c 2 /tmp/out.raw /tmp/out.wav # to convert to wav
lame /tmp/out.raw # to convert to mp3
Espacio de bucle
fuente
El enlace del wiki de Audacity está muerto.
Suzana
0

Hay un controlador de bucle invertido en el árbol ALSA, aloop-kernel.c (a través de aquí ); que tendrías que construir tú mismo (y descubrir su utilización como dispositivo a través de aplicaciones de audio como aplay/ arecord) ...

sdaau
fuente