Closeup of the Controller

Spectrum Analyzer Headphones:

I built this project in late fall of 2017. The project uses an arduino micro to perform an fft (Fast Fourier Transform) on the incoming audio signal and display the results as a frequency vs. volume graph on the earcups of the headphones. There is an lm384 based amplifier and circuitry for a 2.5v dc offset before the arduino to ensure that the audio fills the entire range of its ADC (Analog to Digital Converter). 

Originally, the code used the official ST7735 Tft library from Adafruit. Unfortunately this driver is very slow and I had to create very minimal graphics to ensure a fast response time and low latency with respect to the incoming audio signal. Later, I switched to a 3rd party library which allowed me to implement more graphical elements such as different colors and an average amplitude indicator.

Everytime the lower frequencies of the signal spikes, the display colors invert. This gives a better impression that the display is moving with the beat of the music.

I am planning to revisit this project in the future with a faster and more precise microcontroller.

Parts:

  • Audio Technica ATH-50x Headphones
  • Arduino Micro
  • Protoboard
  • 9v Battery with holder and switch
  • Female Headers
  • Lm384 and IC Socket
  • Electrolic and Ceramic Capacitors
  • Resistors
  • Jumper Wires
  • 3d Printed Case
  • Ribbon Cable

Display with current faster library and music edited over

Testing the ADC with a sine wave and a dc offset. This signal has not been amplified so the values only range from about 2.4 - 2.6 volts.

Test of Headphones with slow library. Minimal black and white graphics.