MUMT 306: Music & Audio Computing I

Music Technology, Schulich School of Music
McGill University

Fall 2014

Course Description

This course is about algorithmic control in music, with application to human-computer interaction design, music composition, interactive performance, and sound synthesis. It is designed to provide students with a comprehensive understanding of communication and control in music and audio software. At the end of this course, students should be able to:

  1. program complex music algorithms and structures using both Max (high expertise) and C/C++ (introductory competence);
  2. design and build a prototype "digital music instrument" (DMI), choosing appropriate sensors, microprocessors, and circuits for the intended actions or gestures;
  3. interface a DMI or other control interface to either Max or C++ to allow gestural control of music and audio processes.
We will make use of common commercial software (Max/MSP), open-source software (Pd, STK and Common Music), and develop custom applications in C/C++.

Instructor: Gary P. ScavoneTA: Shi Yong

Office:  Rm. 504, Suite 500, 550 Sherbrooke Street West
Phone:  514-398-4535, x-089834
Office Hours:  By appointment
Office:  MTCL (E-215)
Office Hours:  Thursdays, 2-3 PM; Fridays, 1-2 PM

Course Details

Time:  Tuesdays 1:35 - 4:25 PM
Place:  E-215 (MTCL)
Credits:  3
Lab Kit:  There is no required textbook for the course but students are required to purchase a music controller prototyping lab kit for about $60.
Prerequisites:  Previous digital audio and object-oriented programming experience, curiosity and creativity beneficial


There will be two in-class exams, each consisting of a one-hour closed-book written section and a two-hour open-book computer-based section. Assignment due dates will be indicated for each homework. The grade of a late homework will be reduced by 20% per day after the due date. Homework handed in 5 or more days late will be given a grade of 0.

Exams (2):  40%
Homework:  30%
Final Project:  25%
Participation:  5%

Final Projects

There will not be a final exam for this class. Instead, students are required to work on a final project of their own design. The final project provides students the opportunity to pursue a more in-depth study of a particular aspect of the class that they are most interested in. Group projects are possible with the instructor's approval. Project topics should relate to the course material and might include an electro-acoustic composition, the development of a C/C++ application, or the use of an existing software package (Max/MSP, STK, Common Music) to achieve an interesting music control and/or synthesis task. Students are encouraged to consult with the instructor and/or TA in the development stages of the project. Short, 5-10 minute, project progress reports will be required in class during the 5th and 11th weeks of the semester. Final presentations will occur at an agreed upon time during finals week. A short project report, written in HTML, detailing the objectives, methodology, and results will be due at the presentation session. Grading will be based in part on effort and creativity, as well as on students' demonstrated success in pursuing their project objectives.

Course Outline

Week 1 (2 September): Max/Pd Basics, Music Controller Overview, MTCL Introduction
Week 2 (9 September): Communication Protocols, MIDI with Max/Pd, C/C++ Overview
Week 3 (16 September): More Max/Pd Concepts, Arduino Introduction
Week 4 (23 September): Electronics Overview, Sensors, Arduino Programming
Week 5 (30 September): Max/Pd Raw Midi, Arduino I/O, Project Report #1
Week 6 (7 October): Max/Pd Sequencing and Expressions, C++ Classes
Week 7 (14 October): Exam #1
Week 8 (21 October): C++ Standard Library, RtMidi
Week 9 (28 October): The MIDI File Format, Open Sound Control
Week 10 (4 November): Algorithmic Composition Introduction
Week 11 (11 November): Audio Signals, MSP/Pd Audio Processing, Project Report #2
Week 12 (18 November): Signal Metrics, Envelopes, Parameter Extraction
Week 13 (25 November): Exam #2
Projects (2 December): Final Project Presentations

Labs & Links

In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded.

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures (see for more information).

L'université McGill attache une haute importance à l'honnêteté académique. Il incombe par conséquent à tous les étudiants de comprendre ce que l'on entend par tricherie, plagiat et autres infractions académiques, ainsi que les conséquences que peuvent avoir de telles actions, selon le Code de conduite de l'étudiant et des procédures disciplinaires (pour de plus amples renseignements, veuillez consulter le site

McGill ©2003-2014 McGill University. All Rights Reserved.
Maintained by Gary P. Scavone.