Music 220A Syllabus

Fall 2015 | TTh 11:30am - 1:20pm in the CCRMA Classroom/Stage

Teaching Team

Prof. Chris Chafe cc(at)ccrma(dot)stanford(dot)edu | Office Hours: by appointment
TA: Madeline Huberth mhuberth(at)ccrma(dot)stanford(dot)edu | Office Hours: by appointment
TA: Kitty Shi kittyshi(at)ccrma(dot)stanford(dot)edu | Office Hours: by appointment

Course Description

Topics we will cover in class include:

  • Fundamentals of how digital audio works (sampling, quantization, A/D and D/A conversion)
  • Programming audio
  • Different kinds of sound synthesis (additive, wavetable, subtractive)
  • Control functions and low-frequency oscillators for frequency and amplitude modulation (FM and AM)
  • Windows and envelopes in the time domain
  • Delay, and delay-based processing techniques (i.e. reverberation)
  • Filtering and convolution
  • Panning
  • Fourier analysis and resynthesis, cross-synthesis, and time compression/expansion
  • A “sampling” of major composers and compositions

Topics in the class that will not be emphasized:

  • DAW’s such as Logic, Pro Tools, and Ableton
  • MIDI (Musical Instrument Digital Interface)
  • Popular music, trance, electronica

The course schedule (subject to change), in addition to the outline of readings and homework assignments, is available here.

Who is this course for and what is the work like?

This course is designed to be open to a wide range of students. It is a music course, but much of the content is linked to EE and computer science. If you are a musician with intro-level programming skills, or even without prior programming knowledge, you can get by without writing a lot of difficult programs. Your musical knowledge and intuitions will be of great value. However, this course does have technical content. You will need to learn and apply basic concepts of sampling theory, frequency, amplitude, spectral content, modulation, and so on. These subjects will not be taught at the level of rigor we would expect to see in an EE or CS course, but they are technical nonetheless. Likewise, while taking one programming class prior (or in tandem) will help, the course is designed to emphasize concepts as well as execution. On the other hand, if you are a great programmer, you will be able to use your skills in this class to your advantage, and will be expected to challenge yourself on the musically creative aspects of the course.

While there are assigned homeworks and a final project, each student is responsible for defining her/his learning goals and pursuing those goals using a combination of available resources: textbooks, articles, online tutorials and documentation, consulting with the professor, and consulting with fellow students. In short, each student is responsible for defining the things s/he wants to learn about audio and computer music, and for finding the best way to learn those things.

Tools/Software

There are many levels at which one might study audio and music programming, from the conceptual to the minute, from a high-level domain-specific language to low-level manipulation of bytes and bits. In this course we will primarily use a fairly high-level programming language intended specifically for audio and music programming: ChucK. For extra credit in some assignments, students are welcome to recreate the assignment using the Web Audio API. While you are expected to place the majority of your effort into sound design using programming languages (you will learn more this way!), we will be using Audacity in the class for additional post-processing of your compositions; you are welcome to use other software for this portion of the assignment.

Course Requirements and Assignments

Participation and attendance is a large portion of your grade in this class, and attendance will be taken on occasion by the TA's. Please make every effort to arrive on time. Students should attend each class session having done the assigned work - readings, listenings, research, and preparation of presentations - and ready to participate actively in discussion.

With regards to homework, students will complete five programming and proof-of-knowledge assignments, which will be evaluated on correctness and functionality, thorough fulfillment of the stated requirements, and demonstrated effort. The proof-of-concept portion of the assignment (written/typed) is to be submitted into your /Library/220a/ directory. (You must make the 220a folder in your /Library/ directory.) This directory will only be able to be read by the teaching team. The composition portion of the assignment is to be submitted, along with a description of your work, to the course Homework Factory. The Homework Factory is a private page, accessible by CCRMA user ID and password, that links your CCRMA user name to a directory in your CCRMA account. By signing up for a CCRMA user ID, you automatically have a /Library/Web/ directory. You must make a 220a folder in that directory. The Homework Factory then looks for files in your /Library/Web/220a/ directory that are titled: hw1.html, hw2.html, etc, and when it finds them there, a link is created on the Homework Factory page to your that HTML page. When that link appears, your homework is considered ‘submitted’, though you can further edit it up until the deadline. Please ensure that all links to your homework components are functional – the teaching team does not have time to track down files for which links are broken. Assignment 0 will be to create a practice submission so that this process is clear.

Late Policy

Every student has up to 5 late days that may be used for any homework throughout the semester. If late days are used up, the grade will be:

(1 – .1*extra_days) * the_earned_grade

By one late day we mean 24 hours late. No project submission will be accepted one week after the deadline. If one portion of the homework is late, the entire homework is late. DO NOT submit any homework over email.

Music Presentations

Most every class will begin with a couple of short music presentations, curated by you and your classmates. Signups will be listed on the course wiki. Please sign up when you have a CCRMA ID by clicking 'edit' in the top right corner. You will have up to 10 minutes to present and play your piece. You should plan to say a few words about why you picked this piece, particularly commenting on why you are drawn to it, and if there are any course elements that are relevant to your selection. Completion of participation in the music presentations will be 5% of your grade (part of participation).

Final

There will be no final examination for this class. Instead, beginning a few weeks before the end of the quarter, students working either alone or in small collaborative teams of two or three will research some specific aspect of audio or music programming and will have completed either 1) a program that performs a useful and/or interesting task demonstrating that research, or 2) a composition highlighting the research. The research or composition, along with any pertinent information such as the motivations for the composition, design specification of the program, basic user documentation, and composition audio file (if applicable) is to be submitted to the Homework Factory as fp.html. A final presentation of the projects will be held during the final exam time, scheduled for December 9th, from 12:30pm-3:30pm. Documentation of your project should be submitted to the Homework Factory by the start of the final exam as fp.html.

Grading

In this class, grading is mostly a necessary evil - to serve as an incentive for hard work and to maintain a high standard of scholarship. It’s hoped that the students, who have elected to take this course, will work hard out of dedication to learning. Each student will thus be expected to work at the level - and with the tools - appropriate to her/his experience and specific interests. In that spirit, students will be graded on their demonstrated initiative and effort, on program correctness and efficacy, and on clarity and completeness in all assigned work.

Participation (including music presentation): 15%
Assignment 0: 5%
Assignments 1-5 (each worth 10%): 50%
Final Project: 30%

Communication

Announcements will be sent out via the course listserv (music220a@lists.stanford.edu); however, much of the course is disseminated through the course website. Assignments will be posted there as the course progresses.

Academic Honesty

Collaboration between students in this course is strongly encouraged. Students are urged to exchange ideas, opinions, and information constantly, and to help each other with the research and programming projects. However, each student is responsible for completion of his/her own assignments.
Plagiarism of any kind is in direct violation of the Honor Code. You will be expected to attribute due credit to the originator of any ideas, words, programming code, or other ideas that you incorporate into your own work. In computer programming, it’s common to use program components that are known to be reliable, written by others. A lot of good (and some bad) program code is freely available. Nevertheless, one must always give full attribution to the original author of all program code.

Laptops and Cell Phones

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, you can 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.

Accommodations

If you need accommodations for any physical, psychological, or learning disability, or if you want to inform me about a medical situation, please speak to me outside of class.