Recording 24 bit audio on a Raspberry Pi
I am planning to use pair of Raspberry Pi 3 (running Raspbian Buster), one on each side of a large room to record live shows at our place here in Rio. This is mostly for audience feedback as the musician's output will be captured directly from the mixing table. I haven't used it live for now, but I will soon.
The goal is to record events by Brazilian artists like this one Raulzito e Raul Seixas or this one with Amaro Freitas, Isadora Melo, Luna Vitrolira. Those where filmed with several iPhones with the Filmic Pro app, MoondogLab's 1.33x anamorphic lens and finally edited in Final Cut Pro X on my old trusty trashcan Mac Pro.
Samson's G-Track Pro are nice USB microphones which you can get for about 100 USD each and which seem to play nice while powered from the Pi's USB port. I used a 3A power brick. So something weaker may not work reliably. And yes, 24 bits vs 16 bits isn't audible to the human hear but it means a lot when editing. Much like 12 bit per components video is much easier to edit than its 8 bit counter part. It adds some welcome margin.
Since it took me quite a while to find the proper parameters / setup I will be sharing them here.
This will record one hour, using the first USB microphone, in 24 bit (this is actually 32 bit float which is what worked for me) at 48 Khz.
#Assuming you will use /mnt/sticka as mount path for your pendrive cd /mnt/sticka arecord -d 3600 -D plughw:1,0 -f FLOAT_LE -c1 -r48000 -v -V mono recording.wav
After about a pair of hour of recording... I started seeing "overrun" errors in the console. This is weird because my external USB pendrive (Sandisk) easily did 20 MB/sec on drive when tested, but this constant stream (below 200 Kb/s) ended causing this when the file got big (about 1 Gb.)
Someone in a forum said having an XFS partition rather than ext4 would solve it. It seemed hard to believe... but it is perfectly true. I just installed the XFS tools on the Raspberry, reformatted the external disk and that was it.
So assuming your disk is in /dev/sda (and of course you will lose everything on this disk but I assume you understand this if you know how to open the Terminal).
sudo apt-get install -y xfsprogs sudo umount /dev/sda1 sudo mkfs.xfs -f /dev/sda1 #Assuming you will use /mnt/sticka as mount path for your pendrive sudo mkdir /mnt/sticka
Add this to your /etc/fstab
/dev/sda1 /mnt/sticka xfs defaults,noatime
And mount it back up.
sudo mount -a
I recorded 8 hours continuously with no issues on both machines.