Chromatic Sound to Light Conversion System
Go to file
Charles Lohr 36de380a33 Update to latest esp8266 and leverage new functionality.
Also, uses less IRAM so it fits with SDK 1.5.4
2016-08-23 02:05:07 -04:00
colorchord2 Some housekeeping fixes and fix a bug with "FR" that prevented it's functioning. 2016-08-13 14:09:16 -04:00
embedded8266 Update to latest esp8266 and leverage new functionality. 2016-08-23 02:05:07 -04:00
embeddedcommon Get the embedded8266 port working with esp82xx! 2016-08-18 22:09:01 -04:00
embeddedlinux update license file 2015-07-29 01:55:19 -04:00
embeddedstm32f303 Update copyright noteices, etc. 2015-07-29 01:56:18 -04:00
embeddedstm32f407 STM32F407 to use prominene. 2015-08-13 01:47:29 -04:00
karaoke Some housekeeping fixes and fix a bug with "FR" that prevented it's functioning. 2016-08-13 14:09:16 -04:00
.gitmodules add .git to end of the git modules. 2016-08-18 20:59:12 -04:00
LICENSE Update license and readme (still rough draft) 2015-07-27 03:35:02 -04:00
README.md Cleanup readme 2016-08-14 19:49:23 -04:00

ColorChord

What is ColorChord?

Chromatic Sound to Light Conversion System. It's really that simple. Unlike so many of the sound responsive systems out there, ColorChord looks at the chromatic properties of the sound. It looks for notes, not ranges. If it hears an "E" it doesn't care what octave it's in, it's an E. This provides a good deal more interesting patterns between instruments and music than would be available otherwise.

Background Video here:

What Is ColorChord?

ColorChord on an ESP8266:

Websockets for Awesome on an ESP8266

More videos below!

Background

Developed over many years, ColorChord 2 is now at the alpha stages. ColorChord 2 uses the same principles as ColorChord 1. A brief writeup on that can be seen here: http://cnlohr.blogspot.com/2010/11/colorchord-sound-lighting.html

The major differences in ColorChord 2 is the major rewrite to move everything back to the CPU and a multitude of algorithmic optimizations to make it possible to run on something other than the brand newest of systems.

Feuge in D Minor (ColorChord 2 running a strip of WS2812 LEDs):

ColorChord

ColorChord 2 running a voronoi diagram with Mayhem's Dr. Rocker

ColorChord 2 Preview: Dr Rocker by Mayhem

Current State of Affairs

Currently, ColorChord 2 is designed to run on Linux or Windows. It's not particularly tied to an architecture, but does pretty much need a dedicated FPU to achieve any decent performance. Right now there aren't very many output options available for it. The most interesting one used for debugging is a vornoi-diagram-like thing called "DisplayShapeDriver."

ColorChord: Embedded

There is work on an embedded version of ColorChord, which avoids floating point operations anywhere in the output pipeline. Though I have made efforts to port it to AVRs, it doesn't seem feasable to operate on AVRs without some shifty tricks which I'd like to avoid, so I have retargeted my efforts to 32-bit systems, such as the STM32F303, STM32F407, and (somehow) the ESP8266. ColorChord Embedded uses a different codebase, located in the embeddedcommon and distributed among the various embedded* folders.

Building and Using

On Linux you'll need the following packages, for Debian/Ubuntu/Mint you'll need the following:

apt-get install libpulse-dev libasound2-dev libx11-dev libxext-dev libxinerama-dev libusb-1.0-0-dev

To make colorchord, type:

make

Then, to run it, use the following syntax:

./colorchord [config file, by default 'default.conf'] [any additional parameters]

If you edit default.conf while the program is running and resave it, it will use the settings in the newly saved file.

Additional Videos

Come Thou Fount of Every Blessing

ColorChord 2 - David Chapman Plays Sax