Uni-Directional Electret Microphones and an Arduino
The circuit you show leaves out an important detail for using electret microphones:

Electret microphones need a source of DC to operate.  The circuit you show left that out.

The circuit in the question you linked to shows how it is done:



R1 provides the needed DC to the microphone.  It also shows both connections for the microphone.



Getting a functional amplifier is just the beginning.  

The Arduino is a poor choice to do digital signal processing (DSP,) but you would need to do a lot of signal processing in the Arduino to do what you describe.

Reasons the Arduino is a poor choice:


It doesn't sample at a consistent rate - at least not if you use the standard libraries.
Its processor isn't set up for DSP type stuff.  It has a general purpose processor, and not a terribly fast one.  Your PC or a DSP chip could handle 16 streams of audio simultaneously without you having to get overly creative with your programming.  Getting an Arduino to do it would take a lot of skill - if it could be done at all.
The Arduino has very little RAM, but you need RAM to do any kind of serious processing of audio.  Doing 16 fast fourier transformations would require enough RAM to hold your audio and the results for 16 channels at once.
Even if the Arduino could sample 16 channels at a steady rate, it would probably be too low for what you want to do.  One way to handle more channels is to sample the audio at a lower rate.  If you do that, though, you lose bandwidth.  That is, you will lose the high frequencies from the audio.


If all you want is to detect the direction of the loudest noise, then there's a simpler way.  It does require more hardware, though.

What you could do is to detect the volume directly in hardware, and sample that.  The volume detection can use the full bandwidth of the audio.  You use an amplifier to get  things to a workable level, then you have a peak detector.  You sample the output of the peak detector.

That way, you don't have to sample very fast but you do get the results of sudden changes in volume.

You do, however, have to build 16 amplifiers and peak detectors. 

You could build like 16 of these:







simulate this circuit &ndash; Schematic created using CircuitLab

That is a peak detector built around an opamp.  The values for the parts are just "eyeballed" and may not work particularly well.

The circuit makes the following assumptions:


You are using a bipolar power supply. Say, plus and minus 10 V.
You are using a typical electret microphone.
Audio quality isn't important - we're only after the peaks, after all.


Use pretty much any opamp you like.  Something that operates on dual rails, and that can give you about 5V on the output when operated from the voltage rails you choose.

You can give it some amplification by changing R1 and R2. Raise R2 or lower R1 to get more amplification (make quiet sounds louder.)

The output is a (slowly) changing DC that follows the peak of the sound that the microphone picks up.  Sudden changes appear immediately at the output, and then slowly die when the sound goes away.

R5 and D2 and D3 are a bit of protection for the Arduion analog input.  They keep the voltage from exceeding the allowed input range of the Arduino.  You can leave them out if you are certain the combination of sounds and amplification will never get above 5V.

You can use a quad opamp (4 amplifiers in one chip) to keep the part count down.

It is not much more complicated than your single transistor amplifier, but I think it will serve your purpose better.  The results will be more consistent (the amplification of a single transistor amplifier circuit will vary a good bit for each transistor,) and it will greatly reduce the amount of stuff the software in your Arduino has to do.

Sample all 16 maybe 100 times a second, and you'll get a useful indication of where the loudest noise is.



To make it clear, here's what things look like:



The "sound" trace shows what some music "looks" like to a microphone - that's the voltage out of your amplifier.

The "peak" trace shows what the peak detector makes of it.  As you see, it changes slower.  In the circuit I posted, any sudden change would show up immediately, then drift back down to  a lower level.  So, you have plenty of time to detect a loud noise, even if it is very short. And, you don't have to sample at a fast rate to see those short events.  The detector "stretches" then so that you can still see a loud event for while after it has happened.