The making of the Vallecula, an interactive mini sound installation

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 setup 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 patches.

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

The Tools

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

 

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

Arduino 1

The Val­lec­ula is an instal­la­tion that uti­lizes 20 dif­fer­ent cus­tom Max MSP patches, trig­ger­ing 100 vocal sam­ples.  The piece was pre­sented 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 other 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 switches 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­ever you like in Max MSP. On my con­troller I use it to trig­ger patches 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­ever 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 tempo, so the tempo 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

 

Con­cept­ing and Building

I wanted to cre­ate some­thing that could be con­trolled by any­one, any age, at any level 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 composer.

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

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

The first patches were trig­gered man­u­ally, so I could bounce around some ideas before I started using the con­troller. I started 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 melodic burst were next. Each time you press a but­ton it ran­domly selects one of 16 sin­gle tone sam­ples. The rhyth­mic pat­tern for trig­ger­ing the sam­ples is also ran­domly gen­er­ated. 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, exactly 250 mil­lisec­onds in length. The sam­ples are selected notes from a Eb har­monic major scale spread­ing over 2 and ½ octaves. Ran­dom, but I have do have it it trig­ger­ing the tonic and 3rd and 5th twice as often as the other 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 switches and knobs I would have and what they might even­tu­ally 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 together to cre­ate the design for the box. Joe had already cre­ated a generic con­troller called the pro­jBox and we cre­ated a design based off of the orig­i­nal model to suit the projects needs. We then had the box laser cut at Metrix Cre­ate Space.

design for Lazer Cutter

 

wood cut

Then started 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 grounded. Here we are test­ing the knobs and switches.

I glued the box together 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 circuits.

 

wiring Arduino2

 

 

 

 

 

 

 

 

 

 

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

Ivory a Metrix

 

 

 

 

 

 

 

 

wiring Arduino3

…and com­pleted the wiring between the breadboard/Arduino and the components.

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­ial ports. The Arduino is a ser­ial port device.

At this point I was able to assign the but­tons and knobs to the patches I had already writ­ten. I had long tones, the melodic 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 started work­ing on cre­at­ing patches for the knobs. Knob 1 was a vol­ume con­trol for the lame bass line and knob 2 con­trolled the tempo of the bass line.

At this point I was in the mid­dle of it and needed 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­gested 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 global tempo not just one patch.

In order to raise and lower 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 patches for the first time. I rewrote all the patches mul­ti­ple times, part of the learn­ing process. I would go in with a com­pletely crazy look­ing patch and Ben would say, “you know there is an eas­ier 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­ever about the details and intri­ca­cies of the rest of the process, what I tested, what I kept and what I trashed, but then this blog would go on for­ever. 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­ogy com­mu­nity 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­ated and builds on it, as long as they give you credit.

So, here is a sum­mary of the final prod­uct and a brief descrip­tion of the patches that were used.

Vallecula Map

Val­lec­ula 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 melodic bursts made up of a ran­dom selec­tion of 16 sam­ples and ran­domly selected rhyth­mic pat­terns. The sam­ples are made up of 16 tones that are part of an Eb Har­monic 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 verses. Each word in the poem has 3 dif­fer­ent note choices, 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­ately at a lower 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 phrases in the poem. (When reversed the back­wards phrase is the only part you can understand)

* 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 lower left knob con­trols the tempo of both the poem and melodic bursts

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

* The right on/off switch shifts the melodic bursts up an octave

* The knobs on the right con­trol the LFO fre­quency and depth caus­ing a tremolo effect for the long chords and ring mod­u­la­tion for the melodic bursts

Duncan with machine