Nearing End of the Tether with audio input

Over the past three months, I have posted numerous messages with many helpful responses. Unfortunately, there comes a time when one has to face the obvious fact; I seem to lack the skill necessary to pull this one off, even though I have learned a great deal in the attempt. The circuit simply will not create a useful analog signal, even with a preamp. I’m not doubting the author’s ability, but at this point, an alternative approach would be welcome. If you have experience with a different opamp/circuit for analog audio input, please post a schematic. Thank you.

Here might be a good example. They include a schematic link in the documentation section. Still think it would require some rectification and filtering before wiring directly to an Arduino analog input pin.


The MEMs microphone breakout board from Sparkfun works pretty nifty.

Thanks. I have Sparkfun's mic breakout board but am having difficulty reading directly from it. I will order the other board as you suggest.

This actually is a bit like rocket science... You need to understand a lot of things before you really understand how to reach your goal.

Motorola, Analog Devices and many others have an entire Signal Processing divisions and product lines. You have a rudimentary implementation so you will have limited success. The author you refer to clearly was dealing with monophonic sounds and did mention that it had limited use with speech or other polyphonic sounds.

So the question I have now is... what are you trying to do with the digital version of the signal after it exits the ADC in the CHIP?

Our school cafeteria needs a noise monitor that turns on green, yellow, and red lights in response to three thresholds. Every attempt so far yields a narrow band of data, too few digits to separate, even with smoothing, and hysteresis. I was looking for a round about method that uses a window comparator, or LM3915, to light LED's coupled with LDR's for digital input to Arduino. Do you think this approach has merit?

How are you treating the readings? Taking off a zero offset / squaring the values? Or just relying on simple peak detection?

This is one of many filters;

filter_reg = filter_reg - (filter_reg >> FILTER_SHIFT) + filter_inputRED;
filter_outputRED = filter_reg >> FILTER_SHIFT;

I think I have discussed your project with you in the past. I believe I said something about the problem being the dynamic range needed for the purpose you wish to attain.

The problem could be better explained if you could express your three threshold values in audio sound units dbm (which you probably can't). However if you borrow a audio sound meter instrument (Radio shack use to sell them) you could measure the actual room noise and write down the readings of the three threshoulds values that seem correct to you, and then you could proceed with the project.

What you most likely require is a log amp before any A/D threshold switching decisions. Sound can cover a large dynamic range that a linear op amp just is not going to be able to cover in the limited Vcc voltage range you have available. At least that's my prior and present impression of the application problem.


I was thinking a little while in something like frankcalzia said, for learning purposes. Please correct me if Im wrong but a despite of anything you think to implement, even after any DAC interface, it´s not suitable for sound pressure measures (unless you only need to detect peaks without any dB(l) readings) , things like this just because Arduino lacks resolution and proccessing power to do it, 8 bits is just not suitable. This makes sense ?

Anyway a nice start point for this incredible subject are those kits like unfortunately not at my (knowledge) range at the time.

8 bits is just not suitable

Well we have 10 bits resolution on the A/D

A DSP board is nice but overkill for this project. The problem the OP has is that he has not measured the size of the input he is trying to categorise. Then he has to either do a peak measurement with some peak measuring hardware or software or an average measurement. It may well be that the dynamic range exceeds 10 bits resolution.
Also I don’t think that earlier advice about the suitability of the amplifier used was followed.

Finally the subjective difference between a loud noise and a measurement of a loud noise are not the same thing. I ran into that effect when a student of mine was trying to measure noise from a wind turbine farm and found it hard to actually measure any difference between the turbine noise and the wind noise with professional sound measuring equipment.