This course outlines a new model for teaching (or self-learning) Cycling '74's Max/MSP. It offers a pragmatic approach that limits the needs for memorization and requires a lot of hands-on patching. We focus on 20 objects as bellwether examples of Max functions, adding "friend" and "related" objects to round out the programming experience.
This is an introductory course, so some MSP and Jitter functions will be included when appropriate - but the Max event and processing system is our focus. This syllabus is a work-in-progress, so things will change quite often. If you have experience teaching from this syllabus, please let me know - I'd appreciate any comments, complaints or concerns.
Since we stay focused on Max programming, there isn't a lot of software that will be required for using this course. Most importantly, you will need a working copy of Max/MSP/Jitter; you can download a 30-day trial from here, with discounted versions available for students. Other than Max, you won't need any specific software. This coursework is system-agnostic, so you can be using either the Mac or Windows operating system without concern. This course is also as usable with Max for Live as it is for the standalone Max program, so having the Live/Max for Live combo is an option.
Hardware requirements are slightly greater, since we will be playing with device input in a variety of ways. In addition to your computer, you will want to have some sort of MIDI input device (preferably a keyboard). Perhaps the most important bit of hardware to have is a monitor that you are comfortable with and that provides plenty of screen real estate. As a visual programming language, Max needs room for its patches to spread out.
This course does not start at the most basic level; it expects that the user has the most basic understanding of the Max environment. Some things that the user is expected to know:
Perhaps the easiest place to get this information is from the Max help and tutorial system. Find the online documentation here.
Each of the lessons in this course follow the same basic format:
Each of these sections will include one or more proposed exercises, and it is important to have the students work through the exercises. Max, even more than most programming environments, is best learned through "doing". Plan on having sufficient time for your students to work through the exercises as you work through the text, and try to catch any missing information before you move to the next subject. All of the lessons build on earlier data, so if something isn't clear, it can subvert the entire course.
Another technique that is critical is to have students watch you build Max patches and build them along with you. This over-the-shoulder or "patchalong" approach is much more informative than lecturing, so try to build in plenty of opportunity to allow your students to patch with you. Some concepts (like using shortcut keys for adding objects) are best reinforced by seeing them used over and over. Don't be scared to make mistakes! Making and fixing mistakes are a key concept in the interactive programming model of Max.
Here are some links that will be useful throughout this course: