a new sound installation (part i)
some experiences fabricating my first full room sound installation. plus, working with raspberry pi, rnbo, python, & more.
Back in March, I was walking around the Tate Modern in London with my wife and her colleague from Iona University in New York. We wandered into a large multimedia installation in the one of the Tate’s Tank spaces, when my wife’s colleague, who knew I was a musician, asked: “Joe, have you ever thought about doing a sound installation?”
And the answer was yes—definitely. Even more so in recent years, as I’ve become increasingly interested in fields outside of music—design, visual, conceptual art. But, I explained, I’d never really had—or sought out—the opportunity to work in a gallery setting.
"How’d you like to do an installation this fall at Iona’s gallery?”
Oh. Well damn, I thought this was just a theoretical conversation!
Fast forward six months and that installation is now up at Iona’s Chapman Gallery—until December 12. In the next couple posts, I’ll unpack some of the many things I’ve learned working in a brand new medium (for me)—including programming, fabrication, speaker array design, aesthetics, and budgeting.
(For those in New York, feel free to stop by the gallery: weekdays 12-5p / Saturdays 12-4p until December 12. There will also be a closing reception and artist talk happening on December 3 from 5:00-7:00pm.)
First Steps
Upon returning the the US, I submitted a brief proposal to the gallery with a modest budget and—guess what—it was approved. It’s always a bit jarring when a vague creative daydream becomes something you need to start thinking about concretely.
I intentionally kept my proposal somewhat open-ended, since this was the first time I’d worked in a gallery setting—and there were a lot of new technical skills to get a handle on. The basic idea was:
• a set of distributed speaker around the gallery.
• several independent low-cost single-board computers driving the speaker arrays (no complex global cabling and control needed)
• each computer drawing from the same bank of sonic behaviors—but with low level parameters (timbre, timing, rhythm, pitch) handled locally, using a combination of probabilistic programming and live input.
• use of raw speaker drivers (as opposed to pre-fabricated speakers with enclosures)
In my mind, this all seemed pretty straightforward, perhaps even boringly basic. But the fact is: I’d never actually worked with Raspberry Pi, RNBO, raw speaker drivers, or any number of other elements before. So, I convinced myself: even if the results are somewhat simple, this could at least be an opportunity to learn some new skills, elements that I can build on in later work.
In retrospect, I am *very* glad I didn’t aim to do anything more complex in this first round, as each aspect was going to be considerably more challenging than I’d anticipated.
Raspberry Pi and RNBO
The Raspberry Pi is a single board computer with basic I/O that can fit in your (somewhat large) pocket. My first step over the summer was to get my hands on one of these.
All I knew out of the gate was that it ran Linux, which meant I’d probably use Pure Data to program. But I also recalled the Cycling ‘74 had introduced the RNBO environment some time ago, which could also perhaps be an option.
After testing both, I found the RNBO had a few features that made it a bit more robust for my use case. Since my aim was to program and use the Raspberry Pi headless—i.e. without keyboard and mouse, over a network—RNBO had some built-in tools that turned out to be incredibly helpful. The RNBO Raspberry Pi Setup page gives you a pretty straightforward way to install an integrated OS on the Pi, set up a network, push Max patches to the Pi instantaneously, and then control exposed [param] objects through a web interface. Although not all Max/MSP objects are available in RNBO, the basics are all there, which meant that I could actually re-use quite a bit of code and my jb.utilities—a major plus.
Amplifiers & Speakers
Since I made an early decision that I wanted to approach this using raw speaker drivers—for both aesthetic and budgetary reasons—I needed to find a way to drive speakers directly from the Pi.
After some testing, the amplifier I settled on is the HiFiBerry AMP2, a small “hat” that sits directly on top of the pin-outs of the Pi, providing a 2-channel DAC + speaker amplifier with positive and negative speaker terminals for each channel. They also sell a nifty little steel case that fits both the Pi and the AMP2, giving you a networked computer with a solid little DAC and speaker amplifier for around $125.
For speaker drivers, I knew I wanted at least 8 speakers for a full gallery presentation, but I also needed to keep costs manageable. I imagined my sound materials would be simple: sine and triangle tones, impulses, pink noise, maybe basic FM, etc. So each speaker would function more like a resonating object than a hi-fi speaker. For these reasons I began with the Visaton BG17 a 6.5”, full range speaker. This turned out to be a good balance between cost, frequency response, visual appeal, and size.
First Prototype
After testing some Max ideas with two of these speakers wired up and laid flat on my kitchen table, I learned three important things.
1) I *really* liked the aesthetic and non-directionality of laying the speakers flat on a surface, as opposed to mounting them on a wall, placing them in enclosures, etc. There is something so literal about handling a speaker cone while it is vibrating. It's like interacting with a singing bowl. I didn’t wanted to disturb that by encasing or otherwise de-literalizing the speaker.
2) Without an enclosure, the bass response of the speaker drops dramatically from the stated factory spec. I’m embarrassed to say this, but I actually never realized how much of a role the cabinet itself plays in a speaker’s frequency response, which is perhaps part of the reason why open baffle designs are so rare. This basic revelation got me much more interested in speaker design itself, thinking about the pairing of different sized drivers, crossovers, and all the creative and compositional implications thereof.
3) Eight 6.5” speakers was not going to be nearly enough to be of visual interest in for a full gallery space. In order to create a piece that was going to work visually, I needed a more dramatic visual footprint (i.e. more speakers). But I also could not afford 12 Raspberry Pis + AMP2s. Hmm…
Next Time
I’ll pick up next time with the series-parallel wiring design I landed on for the speakers, as well as the my understanding of impedance for designing multi-driver arrays.
If you are in New York over the next month, feel free to stop by the gallery, or the closing reception on December 3, 5:00-7:00pm.
14 November 2025
Subscriptions
Patch Notes will always be free to read. If you’d like to support my work and access additional materials—including downloads of my full album catalog and patches featured in posts—there are a few ways to subscribe below.
FREE
Access to regular posts covering sound, design, technology, and process.
PAID ($5/month or $50/year)
Bandcamp download codes for my complete digital album catalog (past and future releases).
Downloadable Max/MSP and Pure Data patches featured in posts.
Access to subscriber-only posts, including interviews with artists, musicians, and composers.
Early access to pre-order Greyfade physical releases before they go on sale to the general public.
FOUNDING ($150/year or more)
Everything in the Paid Subscription tier.
A Bandcamp download code for each new Greyfade release (3-4 per year), with proceeds going to the artists.
Download of my custom Max/MSP utilities library—jb.utilities—along with help files. I’ve coded and updated these over the last 20 years and use extensively across all my Max/MSP work.
Directly supporting and sustaining the creation of new music, custom technology, and experimental design at the heart of my work.







Looks awesome