Week 5 - Class 2
This class is the presentation of the OpenGL scenes. We will take 20 minutes to get things ready/working, then will have a walk-around the room, reviewing each person's OpenGL work. We will again do the 'pair' critique, and here are the people-assignments:
- Ben - Zhicheng
- Li - Kevin
- Duncan - Andre
- Dane - Noah
- Jayne - ???
After completion of the showing, you can choose to make change to your work (for a potentially higher grade) based on the critique, or you can leave for the day and prepare for a very heavy-duty Wednesday class about the Monome. And don't forget: you need to go to tech check to get a Monome before Wednesday's class!!!
Week 5 - Class 2
As part of our 'broken' schedule, we are going to start working on hardware integration - specifically, the use of the Monome grid controller as a user interface. This means that we are going to start doing UI designs and implementation, and will be trying to find ways to improve the work we do by using savvy programming.
Much of what we will be doing will be available here: the monome docs page
We need to start by working with the Monome, getting it hooked up and verify that it is running with our system. To do this, we are going to get the "monome_sum" application into our system, then prove that it is working by running the 'flin' program. You can get monome_sum from here:
Once you've downloaded and installed this content, you can run the application. It will give you a user interface that looks like this:
Now, select your monome device a connect, then click on the 'flin' application button, then finally punch some of the buttons on your monome. You should see a 'waterfall' display, and a little ping each time one of the 'balls' hits the 'floor'. Congrats - you just got your monome running!
In this class, we are going to be 'extending' the use of the monome by programming directly on it using Max. You will need to start by looking through the monome.org Grid Studies for Max, which provide information about working with a monome.
In order to do anything useful with the monome, we'll need to learn how to program it ourselves. This is going to require instantiating the 'serialosc' Max patch (actually, a bpatcher) and interacting with it to receive button presses and send LED updates.
The first patch we will create is a basic input patch, but with the added benefit of lighting up the button beneath our finger.
Note that the serialosc object is created by actually creating a bpatcher object instantiated with a 'serialosc' argument.
By default, all of the messages coming out of the 'serialosc' device have a "/monome" prefix. It doesn't have to - you can change an attribute in the serailosc object to change that, but generally we can just leave it at the default. The main consideration is to add the "/monome" prefix to all of the messages you are working with.
In this case, we are routing messages that begin with "/monome/grid/key", which is the identifier for a button press. When we get them, we don't necessarily do anything with them - rather, if our gate is open, we just prepend a "/monome/grid/led/set to the incoming data, which will light up the button under our finger. Turn off the gate and the lighting stops.
Our next patch works a little differently - it breaks apart the "key" message to access the on/off state of the button, then activates an animation on the surface while pushed:
This shows us how we can create informational displays beyond just the button that we are pressing.
The third patch tries to be a little more creative with the feedback to the device, showing us where we are by putting a crosshairs on the button LEDs. You'll also note the use of BEAP's "Grid Monitor" to give us an idea of what the monome's display should look like:
In class, we will walk through this patch to understand it all...
Finally, we make a patch that is a complete visual generative system; it uses drunk objects, influenced by our button presses, to snake a worm around the monome. We could easily use any of the parameters sent to the monome as values for other generative work as well (such as synthesizer pitch or visual color shifting):
- Plan a project where you will use the Monome as a User Interface. This means 'designing' the surface, and making sure that it makes sense to your team - and that it will make sense to an outside observer (like me!). Have it drive some compelling artwork on the computer display or other display device. This will be displayed for the class on Wednesday, May 4th.
- Work together as a two-person 'team' and go through all of the monome.org Grid Studies for Max. When you return to class on Monday, I'll expect that you know most everything in that series - 'cuz I won't be reviewing it!
Return to the class index.
Last update: 04/20/2016