Music 680: Special Topics in Music - Algorithmic Multimedia (Spring 2008)
Wednesdays 4:30-7:10 pm, Music 270
Christopher Burns (cburns at uwm dot edu)
office hours: Monday, 3 - 4:15 pm, Music 367 or by appointment

Course description: Algorithmic and interactive applications across a wide range of artistic practices including image, sound, performance, web, and installation. Students will develop procedural animation and interactive visualization projects, as well as a final project of their own design, using the Processing interactive multimedia environment.

Prerequisites: Open to post-portfolio undergraduate and Masters-level students in Art, DIVAS, Film, and Music; other students admitted by consent of the instructor. The course content will be challenging, but no prior experience with computer programming is expected.

Learning goals and measurement: Upon successful completion of this course, students should: Upon successful completion of this course, students should:
1. understand the technical application and aesthetic purpose of algorithms in a variety of artworks;
2. be able to implement similar algorithmic techniques using the Processing environment;
3. be able to realize specific design and creative ideas of their own in Processing.
Student attainment of these objectives will be measured through participation in classroom discussion, programming and creative assignments, and a final creative project.

Grading policy: Semester grades will be determined in accordance with the following priorities.
In-class assignments 40%
Weekly assignments 40%
Final project 20%
Attendance is required; students who miss three or more class meetings will receive reduced grades.

Course materials:
UWM Uniform Syllabus Policies: http://www.uwm.edu/Dept/SecU/SyllabusLinks.pdf
Course syllabus online: http://www.uwm.edu/~cburns/680-spring-2008/
Processing software and documentation: http://www.processing.org
Course schedule:
January 23, 2008: 2D fundamentals
installing/running Processing; comments, canvas, color, shapes, iteration; posting sketches to the web
in-class assignments: 2^n - precise placement of two shapes, and crazed repetition of two shapes
for next week: layering - how many distinct and perceptible layers can you fit into one canvas?
January 30, 2008: animation fundamentals: setup(), draw(), conditionals
in-class assignment: gravity - a scene where gravity (defined broadly) changes
for next week: behavior - create two distinct figures, each with their own style of motion
February 6, 2008: data structures: arrays and array functions
in-class assignment: sequence - a number of objects, each acting in turn
for next week: flocking - a number of objects with similar (but not identical) behavior
February 13, 2008: photographic image fundamentals: sampling, manipulation, animation
in-class assignment: cut with the kitchen knife - photomontage
for next week: self-portrait
February 20, 2008: interaction fundamentals: event handler functions
in-class assignment: entropy - a scene that becomes static without user interaction
for next week: gesture - interaction via complex gesture (as opposed to "just clicking")
February 27, 2008: no class meeting
March 5, 2008: functions: program structure, return values
in-class assignment: trajectory - extremely gradual (linear) development of a scene
for next week: color theory - consistent and idiosyncratic associations between colors
March 12, 2008: functions II: recursion
in-class assignment: fractal - how many distinct scales of a visual gesture can you nest?
for next week: disintegration - showers of particles at different scales
March 19, 2008: spring break - no class meeting
March 26, 2008: typography: strings, letterforms
in-class assignment: ransom note - mixing fonts and behaviors
for next week: interactive alphabet book
April 2, 2008: objects
in-class assignment: haywire - multiple independent responses to a single interaction event
for next week: windows - glimpses of masked/continuous behavior
April 9, 2008: objects II
in-class assignment: blipvert - fastest perceptible editorial rhythm
for next week: distortion - complex distortions of a repetitive pattern in time and space
April 16, 2008: video import/export
in-class assignment: mashup - the cinematic and the animated occupying the same space
for next week: editor - interactive film editor/montage maker
April 23, 2008: audio, 3D, extensibility: Minim, oscp5, proMIDI
April 30, 2008: final project preparation
May 7, 2008: final project preparation II
Thursday, May 15, 2008, 7:30 pm: final project presentations, Electracoustic Salon, Music B60