Tristan Perich is a musician who has been doing some very interesting things with microcontroller-based music. He is a member of the Loud Objects, makers of the Loud Objects Noise Toy (itself microcontroller-based).
Several years ago, Perich released 1-Bit Music, a microcontroller hot glued to the inside of a CD jewel case, along with a battery, power switch, button, headphone jack, and a couple of volume knobs. All of the music is generated by the microcontroller, though not in a algorithmic manner – all the music is pre-composed and “performed” in real time for the listener.
The 1-bit followup, 1-Bit Symphony, came out this week and takes the concept to another level. Using the same chip as the Loud Objects Noise Toy (Atmel Tiny85 AVR), Perich manages to achieve a full, lush electronic symphony orchestra with layers and a richness of tone that I wouldn’t have thought possible having experimented with programming the Noise Toy. Of course, I have been using C with the AVR-GCC libraries, which may add some undesirable overhead to the compiled code, whereas Perich programmed 1-Bit Symphony in assembly language, using efficient, low-level commands that talk directly to the chip. The source code is included in the liner notes, bringing back memories of Byte Magazine and tediously typing in hundreds of lines of source code into the old Apple ][+, knowing that frustration awaits when the program doesn’t run and I have to find all the typos. The actual music part of the source is beautifully compact and looks nothing like a traditional score.
I don’t want to call Perich a cheater, but when I first heard 1-Bit Symphony, it sounded so rich, so unlike the chiptune-esque 1-Bit Music that I thought maybe he had composed the music in a more traditional fashion, and then figured out a series of delay amounts to render the music on a microcontroller. (All the microcontroller can really do is change voltage levels on the output pins and wait prescribed amounts.) But now that I’ve seen the source code, that’s clearly not the case.
In the days before audio tape, if one wanted to hear music, one had to perform it or see it performed. In the case of symphonic music, this meant attending a symphony orchestra performance. The earliest electronic music simply involved recording audio and playing it back. This divorce between the performance and experience of music is exciting in many ways – it allows vastly larger audiences than before and also new forms of of musical expression.
Tristan Perich has essentially taught the microcontroller to perform the music. The medium is the performer. Each time the listener throws the on/off switch, they hear the music being performed, not a reproduction of that music. It’s a rare thing in this day of electronic music where even live performances often rely on pre-recorded samples.
My personal musical interest lies more with the Experimentalists, towards algorithmically dynamic music that varies with each performance. But I’m not an ideologue, and I see the attraction and admire the result. 1-Bit Symphony is an exciting listen.
There is one nod to the capabilities of the microcontroller and assembly language source code – Movement 5 has a listed duration of infinity. It does not end, but simply continues until the listener turns it off or the battery goes dead.