I was introduced to the Max/MSP/Jitter environment with the task of creating a “visual instrument,” which would use a custom controller I was to build from scratch out of an Arduino Leonardo and whatever spare materials I could cobble together.
The entire class was given a date and time at which we would all do a performance with our instruments. We were also tasked with generating some publicity, and we were to bring in 60 audience members to spectate. Unfortunately we only managed to bring in half this number.
I had only just gotten my nose to the grindstone the day before the presentation, and in my frantic search for information stumbled across Peter Elsea’s work. This proved fortunate, as his instruction became a heavy inspiration for my piece. Using what I learned from his articles on ‘jit.lcd,’ I was able to graph a series of circles with the ‘poltocar’ object fed by an uzi at 64 bangs. The circles were also generated in part by incoming audio from my laptop’s microphone, the volume of which determined their size and color.
I created a switch bound to the ‘a’ key to switch between application of a negative multiplier in a part of the equation between ‘poltocar’ and the lcd output, which would change the shape created by the circles by changing the way they were mapped. Next, I devised an expression which would use the same ‘uzi’ output influencing ‘poltocar’ and the audio input’s average numerical value (after a multiplier) to give the circles a limited range of different colors which would change depending on the volume of the input. That part took some tweaking.
I set up a switch on the ‘d’ key which would toggle between that vanilla setting and a version with a -1 multiplier, which would limit all the circles to the lowest current color value.
Then I ran all of the previous through a gate controlled by the ‘s’ key which toggled between application of the ‘PIXL8R’ subpatch from the VIZZIE EFX package. If not routed through that, I created another gate mapped to the ‘f’ key which toggled between application of the ‘DELAYR’ subpatch from the same package.
The audio track I chose to work with called for an extra little something, and I decided to take the symbolism approach and use a heart — pixelated, of course, as would seem fitting for the song’s genre. In order to incorporate this, I modeled the feature in Autodesk Maya, exported it as a .obj, and read that file with Jitter’s ‘jit.gl.model’ object. Routed parallel to the lcd object, I connected the multiplied average audio input to a scale object to allow that input to control the scale of the model. The inherit_texture and jit.gl.handle objects are extraneous.
I also took the information from the circles’ swatch object and routed it to the ambient light on the model, which would give the model a very slight tint as it’s rendered in the default gray lambert material. I did it that way so it would be easier to keep track of amidst the colors of the circles.
In order to have the model work on top of the lcd window, I had to render the lcd window onto a 3d videoplane. With all that going on, I decided to run all the lcd outputs through a gate and connect that to a ‘jit.arbg2uyvy’ object to alter the color mode so that it would put less processing strain on my machine before sending the lcd output to the videoplane.
Finally, I sent everything to a floating window.
Here’s a shot of the patcher in its entirety:
Video of the presentation:
Thanks to Peter Elsea for sharing his brilliant work in Max. Without access to it there’s no way I could have done a lot of this. If you’re interested in learning about Max, his work is a wonderful place to start.
Thanks to Trash80 for releasing “Missing You” and the rest of the fantastic “Icarus” EP for free. Show the artist some love!
Special thanks to Lance Hegner for lending me his Arduino controller in a pinch. I owe you one, dude!