Kinetic.js and WebAudioAPI.....The Y-Axis is mapped to the midi notes 1-128.  The color space for notes is using HSV where the midi note number is mapped to the hue. 360-(ceil(abs(11-num%12)*(360/11))).   thank you.