Find all your DIY electronics in the MakerShed. 3D Printing, Kits, Arduino, Raspberry Pi, Books & more!

Make: Projects

Audio Spectrum Analyzer

Create the bare bones of a three-channel audio-spectrum analyzer using only LM324 and LM386 ICs, and a bunch of other passive and optical components! This is a 100% analog circuit, meaning there are no LED bar-graph drivers, and no microcontroller!


Step #1: Create an amplifier

Audio Spectrum AnalyzerAudio Spectrum AnalyzerAudio Spectrum Analyzer
  • The first step of this circuit is to build a 200dB stereo amplifier. (It does not have to be stereo but it is recommended. This does not replace an audio mixer.) This also does not need to be soldered. I only did so because I would use this over and over again. So if you do plan to use it often, it is a good idea to make it permanent.
  • This step requires: LM386 (2/2), Green LED (1/13), Stereo Jack (2/2), Screw Terminals (2/2), .22uF capacitor (2/2), 10uF capacitor (2/3), 100uF capacitor (2/2), 470 ohm resistor (3/24), 4.7k ohm resistor (2/3).
  • No schematic for this part of the circuit can be given (sorry!) because my design software (LTspice) does not have the LM386 listed. (Will not work without an amplifier.) If you cannot find a schematic you will have to rely on my horrible descriptive talents in hopes of making one. To make a stereo amplifier, it is required that you make two mono-channel amplifiers (makes sense, right?) and here's how:
  • Start by placing a LM386 anywhere on the board that has plenty of space. Connect pin 4 and pin 2 to V- and pin 6 to V+. Next, place a 10uF electrolytic capacitor between pin 1 and pin 8. Make sure that the cathode (- side) of the capacitor goes to pin 8. (This gives us our 200db gain.)
  • Next place a 470Ω resistor between V- and pin 3. Then place a 4.7kΩ resistor between pin 3 and one of the AUDIO terminals. Which one doesn't really matter. Next, place a .22uF capacitor between pins 5 and 6. And finally place a ≥100uF capacitor between pin 5 and your output. And that should work as a mono-channel amp.

Step #2: Construct the filters

Audio Spectrum AnalyzerAudio Spectrum AnalyzerAudio Spectrum Analyzer
  • In this step we have three bandpass filters that take in the audio and we only use portions of it to create a signal and send it to the next step.
  • This step requires: LM324 (1/7), 10pF capacitor (3/3), .01uF capacitor (2/2), 1uF capacitor (1/1), 10uF capacitor (1/3), 10Ω resistor (1/1), 69Ω resistor (1/1), 560Ω resistor (1/1), 1.2kΩ resistor (1/1) 4.7kΩ resistor (1/3), 5.6kΩ resistor (1/1), 22kΩ resistor (3/3), 180kΩ resistor (1/1), 390kΩ resistor (3/3).

Step #3: Create the display

Audio Spectrum AnalyzerAudio Spectrum AnalyzerAudio Spectrum Analyzer
  • NOTE! This part of the circuit CAN be replaced by the LM3916 and the LM3916 ONLY! With that in mind, the final step is creating the display. This takes the audio and amplifies it a little more and then displays it as a bar-graph. You may need to use a wire cutter/stripper.
  • This step requires: LM324 (6/7), 2N4401 NPN transistor (3/3), .47uF capacitor (3/3), Green LEDs (12/13), Yellow LEDs (9/9), Red LEDs (3/3) 470Ω resistor (24/24), 1kΩ resistor (3/3), 10kΩ resistor (24/24), 56kΩ resistor (3/3), 270kΩ resistor (3/3).
  • The schematic given is for only 1/3 of the display. It will need to be made three times. Also, this circuit was designed to run on 5V. Increasing the voltage would require you to change things around a bit. Use only 5V to get the same end results I have gotten.

Step #4: Extend the circuit

Audio Spectrum Analyzer

These are formulas to change values or extend the circuit. You can use these to create more bands and choose what values to use! Make sure you use a calculator!


