Course Description

This course explores music through the lenses of computation and interaction design.

We will start with a structured exploration of rhythm, melody, harmony, and timbre: each week we will look into one of these elements in the context of music (listening to examples from different musical periods and styles), code (manipulating it programmatically), and design (creating visualizations and interfaces for it).

During the second half of the semester we will cover algorithmic composition techniques, and shift to a more self-directed approach. Students work toward their final projects, which might be digital applications, spatial installations, or physical devices.

Class examples will be written in Javascript, using libraries like Tone.js and P5.js, but students will be free to use other languages and frameworks. ICM or equivalent programming experience is required.

Instructor: Luisa Pereira
Meetings: Tuesdays and Thursdays, 4:45 to 6:00
Lab: Fridays, 4:45 to 6:00 (TBD)
Office Hours by appointment, in general on Wednesdays from 3 to 4pm.  Sign up here.

Weekly Schedule

  • Week  1. Introduction
  • Week   2. Melody
  • Week   3. Rhythm + Tech Intro
  • Week   4. Rhythm
  • Week   5. Harmony
  • Week   6. Timbre: Synthesis
  • Week   7. Timbre: Sampling
  • Week   8. Midterm Studio
  • Week   9. Presentations + Guest Workshop (Games Library + Tone.js)
  • Week 10. Formal Techniques in Musical Composition + Arduino communication
  • Week 11. Markov Chains
  • Week 12. Workshop + Adv topic 1
  • Week 13. Workshop + adv topic 2
  • Week 14. Final Presentations

Class code in NAS/Code of Music

The schedule on the second half of the semester will adapt to fit this particular group’s needs and interests.


Class Participation: 10%
Exercises: 30%
Midterm: 30%
Final: 30%

Two absences or two missed assignments are automatic fails —please arrive on time.

Weekly Assignments

  • Assignments range from design exercises, like evaluating an existing system or sketching a new design, to programming exercises and readings. Lab time might be enough to finish some of them, but additional work outside of class might be needed for others. You will be expected to complete them by Tuesday each week. 

Midterm Project

  • Create an interactive or generative musical experience focusing on one musical element. Your project can be either a new concept or an extension / refinement / implementation of an earlier assignment.

Final Project

  • Create an interactive or generative musical experience illustrating the concepts covered in this course. In your presentation, discuss musical, design, and programming aspects of your project.