Hey everyone,

i'm currently working on a project where I make a small object move towards a sound source. The object will be on a rail and only moves in 1 dimension (left or right). At the moment i'm trying to find out how to localize the sound source in relation to the object. So basically i'm looking for the following:

  • localization of a sound source, does not have to be extremely accurate (just left or right)
  • localization based on volume (no phase shifting etc.: too complex and expensive)
  • arduino compatible
  • super cheap (since I'm aiming at making a bunch of them)

At the moment i'm using two omnidirectional electret mic breakout boards from sparkfun: https://www.sparkfun.com/products/9964 and ordered some from deal extreme: http://dx.com/p/arduino-microphone-sound-detection-sensor-module-red-135533 (did not arrive yet so no results so far)

I have directed the two mic's in opposite direction about 10cm from each other. I made a simple cone (squared) to make them as directional as possible. It is working not too bad, but I hope i can improve the reliability and sensitivity.

http://s14.postimage.org/r87ldeok1/DSC_0034_copy.jpg http://s11.postimage.org/9kjjc8fzn/DSC_0043_copy.jpg

What are the best ways too build this systems and what kind of cones should I make to get electret microphone as directional as possible (shape- and material wise)

3 Answers 3


You mention that you don't wan't to incorporate phase at all—I'm guessing that you mean you don't want to design a kind of phase shift based on delay? Keep in mind that, unless your two mics are placed in the exact same point in space, there will be some difference in time arrival (aka, a phase difference) between the two signals. This is a very good way to create a sense of directionality! It is complicated, but it's completely free!

A very important question: what is your sound source? More specifically, what sort of frequency spectrum does your sound source have?

Remember that we perceive direction much more effectively at higher frequencies than lower ones because lower frequencies have longer wavelengths. For example, it just so happens that the wavelength of 1000hz is a little over 1 foot. If your mics are less than a foot apart, they will not be able to effectively convey a sense of direction for frequences 1000hz or lower. Our ears are a good example, actually. Try closing your eyes and listening to a 250hz sine tone while spinning in a circle. Because your ears are much less than 4 feet (the wavelength of 250hz) apart, it will be fairly difficult to discern a location of the 250hz source. Turning a pair of omnidirectional mics in opposite directions won't help much but putting some air between them certainly will.

Your cones are helping with directionality to a certain extent by blocking out the highest of frequencies from the sides and rear of the mics. The lower in frequency you go, though, the easier it is for sound to diffract—or bend—around objects like your cones. Ultimately, the cones won't block anything below 10khz (my guess, anyway).

What you might consider doing next is putting some kind of absorbative baffle in between the two mics. This is a fairly standard technique that engineers of classical music use, called the "jecklin disc" technique. The disc is basically an absorbtion baffle placed between two omnidirectional mics. By blocking the transmission of higher frequencies between the two mics, it gives the illusion that the mics are, in fact, directional. A picture can be found HERE. The larger the disc, the better the effect. It doesn't have to be anything fancy either. If you have some spare insulation sitting around your house, you could cut out a couple rectangular chunks, press them together and wrap it all in some burlap or other loosely-woven fabric. That whole setup would probably cost you around $10.

Another pretty good example of a very common jecklin disc setup: two ears and the big, useless thing in between 'em ;).

Best of luck!

  • Hi Matt, thank you for your extensive explanation, very useful. Before I got your answer i already worked on another solution. I 3d printed a miniature shotgun funnel, based on some DIY instructions i found on the internet. s10.postimage.org/s2w3xcwx5/Photo_Oct_11_14_18_58.jpg And I was surprised that it works already much better than the cones i made before. I think if i combine this with the solution (or similar approach) you suggested i might come close to what I want to achieve. Thanks again
    – Ruben
    Commented Oct 11, 2012 at 12:58
  • Glad to hear it worked!
    – Matt Glenn
    Commented Oct 11, 2012 at 14:50

I'm curious why you used a square/rectangular cone instead of a round one?

  • That was because the pcb of the speaker was square and that was a quick and dirty solution to quickly test it. Meanwhile I made a miniature DIY shotgun cone which is round and works way better: s10.postimage.org/s2w3xcwx5/Photo_Oct_11_14_18_58.jpg
    – Ruben
    Commented Oct 17, 2012 at 10:45

I think you should look at phased antenna arrays to get your ideas. waves behave pretty much the same no matter what the wave. if you use two microphones figure out the delay from whatever direction then delay one signal or advance the other to place both microphones exactly atop each other then sum the signals of both microphones. it depends heavily upon knowing both the actual sample rate and velocity of sound. adding samples to one side of the byte will advance and adding it to the other will delay.I know of no software created to let you do this within a driver piece of software.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.