The script and other configurations detailed on this page convert mono files generated by a Tascam DR-680 with a Core Sound Tetramic soundfield microphone to B-format 4-channel wav files. It requires that the Tascam DR-680 is configured to save recordings as mono sound files on channels 1, 2, 3 & 4 and that these channel numbers match the corresponding capsules on the Tetramic. The script also requires that Tetramic calibration files are installed (see below) and the additional installation of the following programs by Fons Adriaensen:
jconvolver-0.9.2.tar.bz2 (includes the necessary utility "makemulti")
Fons Adriaensen provides a free calibration service for Tetramics which generates calibration files specific to each microphone based on data provided with the microphone on purchase. See"TetraProc / TetraCal" and "Calibration service for Core Sound's TetraMic" on this page for further information.
Run the script in a directory containing the mono files. Change paths and configuration filenames in the script as necessary. Use the command line argument --elf to enable extended low frequency response in the b-format output (-3dB at 40Hz) or none to use the default roll-off at 80Hz.
The B-format script is contained in the attachment "mono2bformat.zip" below. Alternatively, copy the following code:
#!/bin/bash
#Converts dated mono files generated by a Tascam DR-680 with a Coresound Tetramic ambisonic microphone to B-format 4-channel wav files. Run this script in directory containing the mono files. Change paths as necessary. Use the command line argument --elf to enable extended low frequency response in the b-format output (-3dB at 40Hz) or none to use the default roll-off at 80Hz.
if [ "$1" = "--elf" ]; then
config="elf"
else
config="def"
fi
[ -d aformat ] || mkdir aformat
[ -d bformat ] || mkdir bformat
for file in *.wav
do
base=${file:0:11}
channelnumber=${file:15:1}
if [ "$channelnumber" = "1" ]; then
command="/usr/local/bin/makemulti --wav --24bit $file"
fi
if [ "$channelnumber" = "2" ]; then
command="$command $file"
fi
if [ "$channelnumber" = "3" ]; then
command="$command $file"
fi
if [ "$channelnumber" = "4" ]; then
command="$command $file $base"
suffix="a-format.wav"
command=$command$suffix
$command
aformatfile=$base$suffix
mv ./$aformatfile ./aformat
if [ "$config" = "elf" ]; then
suffix="b-format_elf.wav"
else
suffix="b-format.wav"
fi
bformatfile=$base$suffix
if [ "$config" = "elf" ]; then
/usr/local/bin/tetrafile --fuma --wav --hpf 20 /home/iain/.tetraproc/CS2293-elf.tetra aformat/$aformatfile bformat/$bformatfile
else
/usr/local/bin/tetrafile --fuma --wav --hpf 20 /home/iain/.tetraproc/CS2293-def.tetra aformat/$aformatfile bformat/$bformatfile
fi
fi
done
rm -r aformat
exit 0