Max MSP Programming Course: Structuring Interactive Software for Digital Arts
Offered By: Stanford University via Kadenze
Course Description
Overview
Max is a powerful platform that accommodates and connects a wide variety of tools for sound, graphics, music and interactivity using a flexible patching and programming environment. Max allows most computer users to write a simple, meaningful program within a few minutes, even with limited programming knowledge. But to do something more substantial it's necessary to approach Max as an actual programming language, by taking advantage of its various mechanisms for abstracting program elements into scalable, reusable components that can be combined in increasingly powerful ways.
This class will not cover every single capability of the language, but instead will focus on key concepts and mechanisms that will allow for tremendous new freedom and possibilities in Max. The class will touch upon:
- sound and movie playback
- sound synthesis
- sound and video effects processing
- algorithmic composition
- cross-modal mappings (e.g., video affecting audio and vice versa)
- interactive control (e.g., from QWERTY keyboard, mouse, USB devices, Open Sound Control)
Max programming, like most interesting topics, has deep aspects and shallow aspects. This course will largely focus on the deep aspects: principles, concepts, techniques, and theory. If you understand these underlying aspects, your capacity to create in Max will deepen exponentially.
At the same time, this is not just a theory class. You will also create your own projects using Max. This course will teach the minimum you need to start working on assignments, but mostly I will teach you how to learn or look up the shallow knowledge on your own using Max’s built-in documentation, the Internet, and the Kadenze course forum, as well as how to program your own tests that answer specific questions or reveal potential bugs. Working in this way, you will also develop essential skills and habits that will develop confidence and self-sufficiency, and serve you in the future.
Syllabus
- Interactivity
- This session will explore how to bring interactivity into your work. We will look at the mechanics of using an external device I/O through Max: MIDI, OSC, HID, what objects you use, and typical usage patterns.
- Data Types in Depth
- This session goes into data types in depth, giving you a deeper understanding of MAX.
- Abstractions, Files, and How Max Works
- This session will recap and review the concepts we've learned in Max, Jitter, and MSP. It will also cover abstractions, Bpatchers, and collections.
- Max programming paradigms
- This session will cover multiple instances of abstraction, making multiples with poly~, finite state machines, bottom-up and top-down design and development, and cross-modal mappings.
- Getting Mathematical: Arithmetic, Logic, Matrices
- In this session we’re going to get mathematical. We will cover integer and floating point numbers, randomness and noise, human perception(and why you often want to use a log scale when dealing with frequency or amplitude), Boolean true/false logic, and jitter matrices.
- Structuring Non-Trivial Patches
- This session will cover best practices for naming, using sub-patchers and encapsulation in your patchers, as well as alternate data paths for larger programs.
- Introduction
- This session will introduce you to Max, to this course, and how to get started.
- Fundamental Elements
- This session will cover the fundamental elements of Max, getting to know the user interface for programming Max, and the basic mechanical steps of "patching" (ie. putting programs together).
- What's Really Going on Inside Max
- Now that you’ve got the flavor of Max and you know how to put together your own patches, we’re going to dive deep into what’s really happening inside the computer as Max runs your patches. This session will cover a deeper understanding of Max Data and Data Flow.
- Integrating MAX with Other Software and Languages
- This session will discuss where you can take your Max programming, integrating Max with other computer paradigms, final thoughts, and extra resources, tools, and examples.
Taught by
Matt Wright
Tags
Related Courses
Composición algorítmica en SupercolliderUniversidad Nacional Autónoma de México via Coursera Tecnología musical con software libre
Universidad Nacional Autónoma de México via Coursera