Creative Commons images are CC BY-NC-SA 3.0

Description: The seven band graphic equalizer IC is a CMOS chip that divides the audio spectrum into seven bands. 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.25kHz and 16kHz. The seven frequencies are peak detected and multiplexed to the output to provide a DC representation of the amplitude of each band. No external components are needed to select the filter responses. Only an off chip resistor and capacitor are needed to select the on chip clock oscillator frequency. The filter center frequencies track this frequency.

Other than coupling and decoupling capacitors, no other external components are needed. The chip supply can be between 2.7 and 5.5 volts with 5 volts providing the best performance. The device has very low quiescent current (less than 1ma typical) for portable audio devices. the multiplexer is controlled by a reset and a strobe, permitting multiplexer readout with only two pins. The multiplexer readout rate also controls the decay time (10% decay per read), so no external pins are needed for this function.

Features:

  • Low Power Consumption
  • Only Two External Components
  • On Chip Ground Reference
  • Switched - Capacitor Filters
  • 3.3 or 5 Volts Operation
  • 20 dB of Gain
  • On Chip Oscillator
  • Output Multiplexer
  • Variable Decay Time
  • 8 Pin DIP Package

Documents:

Customers Also Purchased

Customer Comments

  • Wrote a tutorial that may be of interest: http://tronixstuff.wordpress.com/2013/01/31/tutorial-arduino-and-the-msgeq7-spectrum-analyzer/

  • just a warning: don’t buy these chips on ebay even though those are cheaper. I bought two and they were both defective. Each channel was broke (tons and tons of noise, completely unusable). Someone else had the same problem, so my guess is that an ebay vendor (or a few of them) is selling defective chips. at any rate, stay away from them. I wasted days trying to troubleshoot them.

  • I’m trying to hoop up the msgeq7 to electret microphone (I’ve tried both sparkfun’s adafruit’s microphones).

    I’m hooking it up as follows:

    Pin 1 - 5v (.10uf between pin 1&2) Pin 2 - Gnd Pin 3 - A0 (Arduino) Pin 4 - D4 (Arduino) Pin 5 - .1uf cap to OUT/AUD of the electret microphone Pin 6 - .10uf cap to GND Pin 7 - D5 (Adruino) Pin 8 - through two 100kohm resisters to power, 33pf cap to 5v

    I’m getting numbers from 40-200 on channel 0 and 6 and number around 830-930 on channels 1-5.

    that seems pretty constant regardless of my music volume

    Any clues?

  • Where can I find this in a smd package?

  • i’m reading through the datasheet and description, and i m getting a bit confused.

    1. is the output a steady dc output at a certain level or does it oscillate.
    2. can you lock the frequency it responds two or does it have to cycle between them.

    Thanks -Joshua

  • I had good luck with this chip by running the input from my 3.3v powered electrete microphone through an op amp set up as a unity buffer, and then through a second set up as a log amplifier (pair of diodes between output and inverting input) to implement kind of auto gain control. Make sure to use an op-amp that can go rail-to-rail and play nice with low voltages. Try various types of diodes to change the volume gain curve. Then in software I implemented auto muting and un-muting of channels so little pops wouldn’t show up occasionally, combined the data from the upper two channels since my microphone did not capture much high frequency, and added some additional level normalization. Next time around I want to try a microphone with AGC built in, and see if that is easier.

    Here is my code and schematics: https://github.com/Swap-File/tron-suit/tree/master/Jacket

  • How can I still listen to music from the same audio source, when I already have it connected to this chip? (How can hear the song at the same time the song is been processed by this chip?) What parts do I need for that?

    • The MSGEQ7 has a high input impedance. It doesn’t take the entire signal. it merely samples it. You can pass the signal to a different part with the chip merely being connected by its 1000pf capacitors to the signal.

      Take a look at the “Spectrum shield” here on SF. its a arduino shield that does pretty much what you request. Its schematic should show how easy it is to use this chip!

  • I have a problem with my set up. I have followed the spec sheet circuit, and hooked it to an arduino with code from http://nuewire.com/info-archive/msgeq7-by-j-skoba/ (I added the following lines to the void loop to bring the numbers down a bit): int PWMvalue = map(analogPin, 0, 1024, 0, 255); // scale analogRead’s value to Write’s 255 max if (PWMvalue < 50) PWMvalue = PWMvalue / 2;

    The problem is that I am getting readings that are all over the map, regardless of the presence of an audio source. Here are a few lines from the serial readout without audio: 99 0 255 415 185 267 129 73 0 201 361 185 129 115 129 320 441 376 413 369 281

    Is there a problem with my chip, the circuit, or the code? I’m a bit at wits end here.

    Thanks!

    • http://tronixstuff.wordpress.com/2013/01/31/tutorial-arduino-and-the-msgeq7-spectrum-analyzer/

      Hi, Have you tried the code found in this tutorial? Since you have 2 units that are both acting incorrectly, it is likely a code error. Thanks

  • Is the MSGEQ7 DIP package eagle part available in the sparkfun libraries? I found a MSGEQ7 but I am not sure if it is surface mount of DIP.

  • When using a 200k resistor and 33pf capacitor to select the oscillator frequency, what frequency should I be measuring on pin 8? Would I see 165khz like specified in the datasheet? Or is that frequency only present somewhere else internally on the chip?

    • Note: The MSGEQ7 chips I ordered from eBay were all defective, replacements from sparkfun worked perfectly. Be careful, or you might waste time troubleshooting defective chips!

      • I second this. The 2 chips I ordered from ebay had ridiculous amounts of noise on each channel that made them completely useless, despite adding noise filter caps. Both chips had the same problem. I spent days trying to get them to work. Anyway, I realized what happened thanks to your comment. I bought 2 new chips from sparkfun after reading this. Hopefully they’ll work much better than the ebay ones -_-

  • Put it in stock literally the day after I bought it from eBay. Too bad for you guys I guess :(.

  • can you change the frequencies this chip detects?

    • Yes. There’s an oscillator clock pin (8)

      By varying the 200kohm resistor and 33pf capacitor, you can achieve different oscillator timings for the bandpass filters, essentially shifting the detection/filter range down/up.

      • Mixed-Signal integration verified that there would be no problems shifting the range.

        “The formula is: fo=1/(R*C) Hz

        The clock to corners are:

        Filter 1: 2620:1 Filter 2: 1030:1 Filter 3; 410:1 Filter 4: 156:1 Filter 5: 66:1 Filter 6: 26:1 Filter 7: 10:1"

        I’d like to try interleaving two chips for more total bands, I’ll be curious to see if it is noticeable, or if the bands overlap so much it won’t be useful.

  • Does anybody know how to run this off 3.3V? Every schematic I can find has 5V for VCC.

  • I made a project with this. Got it onto Hack a Day
    =)

  • The link to the MSGEQ7 tutorial created by J Skoba is broken, but I have posted a copy on my site at:
    http://nuewire.com/info-archive/msgeq7-by-j-skoba/

  • Is the datasheet here outdated? This is the latest one from the Product Page: http://www.mix-sig.com/datasheets/MSGEQ7.pdf
    The capacitor that should be on the input pin is now 0.1uF as opposed to 0.01uF?

    • That’s exactly what I was thinking when I saw the old data sheet I thought to myself “that .01 uf cap is probably gonna clip my bass response a little.” So I decided I would use use a .1uf when the time came. Then here I see your post and I go look at the new datasheet and lo and behold! They read my mind!

  • I’ve been playing with these and yes you should be able to drive the LM3914 series of chips OK. Each output is fairly linear over 25db. But be aware that the output is refenced at around 500mv, so for best results use an rail to rail opamp to ground reference the output. You would connect the output of the MSGE7 to the positive input of the op amp. Place a 1K resistor from opamp output to negative input. Then connect a 50K pot from negative input to +5V, adjust pot for 0 volts out with no audio input to the MSGE7.
    If you want to run standalone (no micro), things become complicated. You would need to use an analog switch to demux the output into seven outputs. Each output would drive a separate LM3916. This would require a 1 of 8 decoder to drive the analog switch and a divide by seven counter circuit to drive the 1 of 8 decoder (eighth output is not used). The counter would divide the strobe pulses from the timer.
    The timer which drives both the counter and the MSGE7 strobe input could be a LM555. To avoid flicker, set the timer to produce a low duty cycle positive pulse. To adjust decay of display adjust the timer frequency higher for faster decay.

    • No need to drive separate LM3916s. Just use one and a multiplexed 10x7 display (or two 5x7 dot matrix modules) with the anodes driven by a decoder. This is the same method used in the now (sadly) discontinued Velleman Spectrum Analyzer Kit. One bargraph driver and a 1-of-10 decoder (in that design, a CMOS 4017 decade counter). Less parts.
      But still, the design is complex with passive ICs only (no-microcontroller.)

  • If I wanted to use this in an analog audio spectrum display, sending the voltages for each frequency band to power 7 LEDs for example, is there a demultiplexer I could use, instead of reading the values with an Arduino?

  • What’s a “DC representation of the amplitude”? An analog DC voltage between VDD and VSS? That datasheet is pretty rough.
    It looks like this would work great with a set of LM3916s and a demux to make a simple spectrum analyzer

  • This listing is same as COM-10024 which is marked as retired now. What gives? We just lost those 14 comments.

    • This new package is RoHS compliant, while the old one wasn’t. You can still see the comments on the old product page, linked to above.

