Simple P5 Animation

This is a simple, lightweight P5 sketch captured to a low-res (320×240), compact video just to illustrate that it is easy to create animations with Processing.

Uploaded with Vimeo also, but Vimeo makes non-paying users wait.

Here is the same P5 sketch rendered at 720p (watch full screen):

The lower-resolution video was made using the built-in MovieMaker class. The 720p version was made by saving each frame as a png image file by calling the saveFrame() method. The frames were then concatenated and saved in mp4 format using FFmpeg.


NIME Zemi Basic Tools Part II: Max/MSP

While we are on the topic of basic tools for this seminar, I suspect everyone already knows about, or at least has heard of Max/MSP, a multi-media visual programming environment sold by the company Cycling ’74. If you have any intention to do work in the media arts, and I expect that everyone who joins my seminar has such an interest, then you should try to develop some knowledge of P5, mentioned in the previous post, and Max/MSP.

Our faculty does not presently offer any courses in either of these two tools, however there are plenty of ways you can learn about these through self-study. Just as with P5, there are many resources online for learning about Max/MSP, including the built in tutorials and help files. There are also introductory books, and a popular book written in Japanese is 2061: A Max Odyssey. This book dates from 2006, and there have been some changes to Max/MSP in the mean time, however the basic way of working with Max/MSP has not changed and this book is still very useful.

Max/MSP can be even more fun than P5 because it uses a visual programming paradigm: you create a program by connecting little boxes having a dedicated function. The programs are called patches because the links between the objects resemble the electronic patch cables of the old analog sound synthesizers. Here’s what a simple Max/MSP patch looks like:

Click for larger image.

This is a Max/MSP patch I created after a few hours experimenting with percussion sequences based on the Fibonacci numbers. I’ve titled it ‘Quasi-Periodic Drum Circle’ but it’s not really quasi-periodic because the patterns eventually do repeat and it’s not really a drum circle, because some of the presets use other MIDI instruments such as whistles, and a Cuíca. A more accurate name would be ‘Quasi-Quasi-Periodic Latin Percussion Circle’. This is what a few of the presets sound like:

One of the (many) nice things about the new version of Max/MSP, Max 6, is that it allows you to create standalone applications. If you’d like to try my Percussion Circle as a standalone application on Mac OS X, send me a quick email and I’ll reply with a download link. Because I’ve used several Fibonacci numbers to create the drum patterns, it will take a very long time before the pattern repeats (I’ll leave it as an exercise to calculate just how long it takes.) So this also functions as an ambient generative Latin Percussion app: you can run it as background music if you like that sort of thing.

Like P5, Max/MSP is multi-platform, there are versions for Windows and Mac. Unlike P5, Max/MSP is not free, however it is very reasonably priced and there is a good student discount. Moreover, Cycling ’74 allows you to download Max 6 and try the entire software package for free for one month. Cycling ’74 is an excellent small company to deal with. Members have also showed up at the annual NIME conference from time to time.

You might be wondering where the name Max/MSP comes from. MSP stands for ‘Max Signal Processing’ because MSP handles the audio signals. MSP also stands for the initials of Miller S. Puckette, who first developed Max. Max is named for Max Matthews, who is considered the father of computer music, known for, amongst other things, having programmed the song sung by HAL in the film 2001: A Space Odyssey. Unfortunately Dr. Matthews passed away last year. I have nice memories of meeting him at NIME and other conferences. Here is Max graciously acting as the MC during the first NIME conference concert in 2001.


As some of you may remember, at the beginning of last year’s zemi class, I handed out a number of a copies of Getting Started with Processing, a very short introduction to programming in the Processing environment by the founders of the project, Casey Reas and Ben Fry.

That short book is probably the best book for beginners to get started with Processing, or P5 as it is known for short. However, I suspect that some of you may have been put off by the fact that the book is written in English. Since a few months ago, the same book, with some additional helpful sections, has been translated into Japanese and is available from Amazon. The book seems to be selling fast, so if you plan to buy a copy, it might be a good idea to do so soon.  If the first run sells out, which I think may be likely, there could be a lag before a second printing appears.

The best way to get started with P5, of course, is to download the program from the P5 community site and start writing some simple programs. The syntax of P5 is similar to C, which most of you have seen in the first year programming classes. However, you’ll soon realize that P5 can be much more fun than C, because it is much easier to get interesting graphical output. Many experienced programmers use P5 as a prototyping tool as they find it is an excellent system for sketching ideas and trying things out. There are lots of libraries for doing all kinds of things such as 3D graphics, computer vision, sound, simulation etc… All completely free, because the developers are believers in open software and sharing. As it turns out P5 is more stable, and much more user-friendly than many expensive software development environments.

It’s possible to get by just with the online documentation, tutorials, and help files included with P5 itself. But having an introductory book does help a great deal. I had a look at the Japanese edition of Getting Started with Processing this afternoon and liked the fact that it includes a glossary of the core P5 functions.

In our era, ignorance of programming is akin to an inability to read and write for someone born after Gutenberg. If your experience with C turned you off, why not give programming another try with P5? I guarantee you that a little effort will reward fun and understanding. These books are available at Amazon, linked to the images above.