Music & Audio Computing I
MUMT 306
C204 / UCL (E-230)
Friday 8:35am -11:25am
Ichiro Fujinaga
Ich@music.mcgill.ca

Introduction
Overview of this class
Overview of Max/MSP
Overview of MIDI

Overview of class
Concepts, algorithms, data structures, and programming techniques for the development of music and audio software, ranging from musical instrument design to interactive music performance systems. Student assignments will involve the development of various music and audio software applications.
Mark Distribution
15% Mid-term exam
25% Final exam
10% Participation
50% Assignments

Assignments
Weekly assignments
Assignment policy
All assignments are due at midnight of the due date.
Late assignments within 48 hours past the deadline will be given either D or F.
Assignments submitted after 48 hours past the deadline will be given F.
Collaboration
Neatness, elegance

Contact
Email: ich@music.mcgill.ca
Webpage: www.music.mcgill.ca/~ich
Phone: 398-4535x00944
Office: E233
Office hours: Thurs. 2-4pm or by appointment

Undergraduate Computer Lab (E230) and accounts
Get new UCL key from Peter Wightman (E239)
Get UCL account from Richard McKenzie (mckenzie@music.mcgill.ca)
Get linux (shell, ftp) account on music.mcgill.ca
Create your web home page (assignment #1)
Basic personal info
Links to your classes
Place to post your assignments

Overview of Max/MSP
A graphical music programming environment
History
Max
MSP

History of Max
Patcher by Miller Puckette (1986) for Phillippe ManouryÕs Pluton
Patcher on Macintosh (MIDI); 4X (DSP)
Max/Opcode by David Zicarelli (1990)
Max / FTS / NeXT (Puckette; Dechelle, et al @ IRCAM)
Pd (Pure data) by Puckette (1996) for Linux/Windows
Max/MSP(Cycling 74) by Zicarelli (1997)
jMax by Dechelle et al. (1998) for Java

History of Max (picture)
Max
Controls MIDI equipment
High-level, graphical programming language
Hides low-level programming
Realtime system
Written in C
Extensible by writing Òexternal objectsÓ in C
Runs under Classis Mac. Windows  and OS X versions to be released soon

MSP
Max Signal Processing
Extension to Max for audio processing
Create synthesizers, samplers, and effects processors
Jitter is a new extension to Max/MSP for 2D/3D graphics and video processing
These are not covered in this class

Overview of MIDI
Features
Physical specification
Protocol
Advantages
Disadvantages
Applications

Features of MIDI: Physical Specification
5-pin DIN connector
MIDI IN, MIDI OUT, MIDI THRU (optional)
Asynchronous serial data (31.25Kbit/sec)
10-bit code byte
start bit
8-bit data
stop bit

Features of MIDI: Protocol
MIDI command types
Channel
System common
System realtime
Reset
System exclusive
Format of commands and data
Status byte (MSB set)
Followed zero or more data bytes (MSB not set)
E.g.: NoteOn, Note number, Velocity

Advantages of MIDI
De facto industry standard
Ubiquitous
Connectivity
Simple
Keyboard-based

Disadvantages of MIDI
Limited expressivity
Slow: serial, delay, jitter
Sampling rate: ~1kHz
Unidirectional communication
Equal-tempered based
Keyboard based

Application of MIDI protocol
Lighting
Stage props: explosion pots, rising platforms, curtain draws (MIDI Show Control)
Audio mixing
Robotics