Max Programming: Introduction to Procedural Music


Authored by Matthew Davidson


Course Code: OMPRD-341

Next semester
starts June 24

12 Weeks

Level 3

Level 3

3-Credit Tuition


Non-Credit Tuition


This course is for students who are interested in building custom software to express interactive musical ideas. The environment we use is Max, a graphical programming language where ideas are connected with patch cables. Max is approachable to the novice, yet scalable and powerful for experienced programmers. You will convert human gestures into musically-useful data, and use data to power autonomous, responsive musical generators. 

Read More

By the end of the course, you will be able to:

  • Navigate the Max environment and use the key components of the Max user interface
  • Send and receive MIDI information from/to controllers, external hardware, stand-alone applications, and software instruments
  • Sequence musical patterns employing Max
  • Generate chord progressions using Markov Chains
  • Perform Frequency Modulation Synthesis using Max
  • Perform Subtractive Synthesis using Max
  • Manipulate audio and wavetable oscillators using Max objects
Read Less
Overview Syllabus Requirements Instructors
Request Info


Lesson 1: The Max Environment

  • Navigating the Max Environment
  • Adding New Objects to the Max Environment
  • Changing Object Properties with the Attributes Inspector
  • Presentation Mode
  • Assignment 1: Creating an Interactive Visual Artwork

Lesson 2: MIDI Input

  • Parsing MIDI Data
  • Keyboard and Mouse Input
  • Numbers, Symbols, and Lists
  • Object Focus: Midiin, Midiout, Midiparse
  • Assignment 2: Creating a MIDI Monitor Application

Lesson 3: MIDI Output

  • Hosting VST Effects and Instruments
  • The Snapshots Window
  • Virtual Cables
  • Object Focus: Noteout, Vst~, Send~, Receive~
  • Assignment 3: Monitoring Incoming MIDI Data

Lesson 4: Sequencing Musical Patterns

  • Storing and Recalling Integers
  • Beat-Relative Event Syntax
  • Constructing Messages
  • Object Focus: Metro, Counter Select
  • Assignment 4: Building a Tempo-Relative Step Sequencer

Lesson 5: Probability

  • Probability
  • Order of Operation
  • List Manipulation
  • Object Focus: Pack, Unpack, Join, Unjoin
  • Assignment 5: Creating a MIDI Drum Machine

Lesson 6: Data Structures

  • Itable Quantile Function
  • The Coll Object
  • Symbol Manipulation
  • Object Focus: Histo, Table, Coll
  • Assignment 6: Aleatoric Music Composition

Lesson 7: Chord Progressions and Markov Chains

  • Symbols and Chords
  • Chord Progression Charts
  • Chord Progression Generation
  • Object Focus: Prob, Iter, Zl
  • Assignment 7: Composing with a Markov Chain Player

Lesson 8: Frequency Modulation Synthesis

  • Complex Envelope Generators
  • Carrier and Modulator Ratios
  • FM Index
  • Object Focus: Sig~, Cycle~, Function
  • Assignment 8: Two-Operator Chowing FM Synthesizer with Sequencer-Modulated Parameters

Lesson 9: Subtractive Synthesis

  • Subtractive Synthesis Signal Topology
  • Oscillators
  • Musical Filters
  • Object Focus: Cycle~, Saw, Phasor~
  • Assignment 9: Subtractive Synthesizer

Lesson 10: Working with Audio (Part 1)

  • Audio in Files
  • Managing Audio in a Buffer
  • Manipulate Audio in a Buffer
  • Object Focus: Sfplay~, Sfrecord~, Sfinfo~
  • Assignment 10: Sample Playback Drum Machine

Lesson 11: Working with Audio (Part 2)

  • Channel Filtering
  • Audio Loops
  • Synchronization
  • Object Focus: Groove~
  • Assignment 11: Loop Machine

Lesson 12: Wavetable Synthesizer

  • Advanced Buffer Techniques
  • Peek and Poke
  • Wavetable Oscillators
  • Object Focus: Wave~, Peek~, Multislider
  • Assignment 12: Procedural Composition and Synthesis System


Prerequisites and Course-Specific Requirements 

Prerequisite Courses, Knowledge, and/or Skills
Completion of Music Production Fundamentals and Sound Design for the Electronic Musician or equivalent knowledge and experience is required.


  • No textbooks required


  • Cycling '74 Max 8 or higher (Max for Live is not sufficient for the course)


  • MIDI keyboard controller
  • One of the following studio monitoring options (both recommended):
    • Studio monitors (pair), such as JBL 305Ps or better, as well as an audio interface and necessary cables
    • Over-ear studio headphones, such as Sennheiser HD 600, Sony MDR-7506, Philips SHP9500, Audio-Technica ATH-M50x, etc.

Student Deals
After enrolling, be sure to check out our Student Deals page for various offers on software, hardware, and more. Please contact with any questions.

General Course Requirements

Below are the minimum requirements to access the course environment and participate in Live Classes. Please make sure to also check the Prerequisites and Course-Specific Requirements section above, and ensure your computer meets or exceeds the minimum system requirements for all software needed for your course. 

Mac Users

PC Users

All Users

  • Latest version of Google Chrome
  • Zoom meeting software
  • Webcam
  • Speakers or headphones
  • External or internal microphone
  • Broadband Internet connection


Matthew Davidson

Author & Instructor

Matthew Davidson is an associate professor at Berklee College of Music’s Electronic Production and Design department. He is the course coordinator of the sound synthesis curriculum. Prior to Berklee, Matthew spent 20 years working on musical user interface design at MOTU, Cycling ’74, and others. He designed the user interface for a number of award-winning products, including Digital Performer, Volta, and MX4. Matthew is the co-author of BEAP, the virtual modular synthesis tool, and is the author of a number of well-known applications for monome open-source music interfaces. He has released music with Archetribe, Escape Philosophy, and Stretta. He performs internationally as Stretta. Matthew has been a Berklee College of Music faculty member since 2012.


Contact our Academic Advisors by phone at 1-866-BERKLEE (U.S.), 1-617-747-2146 (INT'L), or by email at

Get Info