Me he picado con el tema y recuerdo que con el driver alsa se puede hacer. Os cuento mis intentos. Mi tarjeta usa el driver snd_via82xx pero tiene que funcionar con todas.
La idea es capturar lo que vaya a pcm, he probado con lastfm.
Listo todos los devices y tarjetas:
arecord -L
Y veo el plug tee que debe ser un bifurcador como su comando en bash:
...
tee {
@args.0 SLAVE
@args.1 FILE
@args.2 FORMAT
@args.SLAVE {
type string
}
@args.FILE {
type string
}
@args.FORMAT {
type string
default raw
}
type file
slave.pcm $SLAVE
file $FILE
format $FORMAT
Hay un plug llamado file que también debería grabar pero necesita darle permisos de lectura a /dev/full o hacerlo como root (sucio).
Pongo el pcm del mezclador al 60% y activo capture a la mitad y grabo 10 segundos:
arecord -d 10 -D "tee:hw,'/home/migtei/test/mifile.raw',raw" > /dev/null
Recording WAVE 'stdout' : Unsigned 8 bit, Rate 8000 Hz, Mono
Si no lo mandas a /dev/null la consola se escojoncia. El formato es una caca pero es un pincipio. No consigo otro formato mejor, no parece que acepte otro. Lo que sale:
l -h
-rw------- 1 migtei users 46K 2006-08-29 03:54 mifile.raw
Le digo a Sam que la toque y va bien:
aplay -v mifile.raw
Playing raw data 'mifile.raw' : Unsigned 8 bit, Rate 8000 Hz, Mono
Plug PCM: Rate conversion PCM (44100, sformat=U8)
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : U8
subformat : STD
channels : 1
rate : 8000
exact rate : 8000 (8000/1)
msbits : 8
buffer_size : 4000
period_size : 1000
period_time : 125011
tick_time : 4000
tstamp_mode : NONE
period_step : 1
sleep_min : 0
avail_min : 1000
xfer_align : 1000
start_threshold : 4000
stop_threshold : 4000
silence_threshold: 0
silence_size : 0
boundary : 262144000
Slave: Hardware PCM card 0 'VIA 8235' device 0 subdevice 1
--------------------------------------------------------------------
Otra manera es crear el archivo /home/usuario/.asoundrc con el contenido:
pcm.copy {
type plug
slave {
pcm hw
}
route_policy copy
}
Y luego grabo (poniendo los niveles adecuadamente) con:
arecord -d 15 -D copy copy.wav
Recording WAVE 'copy.wav' : Unsigned 8 bit, Rate 8000 Hz, Mono
Va bien. Ahora con mas calidad:
arecord -d 15 -f cd -D copy copy.wav
Recording WAVE 'copy.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
Mucho mejor, pero 1 minuto son 5 megas y solo escucho el canal izquierdo. A lo mejor cada canal de captura es un device, el izquierdo es el 0.0 y el derecho el 0.1, o uno es la captura analógica y la otra la IEC958, nusé:
cat /proc/asound/devices
17: [0- 1]: digital audio playback
25: [0- 1]: digital audio capture
16: [0- 0]: digital audio playback
24: [0- 0]: digital audio capture
0: [0- 0]: ctl
1: : sequencer
33: : timer
Lo bueno es que graba cualquier cosa que salga por pcm, pero era mucho mas fácil con vsound. Lo que no sé es si capturo directamente el pcm, o paso de pcm a analógico y luego reconvierto a pcm. Si consiguiera 2 canales me daría por satisfecho.
Suerte...