Every part on the parts list is a part on my circuit board. If you change something, something bad (or good) might happen. Working with op-amp band-pass filters, a slight change in the values given will throw off the results. HOWEVER: You may not end up using all the parts (e.g., screw terminals) because you may not solder your LM386 set on a board. I only included them because I did solder them. And they are used for power and signal out. But other than that, nothing should be unused or traded out. You might also not use the second audio jack. It is not mandatory, but it would be silly if you can't hear the music/sound with your new spectrum analyzer. The second jack allows you to plug in your speakers while they are disconnected by the first jack.


  1. Alex Hand says:

    Yes it is. If you look at the given schematic for step 3, “Creating the display” you’ll see the OPAMP comparators and their respective voltage dividers. All you would need to do is add more OPAMPS to the 10K resistor chain.

    Just reply for more questions.

  2. Alex Hand says:

    Oh crud. You’re right. You will need 8; 470ohm resistors for each band (8*3 = 24) Thanks for pointing that out!

  3. SUJING says:

    One more question, all the ICs (LM386 and LM324) are power up with V+=5V and V-=ground?

  4. Alex Hand says:

    The voltage you are using may be to low. I also had a problem where 5V couldn’t get the top (red) LED’s to light up. But when I went to nine volts, it worked fine. So try upping your circuits voltage a little bit. If that doesn’t work, then adjust the resistor R10 in the bar graph schematic and/or R2, R7, and R11 in the filter schematic. Adjusting R10 increases the bargraph sensitivity, but may cause LED the leading LED’s (Like LED 1, and LED2) to remain permanently on. Adjusting R2, R7, and R11 increases the AMP sensitivity, so it outputs a bigger waveform.

    I hope that helped. Thanks for trying my project! I’m glad someone actually got something out of this. :)

  5. Alex Hand says:

    The amplitude of the input waveform is likely to be clipped using low voltage supplies because the amplification will be so high. The safest voltage I would recommend you go to would be 15 volts. Then clipping is unlikely. Or, to control the gain of the 386, add a stereo control potentiometer to both capacitors on both LM386′s. This will allow you to change the gain from ~20-~200.

  6. SUJING says:

    Thanks again, i successful done that with red LED light up (i forgotten to put 56k resistor in the chain before)^^ Cheers~~

  7. Alex Hand says:

    That would be the circuit common (ground) LTspice doesn’t have the favored ground symbol… :(

  8. Fatima says:

    Thanks for answering my first question. :) I have a second question (if you don’t mind). How can I make the mono into stereo? and the pin outs for the stereo jack please. :( Sorry for asking so many questions. I’m just a beginner. :D

  9. Alex Hand says:

    Technically, it is stereo. The two LM386′s amplify the audio and then mix the audio together. This is just then sent to a “mono” read out.

  10. Alex Hand says:

    This circuit is VERY versatile. You can add as many bands as you’d like and adjust sensitivity. The only hard part is getting the filters to be stable and perfect to your preference.

  11. Alex Hand says:

    Those resistors are to set the GAIN of each OPAMP. You can adjust their sensitivity by changing their values. Here is the formula: 1+(r2/r1) aka 1+(390k/22k)

  12. Alex Hand says:

    Sorry to hear about that. From what it looks like, you either have voltage going into the signal pin, or your pull down / filter resistors are not in properly / at all.

    The best thing I can tell you to do, is scrap the project, and start over from scratch. Have all the same parts (I would pick the BASS filter) and lay them in piece by piece. But with the given information, I can’t tell if the problem is in the display unit, or the filter itself.

  13. Alex Hand says:

    The NPN serves as nothing more than a signal amplifier and buffer. If it were to be removed, if I remember correctly, the bargraphs may not light up all the way unless the input is cranked up to a stupid amount. But it should still work regardless.

    The transistor is not a current or voltage limiter, it is in fact the opposite, a voltage signal amplifier. However, with some extra circuitry it can be used as a constant current and/or as a pass transistor in a voltage regulator. But by itself, it is a signal amplifier.

  14. Alex Hand says:

    It looks like my Gmail also didn’t notify me about your comment either… But the circuit will NOT work very well without the amplifier. What it does is lowers chip count (you would probably need two more OpAmps) The amplifier does not drive a heavy load, like say an 8ohm speaker, however, since the LM324 is a slow OpAmp, driving up the gain would ruin the bandwidth.

    If you want to work around it, here is something you could try:

    Get two OpAmps and set them op as a x10 chain in series with each other. This will give you a x100 gain(10×10) Then add the filter stage. That should work well, but it will not work as cleanly as having a class AB amplifier before it. There will be a lot more distortion in the output.

  15. Rostislav Hribal says:

    Hello, why did you put 470 ohm resistor next to each led? Isn’t it too high? In ideal case OpAmp give us 5V, so for 3V led it give current about 4mA. Probably I dont understand, please response. Thanks

  16. Sam says:

    How do the outputs from each 386 connect to the filters?