The cartMIDI is a system, comprised of cartridges and a base, for the playback of generative MIDI music.
The cartridges contain single attiny85 microcontrollers, loaded with the arduino bootloader and sketches containing generative (unending, algorithmic, aleatoric) MIDI programs. Each microcontroller runs these scripts when one pin is connected to 5V, through a switch on the base.
The base contains the wiring and power for each cartidge, serving to both power it, trigger its playing, and route the output to the external MIDI jack. Detailed photos below!
Some people may wonder about the process of programming, loading the bootloader for, and working with attiny85s and arduino. I can say I took my information from a number of sources, collected below:
There are a few things I’ve learned in the process that were not immediately clear online. Most importantly, when programming attiny85s from an Arduino Uno, set up as an ISP using the ArduinoISP sketch, it is important not only to put a capacitor from ground to the reset pin, but also a 220 ohm resistor from 5V to reset. This was mentioned somewhere for a different setup, but proved to be the missing link in getting my rig working properly.
Also, MIDI can be done on attiny, despite its inability to perform normal serial correctly, using the Software Serial library. This hampers its ability to send serial to a computer, but if MIDI is the goal, this is the way to it.
Anyway, I’ve included the sketch for the piece featured in the video above here, and you can see how I’m doing it.
This instrument is a part of my “Celebrating 100 Years of MIDI” concert, November 7th at the Conrad Prebys Music Center in San Diego.