Comment

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.

[youtube=http://www.youtube.com/watch?v=QgYafXpvRls]

Completed:

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

Comment

Comment

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!

[youtube=http://www.youtube.com/watch?v=RSCj2QtHtIs]

Completed:

  • 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

Comment

Comment

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.

Completed:

  • 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

Comment

Comment

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.

Completed:

  • 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

Comment

Comment

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.

Completed:

  • 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

Comment

Comment

GSWA 5: Advanced Input and Output

Chapter 5 of Getting Started with Arduino is  "Advanced Input and Output." The topics covered in this chapter are:
  • Analogue input and output to allow continuous (or at least many-valued) values as opposed to just digital on/off
  • The use of a photoelectric sensor to provide continuous input and an LED to provide continuous output
  • Serial communication to permit data exchange between different programs and different hardware

All of this is really used to lay the groundwork for the extended example in Chapter 6. And this is where I have my first movie examples to show things changing gradually. (Always glad to have the iPhone handy....)

[youtube=http://www.youtube.com/watch?v=3PsUrpE3t7c]

[youtube=http://www.youtube.com/watch?v=WEm37pCNDbU]

[youtube=http://www.youtube.com/watch?v=RNSP-XF5N9U]

Completed:

  • Getting Started with Arduino, 2e, Ch. 5: Advanced Input and Output (5 exercises)
  • Sketches (i.e., code) can be downloaded from http://db.tt/f6x9Q4NA

 

Comment

Comment

GSWA 7: Troubleshooting

First Computer Bug The last chapter of Getting Started with Arduino is about troubleshooting. In its honor, I have posted a picture of the first known computer "bug" above. (Or, at least, the first literal computer bug. See the photo source here and a Wired commentary here.) The chapter is very short and starts by suggestions the following principles:

  • Understanding. That is, it is very helpful if you understand how all the parts in your project function and how they contribute to the intended final product.
  • Simplification and segmentation. Break the project down into smaller pieces and try to check/fix each part separately.
  • Exclusion and certainty. Test each part separately and be certain that it works.

The chapter then recommends starting by looking at the Arduino board, then the breadboard, then the Arduino IDE. Also, there are some useful resources available at the Arduino website, but good old Google works well, too.

And, by the way, was able to use essentially all of the principles in trying to sort out several problems with the sketch that I did for chapter 6, so I'm glad for the advice.

Completed:

  • Getting Started with Arduino, 2e, Ch. 7: Troubleshooting (0 exercises)
  • Sketches (i.e., code) can be downloaded from http://db.tt/f6x9Q4NA

 

Comment

Comment

GSWA 4: Really Getting Started with Arduino

Chapter 4 of Getting Started with Arduino is appropriately entitled "Really Getting Started with Arduino," because this is the first chapter where we actually start hooking up wires and writing code. The goals of this chapter are relatively simple:
  • Hook up an LED to the Arduino
  • Put a pushbutton on the breadboard
  • Connect the wires and write the code so the pushbutton can turn on the LED, first as a momentary switch (i.e., the LED only lights up as long as you hold the button) and then as a toggle switch (i.e., click it once to have the LED turn on and stay on, then click it again to have it turn off and stay off)

Simple concept and an excellent introduction to the entire system. I'm much more accustomed to working with Processing and, while the two are very closely related, they're not identical and the differences are acutely obvious to me. Still, I'm trying to adapt.  Some of the differences include:

  • Explicitly declaring constants
  • Setting pins as input or output (obviously, this doesn't happen in the software-only world of Processing)
  • "digitalRead" and "digitalWrite" as functions (again, because this is hardware now)
  • The use of "HIGH" and "LOW" as "ON" and "OFF" (I know the latter work but there is a strong institutional preference for the former)

On the other hand, much of the building and troubleshooting procedure is the same: go one tiny step at a time, when something goes wrong, take a closer look at how the machine is making sense of your code, and working through possible solutions one at a time, perhaps through commenting lines in and out. And save versions of your sketch!

So, the fact that I am now able to turn a small light on and off may not seem like much to most people, but it's a significant journey from the virtual to the physical world for me. Onward and upward!

Completed:

  • Getting Started with Arduino, 2e, Ch. 4: Really Getting Started with Arduino (5 exercises)
  • Sketches (i.e., code) can be downloaded from http://db.tt/f6x9Q4NA

Comment

Comment

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!

Completed:

  • 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

Comment

Comment

GSWA 3: The Arduino Platform

Ch. 3: The Arduino Platform in Getting Started with Arduino is another introductory chapter. This chapter focuses on:
  • Explaining the Arduino hardware, such as the Arduino Uno, which is what I have
  • Telling where to download the Arduino IDE, which is very similar to the Processing IDE
  • Installing drivers on your desktop computer
  • Identifying the port that connects with your Arduino

Got it. Real stuff in the next chapter.

Completed:

  • Getting Started with Arduino, 2e, Ch. 3: The Arduino Platform (0 exercises)
  • Sketches (i.e., code) can be downloaded from http://db.tt/f6x9Q4NA

Comment

Comment

GSWA 2: The Arduino Way

The second chapter of Getting Started with Arduino is entitled "The Arduino Way." It briefly explains that the "Arduino Philosophy" is based on the following:
  • Prototyping. Making actual, physical objects that do things in the fastest and most efficient way possible.
  • Tinkering. Playing without a goal, especially with old or broken electronics, is time well spent.
  • Patching. Making connections between different modules to direct data and control behavior. Robert Moog's early analogue synthesizers are mentioned as a prime example. (I like the cover of Switched on Bach in this respect.) Max, Pure Data, and VVVV are all mentioned as programming languages that make patching their primary visual metaphor.
  • Circuit Bending. The creative short-circuiting of electronics – especially toys that talk or make sounds – to create music.
  • Keyboard Hacks. Sort of the same idea but playing with the insides of a keyboard to make it do different things.
  • We Love Junk! Because you can take it apart and do things with it. That's why I haven't thrown away my old hard drives or mystery power adapters yet.
  • Hacking Toys. Lots of electronics in kids' toys to manipulate. The author (Massimo Banzi) recommends the PDF booklet "Low Tech Sensors and Actuators."
  • Collaboration. There is, in fact, an Arduino community and they tend to post questions and answers and generally help each other. One interesting place for this is the "Arduino Playground" at playground.arduino.cc.

And that's it. Of course, any time somebody talks about their "philosophy," I always think of the choreographer Mark Morris. As the story goes, when he was being interviewed to be the artistic director of the Théâtre Royal de la Monnaie in Brussels, Belgium, he was asked about his philosophy of dance. He replied: "My philosophy of dance? I make it up. You watch it. End of philosophy." (And you'll be glad to know that he got the job, too!)

Completed:

  • Getting Started with Arduino, 2e, Ch. 2: The Arduino Way (0 exercises)
  • Sketches (i.e., code) can be downloaded from http://db.tt/f6x9Q4NA

Comment

Comment

GSWA 1: Introduction

GSWA_01_ArduinoHomePage Chapter 1 of Getting Started with Arduino (GSWA) is a very, very brief introduction. Basically, it contains the following:

  • The URLs for Processing (processing.org) and Arduino (arduino.cc).
  • A slightly tautological definition of interaction design: "Interaction Design is the design of any interactive experience."
  • An explanation of the term "physical computing": "[Physical computing] involves the design of interactive objects that can communicate with humans using sensors and actuators controlled by a behavior implemented as software running inside a microcontroller (a small computer on a single chip)."

And so, on to chapter 2!

Completed:

  • Getting Started with Arduino, 2e, Ch. 1: Introduction (0 exercises)
  • Sketches (i.e., code) can be downloaded from http://db.tt/f6x9Q4NA

Comment

Comment

MMJ4M 15: Audio Effects and Processing

Chapter 15, "Audio Effects and Processing" of VJ Manzo's book Max/MSP/Jitter for Music shows how to manually create some simple effects – delays and white noise, in particular – and manipulate and visualize them. To get to that point, the chapter shows how to:
  • Create a umenu to give a dropdown list of effect sizes (although it may work better to provide checkboxes that allow for the selection of multiple effects)
  • Create a gate~ object (the MSP audio version) to direct the audio signal towards the appropriate effect patch depending on the effect selected in the umenu
  • Use the tapin~ object to store snippets of audio and the tapout~ object to delay playback
  • Use the transport object to provide global control of timing and playback, as well as the ability to specify timing in samples instead of millseconds
  • Create a umenu to provide a list of filter options and cascade~ and filtergraph~ objects to allow manual modification of those filters
  • Create a noise~ object to generate white noise
  • Use a preset object to save settings for the entire patch

My next big goal is to set up my KMI SoftStep foot controller to activate effects and possibly modify them while live looping, as both hands will be on my saxophone.

Completed:

  • Max/MSP/Jitter for Music, Ch. 15: Audio Effects and Processing (10 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl

Comment

Comment

MMJ4M 14: Audio Buffers

Chapter 14 of VJ Manzo's book Max/MSP/Jitter for Music has one purpose: show how to use audio buffers for recording and playing back audio files. These buffers will be a critical component in my planned live looping exercises, so I'm excited about this chapter. I learned how to do the following:
  • Create and name buffer~ objects
  • Open windows to see the sound waves for the buffer~ objects
  • Get information such as track length with the info~ object and use that manually resize the buffer (if desired, although Max 6 seems to adjust the buffer on its own)
  • Use the groove~ object to read audio from the named buffer
  • Set the buffer to loop
  • Set a flonum variable to control playback speed by converting it with a sig~ object
  • Record new audio into the buffer with the ezdac~ and record~ objects
  • Set up a MIDI keyboard to change simultaneously the speed and pitch of the buffer playback, with middle C set for default speed (although it would be better to alter speed and pitch separately)

Completed:

  • Max/MSP/Jitter for Music, Ch. 14: Audio Buffers (9 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl

Comment

Comment

MMJ4M 13: Audio Playback and Pitch Tracking

In Chapter 13, "Audio Playback and Pitch Tracking" of VJ Manzo's book Max/MSP/Jitter for Music, I learned how to:
  • Playback pre-recorded sound files with the sfplay~ object (including the open message and a toggle to make it go)
  • Open sound files directly by giving their full name in the open message
  • Use the ezdac~ object to get the sound out and use the gain~ object to control volume
  • Use message boxes to restart the sound file or jump to specific times in the file
  • Set keyboard controls to start/stop/rewind the sound file
  • Loop the sound file with a loop $1 message
  • Have more than one sound file open and playing at a time
  • Record the audio with the sfrecord~ object (and toggle it on and off, as well as specify the number of channels to record)
  • Convert frequencies to MIDI values with the fzero~ object

Completed:

  • Max/MSP/Jitter for Music, Ch. 13: Audio Playback and Pitch Tracking (13 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl

Comment

Comment

MMJ4M 12: Working with Audio

In Chapter 12: Working with Audio from VJ Manzo's book Max/MSP/Jitter for Music, we get to start working with the MSP part of Max/MSP, which allows audio signals (you know, actual sound waves and recordings) to be used in addition to MIDI notes or mathematical equations. The chapter shows how to:
  • Get sound into Max with a microphone, at first with the adc~ object (that is, "audio-to-digital converter," where the tilde ~ means that it is an MSP audio object) and later with the more intuitive ezadc~ object.
  • Create gain~ controls to keep the speakers from exploding
  • Create audio meters with the meter~ object
  • Output sound, at first with the dac~ object (i.e., "digital-to-audio converter") and later with the ezdac~ object
  • Create sine waves with the cycle~ object and combine waves for more complex sounds
  • Create a virtual oscilloscope with the scope~ object, thus creating a visual display of the sound wave
  • Create a monophonic synthesizer with the ddg.mono object
  • Convert MIDI to audio frequencies with the mtof object
  • Use pack and unpack to combine or separate MIDI data, as well as midiparse
  • Create a polyphonic synthesizer with the poly~ object

Lots of good stuff. I plan on using several of these in my final project.

Completed:

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

Comment

Comment

MMJ4M 11: Building Stand-alone Applications

A very short but significant chapter in which I learned to do exactly as its title suggests: I learned how to build a stand-along application. The first image above is from my duplication of one of VJ Manzo's patches in the chapter and the second, you may notice, is not a Max patch but it, instead, its very own application running on my Mac. When I got Max/MSP/Jitter, I wasn't aware that this was one of the possibilities but now I'm thrilled about it! My big, unanswered question for the moment is whether I can make a standalone application that will read and save data from a Kinect without having to install all of the other geeky rigamarole in the system folders, etc. Wouldn't that be beautiful for distributing interactive dance applications? (Yes, it would, very much....)

Completed:

  • Max/MSP/Jitter for Music, Ch. 11: Building Stand-alone Applications (2 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl

Comment

Comment

MMJ4M 10: Working with Time

Chapter 10 "Working with Time" of VJ Manzo's book Max/MSP/Jitter for Music is a busy one and a lot of fun. The most important parts for me were that we learned how to create user-controlled loops (of MIDI files, not audio) and how to create a simple step sequencer. Now I realize that it's probably much easier to do both of these in Ableton Live (which my grant at  Utah Valley University got for me) and other, more specialized programs, but it gets to the heart of the things I want to do with Max/MSP/Jitter. (Well, some of the things, in any case.) But it gets much closer to the music making part that I'm interested in.

By the way, it occurs to me that it would be great if the fine people at Cycling '74 (you know, the people who gave us Max/MSP/Jitter) could take the example of their Vizzie modules, which are preassembled, easy to use subpatches for working with video, and did a similar things for MIDI and/or audio files. I'm just sayin'....

Completed:

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

Comment

Comment

MMJ4M 09: Tools for Music Theory Concepts

Chapter 09 of VJ Manzo's book Max/MSP/Jitter for Music is about "Tools for Music Theory Concepts." This generally refers to patches that are able to create chord progressions by reading user input and that are able to perform a variation of scale analysis. For me, I think that there are two particularly important applications of these kinds of patches and programs:
  1. Creating interactive dance performances where dancers are able to use gestural controls to create and modify music (which is a big part of my Dance Loops project at Utah Valley University)
  2. Elaborate versions of live looping, which is something I learned about originally from cellist  Zoë Keating, although I have since found many other people who do it; the big difference is that I play a one-note-at-a-time instrument – an alto saxophone – and these kinds of patches would make it much easier for me to create harmonies and chords, I think

Anyhow, those are the big ideas for now.

Completed:

  • Max/MSP/Jitter for Music, Ch. 09: Tools for Music Theory Concepts (10 exercises)
  • Jitter patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl

Comment

Comment

MMJ4M 08: Control Interfaces Continued

If chapter 07 of VJ Manzo's book Max/MSP/Jitter for Music was mostly a show-and-tell about control interfaces, then chapter 08 makes up for it by bringing in some amusing, hands-on patching. The chapter does start off with a very complicated patch that reads ASCII keyboard codes, but it quickly moves into mouse tracking as a way of generating pitches (and their velocities), which is fun. Also, there is a very promising moment whereby game controllers, such as the two Logitech Gamepad F310 gamepads that I have for my Mac, are used to control sound. Unfortunately, despite much banging of the head against the wall, it turns out that something has gone horribly wrong with my gamepads; they used to work but apparently something about having Windows virtualization software on my computer – which I need for my statistics work – is messing things up. Grrr... So, for now, I'll just have to take VJ's word for it. (On the other hand, I know that I can still hook up all of my actual audio hardware: my  Korg nanoKONTROL2/nanoKEY2/nanoPAD2KinectsNovation Launchpads, Akai APC40 and 20KMI Softstep and QuNeo, as well as the projectors, etc. I think I can even connect my iPhone and iPad via OSC. More on that later, I hope.)

Completed:

  • Max/MSP/Jitter for Music, Ch. 08: Control Interfaces Continued (4 exercises)
  • Patches can be downloaded from http://db.tt/GBYLb0vY (Dead Link)
  • UPDATED LINK: Patches can now be downloaded from http://j.mp/1iy19Xl

Comment