MUMT 306: Music & Audio Computing I

Music Technology, Schulich School of Music
McGill University

Fall 2020

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 MIDI programs in C++.

Instructor: Gary P. ScavoneTA: Matt Skarha

Office:  Rm. 504, Suite 500, 550 Sherbrooke Street West
Phone:  514-398-4535, x-089834
Office Hours:  By appointment (via email)
Office:  E-215 (MTKPL)
Office Hours:  M: 7:30-8:30 PM; Th: 10:30-11:30 AM EST

Course Details

Time:  Tuesdays 1:35 - 4:25 PM
Place:  Remote via Zoom
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 $40. Other microcontroller development boards (Raspberry Pi, Teensy, ...) can potentially be used or purchased instead (after discussion with the instructor).
Prerequisites:  Previous digital audio and object-oriented programming experience required, curiosity and creativity beneficial

Grading and Policies

Attendance and punctuality: It is expected that you will be punctual and attend all classes. If you miss any, it is your responsibility to find notes from a classmate. Excessive absences or tardiness will compromise your grade. E-mail communications with teaching staff should be courteous and professional. Aim for brief, to-the-point messages, and plan ahead: allow a reasonable amount of time for responses. Extensions and/or make-ups are given only with a valid medical note.

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:  35%
Final Project:  20%
Participation:  5%

Grading curves will be applied if deemed appropriate.

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 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 (8 September): Max/Pd Basics, Music Controller Overview
Week 2 (15 September): Communication Protocols, MIDI with Max/Pd
Week 3 (22 September): More Max/Pd Concepts, Arduino Introduction
Week 4 (29 September): Electronics Overview, Simple Sensors, Arduino Programming
Week 5 (6 October): Max Raw Midi, More Sensors, Arduino I/O
Week 6 (13 October): Max Sequencing, Expressions, Javascripting, UI Objects, Project Report #1
Week 7 (20 October): Exam #1
Week 8 (27 November): MIDI in C++ (RtMidi)
Week 9 (3 November): The MIDI File Format, Open Sound Control
Week 10 (10 November): Audio Signals, MSP Audio Processing, Project Report #2
Week 11 (24 November): Algorithmic Composition Introduction
Week 12 (1 December): Exam #2
Week 13 (7 December): Final Project Presentations (12:00-3:30 PM)

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-2020 McGill University. All Rights Reserved.
Maintained by Gary P. Scavone.