| ![]() |
|
|
About the CourseDescription: Computers are used to synthesize sound, process signals, and compose music. Personal computers have replaced studios full of sound recording and processing equipment, completing a revolution that began with recording and electronics. In this course, students will learn the fundamentals of digital audio, basic sound synthesis algorithms, and techniques for digital audio effects and processing. Students will apply their knowledge in programming assignments using a very high-level programming language for sound synthesis and composition. In a final project, students will demonstrate their mastery of tools and techniques through the implementation of a significant sound-processing technique and music composition. Prerequisites: Any introductory programming course, or permission of the instructor. About the InstructorRoger B. Dannenberg is an internationally known researcher, composer, and performer specializing in Computer Music. His invention of computer accompaniment led to the creation of the SmartMusic product used by thousands of music students every day. His work on real-time techniques and software synthesis have influenced the design of many systems in use today. Dr. Dannenberg is currently working on music understanding by computer and advanced programming techniques for interactive music. As a performer, Dannenberg plays trumpet in various jazz groups in Pittsburgh, including Capgun Quartet. As a composer, Dannenberg has written works for computer, trumpet, and chamber groups, including recent commissions by the Wats:On? Festival, U3, and the Pittsburgh New Music Ensemble. He has also performed his compositions in Havana, Mexico City, Paris, Pisa, and Curitiba, Brazil, as well as across the United States. Who Is This For?I want this course to be open to a wide range of students. It is a Computer Science course, but most of the content is orthogonal to programming or traditional computer science. If you are a great computer science student or even a great programmer, you will be able to use your special skills in this class to your advantage.On the other hand, if you are a musician with intro-level programming skills, you can get by without writing a lot of difficult programs. Your musical knowledge and intuitions will also 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 I would expect to see in an EE course on linear systems, but they are technical nonetheless. I think these are essential skills for modern musicians and composers (and computer scientists!). Course ContentComputer Music includes many things. This course focuses on using computers to create and manipulate sound. Things that will be covered:
Things that will not be emphasized:
You may notice that the things that will be covered have to do with music as an audio signal. The course will teach how to manipulate audio signals to achieve musical goals. The things not emphasized tend to deal with music as "events" such as notes, phrases, and other structures, which can be analyzed, generated, and manipulated by computer. A companion course, Computer Music Systems and Information Processing, explores these aspects of computer music. Also not taught are techniques for real-time interactive systems. OrganizationFeel free to let me know what you would like to learn about. There are some basics we have to cover, and I’ll have no trouble filling the time, but I am open to suggestions. The general plan starts with an examination of sound. What is it, how to we describe it and measure it, and how to we store it on a computer? There are some simple but profound answers, and anyone working with sound on computers needs to know them. We will immediately begin to learn and use Nyquist. Nyquist is probably the most powerful programming language for audio manipulation, sound synthesis, and computer music composition. Nyquist was designed and implemented by me and my students, and we have used it for over a decade. It now runs under Windows, the Macintosh, and Linux, so you will be able to use it on your favorite machine (it is also free). Nyquist will be used to experiment with what we learn in class. For example, if we learn about FM Synthesis, rather than listening to examples or playing with an FM synthesizer, we’ll program an FM Synthesizer in Nyquist (maybe 10 lines of code) and use it to make music. We’ll spend most of our time learning about different techniques, always exploring three aspects:
As the semester moves on, everyone will be expected to create music. I don’t expect masterpieces, nor do I require a musical background. I will require an appreciation for artistic intentions and a serious effort to create something interesting. Often, the students with the least musical baggage produce the best work. I hope everyone will hear music differently after this course. The main homework assignments require music compositions that demonstrate your mastery of technical material from the course.. The course includes a semester project. Projects may be team efforts as long as the efforts of team members are well-defined. I particularly hope "technical" majors and "non-technical" majors will team up. The norm for this project is to implement an interesting method for sound processing and to use the method to create a musical work. For example, you might create a multi-band filter controlled by cellular automata and compose a piece based on filtered crowd noises. I will strongly encourage programming projects to contribute to the growth/improvement of Nyquist and an open-source audio editor Audacity. By working in the context of these existing programs, student work benefits future classes and other researchers and composers. These become "real" projects, not so much in the sense of scale, but in the sense that they should really work and be ready for real users. The research literature is a good source of projects, e.g. take something described in the literature, implement it, document it, and demonstrate it. In addition to the semester project, there is a semester composition, where students integrate what they have learned and produce an original composition. There will be a concert at the end of the semester featuring many of these student works. I have enjoyed teaching this course since fall 2002. Before
that, the last time I taught an Intro
Computer Music course, the main computer was an IBM PC/AT with a
whopping 10MB
disk drive. It seems that everything has changed since then. Students will
be able to do their work on their own personal computer, and there’s little need
for a big studio of special equipment as in the past. That means students can
continue to use and apply everything they learn even after the semester ends.
|
© 2010 - Roger B. Dannenberg |