COS597b Fall2012

From CSWiki
Revision as of 22:32, 7 October 2012 by Edwardz (talk | contribs) (Schedule)

Jump to: navigation, search


Welcome to COS 597B, Interactive Music Systems.

The homepage for the course is

We will be using this Wiki to manage the course schedule and readings, and sign up for presentation/discussion leader slots.

Course participants

Add your name here, with link to your webpage if you want:

  • Rebecca Fiebrink, instructor
  • Edward Zhang '13
  • Jeff Snyder '13
  • Avneesh Sarwate '14
  • Joe Tylka, first year grad student
  • Reid Oda, second year grad student
  • Rahulram Sridhar, G1
  • Katie Wolf, second year grad student
  • Sasha Koruga, G2
  • Ohad Fried, first year grad
  • Abu Saparov '13
  • Danielle Bragg, second year grad student
  • Daniel Ryan '13
  • Alejandro Van Zandt-Escobar, CS '14
  • Zeerak Ahmed '13
  • Nikitas Tampakis '14
  • Jennifer Guo, first year grad
  • Tobe Nwanna, G2


  • Assignment 1, due 9/20
    • Post on Piazza one example of interactive computer/technology used in live performance (could be a software program, a digital instrument or controller, a performance, ...). Choose something you find exciting or inspiring. Provide a URL and/or citation. Describe how the technology works (at a high level) and how the human(s) interact with the technology. What do you find exciting about it? Any problems you see with it, or criticisms you might offer (including aesthetic or technical concerns)? How does the technology impact or constrain the type of interaction that is possible, and the type of music that is possible or easy to make?
    • (Post publicly on Piazza, use hashtag #assignment1.)
  • Assignment 2, due 10/2
    • Choose two or more synthesis methods to experiment within a music programming environment of your choosing. (Suggestions: Max/MSP, pd (a free Max/MSP-like environment), ChucK, SuperCollider, ???).
    • Post a thoughtful critique of the methods to Piazza, considering the quality of sounds that you can produce with a given method, the ease with which you can control the method, and any other characteristics that might influence someone's choice of whether to use the method in a performance or composition.
    • Use hashtag #assignment2 in your post
    • If you've never used an audio programming environment before and want some tips, just post to Piazza. Feel free to start with existing code & tutorials on the internet. Feel free to share code and programming tips with one another, but do the experimentation and response individually.
  • Assignment 3, due 10/9
    • Create a gesturally-controlled "instrument" that allows you to interactively control sound in real-time. Use an explicit mapping strategy that you program in whatever environment(s) you choose to use (i.e., no machine learning). Reflect on what was easy and hard to do in creating the mapping, what you found rewarding or frustrating about the process, and the process by which you chose the mapping you did. Submit your response on Piazza using #assignment3.
    • Feel free to build on any of your previous assignments. Easy-to-use controllers include the built-in laptop inputs (see, the Wiimote (OSCulator is recommended if you're on a Mac), or joysticks (we have some you can borrow).
    • OpenSoundControl is a good tool for patching together code in different environments, e.g. if you want to use Smelt to capture motion sensor input and send it to pd, or if you want a ChucK program to receive Wiimote messages from OSCulator. Google for OSC examples for the languages you're using, and or post to piazza and get others to share their code with you.
  • Assignment 4, due 10/11
    • Write 1 paragraph (or more if you really want) reflecting on your experiences with the Fauvel seminar last week. Please post to Piazza using #assignment4. Feel free to start a new thread or join an existing thread to chime in on someone else's post. (If you do that, please offer thoughtful commentary and response to their post, not just post something unrelated without starting a new thread.) You can write about any aspect you want, but here are some ideas for starting points:
      • Did the seminar change any of your thinking around what "interactive technology" is (and has been, historically)?
      • Musicology involves ways of studying and reasoning about the world that are quite different from those used in computer science. What might be some of the practices, perspectives, or research goals we have in common? How might computer scientists benefit from understanding more about musicology or other humanities disciplines?
      • Did your ideas about how to digitize Fauvel -- either for scholars or for the public -- change in any surprising and interesting ways following the two seminar sessions led by musicologists?
  • Assignment 5, due 10/23
    • Build at least one gesturally-controlled instrument using Wekinator, with the controller(s) and synthesis method of your choosing.
    • Post a response to Piazza (using #assignment5), including the following: 1) Describe what controller, gestures, learning algorithms), and synthesis method you used. 2) Reflect on what was easy, what was difficult, and how you might improve the software. 3) Also reflect on how the experience of building with Wekinator compared to your previous assignment of building a mapping explicitly using programming.
    • Be sure to read Wekinator instructions to help you get started. Please run the walkthrough ahead of time to verify that the code works for you. We have about a 95% success rate on running on arbitrary machines, but if your machine happens to be Wekinator-unfriendly, we'll want to know ASAP. (Also, note that you may have to turn off firewall & antivirus for OSC to work properly on your machine.)
  • Assignment 6, due 10/25
    • Look through the table of contents for at least one conference proceedings or journal below, for at least the last 2 years. Choose a conference/journal that you expect to be closely related to your final project.
    • Write a response that includes the following: 1) A description of the type of work you generally find published at this venue (and what, if anything, is surprisingly absent). 2) List 10 papers that you find exciting, intriguing, or potentially useful. Provide a 1-sentence description of each one, and say briefly why you've included it. You don't (necessarily) have to read these papers-- it's fine to base your choice on the title and abstract. Post your response on Piazza using #assignment6
    • Possible venues:
      • International Computer Music Conference: A diverse mixture of technical and artistic work, held yearly. Includes just about any topic related to computer music.
      • International Conference on New Interfaces for Musical Expression (NIME): NIME grew out of the ACM CHI (human-computer interaction conference), and it's mostly centered around hardware and software interfaces for performance and composition. However, there is a good mixture of other topics, as well. (Note that 2012 proceedings might not be posted yet at the above link; 2012 is available here.)
      • International Conference on Digital Audio Effects (DAFx): DAFx certainly includes some signal-processing-heavy research on cool-sounding audio effects, but it also includes broader topics like analysis (and synthesis) algorithms, spatial audio, interactive performance issues, audio perception, and others.
      • Computer Music Journal: A journal with very diverse content, spanning both technical and artistic considerations in computer music. Breadth is similar to ICMC. Sometimes there are special issues on particular topics-- see the website if any special issues appeal to you!
      • Organised Sound. Another interdisciplinary journal, can be more focused on musical issues compared to technical issues, but still includes a wide range of topics. Same as CMJ with respect to special issues.
      • [ International Conference on Music Information Retrieval (ISMIR)]: Includes not just music "information retrieval," but music informatives more generally. Lots on audio analysis, most (but not all) of it not targeted at performance. The interactive aspects of systems are not usually explicitly considered, but there are definite exceptions. Lots of cool machine learning work here.
      • International Conference on Auditory Display (ICAD): A conference not focused on music, per se, but on sonification in many forms. There is considerable attention to human perception of audio, as well as focus on contexts in which sonification is useful.
      • Sound and Music Computing Conference: Another international conference with a very broad focus on many issues related to sound, music, and computing. Lots of interesting stuff here. (Note that SMC offers a "summer school" session before each conference, targeted at students in the field-- something to consider!)
      • International Conference on Computer Music Modeling and Retrieval: A conference that is maybe not quite as broad as ICMC, focused on modeling and retrieval. Includes music emotion analysis, spatial audio, synthesis, computer models of perception and cognition, music information retrieval, computational musicology, others. (You'll have to google for each year individually to find proceedings by year.)
      • If there is another venue you think would be appropriate to add, just say so (on piazza or in class).
  • Written final project proposals due November 4. More info will be posted soon & discussed in class.
  • You will be scheduling a 30-minute meeting to discuss your project proposal for the week of November 5.


Tentative further schedule

Schedule from this point on is still tentative!

  • 4 November: Written project proposals due
  • Week of 5 November: Schedule a 30-minute meeting to discuss your project proposal
  • 6 November: Either live coding or networked performance?
    • Read:
    • Read:
    • Discussion leader: Reid Oda
    • Supplemental material:
    • System/Work of the day:
  • 8 November:
    • Read:
    • Read:
    • Discussion leader:
    • Supplemental material:
    • System/Work of the day:
  • 13 November:
    • Read:
    • Read:
    • Discussion leader:
    • Supplemental material:
    • System/Work of the day:
  • 15 November: Laptop orchestras
      • Leaders: ??? (Could be 1-3 people)
    • Read: Why a laptop orchestra?
      • Discussion leader:???
    • Read: Wicked problems for laptop orchestras
      • Discussion leader: Zeerak Ahmed
    • Supplemental material:
    • System/Work of the day:
  • 20 November (May merge with another class or two?): Other collaborative / social systems
    • Tutorial: Overview of music production process and tools
    • Essl?
    • Networked performance?
    • Robots?
    • Smule apps?
    • Collaborative instruments?
    • System/Work of the day:
  • 22 November: Thanksgiving, no class
  • 27 November: Music production
    • Read: Pardo
      • Discussion leader: ???
    • Read: Duignan
      • Discussion leader: Joe Tylka
    • System/Work of the day:
  • 29 November: Interaction with music recommendation systems
    • Read: Kulesza
      • Discussion leader: ???
    • Read: ???
    • System/Work of the day:
  • Week of 3 December: Schedule a 30-minute meeting to discuss your project progress
  • 4 December: Revisiting interactive systems in music scholarship
    • Read: ???
      • Discussion leader: ???
    • Supplemental material:
    • System/Work of the day:
  • 6 December: "Creativity support tools" in HCI
    • Read: Shneiderman, Resnick, et al. on creativity support tools
      • Discussion leader: Danielle
    • Read: Latulipe et al
      • Discussion leader: ???
    • Supplemental material:
    • System/Work of the day:
  • 11 December: Grab bag topics ???
    • Read:
    • Read:
    • Discussion leader:
    • Supplemental material:
    • System/Work of the day:
  • 13 December: Grab bag topics ???, wrap-up discussion
    • Read:
    • Read:
    • Discussion leader:
    • Supplemental material:
    • System/Work of the day:

  • 8 January
    • Final project presentations
  • 10 January
    • Final project presentations
  • 15 January: Dean's date, final paper due (+ code, presentation slides, other materials)

Tutorial topics

  • Possible topic overviews:
    • Programming tools (Max/MSP, ChucK, SuperCollider, ?)
    • Music production / studio tools & practices (e.g., Logic demo; overview of editing, mixing, mastering processes)
    • BCIs & biosignals for music
    • ML tools (e.g., Marsyas, Wekinator, Gesture Follower)
    • Sound synthesis methods (e.g., additive, wavetable, waveshaping?, subtractive?, physical modeling, FM, granular) (high-level overview)
    • Summarize the state-of-the-art regarding gesture analysis for conducting analysis, dance (e.g., Laban analysis), or ancillary gestures of instrumentalists.
    • Kinect basics (how it works, how to program for it)
    • Basic real-time audio processing methods (not synthesis) (e.g., vocoders, Autotune, other live effects) ?
    • Summarize state-of-the-art regarding audio analysis of some sort (e.g., onset detection, beat tracking, pitch tracking)
    • Summarize state-of-the-art regarding MIR topics (e.g., recommendation, tagging, playlist generation, collection visualization)
  • Possible technical overviews:
    • Digital audio (representation of audio in a computer, sampling & quantizing, Nyquist's theorem)
    • Audio feature extraction
    • Machine learning topics: classification, neural networks, graphical models
    • HMMs, DTW
    •  ??

Possible "cool systems" to highlight

  • Reactable
  • Theremin
  • Ondes Martenot
  • The Hands
  • George Lewis' Voyager
  • Monome
  • The Continuator
  •  ???

General Research Resources

Resources for Topics Discussed in Class