2-Cent Tips
Recording ALSA PCM output as RAW data
Mulyadi Santosa [mulyadi.santosa at gmail.com]
Sun, 27 May 2007 15:18:48 +0700
Hi Gang...
I'd like to write a short tip here. Sometimes, you may want to record the PCM output stream, maybe for further sound analysis and such. How to do it?
You need to modify your ALSA setting e.g in /usr/share/alsa/alsa.conf and add below lines:
pcm.default { @args [ SLAVE FILE FORMAT ] @args.SLAVE { type string default "hw:0,0" } @args.FILE { type string default "/mnt/linux/midi/test.raw" } @args.FORMAT { type string default raw } type file slave.pcm $SLAVE file $FILE format $FORMAT }The declaration is quite self explanatory. Pay attention to $FILE definition (where you want to put the RAW file). It is defined as 44100 HZ, 2 channel, signed linear sample data.
Later, you can convert this file into another audio format, such as WAV:
$ sox -V -w -c 2 -s -r 44100 ./copy.raw ./copy.wavNotice that the above ALSA PCM definition is default definition, so it affects any ALSA based application that use default definition too. If you want, you can name it something like "pcm.tee" and later to use this definition, tell your application to do so, e.g:
aplay -D tee song.wavNB: I read about this tip during my experiments with Linux Audio. There might be mistakes here, so please CMIIW.
regards,
Mulyadi