3D Stereo Audio Spectrum Visualizer




Introduction: 3D Stereo Audio Spectrum Visualizer

In one of our earlier instructables, we built an Arduino based Audio Spectrum Visualizer using our bi-color LED Matrix modules for the display. You may check it out at https://www.instructables.com/id/Arduino-based-Bi-color-LED-Matrix-Audio-Spectrum-V/

A few months ago, we designed jolliCube, an 8x8x8 LED cube. We are very encouraged to know quite a few entry level electronics hobbyists has bit the bullet and managed to successfully complete their 8x8x8 jolliCube instead of working on a smaller LED Cube as their first cube. You may find our LED cube project at https://www.instructables.com/id/JolliCube-an-8x8x8-LED-Cube-SPI/

Recently, we stumbled upon a 3D Audio Spectrum on Analyzer on YouTube. We were mesmerized by it.

You may find this YouTube video at https://www.youtube.com/watch?v=Vn39txtVIHc

In this instructable, we will use the electronic circuit we put together from our Arduino based Audio Spectrum Visualizer project to drive our jolliCube re-arranged with the 2 sets of 3D 8x8x4 LED Matrix displays placed side by side to form a 3D Stereo Audio Spectrum Visualizer Display.

To build this project, basic electronics knowledge with electronics component soldering skill and some knowledge on using the Arduino are required.

You may view the following YouTube video to see what we will be building.

Step 1: Building the 3D LED Matrix Displays

To build the 2 sets of 3D LED Matrix displays is to practically build the entire jolliCube up with only some steps omitted.

Follow main Steps 1 to 6 in our instructable for JolliCube - an 8x8x8 LED Cube (SPI) to build the 2 sets of 3D LED Matrix displays but omit steps 5, 7 and 15 at Step 5: Assembly Part 2 - Complete the LED Cube with control circuit if you do not intend to use them to create an 8x8x8 LED cube.

Step 2: Building the Audio Spectrum Visualizer Control Board

Our 3D stereo audio spectrum visualizer shall be driven by an Arduino Nano. We will basically be using two MSGEQ7 IC chips made by Mixed Signal Integration to separate the audio into bands.

The MSGEQ7 IC is a single channel seven band Graphic Equalizer Display Filter. By feeding an audio signal to it, it will filter out seven frequency bands centered around 63Hz, 160Hz, 400Hz, 1,000Hz, 2,500Hz, 6,250Hz, and 16,000Hz. The seven frequencies are peak detected and multiplexed to the output to provide a DC representation of the amplitude of each band. All we need is to read these DC values with the microcontroller analog input and output the spectrum to the 3D LED Matrix displays. We need two MSGEQ7 ICs here, one for the left and another for the right audio channel. The wiring connection diagram above shows how a MSGEQ7 IC is typically connected.

The two sets of 3D LED Matrix displays completed in Step 1 are connected together with the two MSGEQ7 ICs and micro-controller as shown in the wiring diagram above. An Arduino Nano is used here to control the entire electronic circuit setup. Note the use of 12Kohms pull-down resistors on the LOAD input pins for the 3D LED Matrix displays. When power is first applied to the micro-controller or when they are reset, their I/O lines float. The 3D LED Matrix display's MAX7219 ICs can see this as valid data and display garbage until the micro-controller gains control. The pull-down resistors prevent these problems.

Except for the two sets of 3D LED Matrix displays, we hook up the entire circuit on a small piece of perf-board around 110mm x 30mm. See above for our completed circuit on perf-board. Note there are two 3.5mm stereo audio jack sockets in the wiring diagram. One serves as a stereo audio input and the other is a pass-through output which allows you to connect this Audio Spectrum Visualizer in-line between your audio source and your stereo system.

For those who do not like the hassle of wiring the circuit on perf-boards, we have designed the Stereo Audio Spectrum Visualizer board as a kit set which is available at our Tindie store

The MSGEQ7 ICs are available at reputable stores such as SparkFun. You may be able to find these ICs cheaper at some other stores but most of these cheap ICs have quality issues.

Step 3: Load 3D Audio Spectrum Visualizer Program Code

We have came up with just a single effect for our audio spectrum visualizer. You may work to come up with more variety of effects for your audio spectrum visualizer.

Click here to download jolliFactory 3D Audio Spectrum Visualizer program

Upload the 3D Audio Spectrum Visualizer program to your Arduino Nano. Then connect the Audio Spectrum Visualizer board to the two 3D LED Matrix displays. See the picture above for the connections.

Power up the entire setup via your Arduino Nano/Uno. Any USB port/adapter which is able to supply at least 500mA should be suitable. For our demo video, we connect our Notebook PC's headphone output to the audio input of our Audio Spectrum Visualizer board. Play your favorite song or music and Enjoy the Show!

