Computer Music Systems and Information Processing



Prof. Roger Dannenberg

Email: rbd at cs

Location: GHC 7003

Office hours: Mon 2pm-3:15pm



Email: gxia at andrew

Location: GHC 8008

Office hours: Fri 10am-11am



Class Times: Tuesday and Thursday 1:30pm-2:50pm


Location: SH 125


This course presents concepts and techniques for representing and manipulating discrete music information, both in real time and off line. Representations of music as explicitly timed event sequences will be introduced, and students will learn how to build efficient run-time systems for event scheduling, tempo control, and interactive processing. The MIDI protocol is used to capture real-time performance information and to generate sound. The course will also cover non-real-time processing of music data, including Markov models, style recognition, computer accompaniment, query-by-humming, and algorithmic composition. This course is independent of, and complementary to 15-322, Introduction to Computer Music, which focuses on sound synthesis and signal processing.  The pre-requisite for this course is 15-122.


For class discussion,we will be using Piazza. The system is highly catered to getting you help fast and efficiently from classmates, the TA, and myself. Rather than emailing questions to the teaching staff, I encourage you to post your questions on Piazza. If you have any problems or feedback for the developers, email Find our class page at:  spring2014/15323/home


For handing in homeworks, projects, and checking your grades and comments, we will be using blackboard system.



There is no textbook. Students are expected to read and comprehend ~1 paper per week.


Attendance is required. You should not expect your grade to be higher than the percentage of classes you attend. There will be:

Programming assignments: 50%

Other homework: 15%

Midterm: 15%

Final Exam: 20%

You are allowed 4 late days during the semester. They can be used on any project other than Projects 5 (concert) and Project 6 (last day of classes) to turn in a project late without penalty. You cannot spend a fraction of a late day; lateness rounds up. After late days are exhausted, a penalty of 10% per day will be applied. Late group projects will be charged one late day per person per day.

To turn in a late assignment, create a directory in your AFS space, make it readable by and, copy your work there, and email the path to both Roger and Gus. The title of the email should start with "Late handin"( E.g. Late handin project 2) We will use the email time as the submission time, so the files should not be touched after sending email.

You should not need 4 late days. If there is a crisis in your life, please see your academic advisor. We will be happy to work with you and your advisor if there are exceptional circumstances.


As research on learning shows, unexpected noises and movement automatically divert and capture people’s attention, which means you are affecting everyone’s learning experience if your cell phone, pager, laptop, etc. makes noise or is visually distracting during class. For this reason, I allow you to take notes on your laptop, but you must turn the sound off so that you do not disrupt other students’ learning. If you are doing anything other than taking notes on your laptop, please sit in the back row so that other students are not distracted by your screen.


Classroom activities may be taped or recorded by a student for the personal, educational use of that student or for all students presently enrolled in the class only, and may not be further copied, distributed, published or otherwise used for any other purpose without the express written consent of Roger B. Dannenberg. All students are advised that classroom activities may be taped by students for this purpose.


Policy on Academic Integrity is in effect for all courses at Carnegie Mellon including this one. Unless otherwise stated in writing in the assignment  description (for homework, project, exam, or other) collaboration is limited to:

•Discussion of concepts and algorithms,

•Discussion of language and coding details. For example, explaining how to pass a function as a parameter and call it is OK.


Examples of collaboration that is not allowed include the following (this is not an exhaustive list):

•Showing code for a programming project to a classmate,

•Reading code for a programming project from another classmate,

•Reading code solutions from a previous semester of this course,

•Providing or copying answers for homework (you can discuss and explain what the question is asking and the conceptual knowledge required to answer the question, but you may not share numerical answers or text that is turned in).