The making of the Vallecula, an interactive mini sound instal­la­tion

First things first: Thank you to my hus­band Joseph Gray for help­ing me with design­ing the box and with the ini­tial set­up and test­ing of the Arduino com­po­nents. Also, a huge thank you to my teacher Ben Kamen who gave me so much great feed­back and helped me every time I hit a wall cre­at­ing the Max patch­es.

So here it is. One of my lat­est endeav­ors, an inter­ac­tive mini sound instal­la­tion, cre­at­ed using Max MSP and Arduino.

The Tools

Wiki says it best “Max MSP is a visu­al pro­gram­ming lan­guage for music and mul­ti­me­dia…” Below are a few screen­shots show­ing seg­ments of patch­es used in the instal­la­tion.Max MSP PatchMax MSP Patch


Arduino is a sin­gle-board micro­con­troller designed to make the process of using elec­tron­ics in mul­ti­dis­ci­pli­nary projects more acces­si­ble…”

Arduino 1

The Val­lec­ula is an instal­la­tion that uti­lizes 20 dif­fer­ent cus­tom Max MSP patch­es, trig­ger­ing 100 vocal sam­ples.  The piece was pre­sent­ed at the North­ern in Olympia, Wash­ing­ton on June 5th. Sam­ples of what com­posed by the audi­ence using the con­troller can be heard below.

The Vallecula
The Arduino makes it pos­si­ble for the con­troller to com­mu­ni­cate with Max and many oth­er pro­grams. There are a total of 12 dig­i­tal ports, that com­mu­ni­cate with 1’s and 0’s. The Arduino also has 6 ana­log ports, that com­mu­ni­cate using volt­age, 0–5 volts.

I used 8 dig­i­tal ports for my but­tons and switch­es and 4 ana­log ports for my knobs. When the but­tons are pushed it trig­gers the mes­sage to change from 0 to 1, that 1 can be used to trig­ger what­ev­er you like in Max MSP. On my con­troller I use it to trig­ger patch­es that include: gen­er­a­tion of ran­dom tones (sam­ples) and ran­dom rhythms, revers­ing the direc­tion of all sam­ples, con­trol­ling tonal shifts and trig­ger­ing sin­gle sam­ples. As you can see, the mes­sage from the dig­i­tal ports is super sim­ple, but you can use it to trig­ger what­ev­er you like.

The ana­log ports are a lit­tle more com­plex, but not much. There is a volt­age of 0–5, which shows up as a num­ber between 0 and 1023 in Max, you can write a sim­ple patch to con­vert this to any range you want to. In Max MSP the object box used to con­vert the infor­ma­tion reads like this [scale 0. 1023 100 40]. This sim­ply con­verts the range of 0 to 1023 to 100 to 40. I used this par­tic­u­lar range to con­trol tem­po, so the tem­po range was 40 bpm to 100 bpm. For the shift in tone the same com­mand looked like [scale 0 1023 2. ‑1] rais­ing the pitch of the piece up 2 half steps to down 1 half step.

Max MSP Patch


Concepting and Building

I want­ed to cre­ate some­thing that could be con­trolled by any­one, any age, at any lev­el of tech­ni­cal or musi­cal under­stand­ing. I want each per­son to cre­ate a unique com­po­si­tion and to be empow­ered by act­ing as com­pos­er.

How much con­trol should I give the user? What would be ran­dom­ly trig­gered by Max, and what would be set?

I used the Eb har­mon­ic major scale for the com­po­si­tion. The idea of hav­ing more vari­ety and com­po­si­tion­al out­comes was excit­ing, but I didn’t want to do it at the expense of the user expe­ri­ence. It need­ed to sound good and be easy to use. Each patch need­ed to take up a dif­fer­ent dynam­ic and spec­trum of sound. It took awhile to find tim­bres that sound­ed good togeth­er and stood out on their own using only voice to gen­er­ate the sam­ples.

The first patch­es were trig­gered man­u­al­ly, so I could bounce around some ideas before I start­ed using the con­troller. I start­ed with record­ing the long chords and build­ing the patch that would trig­ger them. Each of the mid­dle but­tons have an assigned set of long tone chords, each time you trig­ger the but­ton it plays the same chord.

The melod­ic burst were next. Each time you press a but­ton it ran­dom­ly selects one of 16 sin­gle tone sam­ples. The rhyth­mic pat­tern for trig­ger­ing the sam­ples is also ran­dom­ly gen­er­at­ed. Ran­dom in this case means that it selects from a 5 dif­fer­ent note lengths, so not ran­dom in a sense that any­thing can hap­pen, but ran­dom in that there is vari­a­tion every time you hear the burst. Each sam­ple is a record­ing of me lay­er­ing my voice on one note, exact­ly 250 mil­lisec­onds in length. The sam­ples are select­ed notes from a Eb har­mon­ic major scale spread­ing over 2 and ½ octaves. Ran­dom, but I have do have it it trig­ger­ing the ton­ic and 3rd and 5th twice as often as the oth­er tones.

Once I had these begin­ning ideas in place I made a few designs for the the box, decid­ing on how many but­tons switch­es and knobs I would have and what they might even­tu­al­ly be used for. I pur­chased the com­po­nents at Radio Shack. The one on Queen Anne has a good selec­tion (inside tip from Joe). Once I had all the but­tons and knobs I mea­sured the shaft width of all the com­po­nents. Joe and I worked togeth­er to cre­ate the design for the box. Joe had already cre­at­ed a gener­ic con­troller called the pro­jBox and we cre­at­ed a design based off of the orig­i­nal mod­el to suit the projects needs. We then had the box laser cut at Metrix Cre­ate Space.