Step 4: Testing the Audio Spectrum Visualizer

To ensure our Audio Spectrum Visualizer is responding according to our design, we downloaded an Android Audio Signal Generator apps from Google Play to our Smartphone for testing.

There are quite a handful of Android apps around which may also be suitable for testing. Here, we will be using the Audio Test Tone Generator version 1.2.0 developed by Digital Antics. This application comes with preset frequencies which are just right for testing our audio spectrum visualizer which is based on the MSGEQ7 ICs. Basically, we use this application to generate the 7 frequencies ( 63Hz, 160Hz, 400Hz, 1,000Hz, 2,500Hz, 6,250Hz, and 16,000Hz) and input them to our spectrum Visualizer to check that our 3D LED Matrix displays are displaying correctly. Note that one of the preset frequency used for the test is 6,300Hz whereas the actual test frequency is for 6,250Hz. This should not affect our testing since the difference in frequency is not significant.

The apps is quite intuitive for use and so we will not delve into the detail on how we carry out the testing. You may check out the following video on how we carry out the test.

Step 5: Building the Enclosure

You may want to protect your investment after putting in all these hours creating your 3D Stereo Audio Spectrum Visualizer by building an enclosure for it.

We have not built a complete and permanent enclosure for our project yet. What we have here is simply a protective casing made of acrylic sheets with our electronic control board hidden below the base.

We are sure you are creative and resourceful enough to build a beautiful enclosure for your project.



    • Metalworking Contest

      Metalworking Contest
    • Tiny Home Contest

      Tiny Home Contest
    • Creative Misuse Contest

      Creative Misuse Contest

    23 Discussions

    Hi Mate,

    Is there a way I can get a circuit diagram ?


    Help, I did everything what it sad in instructions but when I power on my spectrum analyser all leds comes on instead of staying off before I put the signal in, after I put the signal it kinda works but with a lot of noise and hard to see because most of the led's that shouldn't do anything are flashing, can you help me please, because I'm in nowhere and this is my project for college and I don't know what to do, please help me

    2 replies

    Separately we have tried to troubleshoot with George CosminS and he managed to resolve his issue after using Arduino IDE 1.0.6 to compile and download our program into his Arduino board. He was previously using Arduino IDE 1.8.2 when he encountered the problem.

    Hello, I did everything and have check everything (Hope so), It kind of works, but making a lot of noise. Because of the noise it's very hard to see the real visualizer. Have you got any clue who could be making that noise? it's not MSGEQ7 (tried 30 of them (10 from sparkfun )), can't be PCB where ardruino are because I re-soldered that pcb 3times, any information will be very helpful. After all it's very interesting and good project .

    I did all the steps mentioned above to do the connection, but when i connected the JF audio spectrum visualizer board to 3D led cube, there are 7 bands of leds lighting up but not reacting to the any audio input. Is there any possible solution?

    1 reply

    Did you managed to resolve the problem? If not, can you drop us an email to jollifactory@yahoo.com as we may request for video or photo of your setup in order to help.

    hi guys ,

    I really need this wonder . can someone make this for me ?

    actually Im willing it pay more if someone can make this instead :

    all the instrusctions and stuff are available in the description of the video .

    please take my money !

    email : ddehghani@icloud.com ,

    im from germany btw .

    1 reply

    This is their making-of. You could do the same as the guy in the video: build the stuff and ask a nerdy programmer friend to do the rest.


    Well done ! fabulous. I admire all your works man. Thanks a lot. I am a PIC fan so ... :) I'm still learning and CHR and you have opened my eyes and my mind. Thanks


    1 year ago

    Beautiful looking display. But not much spectrum information it seems to display more time duration than spectrum, and the repetitive tinkly music was spectrally limited and frankly annoying to listen to.

    It would be even cooler to make it real 3D, instead of lighting up the whole row as a single sampling data.. I suggest to add a few msec time delay and variable in arduino to store each of the row separately, and perhaps the front LEDs would be the real time, and then starting to shift to the rear, giving it real 3D look..

    2 replies

    Yeah, I was really hoping that the 3rd dimension would be used for more of a histogram display as well.


    2 years ago

    very nice

    why not use different coloured LEDs as well 2 rows blue 2 green 2 yellow and 2 red or what ever sequence you like

    1 reply

    You can probably use the colors to show the amplitude of the given frequency in case its getting too hot.


    2 years ago

    Ok, Things can always be better, bigger, but I think this is really cool, well done :)

    Very cool looking display. The depth appears to be static, perhaps have the depth of the cube be driven by surround sound front to rear levels or the inverse of the other channel. Then it would be true 3D look with varying depth.

    variation idea: infinity mirror and single card