Ben's Final Project: New Look => Same Great Notes!
Exploring 2D musical space, armed only with sixteen square waves and a saw.
Is that a honeycomb or a musical instrument?
The short answer is, both. But the bees are dying, leaving behind only their tiny apian instruments, expertly hewn from multicolored beeswax and (lucky for us) MIDI-enabled.
The instrument's design is adapted from the Axis MIDI controller, which has a unique key layout based on a musical geometry that the designers call the “harmonic table.” The keys are arranged as a hexagonal lattice with vertical rows. Along the 30 degree axis the notes ascend by major third, along the 150 degree axis the notes ascend by minor third, and along the 90 degree (vertical) axis the notes ascend by a perfect fifth. This two-dimensional layout can make playing scales a little cumbersome, but it offers an interesting and intuitive way to visualize chord structures and harmonic relationships. Tertial chords are particularly easy to see and play on this layout. For instance, any three keys forming a rightward-pointing triangle form a major triad, while the adjacent leftward-pointing triangle below forms the relative minor triad.
I added flexibility and interest to the instrument by allowing the user to change the musical geometry on the fly. Stepwise intervals along the 30 degree and 150 degree axes can be defined between 1 and 11 semitones, ascending or descending. The vertical axis is always the sum of the two defined intervals (this is required to tessellate the pattern of intervals across the lattice). The range of the instrument
How to Run
Changes for Future Versions
- Ability to select which note remains unchanged when intervals are updated (is currently upper left)
- Greater control over parameters of the sound synthesis (my emphasis thus far has been on the GUI and note control)
- Perhaps a fun rolling ball mode to trigger keys (controlled by motion sensors or just arrow keys)
- More intelligent gliding (i.e. glide only when pressed notes are moved, not when there is separation between triggered notes)
- In Toggle mode:
- Ability to store and recall chord patterns, selectable on the fly with a single keystroke
- In Sequence mode:
- Ability to change sequences on the fly
- Ability to assign relative durations to individual notes in a sequence
- Ability to store and recall sequences
What to include on your project page
- A description of your project
- Your code
- If it's short, you can make a new page for it like this one
- Or, if there's a lot of it, put it in a .zip file so that people can upload it.
- We suggest: put it in your public_html directory on your network drive, then make a link, e.g. to http://www.princeton.edu/~yourname/yourfile.zip. Let us know if you need any help!
- Instructions on how to run your code
- A sound (or video!) recording of your piece, if possible
- See directions above on putting it on your network drive and linking to it