CS 499 / 001
CS 695 / 006

Computational Music Synthesis

Professor

Sean Luke

Meets

Fridays, 1:30 to 4:10 PM, in Room 274 of Enterprise Hall

Prerequisites

Because it is 499/695 course does not have prerequisites enforced by PatriotWeb, but instead will be enforced by the instructor. The prerequisites are:
  • Java Programming Experience. For 499 students, CS 310 is sufficient.
  • A music backgound. You are required to have multiyear training in an instrument or voice (and actively play), OR have to have music composition or performance experience, OR to have some background experience in electronic music music production, acoustics, or audiology.
  • A basic working knowledge of music theory. What is a dominant 7th chord, for example? How many sixteenth notes are in a measure? What is a minor third? How many notes are in an octave in traditional western tuning? What is syncopation? About that level of knoweledge.
  • Multivariate Calculus, that is, Calc 213
  • Low-level systems programming and bit manipulation. For 499 students, CS 367 is sufficient.

It might also be helpful, but not required, to have some basic physics experience (especially acoustics).

About the Class

This course will introduce the student to scientific and engineering topics, computer algorithms, and software design issues involving the development of software and hardware music synthesizers, controllers, MIDI devices, and sequencers. The class is hands-on, involving real synthesis examples and software development. Topics covered will involve music synthesis history, acoustics and psychoacoustics of sound and music, digital representation of sound, several synthesis methods, controllers, and artifical intelligence applications. The class will include assignments and a final project.

This semester given time we will also attempt to introduce some topics in computational creativity, music UX and interfaces, and artificial intelligence applications to music and audio.

Required Course Materials

You are asked to obtain a new or used USB MIDI controller device of some sort, without which you will not be able to complete assignments. Ideally this is a USB MIDI keyboard, such as a Novation LaunchKey, Arturia MiniLab, or Akai MPK Mini. It's also sufficient to use a DIN-5 MIDI Keyboard or synthesizer in combination with a MIDI USB Interface.

Warning

This course will hit you with a firehose of information. It will be very challenging but (I hope!) interesting and eye-opening. You should be prepared to draw ideas from multiple areas outside of computer science. Projects will be nontrivial and in Java.

Course Web Page

http://cs.gmu.edu/~sean/499/

Grading

Grading will be divided roughly as follows: 20% Midterm, 20% Non-cumulative Final Exam, 60% Assignments and final Project.

Honor Code

The class enforces the GMU Honor Code, and the more specific honor code policy special to the Department of Computer Science. You will be expected to adhere to this code and policy.

Disabilities

If you have a documented learning disability or other condition which may affect academic performance, make sure this documentation is on file with the Office of Disability Services and come talk to me about accommodations.