|
SFAI, Adult Continuing Education
Graphical Programming Environments for Sound & Media:
A Beginner’s Guide to Max/Msp/Jitter
|
Instructor: Jonathan Grover
12 Sessions/Thursdays, September 9–December 2 (no class on November 25)
Time: 7:30–10:30pm
Location: Studio 20A
Number: DT1003
instructor email: studio@jonathangrover.com
online syllabus: jonathangrover.com/teaching/students/max | pdf - printable syllabus
|
Course Description:
This course explores the use of Max/Msp/Jitter, an interactive graphical programming environment for music, audio, and media on Mac platforms. For over twenty years this software has been used by artists, musicians, scientists, and educators to create truly unique customized programs for sound, video, multimedia, and data reinterpretation. By means of interconnecting different pieces from a library of objects that represent small snippets of code, Max's graphical interface allows nonprogrammers to create programs without having to learn or to write code. This course will introduce students to the basics of Max's programming interface and teach students to construct their own patches (custom audio programs created within Max) enabling them to create sound generation, sampling, and video playback/manipulation that can be controlled with external controllers (e.g., game controllers, OSC, MIDI devices, and custom controllers made from Arduino microcontrollers outfitted with a variety sensors and actuators). Students will gain an understanding of the way digital audio works, how to navigate and create with Max software, and how to interface common sensors with microcontrollers. They will also gain the practical knowledge and problem-solving skills to develop and design their own interactive installations, sculptures, and instruments for performance-based art or experimentation. Prerequisite: general knowledge of Mac OS.
Lab Environment:
Students will be working on Macintosh computers provided in SFAI computer lab (20A), although students may bring in their own laptop computers if they wish and already have all the appropriate software used in this course (see optional software in section below). There is a NO FOOD OR DRINK policy in all SFAI computer labs. No smoking on campus or within 30 feet of the building entrances.
Suggested Materials List:
- 1 Gigabyte or more USB flash memory drive (thumb drive, USB stick) or external hard drive to be used for copying files back and forth between computers in lab and (optional) computers at home. Also serves as backup copy for all files created in this course. *Estimated cost $10 (2gig USB flash memory stick) up to $99 (Terabyte external hard drive). *Estimates from BestBuy (dot) com.
- Arduino Duemilanove (USB version) micro controller $29.95 sold at Sparkfun: http://www.sparkfun.com/commerce/product_info.php?products_id=666
- Solderless Bread board $4 order at All electronics http://www.allelectronics.com/make-a-store/item/PB-400/SOLDERLESS-BREADBOARD-400-CONTACTS/1.html
or $9 pick up from local Radio Shack http://www.radioshack.com/product/index.jsp?productId=2734155
- Sensors (we will discuss this later during the course to help students purchase a sensor unique to their project needs). Price range estimated: at $1 for piezo and photo resistors up to $40 for 3-axis accelerometer and motion detectors.
- USB mice, keyboards, or game controllers (pick up from local thrift stores and salvage) * must have USB connector!
Optional software (for laptop or home use):
- We will be using Cycling74's Max/Msp software. SFAI shall provide the necessary computers and software in our lab, however if you wish to work on a personal computer at home or in the lab, 30 day trial versions can be downloaded at: http://cycling74.com/downloads/
Information on obtaining a student discounted license will be detailed at the beginning of the course.
- We will also breifly explore Arduino software for writing commands and programming the ATMEGA chips (free download): http://arduino.cc/en/Main/Software
|
| Navigate to week: 1 2 3 4 5 6 7 8 9 10 11 12 |
Week 1 - Sept 9th:
Meet and greet, introduction to the course, review syllabus.
A look at some of my interactive artwork I created using Max & Arduino
Handout: Introduction to Max
Max Artists:
Laetitia Sonami: http://www.youtube.com/watch?v=HYTrNOmSRSo
Monome: http://www.youtube.com/watch?v=-1tTABS_Ugs
Review MSP tutorials:
001: How digital audio works
002: How MSP works: Max patches and the MSP signal network
003: Audio I/O: audio input and output with MSP
004: MSP Tutorial 1 - test tone
Review Max tutorials:
005: Hello - creating objects and connections
006: Bang! - the bang message
007: Numbers and lists - types of data in MAX
008: Metro and toggle - creating automatic actions
009: Message ordering - debugging program flow
010: Simple math - performing calculations
011:
Numerical user interfaces - sliders and dials
012: Keyboard and mouse input - working with standard input interfaces
- How Digital Audio Works, a look at Audacity: http://audacity.sourceforge.net/download/
- Overview of Max/Msp interface: key, menus, objects, views, inspector palette, text pallette
- Audio inputs and outputs
- Cycle~, amplify~, gain, (create a test tone)
- Number box, floating number box
- Metro, and toggle box
Practice:
build a simple patch that generates sound and can be controlled on/off and via volume control.
|
Week 2 - Sept 16th:
Max Artists:
Stretta: http://www.youtube.com/watch?v=ax7AbXoMgnk
Kevin Blechdom: http://www.youtube.com/watch?v=daGuU2O0Nw4
Review MSP tutorials:
013: MSP Tutorial 2 - adjustable oscillator
014:
MSP Tutorial 3 - wave table oscillator
015: MSP Tutorial 4 - routing signals
016: MSP Tutorial 5 - turning signals on and off
017: MSP Tutorial 6 - A review of fundumentals
Review Max tutorials:
018: Mouse drawing - introduction to drawing
019: Random drawing - working with random numbers
020: Procedural drawing - creating procedural code
021:
Movie playback - introduction to video playback
022: Movie sequencing - working with multiple media files
023: Encapsulation - patchers inside of patchers
024: Abstractions creating libraries of re-usable code
- Sound modeling
-
Adding random elements
- creating abstractions: input/outputs
Practice:
build your own abstraction that embeds 1 patch inside another.
|
Week 3 - Sept 23rd:
Max Artists:
Barney Haynes: http://www.youtube.com/watch?v=sWtFdS5YJZM
John DeKron: http://www.youtube.com/watch?v=rlUdmdEU8ak
Review MSP tutorials:
025: MSP Tutorial 7 - Additive Synthesis
026: MSP Tutorial 8 - Tremolo and Ring Modulation
027: MSP Tutorial 9 - Amplitude Modulation
028: MSP Tutorial 10 - Vibrato and FM
029: MSP Tutorial 11 - Frequency Modulation
030: MSP Tutorial 12 - Waveshaping
Review Max tutorials:
031: Remote Messaging — Sending messages without patchcords
032: Data Structures and Probability - Working with histograms and lookup tables
033: Data Collections — Using databases
034: Timing — Scheduling events
035: Presentation Mode — Creating a presentation interface for a patcher
036: Controlling Data Flow — Routing messages
- FM Synthesis
-
send/receive
- wave shape: attack, decay curve
Practice:
build simple FM synthesizer that sends and recieves data from one patch to another.
|
Week 4 -Sept 30th:
Bring in USB keyboard, mouse, or game controller (cheap at thrift stores, salvage * must have usable USB connection)
Max Artists:
Paul Dresher, Steven Schick, and Alex Stahl:
http://www.youtube.com/watch?v=PdK-eK_MmG8
http://www.youtube.com/watch?v=psKsJVN1wBY
http://www.youtube.com/watch?v=7brW1sWk4l8
Review MSP tutorials:
037: MSP Tutorial 13 - Recording and Playback
038: MSP Tutorial 14 - Playback with Loops
039: MSP Tutorial 15 - Variable-length Wavetable
040: MSP Tutorial 16 - Record and Play Audio Files
041: MSP Tutorial 17 - Sampling Review
Review Max tutorials:
042: Designing Equations — Creating complex mathematical statements
043: Data Viewing — Visualizing data streams
044: Data Scaling — Mapping and scaling numerical information
045: Gesture Capture — Recording and playing back captured input
046: Cellblock — Working with a visual spreadsheet interface
047: List Processing — Manipulation of lists of data
048: Human-Interface Devices — Working with game controllers
- Sampling: groove~, sfplay~
-
hi~ (demo a human interface hack)
- remapping an hi device (zmap)
Practice:
build a simple sampler that can trigger an audio file, manipulate its speed, direction, and playback areas.
Start building first project.. |
Week 5 - Oct 7th:
Bring in MIDI controller if possible. USB connected MIDI id useful, otherwise you need external soundcard with proper MIDI cable inputs
Max Artists:
Daito Manabe: http://www.youtube.com/watch?v=UWmhmuHwv8g
AGF: http://www.youtube.com/watch?v=WsNXtvejRQI
Review MSP tutorials:
049: MSP Tutorial 18 - Mapping MIDI to MSP
050: MSP Tutorial 19 - MIDI Synthesizer Control
051: MSP Tutorial 20 - MIDI Sampler Control
052: MSP Tutorial 21 - Using the poly~ Object
053: MSP Tutorial 22 - MIDI Panning
Review Max tutorials:
054: Basics — Getting MIDI input and output
055: Note Management — Generating and managing note events
056: Parsing — Decoding and encoding MIDI streams
057: Basic Sequencing — Playing back MIDI sequence data
058: Advanced Sequencing — Recording and manipulating MIDI sequences
059: Serial Communication — Using standard serial devices
060: UDP Networking — Passing messages over a network
- Midi objects overview
- Akai MPD drum pad example
- Alesis keyboard example
- reversing a hi object to become MIDI controller.
Practice:
build a simple patch to remap a midi instrument.
Q&A / Review project 1 progress
|
Week 6 - Oct 14th:
Bring Arduino, and solderless breadboard to class
Max Artists:
Matthew Lewis: http://www.youtube.com/watch?v=V2UL-FJMDE0
Christopher Wilits: http://www.youtube.com/watch?v=FL4fzWIuJ4c
Review MSP tutorials:
061: MSP Tutorial 23 - Viewing Signal Data
062: MSP Tutorial 24 - Oscilloscope
063: MSP Tutorial 25 - Using the FFT
064: MSP Tutorial 26 - Frequency Domain Signal Processing with pfft~
Review Max tutorials:
065: Bpatchers — Working with inlined patchers
066: Picture UI Elements — Designing user interfaces with custom image elements
067: Pattr Basics — Introduction to state management
068: Autopattr Bindings — Advanced patcher storage
Review Jitter tutorials:
069: Jitter Tutorial 1 - Playing a QuickTime Movie
070: Jitter Tutorial 2 - Create a Matrix
071: Jitter Tutorial 3 - Math Operations on a Matrix
072: Jitter Tutorial 4 - Controlling Movie Playback
073: Jitter Tutorial 5 - ARGB Color
074:
Jitter Tutorial 6 - Adjust Color Levels
075:
Jitter Tutorial 7 - Image Level Adjustment
- viewing signals
- Filtering sound
- A look at Arduino: http://arduino.cc/en/Main/Software
-
Arduino to MAX sketch, max arduino patch
-
remapping arduino input
Practice:
build a simple patch that uses input for Arduino to alter a sound or video in max.
Look at first projects created
Start brainstorming for final project.. |
Week 7 - Oct 21st:
Bring in sketch or written plan for your final project idea(s)
Max Artists:
North Pitney: http://www.youtube.com/watch?v=V9KPgUzNcNk
Matt Wright: http://www.youtube.com/watch?v=4dTcSeDTq84
Review MSP tutorials:
076: MSP Tutorial 27 - Delay Lines
077: MSP Tutorial 28 - Delay Lines with Feedback
078: MSP Tutorial 29 - Flanging
079: MSP Tutorial 30 - Chorus
080: MSP Tutorial 31 - Comb Filter
Review Jitter tutorials:
081: Jitter Tutorial 8 - Simple Mixing
082: Jitter Tutorial 9 - More Mixing
083: Jitter Tutorial 10 - Chromakeying
084: Jitter Tutorial 11 - Lists and Matrices
085: Jitter Tutorial 12 - Color Lookup Tables
086: Jitter Tutorial 13 - Scissors and Glue
087: Jitter Tutorial 14 - Matrix Positioning
- a look at some different sensors and what they do
- audio effect objects
- simple video mixer patch
Practice:
modify an existing patch with audio effects or a video patch with scissors or color changes.
Indiviual help for final projects. Suggestions for ordering sensors. |
Week 8 - Oct 28th:
Bring in materials to work on final project
Max Artists:
Luke DuBois: http://www.youtube.com/watch?v=EfrWL8v9n4I
Jaime Lidell: http://www.youtube.com/watch?v=Lc6g4rySFqI
Review MSP tutorials:
088: MSP Compression Introduction - What is Compression?
089: MSP Compression Tutorial 1 - Peak Limiting
090: MSP Compression Tutorial 2 - Basic Compression
091: MSP Compression Tutorial 3 - Tweaking Compression
092: MSP Compression Tutorial 4 - Compression on Real Instruments
Rebiew JItter tutorials:
093: Jitter Tutorial 15 - Image Rotation
094: Jitter Tutorial 16 - Using Named Jitter Matrices
095: Jitter Tutorial 17 - Feedback Using Named Matrices
096: Jitter Tutorial 18 - Iterative Processes and Matrix Re-Sampling
097: Jitter Tutorial 19 - Recording QuickTime movies
098: Jitter Tutorial 20 - Importing and Exporting Single Matrices
099: Jitter Tutorial 21 - Working With Live Video and Audio Input
Practice:
build...
Indiviual help for final projects. |
Week 9 - Nov 4th:
Bring in materials to work on final project
Max Artists:
Angela Lorenz: http://www.youtube.com/watch?v=UVAc7kxA3fA
Ali Momeni: http://www.youtube.com/watch?v=NISbJT0na8E
Review MSP tutorials:
100: MSP Compression Tutorial 5 - Multiband Compression 1
101: MSP Compression Tutorial 6 - Multiband Compression 2
102: MSP Compression Tutorial 7 - Keying
103: MSP Compression Tutorial 8 - Microsounds
104: MSP Compression Tutorial 9 - Ducking
105: MSP Compression Tutorial 10 - Controlling Feedback
Review JItter tutorials:
106: Jitter Tutorial 22 - Working With Video Output Components
107: Jitter Tutorial 23 - Controlling Your FireWire Camera
108: Jitter Tutorial 24 - QuickTime Effects
109: Jitter Tutorial 25 - Tracking the Position of a Color in a Movie
110: Jitter Tutorial 26 - MIDI Control of Video
111: Jitter Tutorial 27 - Using MSP Audio in a Jitter Matrix
112: Jitter Tutorial 28 - Audio Control of Video
113: Jitter Tutorial 29 - Using the Alpha Channel
Practice:
build...
Work on final projects in class. |
Week 10 - Nov 11th:
Bring in materials to work on final project
Max Artists:
David Tinapple: http://www.youtube.com/watch?v=pudznKV3LJE
Owen Grace: http://www.youtube.com/watch?v=uxzPCt7Pbds
Review Jitter tutorials:
114: Jitter Tutorial 30 - Drawing 3D text
115: Jitter Tutorial 31 - Rendering Destinations
116: Jitter Tutorial 32 - Camera View
117: Jitter Tutorial 33 - Polygon Modes, Colors and Blending
118: Jitter Tutorial 34 - Using Textures
119: Jitter Tutorial 35 - Lighting and Fog
120: Jitter Tutorial 36 - 3D Models
121: Jitter Tutorial 37 - Geometry Under the Hood
122: Jitter Tutorial 38 - Basic Performance Setup
123: Jitter Tutorial 39 - Spatial Mapping
124: Jitter Tutorial 40 - Drawing in OpenGL using jit.gl.sketch
125: Jitter Tutorial 41 - Shaders
Practice:
build...
Work on final projects in class. |
Week 11 - Nov 18th:
Bring in materials to work on final project
Max Artists:
Robert Heneke:
http://www.youtube.com/watch?v=EO8TMZCGYDc
http://www.youtube.com/watch?v=VmLvjRmulAM
Review Jitter tutorials:
126: Jitter Tutorial 42 - Slabs and Data Processing on the GPU
127: Jitter Tutorial 43 - A Slab of Your Very Own
128: Jitter Tutorial 44 - Flash Interactivity
129: Jitter Tutorial 45 - Introduction to using Jitter within JavaScript
130: Jitter Tutorial 46 - Manipulating Matrix Data using JavaScript
131: Jitter Tutorial 47 - Using Jitter Object Callbacks in JavaScript
132: Jitter Tutorial 48 - Frames of MSP signals
133: Jitter Tutorial 49 - Colorspaces
134: Jitter Tutorial 50 - Procedural Texturing & Modeling
135: Jitter Tutorial 51 - Jitter Java
136: Jitter Tutorial 52 - Jitter Networking
137: Jitter Tutorial 53 - Jitter Networking (part 2)
Practice:
build...
Work on final projects in class.
|
Nov 25th:
No class. Happy Thanksgiving! |
Week 12 - December 2nd:
Bring to class one food or one drink item please.
Present your final projects, performances, party! :) |
| Navigate to week: 1 2 3 4 5 6 7 8 9 10 11 12 |
|
Resouce/Forum Links:
Resource lists for hardware, electronics, sensors, schematics, electricty education: http://sonami.net/teaching/resources/
Arduino forums (guidance from arduino community): http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl
Connect with Max/Msp commuity: http://cycling74.com/forums/
Free object downloads for Max: http://cnmat.berkeley.edu/downloads
Additional Suggested Reading:
"Getting Started with Arduino," First Edition, 2009; Banzi, Massimo: http://www.amazon.com/Getting-Started-Arduino-Make-Projects/dp/0596155514
"Practical Arduino: Cool Projects for Open Source Hardware (Technology in Action)," 2009; Oxner, Jonathan, & Blemmings, Hugh: http://www.amazon.com/Practical-Arduino-Projects-Hardware-Technology/dp/1430224770
"Making Things Talk: Practical Methods for Connecting Physical Objects," Igoe, Tom: http://www.amazon.com/Making-Things-Talk-Practical-Connecting/dp/0596510519/
"Programming Interactivity: A Designer's Guide to Processing, Arduino, and Openframeworks," Noble, Joshua: http://www.amazon.com/Programming-Interactivity-Designers-Processing-Openframeworks/dp/0596154143/
"MAKE: Electronics: Learning Through Discovery," Platt, Charles: http://www.amazon.com/MAKE-Electronics-Learning-Through-Discovery/dp/0596153740/
"Digital Interactive Installations: Programming interactive installations using the software package Max/MSP/Jitter," Blum, Frank: http://www.amazon.com/Digital-Interactive-Installations-Programming-installations/dp/3836412985/
"Composing Interactive Music: Techniques and Ideas Using Max," Winkler, Todd: http://www.amazon.com/Composing-Interactive-Music-Techniques-Ideas/dp/0262731398/
"Musimathics, Volume 1: The Mathematical Foundations of Music," Loy, Gareth: http://www.amazon.com/Musimathics-1-Mathematical-Foundations-Music/dp/0262122820/
"Art and Electronic Media (Themes & Movements)," Shanken, Edward A.: http://www.amazon.com/Art-Electronic-Media-Themes-Movements/dp/0714847828/
|