Last week, I put together a simple paper prototype of my musical composition machine and tried it out with my classmates to see if the interaction was understandable. In my original sketch of the design, I thought that the device would have both a musical keyboard and a text keyboard. That seemed excessive, so for this iteration, I assumed that the user would use a separate MIDI-based music input of their own choosing, and then enter text with a built-in QWERTY keyboard. Even this proved problematic, however—for many users, the small size of the keyboard seemed uncomfortable to use. It was suggested that my device could instead interface with a USB keyboard. In principle, that suggestion makes sense to me, but the idea of farming out so much of the interaction to pre-existing interfaces makes me uncomfortable with the project.
In general, the direction of my user testing tended towards complexity. Because the output media—punched paper tape— is so linear, I decided that the interface should allow for recording a finite number of musical bars before writing out those bars to paper and recording the next set. In general, testers seemed uncomfortable with this mode of working, and wanted more sophisticated score editing tools. As the interface is already too complex, I decided that my efforts would be better focused on building a tool that could convert MIDI scores to my punched paper format and letting users compose music using any of the already available programs for composing MIDI scores. A good, solid solution, but now out of scope for the class.
So, what about physical computing?
For my final, I think I want to shift in a related direction, which is interfaces for sequencing music. Most sequencers and arpeggiators take musical input and then transform those notes around into complex patterns. For my project, I’m interested in a system that begins with a random sequence of notes and allows the user to filter that random sequence into something cohesive. The knobs on the left will control variables for the interpretation of a randomly-generated sequence, controlling aspects such as playback speed, root tone and the distribution of high vs low notes. The buttons on the bottom can be used to optionally filter the sequence to specific notes on the chromatic scale, and the knobs on the right can be used to control the rules for how the sequence is constructed. The output of the device is a standard MIDI signal, which can then be recorded or synthesized.
I’ve worked with MIDI and the Arduino before, so I foresee the greatest challenges with this project being the layout and selection of different controls. I intend to expose a lot of different choices to the user, so laying everything out cleanly is imperative. In addition, these controls may exceed the capacity of the ATMega, so I’m interested in exploring strategies for multiplexing or alternating between inputs.
Initial Bill of Materials
- Arduino, ideally built out on perfboard
- Some sort of LCD screen for showing the current sequence? I need to determine if this is strictly useful information
- Various buttons and knobs for different types of input
- An enclosure, preferably one that can contain printed text