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 | |