Teensy spiral music visualization


Hi All,

A few years ago I finished off a project with a teensy 3.6 to visualize MIDI data with LED strips. I've finally gotten off my backside and documented it. Hopefully others will enjoy.

The device can be used in two ways:
* If the teensy is plugged into the PC it acts as a MIDI device. Any MIDI data sent from the PC is both synthesized to sound as well as being displayed on the LEDs. (i.e. PC speakers are not used)
* If an external MIDI USB device is plugged into the teensy's USB host port, then any notes are also synthezied as sound & displayed on the LEDs.
There's no problem with using both simultaneously, if you want to have a MIDI file from the PC and play along with it.

The nifty thing is how the music is visualized. The spiral allows you to see the absolute notes, with different instruments in different colours.
  • You can see an entire orchestra "Cooperating" to make a chord, without having to read 6 sets of sheet music at the same time.
  • Makes it extremely easy to see transpositions (they're just rotations)
  • Melodic inversion is just a mirror flip
  • Notes played stay visible for a time as a 'histogram'. Key signature can be inferred from this
  • Different instruments (midi channels) are different colours. Can see contributions of each instrument to the whole

Hardware overview v01trim.jpg
Github repo for the teensy version is here: https://github.com/mechatronicsguy/SpiralMusic_Teensy
and repo for the PC only python version is here: https://github.com/mechatronicsguy/SpiralMusic_python

Big thanks to Paul for all the awesome example code, it made the project much easier.

Here's a screencap of the python one to show the idea:


[Edit: corrected URL for teensy version]
Last edited: