Tag Archives: Max (software)

Sappho in Max/MSP: Poetry, Sound, and Programming

I am an experimental psychologist and data analyst with a bent for poetry and art. I have also long been a fan of the Greek poet Sappho. Consequently, for my final project in my independent studies course on Max/MSP/Jitter, I decided to create a small piece of programmed art based on her work. I took one of her poetry fragments – written in Greek about 2500 years ago – and three modern translations of it, by Jim Powell, Kenneth Rexroth, and Sam Hamill, respectively. The patch is only minimally interactive in that the user simply presses “Start” but there is a lot of coding underneath that. This first YouTube video is a demonstration of the finished patch:

This second YouTube video provides a technical walkthrough of the project:

Here’s the text version of that explanation (more or less). I wanted to have audio recordings of the three versions of the poem. Because I could and because I thought it would make a nice contrast with the extreme earthiness of the poem, I decided to use computer voices. I chose three of the voices that come with Macintoshes: Tom, Vicki, and Whisper. For each poem, I put the text in TextEdit and, in the TextEdit > Services menu, chose “Add to iTunes as a Spoken Track.” (I think I added that function at some point but I can’t remember when or from whence it came.) From there I converted each of the computer voice recordings from the default iTunes AAC format to a more-Max-friendly AIFF format and added them to the same folder as the Sappho patch.

In order to control the playback of the various items, I created a qlist object that would contain all the timing information and remote sends to the various objects. In each case, this started the background sounds first (for 5 seconds) and then the voice recordings (about 10 seconds), with the background continuing for about 10 more seconds after that.

Variation 1 uses Seashore sounds (MIDI 123) because, you know, Sappho lived on an island. These wave sounds are all the same length (3 seconds) but they start at randomized times (2-7 seconds apart) and play with randomized velocities/volumes (50-80 on a 0-127 scale). Those variations make the artificial MIDI waves sound a little more realistic.

Variation 2 uses a Greek instrument, Pan flutes (MIDI 76), to plays loops of a descending scale, as descending is more in line with the melancholy feel of the poem. The scale is D minor for two reasons: the minor scales are identical to the Greek Aeolian scales and, as we learned from Nigel Tufnel in This Is Spinal Tap, “D minor… is the saddest of all keys, I find. People weep instantly when they hear it, and I don’t know why.” The MIDI notes for the scale are contained in a coll object and are referenced in a looping manner by a counter object. Like the waves in Variation 1, the notes in the descending scale start at randomized times (1-3 seconds apart) but stay in order and have randomized velocities/volumes (20-50). In addition, a message of “1” that connects the toggle and the counter object makes sure that the scale always starts at the top note.

Variation 3 concludes the performance with music that I personally performed and recorded. There are two music elements playing simultaneously: (1) MIDI keyboard of a zither playing in an Enharmonic Mixolydian scale, and (2) an toy plastic flutophone. The most complicated part of this patch was the routing necessary to make it possible to randomly select and start one of the three recordings in each element while still allowing the qlist to serve as a master on/off control. This was accomplished with dual toggles and gates for each element.

As a note, the keyboard part of Variation 3 was possible using Tom Mudd’s Just Intonation Toolkit, which is an application developed in Max/MSP that makes it possible to play several variations of justly tuned scales. (The video below is a short demonstration of this software.)

I have a lot of possibilities for expanding this project in the future, hence the “v. 01” label. Stay tuned for more!


Tagged , , , , , , , , , , , , , , ,

Hello World: Jitter

My final project for my independent studies course in Jitter was to revisit a dance piece called “Hello World” that my wife, choreographer Jacque Bell, and I created back in October of 2012 for Repertory Dance Theatre here in Salt Lake City, Utah. (You can see an entry with still image and links to reviews here or another with a video of the performance here.) My major goal for this project was to explore the possibilities of Max/MSP/Jitter (with an emphasis on the latter…) for use in future dance and technology pieces, especially Dance Loops, the major project that Jacque, Nichole Ortega, and I are working on for this year and next.

I did two major things for this Jitter project:

  1. Worked with several different visual effects within Jitter (as facilitated by the Vizzie modules); and
  2. Experimented with using a hardware controller – a Korg nanoKONTROL2, in this case – to manipulate video in real time.

Overall, it was a lot of fun and I think there’s a lot of potential there. I’ll spend the next several months learning ways to work out the kinks in the patch, as not everything worked reliably, and learning how to use other hardware, such as my Kinects, Novation Launchpads, Akai APC40 and 20, KMI Softstep and QuNeo, as well as the projectors, etc. (That’s the nice thing about grant money – you can get some excellent gear!)

The major lesson is that it is much, much, much easier to do a lot of this in Max/MSP/Jitter than it is in Processing, which is what I have been using for the last two or three years. The programming is easier, the performance seems to be much smoother, and the hardware integration is way, way easier. (I find it curious, though, that there are hardly any books written about Max/MSP/Jitter, while there are at least a dozen fabulous books about Processing. Go figure.)

I’ve included a few still shots at the top of this post and a rather lengthy walk-through of the patch (where not much seems to be working right at the moment…) below.

Tagged , , , , , , , , ,

Cycling ’74: 20Concepts 00-04

In the spirit of the 20Objects lessons that I mentioned in the last post, Cycling ’74 also created (well, partially, in any case) a second series of tutorials called “20Concepts.” Perhaps the most important difference, aside from the fact that they’re not actually finished, is that they start not with the simplest object in the Max/MSP/Jitter universe – the button – but, instead, they start with one of the most complex – the Vizzie modules for video manipulations. Actually, I think it makes great sense, as it’s much more engaging to start with the big pictures. And, besides, the Vizzie modules are fun!

Here’s the complete list of (intended) tutorials in the 20Concepts curriculum:

  • 20Concepts Curriculum Overview (Done)
  • 01: Vizzie Part 1 (Done)
  • 02: Vizzie Part 2 (Done)
  • 03: Messages Part 1 (Done)
  • 04: Messages Part 2 (Nonexistent)
  • 05: Time
  • 06: MIDI
  • 07: More About Numbers
  • 08: Networks
  • 09: Subpatchers
  • 10: Presets and The Pattr Object
  • 11: Audio Generation
  • 12: Audio Filtering
  • 13: Audio Levels
  • 14: Audio FX
  • 15: Jitter Input
  • 16: Jitter FX
  • 17: Jitter Compositing
  • 18: OpenGL Part 1
  • 19: OpenGL Part 2
  • 20: Max Output

As with the 20Objects tutorials, these look like they might be short but, when you actually do all of the exercises, they are veeeery time-consuming. So far, I’ve only gotten through the first three, but they have been very, very helpful so far. I look forward to the rest!

Here are video walkthroughs of the lessons that I’ve done so far.


  • Cycling ’74 20Concepts, Lesson 00, 20Concepts Curriculum Overview; Lesson 01: Vizzie Part 1; Lesson 02: Vizzie Part 2, and Lesson 03: Messages Part 1 (13 exercises)
  • Lesson 04: Messages Part 2 is empty on the web page
  • Patches can be downloaded from http://db.tt/GBYLb0vY
Tagged , , , ,

Cycling ’74: 20Objects 00-03

Cycling ’74 has a fabulous set of tutorials under the rubric of “20Objects.” Unlike the 20Concepts curriculum, which starts very macro (with the Vizzie objects for video manipulation) but is ultimately incomplete, the lessons for 20Objects start at a very basic level (with the button object) and follow all the way through to Jitter objects. Here’s the complete list:

  • 20Objects Curriculum Overview (Done)
  • 01 – The Button Object (Done)
  • 02 – The Number Box (Done)
  • 03 – The Message Box (Done)
  • 04 – The Pack Object
  • 05 – The Metro Object
  • 06 – The Random Object
  • 07 – The Noteout Object
  • 08 – The Patcher Object
  • 09 – The Scale Object
  • 10 – The Pattr Object
  • 11 – The Table Object
  • 12 – The Cycle~ Object
  • 13 – The Buffer~ Object
  • 14 – The SVF~ Object
  • 15 – The Line~ Object
  • 16 – The jit.qt.movie Object
  • 17 – The jit.matrix Object
  • 18 – The jit.brcosa Object
  • 19 – The jit.xfade Object
  • 20 – The jit.gl.render Object

It turns out that while these all look like short lessons, they’re rather time-consuming if you do all of the steps. As such, I only got through the first three of the 20 lessons (and the introduction) before I had to go work on something else. So far, they do extremely elementary things – this is a button, this is a number box – but I’m learning things I didn’t know and I’m better for it.


  • Cycling ’74 20Objects: Lesson 01, The Button Object; Lesson 02, The Number Box; Lesson 03, The Message Box; and Lesson 04, The Pack Object (60 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY
Tagged , , , , ,

Cycling ’74: Vizzie Quickstart Tutorials

Well, I’ve finished VJ Manzo‘s book Max/MSP/Jitter for Music but, in the true academic fashion, it served mostly to let me know how much I don’t know. (And that’s a compliment, VJ!) And so I’ve decided to start working on the tutorials that Cycling ’74, the creators of  Max/MSP/Jitter, have on their own website. I’m a linear kind of guy and I like to start at the very beginning, so I took at look at their “Quickstart” page on the fabulous Vizzie objects. Here’s my first take at what they offer.


  • Cycling ’74: Vizzie Quickstart Tutorials (1 exercise)
  • Jitter patches can be downloaded from http://db.tt/GBYLb0vY
Tagged , , , ,

MMJ4M 20: Compositions and Perceptions Tools

The very last chapter of VJ Manzo‘s excellent book Max/MSP/Jitter for Music is a final exhibition of some of the applied work that can be done with Max/MSP/Jitter, as well as a few of VJ’s own compositions with Max/MSP/Jitter. As before, these don’t have much to do with Jitter, per se, but they’re at the end of the book so they’re listed under my Jitter course. More significantly, I got some wonderful inspiration on how I could make my own music. (I also got a very informal hearing test with the mosquito patch, and I’m glad to say that I hear high frequencies just fine, thank you very much.)

The book is done but I will be referring back to it very, very often as I start doing my own from-a-blank-patcher programming. (By the way, I also just bought a print copy of the book to go with my Kindle version.) In addition, I’m going to go through the plethora of tutorials that Cycling ’74 offers on their own website as a way to continue and expand my training. All of this is very, very exciting!


  • Max/MSP/Jitter for Music, Ch. 20: Compositions and Perceptions Tools (0 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl
Tagged , , , , ,

MMJ4M 19: Informal Music Learning Instruments

Like the previous chapter, chapter 19, on “Informal Music Learning Instruments” is more of show-and-tell than hands-on. In this chapter, VJ Manzo shows how Max/MSP/Jitter can be used to create programs that greatly facilitate the exploration of musical concepts like harmony. In addition to this pedagogical goal, though, I also see application of a lot of these principles and patches to my own hoped-for work on live looping with my saxophone, especially as VJ’s patches might be good for harmonizing. Hmm… we’ll have to see later this summer.


  • Max/MSP/Jitter for Music, Ch. 19: Informal Music Learning Instruments (0 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl
Tagged , , , , ,

MMJ4M 18: Video Research Instrument

This was an interesting chapter because it consisted almost entirely of a guided tour of one of VJ’s patches and not much in the way of person patching. That’s fine, though, because it was a complicated piece and the principles have/will come in handy in other work.

I find it especially interesting that the patch he develops can be used to gather times feedback on videos. If you recall, my day job is as a psychology professor and I have extensive training in experimental research methods. As such, this falls right in line with some of the things that I or my students could do. In that very practical sense, this was a very useful chapter.


  • Max/MSP/Jitter for Music, Ch. 18: Video Research Instrument (0 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl
Tagged , , , , , ,

MMJ4M 17: Working with Video Files

The second major Jitter-related chapter in VJ Manzo‘s book Max/MSP/Jitter for Music has to do with accessing and playing previously recorded video. It turns out that this is more complicated than using a live video stream – not what I would have guessed but, now that I’ve done the work, it makes sense.

I especially like the jit.scissors command that slices the video window into many small pieces. (Truthfully, the object names in Max/MSP/Jitter are hilarious; not the sort of thing you can get away with in a larger corporate environment.) Things started getting very spaghetti-like, so I show a couple of the patches in both their locked and unlocked states. But, overall, I am made keenly aware of how different things can work in this program as opposed to Processing, with which I am more accustomed.


  • Max/MSP/Jitter for Music, Ch. 17: Working with Video Files (12 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl
Tagged , , , ,

MMJ4M 16: Working with Live Video

Chapter 16 of VJ Manzo‘s book Max/MSP/Jitter for Music, “Working with Live Video,” is the first chapter to deal with Jitter, which is the video component of Max/MSP. This also makes it the first official chapter for my independent studies course with Lien Fan Shen of the Department of Film and Media Arts at the University of Utah. I’m excited because this part connects more directly with the work that I have done in Processing and with the Dance Loops project that I’m working on at Utah Valley University.

The exercises in this chapter all involved grabbing a live video stream from my computer’s camera and then performing a series of color transformations on it, culminating with the use of a MIDI keyboard to do so. Fascinating!


  • Max/MSP/Jitter for Music, Ch. 16: Working with Live Video (11 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl
Tagged , , , , , ,