“Nevermore and Other Works” is a sound installation that has appeared at Firefly (not the music festival) and other public events. Nevermore uses an array of independent computer-driven speakers to generate immersive soundscapes from randomly triggered collections of loops and samples. Participants are invited to (gently) press a button on the provided controller and hear, for example, a simulation of an outdoor scene featuring field recordings of several now-extinct species of birds collected by the Macaulay Library of the Cornell Lab of Ornithology.
Nevermore appears as an 8x8 black tent with a single opening. Inside is an air mattress for sitting, and a pedestal with a small LCD display and a controller with sixteen pushbuttons. There’s also a three-hole punched notebook of documents for perusing. In every corner of the tent is a small speaker.
Participants sit on the mattress and are enveloped in the soundscape being created by the speakers. If they push any of the sixteen buttons they’ll hear the soundscape change, with many different variations available to listen to.
One of these variations is a set of rainstorms I created many years ago. The rainstorms start quietly, then build to a raging thunderstorm, then fade out again. A version of this artificial storm was adapted for IOS in an app called Pocket Storm, and you can hear samples of its sound at that link. In Nevermore, I adapted the storm soundscape for 12 point surround sound.
Each of the speakers in Nevermore is connected to an individual Raspberry Pi computer, 12 in all. The screen on the pedestal is actually an old OLPC in tablet mode. These machines communicate over wifi and the button controller sends signals over midi to the OLPC.
Nevermore is based on a soundscape generation system called Boodler, which uses Python to generate collections of autonomous Agents that generate the individual sounds. The system is only meant to run on one machine in stereo, however, not 12 separate computers.
Enter Booberry, a set of extensions that allow multiple Boodler clients to coordinate. A central controller computer (the OLPC) sends short pings to all of the clients (the Raspis), telling them which soundscape to play. They dutifully obey and play their designated subset of the soundscape as indicated by their assigned IP address.
I use Fabric to manage the 12 headless Pis, using it to update software and soundscape data.
The software and hardware have been battle-tested in the harsh environs of the Vermont woods, and have survived generator brownouts, torrential downpours (RIP one Pi that got wet), intermittent Pi reboots, and overzealous button-pushers. The system is auto-starting and self-monitoring, requiring nothing more than powering on to start up.