This week I was gutsy, I did two MaxMSP tutorials. I know, brave. Sam’s tutorials on YouTube continue to be a fascinating way to learn Max, as well as yielding some interesting projects. This second installment this week is about building a vocoder. The audio effect now common place is still incredibly rewarding, especially when running through a mic rather than using a recorded sample. There is a strange pleasure in getting to hear the immediate effects of this on your voice, which is further compounded by the ability to add multiple ksliders (keyboards) to the mix. Below is the tutorial I followed along with yesterday, and a resulting bit of fun that I had as a byproduct.
Another MaxMSP tutorial from dude837 today in the afternoon. Today I the step sequencer in the video below. This seems like slow going, and maybe a little strange since I keep jumping around in this set of tutorials. This is a rough rode. Maybe it’s not rough so much as it’s slow at times. I guess that’s the challenge of learning anything new, it always has times when it’s agonizingly slow, and times when ideas and concepts come fast and furious. The patience that learning requires never ceases to amaze me. Perhaps that’s what feels so agonizing about school when we’re young – it’s a constant battle to master concepts, it’s a slow road that never ends. Learning to enjoy the difficult parts of a journey is tough business. Anyway, enough of that tripe. On to another tutorial.
Programming is often about solving problems, sometimes problems that you didn’t know that you actually had to deal with. This past week the Media Installations course that I’m taking spent some time discussion issues of synchronicity between computers for installations, especially in a situation where the latency of wired or wireless connections creates a problem. When 88 computers all need to be “listening” in order to know when to start playback, how can you solve that problem?
Part of the discussion in the class centered around using the built-in microphones on modern laptops as a possible solution. Here the idea was that if every computer had it’s microphone turned on, the detection of a sound (say a clap) would act as a trigger for all the machines. Unless you are dealing with distances where the speed of sound becomes a hurdle for accuracy, this seemed like a great solution. So I built a patch to do just that.
This max patch uses the internal microphone to listen to the environment and send out a trigger messages (a “bang” in max-speak) when a set sonic threshold is crossed. As an added bonus, this patch also turns off the systems involved with detection once it’s set in motion. Generally, it’s seemed to me that a fine way to keep things from going wrong is to streamline your program so that it’s running as efficiently as possible.
One of the effects that I’ve used in two productions now is where lines appear to draw-in over time in a video. This effect is fairly easy to generate in After Effects, and I wanted to take a quick moment to detail how it actually works.
This process can start many ways. For Sparrow song it started by connecting a laptop directly to the projectors being used, and using photoshop to map light directly onto the set. You can see in the photo to the right that each surface that’s intended to be a building has some kind of drawn on look. In photoshop each of these buildings exists as an independent layer. This makes it easy to isolate effects or changes to individual buildings in the animation process.
Here’s a quick tutorial about how I animated the layers to create the desired effect:
Now that I’ve done this several times it finally feels like a fairly straightforward process – even if it can be a rather time consuming one.
Here’s an example of what the rendered video looks like to the playback system.
Here’s an album of documentation photos from the closing show.
This semester I have two courses with conceptual frameworks that overlap. I’m taking a Media Installations course, and a course called New Systems Sculpture. Media Installations is an exploration of a number of different mediated environments, specially art installations in nature. This course deals with the issues of building playback systems that may be interactive, or may be self-contained. New Systems is taught through the art department, and is focused on sculpture and how video plays as an element in the creation of sculptured environments.
This week in the Media Installations course each person was charged with mapping some environment or object with video. While the wikipedia entry on the subject is woefully lacking, the concept is becoming increasingly mainstream. The idea is to use a projector and to paint surfaces with light in a very precise way. In the case of this course, the challenge was to cover several objects with simultaneous video.
I spent some time thinking about what I wanted to map, and what I wanted to project, and was especially interested in using a zoetrope kind of effect in the process. I kept thinking back to late nights playing with Yooouuutuuube, and I wanted to create something that was loosely based on the kind of idea. To get started I found a video that I thought might be especially visually interesting for this process. My friend and colleague Mike Caulfield has a tremendously inspiring band called The Russian Apartments. The music he writes is both haunting and inspiring, an electronica ballad and call to action. It’s beautiful, and whenever I listen to a track it stays with me throughout the day. Their videos are equally interesting, and Gods, a video from 2011, kept coming back to me.
To start I took the video and created a composition in AfterEffects with 16 versions of the video playing simultaneously. I then offset each video by 10 frames from the previous. The Effect is a kind of video lag that elongates time for the observer, creating strange transitions in both space and color. I then took this source video and mapped it to individual surfaces, creating a mapped set of objects all playing the same video with the delay. You can see the effect in the video below:
Meanwhile in my sculpture course we were asked to create a video of process art: continuous, no cuts, no edits. I spent a lot of time thinking about what to record, and could not escape some primal urge to record the destruction of some object. In that vein I thought it would be interesting do use a slow drip of acetone on styrofoam. Further, I wanted to light this with a projector. I decided to approach this by using the mapping project that I had already created, and instead to frame the observation of this action from a closer vantage point. Interestingly, Gods has several scenes where textures crumble and melt in a similar way to the acetone effect on the styrofoam. It wasn’t until after I was done shooting that I saw this similarity. You can see the process video below:
Simple Synch Youtube Rips
Look at the synchronization utility I made in max, and see if you can get at least two computers to synch up some kind of video playback. More computers could be even more interesting.
Initially I had a lot of ideas about where to go with this assignment. Unfortunately I’m brand new to MAX 6, and the learning curve is a little steep. That said, initially I was thinking about a four computer arrangement. These four laptops would be arranged in a “x” formation, with a laptop at each point of the “x.” Computers that were across from one another would stream of the video from the built-in cameras to the opposite screen. The resulting experience for the observer would be looking at a screen that was always displaying the viewer’s back. This configuration required that the video stream be passed over TCP/IP to the other computer. While this was a great start, ultimately I had to move a different direction – I ended up experiencing a fair amount of difficulty passing a video signal over TCP/IP. I’m sure that this can be done, but I wasn’t having any luck and needed to move on.
In moving forward, however, I stumbled upon Dude873’s video reverb patch. After following along with his tutorial I was able to successfully replicate his patch and the effect that it created. Moving forward I loaded the patch onto two computers and made a few small changes. Specifically, I created a patch that had a udpsend object and a patch that had a udpreceive object. These objects watch the network for an incoming signal to initialize the webcam and to start the effect. The control computer starts and stops the effect on both machines. Hit the video below to see how this works, and download the max patches if you’d like to experiment yourself.
My Video Reverb Patches