MUMT 306: Music & Audio Computing I

Music Technology, Schulich School of Music
McGill University

Fall 2016

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 Max (high expertise), an Arduino (good expertise) and 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 Max, an Arduino or a C++ program to allow gestural control of music and audio processes.
We will make use of common commercial software (Max/MSP), open-source software (Pd, RtMidi and Common Music), and develop simple custom applications in C++.

Instructor: Gary P. ScavoneTA: Quim Llimona

Office:  Rm. 504, Suite 500, 550 Sherbrooke Street West
Phone:  514-398-4535, x-089834
Office Hours:  By appointment
Office:  E-215 (MTCL)
Office Hours:  TBD

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 required, 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++ or Web Audio 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 6th and 10th weeks of the semester. Final presentations will occur during the last class of the semester. 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 (6 September): Max/Pd Basics, Music Controller Overview, MTCL Introduction
Week 2 (13 September): Communication Protocols, MIDI with Max/Pd
Week 3 (20 September): More Max/Pd Concepts, Arduino Introduction
Week 4 (27 September): Electronics Overview, Simple Sensors, Arduino Programming
Week 5 (4 October): Max Raw Midi, More Sensors, Arduino I/O
Week 6 (11 October): Max Sequencing, Expressions and Javascripting, Project Report #1
Week 7 (18 October): Exam #1
Week 8 (25 October): MIDI in C++ (RtMidi)
Week 9 (1 November): The MIDI File Format, Open Sound Control
Week 10 (8 November): Audio Signals, MSP Audio Processing, Project Report #2
Week 11 (15 November): Algorithmic Composition Introduction
Week 12 (22 November): Exam #2
Week 13 (?? 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-2016 McGill University. All Rights Reserved.
Maintained by Gary P. Scavone.