20Concepts Curriculum Overview

From Cycling '74 Wiki
Jump to: navigation, search

Please note: This series is in process of being built out. Until then, you will be able to access the outline, but the content may be a while in the making...!

This course outlines an interesting 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. This course is the result of teaching with the 20Objects curriculum and adjusting the concept based on the student's reception. We focus on 20 concepts as bellwether examples of Max functionality, and provide videos, programming examples and proposed lab work.

This is an introductory course, but attempts to introduce the student to concepts important in Max, MSP (audio) and Jitter (video/OpenGL). This syllabus is a work-in-progress, so things will change quite often. If you have experience teaching from this syllabus, please let us know - we'd appreciate any comments, complaints or concerns.

Things you should have available

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, but you may want to have additional media content (videos, audio files and OpenGL models). This coursework is system-agnostic, so you can be using either the Mac or Windows operating system without concern. This course is also usable with Max for Live, but makes no effort to provide Max for Live-specific examples or screenshots.

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.

Things you should already know

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:

  • How to launch Max
  • What patchcords represent
  • A basic concept of what Max is good at

Perhaps the easiest place to get this information is from the Max help and tutorial system. The best introduction to the basics of Max can be seen in the Max Tutorial Zero Video (although this video is Max 5-based). It introduces the environment, some of the common vocabulary of Max programming, and shows the program in action.

If You Are Teaching

Each of the lessons in this course follow the same basic format:

  • An introductory video or example patcher is reviewed.
  • The concept is introduced.
  • Important objects are introduced and used.
  • Related objects are introduced and used.
  • Any relevant theory is discussed.
  • Links and ideas are provided for further study.
  • Proposed lab exercises are provided.

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:

  • The Cycling '74 site: This is the main location for all things Max. There are downloads, tutorials and interviews with Max/MSP/Jitter users. There are also links to current projects on the web and user-created extensions to Max. Lots of useful information.
  • Online Max Docs: An online version of all the documentation, tutorials and hint information that is normally included in Max 6. This is useful for wherever-you-are lookups, or for reference on a second machine when you are deep into programming. Another cool addition to your Max toolkit.
  • A searchable database of Max objects, including a majority of the third-party objects created for the Max environment. If you are looking for an object that does something specific, is likely to be able to help.