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.

Comments

author
dmgamer8294 made it!(author)2017-04-27

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?

author
jollifactory made it!(author)2017-04-29

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.

author
DaveD143 made it!(author)2017-01-14

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 .

author
Faquarl made it!(author)2017-03-07

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.

https://www.youtube.com/watch?v=Vn39txtVIHc

author
kemal06 made it!(author)2017-02-07

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

author
NeilRG made it!(author)2016-10-29

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.

author
AndyS19 made it!(author)2016-06-06

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..

author
diesel_travis made it!(author)2016-06-29

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

author
LegobetoT made it!(author)2016-06-07

Dude that foken awesome man!

author
IwanK9 made it!(author)2016-06-25

very nice

author
PhilipC31 made it!(author)2016-06-05

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

author
LegobetoT made it!(author)2016-06-07

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

author
Heyup made it!(author)2016-06-05

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

author
zoomgod made it!(author)2016-06-05

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.

author
stringstretcher made it!(author)2016-06-02

variation idea: infinity mirror and single card

author
DarkCoolCat made it!(author)2016-06-05

Now that would be good "infinity mirror and single card"

author
ThomasK19 made it!(author)2016-06-01

This looks nice. But then when I watch the video I see always a full line (4 dots) lighting up. So, where is the point in 3D? To me it looks like 4x2D.

author
jesterod. made it!(author)2016-06-02

same

About This Instructable

24,651views

443favorites

License:

More by jollifactory:IKEA Frame Hack > sLOMO (Slow Motion) FrameJolliCube Audio/Music VisualizerJolliCube (8x8x8 LED Cube) with MD_Cubo library
Add instructable to: