A toy project that draws visual elements based on midi notes.
This is still in a fairly rough state. What we have so far...
- midi signal path
- quil integration
- basic note->colour mapping that should result in some consistency between colour and music harmony
- realtime device state for inferring things like chord identification and velocity spread
- a decent draw state model
- mutator functions in the state model that can alter draw params (to add stuff like fades and movement to the visual elements)
- draw functions that can be dynamically bound to the state model on note entry (to do stuff like bind velocity or octave to different draw styles)
TODO:
- deal with non-note midi commands like aftertouch and sustain. currently these error out
- come up with some fun draw and mutator functions for rendering dynamic visual elements
Caveats: This project was started (very hungover) as a toy to try Quil. It was some of the earliest Clojure I wrote. I've worked on it very intermittently since then during various points in my own progression. It's a mixed bag and not very serious. The latest iteration incorporates some category theory principles. Future intentions include running this on a raspberry pi and adding visualisations that act as learning aids for the piano.
- clone the project
- plug in a midi controller
boot repl
(require 'main)
- select midi device from the list in a launched applet window
- play notes
- see circles
Notes: 0 - 127 (middle C is at 60)