Time: Monday and Wednesday 10:30-11:50 am
Place: 216 Music and Media Building
Professor Christopher Dobrian
211 Music and Media Building
Teaching Assistant Eric Kabisch
Office hours by appointment (Tues 11-3 preferred)
This course undertakes a study of artistic issues and programming techniques involved in the development of interactive computer art and music. It includes study of theoretical background in computer-human interaction, basic tenets of programming, practical exercises in programming interactive computer multimedia art, and the conceptualization and design of a complete work of interactive music and/or art.
After initial lecture-demonstrations on general issues of interactive arts programming, concentrating on the Max/MSP/Jitter programming environment, students will be largely expected to chart their own individual course of learning and creative programming. Presumably each student has experimental or artistic goals for the course (or will quickly develop them after learning more about what is feasible), and pursuit of those goals is the main object of the course.
This seminar will deal specifically--but not necessarily exclusively--with the Max/MSP/Jitter programming environment. A graphic programming environment, Max/MSP/Jitter is an application for writing your own application or for designing interactive programs. It's a suitable environment for programming music performances, sound and art installations, animations, and video, particularly for situations involving human-computer interaction. Each student in the class will be required to become very fluent in this programming environment and to design and realize artistic projects with it.
Technical topics to be covered include: basic tenets of programming (variables, data structures, data transforms, testing, flow control, encapsulation, debugging, user interface design, etc.); the Max/MSP/Jitter programming environment; review of specifics of the MIDI software protocol, digital audio, and digital video; algorithmic composition of animation, video processing, and/or music; algorithmic computer cognition of user input and gestures; and "artificially intelligent" computer behavior.
Students will be presented with a few assigned programming tasks, and will also be required to design and implement at least two of their own programming projects and resultant compositions.
Class sessions will consist of a) lecture/demonstrations on the above mentioned technical topics, and b) presentation and discussion of student projects in progress and the specific technical and aesthetic issues encountered. Work outside of class will include reading, self-teaching/research, and (primarily) design and programming of interactive art projects.
Below is a week-by-week plan for the class sessions. This plan is subject to ongoing revision based on the interests and needs of the students.
Week 1, April 4 Review of MIDI, digital audio, digital video, animation Overview of Max/MSP/Jitter Week 2, April 11 Data mapping: mapping relationships between MIDI, audio, video, space, color Control functions in audio and music Project planning Week 3, April 18 Uses of randomness and probability Principles of program construction Project reports Week 4, April 25 John Jannone in Monday class session Digital video in Jitter Week 5, May 2 Temporal form, the experience of time, timing in Max Algorithmic composition Midterm project presentations Week 6, May 9 Joshua Kit Clayton teaches Max/MSP/Jitter Week 7, May 16 Composition and design considerations for interactive realtime performance Mathematical and serial approaches to tempo and rhythm The formalization of harmonic practice Week 8, May 23 Issues of cognition: detection of characteristics in data Sonification of mathematical and logical formulae and data Networked collaborations Week 9, May 30 Memorial Day, no Monday class session Iterative functions and recursive functions Emergent systems and artificial life Week 10, June 6 Artificial Intelligence Rehearsal/discussion/critique of final projects Final Exam, June 13 Presentation of projects, 9:30-12:30 (note that this begins one hour earlier than the officially scheduled final exam time)
Grading for the course will be based on timely completion of all the course requirements. Since every assignment is considered a vital part of the educational experience of the course, serious and high quality work is expected at all times. Grading will be based on three levels of programming assignment:
It is suggested that students exchange information, criticism, discussion, etc. via online group discussion and/or email whenever they have a question (or a discovery) of potentially general interest to the group. An electronic "NoteBoard" (online discussion group) has been established for this class. A group email address has been also established for this class, allowing you to send email to everyone in the class at once.
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 performance, production, and documentation of programming/artistic projects.
Plagiarism of any kind is in direct violation of University policy on Academic Honesty, and penalties for plagiarism can be severe. However, in most programming circles it is common practice to excerpt small portions of existing tested, reliable software which has been developed in one's own workgroup (in this case, by the members of the class) for inclusion in a larger programming effort. Whenever this is done, the original programmer should be credited for the included code. In this class you will be expected to attribute due credit to the originator of any ideas, words, images, sounds, or work which you incorporate substantially into your own work.
This page was last modified April 2, 2005.
Christopher Dobrian firstname.lastname@example.org