The goal of this project is to build a keyboard whose keys correspond to a prime number, a pure tone, and a single wavelength of light. The idea is that playing multiple keys will mix the light frequencies, sound frequencies, and primes in a natural way to produce colors, numbers, and sound.

For the primes, we just multiply them, and perhaps let the multiplicity correspond to loudness or brightness. To mix individual light frequencies, you need to understand the CIE 1931 color space and use color matching functions, which was the core challenge. To mix the tones, I used a built-in Python package called winsound.

At present, this is only a virtual keyboard implemented using Python's pygame package. It is functional, however it sounds a bit nightmarish and still needs to be tweaked. I'd like to publish it as a standalone PyPI package, and in the end get a real keyboard and hook up a little display with a Rasberry Pi/Arduino mini-computer, paint the keys, and see how a musician would react to the barrage of left/right brain sensory inputs. It would also make a great kids' toy.