Recorder for loud noises
The PineCube can be used as a recorder for loud noises. If you have a kernel that has the sound support (see the Sound Control section) then you can use it to make recordings when there is a noise above a certain threshold. The following script is a very simple example that uses the alsa-utils and the sox command to do this. You can use the noise-stats.txt file and some noise testing to figure out a good threshold for your camera.
#!/bin/bash
# Directory where the sound recordings should go
NOISE_FILE_DIR="/root/noises"
# Threshold to use with the mean delta to decide to preserve the recording
MEAN_DELTA_THRESHOLD="0.002"
# Sample length (in seconds)
SAMPLE_LENGTH="10"
while :
do
stats=$(arecord -d "$SAMPLE_LENGTH" -f S16_LE > /tmp/sample.wav 2>/dev/null && sox -t .wav /tmp/sample.wav -n stat 2>&1 | grep 'Mean delta:' | cut -d: -f2 | sed 's/^[ ]*//')
ts=$(date +%s)
if (( $(echo "$stats > $MEAN_DELTA_THRESHOLD" | bc -l) )); then
mv /tmp/sample.wav "$NOISE_FILE_DIR/noise-$ts.wav" # TODO convert to mp3
fi
rm -f /tmp/sample.wav
echo "$ts $stats" >> noise-stats.txt
done