Audio spectrum

own work, requires svg enabled browser This page describes how the peak values of the frequency bands are retrieved.

The spectrum analyzer chip (MSGEQ7) measures the peak voltage in 7 frequency bands. These voltages are multiplexed on one output pin. To read each value, we use the RESET and STROBE* pins.

  1. A RESET pulse followed by a wait (≥72 μs) resets the multiplexer.
  2. On the first falling edge of the strobe signal, the 63 Hz output propagates to OUT. After ≥36 μs, this analog value can be read by the host.
  3. Each additional strobe falling edge advances the multiplexer one frequency band (63 > 160 > 400 > 1,000 › 2,500 > 6,250 > 16,000 Hz) and this will repeat indefinitely.

The multiplexer read rate is also the output decay time control. Each read decays that the value of that frequency band by approximately 10%. [datasheet]

The timing is shown below, and includes some corrections compared to the datasheet [Maxfield]. own work; requires svg enabled browser

With a load of 33pF//1MΩ, the settle time of the output is 36 μs. The output impedance of the MSGEQ7 is 700 Ω. This is well under the Arduino recommended 10 kΩ for the A/D sample-and-hold capacitor to charge up.

Many others have written about this as well [Hienzsch, Lewis, drrobot, library, sketch].

Continue reading about the Visualization.