Hello there,
I have recently started using Arduino UNO to create small projects just for hobby. I want to create a project that records sounds from 10 microphones at the same time, placed in 10 different places in my house using an Arduino. Later I want to be able to edit these 10 sounds in my PC.
I would like to hear your suggestions how to achieve that, and what components you suggest me to use.
On a Uno you can record about 0.3 seconds of audio from one microphone.
Nothing in the Arduino family can do this. I doubt even a Raspberry Pi could do this.
The Teensy 4.1, with extra ram storage chips, might be able to cope with multiple audio signals but not ten of them.
I suggest you revise your specification on this project.
A multiplexer will only pass one audio signal, at any one time, you will not be able to use one to create 10 simultaneous recordings like you said you wanted to.
Well an audio mixer would give you the 10 signals all at the same time so you would have a problem separating out the different channels.
You can get sound cards for your PC, or stand alone devices, that musicians use for making multi track recordings. You can feed different audio signals into those to record at the same time. These however are not cheap. Search in music stores for these.
You can use a "digital mixer recorder" such as the Zoom L-12 to record up to 8 microphones.
Each channel is recorded simultaneously to it's own WAV file on an SD card.
thank you for your suggestion. What if I can create a 10-channel mixer using electronic components and to add as inputs 10 audio jack cables connected to 10 microphones? is that feasible?
Thank you, this is interesting but it seems very complex and a bit out of my goal.
Any experience on how to built a 10 channel audio mixer ? Any electronic circuits to suggest ??
If you make/buy an ordinary audio mixer then you end up with a single combined output signal. (or two if stereo).
You no longer have the 10 separate signals, which was one of the original requirements.
Grumpy Mike has already pointed this out in post #9.
So as far as I understand the only solution is to switch to the Audio-sound processing using professional audio equipment? Did anyone try to develop a custom made audio mixer and test it?
You do not need an Arduino to make a mixer. There are plenty on line circuits for this. Basically it involves a bunch of operational amplifiers and pots.
I think this thread is going round in circles and you are not addressing the basic problem, nor are you giving us proper specifications.
How long a recording do you want to make from each microphone?
Why do you want to make the recording in the first place?
Why ten microphones?
What are you going to do with all the data you record?
Do you want to record silence, or do you only want to record when there is something is making a noise?
So far your project does not make sense. I guess this is an X-Y problem. Look up what that means.
I think that making an audio mixer is the easy part.
The difficult part is using a fast multichannel ADC to sample the audio signal and then store the results in real time, for subsequent analysis/playback.
Yes maybe you are right, I didn't explain very detailed my scope. I want to place 10 microphones in 10 locations and I want to record a recording of about 10 seconds from each microphone (simultaneously) when I give a recording command either using a button or any enabling signal or something similar. The number 10 is because I have 10 locations. Then I will increase this number to 16 if I manage to achieve that with 10.
Then, as soon as I have the 10 recordings in any format I will process them using a software like Matlab or similar to make some comparisons between those 10 sounds. I want to be able to plot the frequency of the signals, magnitude, spectrogram etc.. and I want to make comparisons between them and so on.
I dont want to record silence. I want to record when I enable recording. I don't want to detect the presence of a noise. I what to record what sounds in those 10 seconds.
I bought an Arduino UNO and few Capacitive Electret Microphones for that purpose.
That sounds like 100 microphones. I guess that you just mean 1 microphone in each of 10 places.
So 10 seconds of voice quality sound will take about, 10K of read/write memory. The total amount of read/write memory an Arduino Uno has is 2K, and that is for everything, like variables and the push down stack (used in return addresses for functions). So to do this on a Uno you would have to add an external memory chip.
Which means 10 Arduinos (Uno or classic Nano) with external memory chips. Or perhaps three Teensy 4.1 boards.
So are you looking to identify a word or a speaker? Both of these are very difficult projects and the success rate you would achieve, even with access to internet resources is not as good as you will hope it to be. This, I think, is the Achilles heel of your whole project.
A bit woolly and doesn't address the question of what your final aim is for this project. Why are you doing this?
I see the difficult part is in getting the recorded samples back to the computer. Are you planning to use wireless connections or wired connections. Either way you will only be able to send one set of recordings at one time. So the time between when you can activate the recordings will be limited. So how often do these recordings have to be made?
Firstly thank you so much for your time to give me all these valuable information.
I'm not talking about 100 mic but 10, one in each location.
By saying simultaneously I mean that, I will have an enabling signal/button that will start and stop the recording for all the 10 mics at the same time. I thought that I would be able to connect 8 mics in one Arduino UNO since it has 8 analog inputs on it. So I was thinking of using 2 Arduino UNO.
At an initial stage I want to be able to capture a 10 sec recording from these 10 locations, whatever the sound is. At the moment I cant give more details about the final use of these sounds.
I`m planning collect together these microphones using wires to the Arduino and then from the Arduino to the PC I will use whatever is more simple and appropriate for the volume of the data.
Regarding the activation of the microphones, l assume that I will be enabling a 10 sec recording for just a single time and then it stops. Then I will be able to send another activation signal whenever it is possible. (maybe after few minutes)