design for Lazer Cutter


wood cut

Then start­ed the process of assem­bling the Arduino, test­ing all the com­po­nents, wiring and sol­der­ing once every­thing was in place.

testing Arduino

When wiring the Arduino you must make sure every com­po­nent is ground­ed. Here we are test­ing the knobs and switch­es.

I glued the box togeth­er and used screws to secure the Arduino and bread­board to the bot­tom of the box.

Building Box




wiring ArduinoAfter installing the Arduino and bread­board I dry assem­bled the cir­cuits.


wiring Arduino2











Then I sol­dered the com­po­nents and wiring at Metrix Cre­ate Space…

Ivory a Metrix









wiring Arduino3

…and com­plet­ed the wiring between the breadboard/Arduino and the com­po­nents.

In my last blog I men­tioned that I had a frus­trat­ing time test­ing the Arduino. I was hav­ing trou­ble find­ing the code to get it to work with Max. I couldn’t find any­thing using the word Arduino in the Max tuto­ri­als, the infor­ma­tion is in the sec­tion talk­ing about ser­i­al ports. The Arduino is a ser­i­al port device.

At this point I was able to assign the but­tons and knobs to the patch­es I had already writ­ten. I had long tones, the melod­ic bursts and a bass line. The base line turn out to be annoy­ing. One of those ideas that you think will be good and when you hear it you know it’s not.

I assigned the these all to but­tons and then start­ed work­ing on cre­at­ing patch­es for the knobs. Knob 1 was a vol­ume con­trol for the lame bass line and knob 2 con­trolled the tem­po of the bass line.

At this point I was in the mid­dle of it and need­ed some feed back. What did peo­ple want it to be able to do?

I brought this ver­sion into the class for peo­ple to inter­act with and I got some great feed­back. I can’t remem­ber the sug­ges­tions I didn’t take but I do remem­ber the ones I did take. It was sug­gest­ed that I use words or do a poem of some kind, that I have a but­ton to reverse the sam­ples, that I did not have a con­tin­u­ous bass line and that I cre­ate some­thing to mess with the glob­al tem­po not just one patch.

In order to raise and low­er the pitch I had to trig­ger all the sam­ples in Max using groove instead of play. With groove you can do more with sam­ples, like rais­ing the pitch and revers­ing the sam­ple direc­tion. So I rewrote all the patch­es for the first time. I rewrote all the patch­es mul­ti­ple times, part of the learn­ing process. I would go in with a com­plete­ly crazy look­ing patch and Ben would say, “you know there is an eas­i­er way to do that.” So I would take apart my hours of hard work and learn I could have done the same thing in a quar­ter of the time.

I could go on for­ev­er about the details and intri­ca­cies of the rest of the process, what I test­ed, what I kept and what I trashed, but then this blog would go on for­ev­er. I did want to talk about the very begin­ning stages though because I think it is inter­est­ing the way things take on their own life and just how impor­tant good feed back is when you are new to a way of think­ing and cre­at­ing. Some­thing I very much appre­ci­ate about the music tech­nol­o­gy com­mu­ni­ty so far is how shar­ing is part of the cul­ture, there is very lit­tle hoard­ing of ideas or fear around some­one steal­ing some tech­nique or tool, it’s all good if some­one uses some­thing you cre­at­ed and builds on it, as long as they give you cred­it.

So, here is a sum­ma­ry of the final prod­uct and a brief descrip­tion of the patch­es that were used.

Vallecula Map

Val­lec­u­la Map

* Dig­i­tal trig­gers for cen­ter but­tons, that trig­ger sam­ples of sung slow chords

* A dig­i­tal trig­ger for the right round but­ton that trig­gers the melod­ic bursts made up of a ran­dom selec­tion of 16 sam­ples and ran­dom­ly select­ed rhyth­mic pat­terns. The sam­ples are made up of 16 tones that are part of an Eb Har­mon­ic Major scale rang­ing 2+ octaves

* A dig­i­tal trig­ger for the left round but­ton, trig­gers the poem sec­tion. The poem is made up of two vers­es. Each word in the poem has 3 dif­fer­ent note choic­es, so although you hear the same words every time it is a dif­fer­ent melody each time the poem is trig­gered. Each verse of the poem uses call and response, we hear the first words panned hard right and a rep­e­ti­tion of the word imme­di­ate­ly at a low­er vol­ume panned hard left. The sec­ond verse is panned oppo­site of the first. The first verse uses a ran­dom gen­er­a­tor for the note dura­tion and the sec­ond verse has a con­sis­tent rhythm. At the end of each verse there is a back­wards sam­ple of one of the phras­es in the poem. (When reversed the back­wards phrase is the only part you can under­stand)

* The upper left knob manip­u­lates the pitch cen­ter of the entire piece. By twist­ing the knob you can raise the pitch up a minor third

* The low­er left knob con­trols the tem­po of both the poem and melod­ic bursts

* The left on/off switch con­trols direc­tion of all sam­ples

* The right on/off switch shifts the melod­ic bursts up an octave

* The knobs on the right con­trol the LFO fre­quen­cy and depth caus­ing a tremo­lo effect for the long chords and ring mod­u­la­tion for the melod­ic bursts

Duncan with machine