How to GIVE 12 Audio inputs to computr simultansly


well i have choosen a 25ft * 25 ft area, and place 12 MICs at


well i throw any fire cracker for producing a sound/noice so each mic can detect voice and send data to PIC/microcontroller,, in PIC/MULTIPLEXER , data is MULTIPLEXED to 1 signal, and this signal

GOES to PC via serail port or MIC input @ MATLAB or LABVIEW

in LAB VIEW/AMTLAB, 12 signal will be recieved after DE MULTI PLEXING

Now I have seperate the 4 signals having HIGHT VALUES, then i put

ALGO, or calculate the distance or SPOT according to the sound

intensity in EACH MIC!!!

now the PROBLEM i m facing is that how i send 12 audio signals

simultaneously to COMPUTER???? either i use PIC or Multiplexer of DSP KIT or FPGA????

if any one had idea about it, then he must reply the post i shall be thankfull to him



IMAGE is also availible in GOOD QUALITY AT :)

If the goal is just to get the audio into the computer, I'd just recommend an audio interface with lots of inputs, maybe like this one: It's a lot of work to make a good multi-channel audio interface, and why re-invent the wheel, unless you're excited about that part of the project.

Now if you wanted to do a stand-alone embedded device that would do what you're talking about (process the signals and triangulate the positions), then you'd need an embedded solution like Arduino. Except that I don't think Arduino is capable of that without a lot of help (like an FPGA to digest the audio streams and simplify the data first.) You'd be better off with a fast DSP or ARM type micro.

But if you really do want to make an audio interface, I think that would push the limits of the Arduino, but might be possible. The A/D's couldn't read 12 channels multiplexed fast enough, so you'd need an external multi-channel A/D, but even then, you might have a hard time getting the data out to the computer fast enough. The built-in serial communication tops out at 11.5kBytes/s which translates to a sample rate of 1kHz per channel (assuming 8 bit samples, which might not be ideal either) - probably too slow. Someone said that they were able to get 296kBytes/s (3megabaud) by tweaking things a bit, so that might be acceptable (24kHz sample rate for 12 channels). Either way it'd be a challenge, and you might be better off with a faster microcontroller, DSP, or FPGA solution. If you like the AVR microcontrollers of Arduino, the XMEGA series should be up to the task.


I would think that using pulse detection with a timestamp to triangulate the firecracker location would be considerably easier and more precise than trying to measure amplitude. Also, even a high quality microphone has a limited dynamic range, and I'm pretty sure a firecracker going off is going to clip out, making amplitude measurements useless.

For the pulse detection scenario, you would have a minimum of three microphones arrayed around the perimeter of your area. When the firecracker goes off, it's going to reach some of the microphones sooner than others, due to speed of sound. Calculating the difference between arrival times of the pulse at all three (or 4, maybe) microphones should give you the position within, I would say, a few inches.

Also, this way you can use cheap piezo components, rather than expensive audio microphones with high dynamic range. :)