One thing I noticed as I meandered my way around the EE Live! 2014 exhibition floor was the fact that there were flashing LED displays all over the place. In particular, EETimes Community Editor Caleb Craft had created a very tasty "Applause-O-Meter" display for us to judge the winner in our Gadget Smackdown sessions.
Also, speaking of the Gadget Smackdown, one of the presenters was Jason Kridner from Texas Instruments, who dazzled the audience with his "mine is bigger than yours" audio analyser with associated LED display.
And then, as I mentioned in my previous blog on this topic, on my way back from the conference, I ran across a mega-cool audio spectrum analyser and display at San Jose airport. My defences had already been weakened by the show (although not weakened enough to cause me to pay the $199.95 asking price). "Am I to be the only outrageously good-looking engineer on the planet without a flashy audio spectrum analyser LED display?" I asked myself (with only a little quaver in my mental voice).
Thus it was that I decided to create my Bodacious Acoustic Diagnostic Astoundingly Superior Spectromatic (BADASS) display. The more I look around, the more I realise that there is an amazing variety of ways in which one can display the results from a spectrum analysis. Consider the following video, for example:
Here we see yet another technique for presenting the output data. In my previous blog, I showed one display that had the lower frequencies on the left and the higher frequencies on the right, and that spilt the amplitude (volume) in the vertical direction into series of coloured bands (rows)—blue at the bottom, green in the middle, and red at the top.
Also in my previous blog, we saw another display in which the different frequencies were associated with different colours in the horizontal direction. By comparison, in the case of the video shown above, the creator of this display causes all the pixels each column to change colour depending on the amplitude of that particular frequency. I'm not explaining this very well—look at the videos in my previous blog and then look at the above video and you'll see what I mean.
Now, there are several different aspects to consider when it comes to a project like this. Off the top of my head, in no particular order, we have the following questions to ponder:
* What will be the "look and feel" of the whole thing?
* What display technology are we going to use?
* Will the display handle mono and/or stereo audio streams?
* What do we need to do to pre-process the audio signal before feeding it to the control system
* Will the audio processing (extracting the audio spectrum information) be performed using analogue or digital techniques?
* If we decide to use digital techniques, which algorithms will we use and how will they be implemented (microcontroller or FPGA)?
* How do we take the processed data and present the results on the display?
Since I've been spending so much time playing with Arduino Microcontrollers and Adafruit's NeoPixels recently, I've already made the decision that my first pass at this BADASS Display will involve a 16 x 16 array of NeoPixels. I've also decided to use the strips with 30 pixels per metre. Based on the fact that 16 x 16 = 256 pixels, and 256 / 30 = 8.53m, I just placed an order with Adafruit for a 9-metre length of these little scamps.
Now, each NeoPixel can consume a maximum of 60mA of current when all three of its RGB elements are at full brightness. In reality, the display will almost always be running with only a portion of the pixels on at any one time, and only a subset of those pixels will have their RGB elements fully on, but I prefer to design for worse case scenarios, so 16 x 16 x 60mA = 15.36A. Wow! That's a lot of current, plus I need to keep some "oomph" in reserve for powering other stuff, so I just placed an order with Digi-Key for a 5V, 26A power supply (Digi-Key part number 285-1817-ND).
With regard to the look-and-feel, I've decided to go with the Steampunk genre again, so my BADASS Display will be presented in a cabinet boasting a "wood-and-brass" motif. However, unlike my Inamorata Prognostication Engine, which is based on real brass panels, I've decided to construct my BADASS Display out of everyday materials that anyone can lay their hands on. Here's a sketch illustrating my initial thoughts:
First-pass "look-and-feel" for Max's BADASS Display
Starting from the outside we will have an antique-looking wooden cabinet. The main (outer) front panel will be formed from 3/4" plywood stained to look like cherry wood. The inner portion of the front panel will be formed from pressed board (hardboard in England), painted to look like antique brass. Also, this won't simply be stuck onto the front of the plywood—instead, it will be mounted flush with the front of the ply (I'll show you photographs as I'm making it).
Underneath the main display will be a small control panel comprising six momentary push buttons: one red button for "Reset"; four black buttons for "Up," "Down," "Left," and "Right"; and one orange button for "Menu" / "Enter" / "OK." I'll use these to implement a simple menu system that allows me to select between different effects (I can use the 16 x 16 LED array to reflect what the controls are doing).
Like the main display area, the small control panel will be formed from pressed board painted to look like it's antique brass and inlayed in the cherry-stained plywood. Furthermore, I'm planning on having brass acorn nuts (I'll age them to make them look old) mounted around the edges of the main panel and the control panel holding them to the plywood.
Brass acorn nuts will add to the retro look-and-feel.
If I were a betting man, I would wager that I'll be bringing this little beauty as one of my entries to the Gadget Smackdowns at EE Live! 2015. Well, that's about it for today. I have lots and lots of ideas with regard to how we process the audio stream to extract the spectrum data, and how we subsequently present that data to the display, but that will have to wait for my next column in this miniseries. Until then, as always, I appreciate any comments and suggestions.