What to buy for multiple-input audio recorder?

I'm interested in building a small project which will allow me to record up to 4 different microphones at once and store the recordings on a USB flash drive.

I am just wondering which Arduino products I need to purchase in order to have all the components I need.

Thank you.

While it’s certainly possible, this is not something a microcontroller like an Arduino is designed for. The analog inputs of an Arduino are way too slow, and don’t have the required bit depth to be of any use to record audio. They are also multiplexed: there’s only one Analog to Digital Converter that can be connected (internally) to any of the analog pins. This means that you have to share this ADC between 4 channels, making it even slower.

You could use an external ADC (I²S or SPI maybe?), but I’m not sure if a “normal” Arduino is going to be able to handle all this data (4x 2 bytes x 44100/s) …

Teensy has some great audio support, but only supports 1 stereo I²S ADC.
https://forum.pjrc.com/threads/29142-Multiple-Stereo-Inputs-on-Teensy-3-1-with-Audio-Shield

A Raspberry Pi with a 4-channel USB ADC (or 2x stereo) could do the trick maybe?

IMHO, it’s much better to get a Zoom or Tascam recorder. It’ll cost you a couple of 100 bucks, but it’s a solid piece of equipment with high-end pre-amps, low noise, and will give you many times the (sound) quality of anything you could have built yourself.
But it’s much more fun to try it yourself, of course …

Pieter

So do you think grabbing a Teensy board and stacking 4 audio shields onto it would do the trick?

Thank you so much for your help.

Probably not. Have you read the PJRC thread I linked to?
Teensy 3.5/3.6 supports multiple I²S connections:

https://www.kickstarter.com/projects/paulstoffregen/teensy-35-and-36:

  • Native (4 bit SDIO) micro SD card port
  • I2S Audio Port, 4 Channel Digital Audio Input & Output

The ESP32 has 2 I²S channels, and an SD interface, but that's not really the main focus of the chip (it also has WiFi and Bluetooth).
It's not really beginner-friendly. You can program it using the Arduino IDE, but I don't think that the Arduino core has I²S support (yet?).

A Raspberry Pi is definitely going to be much easier.

Pieter

kjdion84:
So do you think grabbing a Teensy board and stacking 4 audio shields onto it would do the trick?

The big problem is the amount of data it has to process.
Assuming standard 44.1 kHz sampling rate at 16 bit resolution, four inputs provide you with over 350 kB/s of data to read, process (not much) and write out to a micro SD card. So effectively it has to handle over 700 kB/s of total data. That's a lot of work for a 16-20 MHz microprocessor, probably simply too much. You'll be better off with a more powerful system like the Pi.

Or if you want good sound quality and ease of use, get a dedicated device. Added bonus: it Just Works.

wvmarle:
The big problem is the amount of data it has to process.
Assuming standard 44.1 kHz sampling rate at 16 bit resolution, four inputs provide you with over 350 kB/s of data to read, process (not much) and write out to a micro SD card. So effectively it has to handle over 700 kB/s of total data. That's a lot of work for a 16-20 MHz microprocessor, probably simply too much. You'll be better off with a more powerful system like the Pi.

Teensy 3.6 has a 180MHz 32-bit CPU, so it should be able to handle that. It also has SDIO support, that gives you an SD card interface with 4 data lines instead of 1 (SPI mode).

wvmarle:
Or if you want good sound quality and ease of use, get a dedicated device. Added bonus: it Just Works.

+1

Pieter