Customer Reviews

4.5 out of 5

Based on 4 ratings:

5 star
2
4 star
2
3 star
0
2 star
0
1 star
0

Amazing little thing!

Everyone knows what this thing is for - and it works as advertised. If you want a spectrum analyzer without doing all the fancy math in-code, get this thing.

Beware, however, of noise and input sensitivity. I had this champ hooked up to an Arduino with the BOB-09964 microphone and COM-12999 addressable RGB LEDs.

First, the LEDs turned on and permanently burned my retinas. Once I could see again and adjusted the brightness, the “output” was still all over the place. This is due to the sensitivity of the microphone - the chip was just doing its thing. So taking the raw-input from the MSGEQ7 and subtracting 127 eliminated most of the noise. Except for the 63Hz band.

I fought this for hours. Replaced the chip three times, turned off my TV, radio, fans, everything I could think of, but the 63Hz band kept flickering even in the quietest room I could make it.

While sitting there, cooling off from frustration, I hear the soft click of my refrigerator’s compressor turning off - which was in the other room. The 63Hz band light stopped flickering.

Moral of the story - just because you can’t hear it that well, doesn’t mean your device will have the same problem.


one of a kind graphic visualizer chip

I stumbled upon this convenient chip when creating an LED cube. I wanted to turn the cube into a visualizer for music and thought I would have to create individual filters for different frequency bands, BUT I happened to find this beauty and it worked pretty well! It isn’t very hard to get it to work. The only downside is that it is fairly expensive with shipping.


expensive but impressive

The fall off rates for each filter are smooth and even, as shown in the datasheet. When analyzing audio sources, there is a lot of distinction between each frequency band, so this makes for a nice 7 band graphic equalizer display. This chip blew my expectations away, making the steep price worth it.


This piece work out well.

I was happy with speed of shipping. It did not take 1 month like other suppliers.I as like how cheap and small this chip is.