Greg - Your example showed that you did not use any parameters with the arecord command at all. No wonder it did not work! I will include below a script which I use to record wav files but first I will talk about it. The script contains some statements that let you use "ctrl-c" to interrupt a running program without interrupting the script itself. The reason is that I want to run arecord for an indefinite amount of time and interrupt it when the work is done, but I want the script to continue. When the recording is complete, I want to use sox to copy it to my home directory from the /tmp directory where it was created, so that sox can fix the length parameter in the RIFF header as a by-product. The script is called "rec22km" which means 22k sampling rate and mono format. I have other scripts for 22k stereo and other speeds, Mono and stereo. All the scripts produce 16 bit signed samples. The script can be run just by typing the script name, in which case the resulting file in your home directory will be "rec22km.wav", or you can include a name such as "myvoice" on the command line: "rec22km myvoice" and the resulting file in your home directory will be called "myvoice.wav". Once the copying is complete, the file is played just for kicks, and to verify that it worked. You can also interrupt the play command with ctrl-c and the script survives so that it can remove the /tmp file before exiting. The parameters on the arecord command are what you have failed to include. I use "-d 7200" to allow a ridiculously long duration. This parameter was optional in earlier versions, but somewhere along the way the default duration became "0 seconds" so you have to give it a positive value. I use "-q" to throw away the reporting messages. I use "-r 22050" to set the sampling rate. I use "-f S16_LE" to specify the format of the output file: S16_LE means "signed 16 bit little endian". This parameter has changed regularly with each upgrade and is a pain in the ass to keep track of when you upgrade. I use the "-c1" parameter to specify one channel (i.e., monaural) and a space between the 'c' and the '1' is permitted but not required. Finally comes the file name. The trailing ')' on the arecord line of the script below belongs to the subshell interruption control from the previous line. Sorry this has been so complicated, but once you get it going it works like a charm. Of course you must be sure you have enable 'capture' on the input source you want to record (you cannot just set your speaker level, since that is not the signal that gets recorded). For example you would want to mute your mike channel or turn the speaker volume off, but enable capture on the mike channel and adjust the capture volume appropriately. I have to use different capture volume settings for mike, CD, and Line, but once they are set, arecord works like a charm for me. Here is the script: ------------- #!/bin/bash trap "" SIGINT # ignore ^C (trap - SIGINT # except in this subshell arecord -d 7200 -q -r 22050 -f S16_LE -c1 /tmp/rec22km.wav ) echo wait... if [ "$1" = "" ]; then sox /tmp/rec22km.wav rec22km.wav >/dev/null 2>&1 echo rec22km.wav (trap - SIGINT # except in this subshell play rec22km.wav ) else sox /tmp/rec22km.wav $1.wav >/dev/null 2>&1 echo $1.wav (trap - SIGINT # except in this subshell play $1.wav ) fi rm /tmp/rec22km.wav > /dev/null 2>&1 ------------- HTH - Chuck Visit me at http://www.valstar.net/~hallenbeck The Moon is Waning Gibbous (98% of Full)