We’ll get onto the construction of the LED Musicolour shortly. Before we do, let’s quickly look at a few more design details.
One aspect of the unit’s operation that we didn’t mention in Pt.1 is the automatic gain control (AGC). This applies when you are feeding audio into the unit via the audio line input socket (CON11). The problem is that line level signal amplitude can be quite variable and we don’t want the lights to be driven dimly simply because your signal source has a low peak voltage.
To solve this, we constantly monitor the peak voltage at the audio inputs and apply an asymmetrical low-pass (smoothing) function to it. The output of this function remains close to the long-term peak of the audio signal, even though the amplitude won’t be constant. We do this by allowing the detected peak voltage value to increase rapidly but only decrease slowly.
Given this detected peak amplitude, we can then “normalise” the audio data by computing a gain value which is the inverse of this peak amplitude, ie, the lower the amplitude, the higher the gain. This gain is applied before the Fast Fourier Transform (FFT) function is applied to the audio data. The output of the FFT then gives a consistent brightness level over a range of input signal amplitudes from around 500mV RMS up to a little over 2V RMS.
When we describe the configuration options later, you will see that there are a few options which control the rate at which the AGC level changes and the maximum gain setting available. We’ve chosen defaults that work well in most circumstances so you won’t normally need to change these.
Throughout these articles we have generally referred to the memory card as an “SD card”. There are actually several different types of SD card. These days, most cards sold are actually SDHC (high capacity) cards in the range of about 4GB-32GB. We have successfully tested the largest of these cards in the LED Musicolour.
It should also support the older MMC cards although they are basically obsolete now. We haven’t tested SDXC (64GB+) cards but in theory, they should work too as they still support the 1-wire SPI interface we are using to communicate with the memory card.