[up] [home]

Syllabus


Week 1


Aug 28


Course Overview
  • Syllabus, Grading, Projects, etc.
  • PortMidi
  • Languages
    • Serpent
    • Java
    • C++


Readings:
Midi Standard: David's MIDI Spec
Standard Midi File Specification (If you've read "David's MIDI Spec," then a lot of this Standard MIDI File specification will be redundant. Skip what you've already read about, but don't miss the descriptions of Meta events.)

Concepts:
What the course is about
What is required of students
Implementation language options
Reading and Writing MIDI data

Project 1: Implement sequence player


Sep 1


MIDI Standard


Concepts:

Notes, note-on, note-off
Channels in MIDI
Control change and what control changes affect
timing in MIDI
PortMidi Library initialization/termination
PortMidi device queries
PortMidi stream creation/deletion
PortMidi read/write
timing in PortMidi
tracks in MIDI files


Week 2


(Sep 4 is Labor Day)

Sep 8




Scheduling Algorithms
  • abstract interface
  • linked list
  • sorted list
  • heapsort
  • time wheel
  • time wheel + heapsort


Reading:

Dannenberg, ``Real-Time Scheduling and Computer Accompaniment in Current Research in Computer Music, edited by Max Mathews and John Pierce, MIT Press, 1989.

Project 1 (continues)


Week 3




Sep 11

Sep 15


Abstract Time Systems and Accurate Timing
  • Logical (or Virtual) Time Systems
  • Tempo and time maps
  • The Formula Programming Language
  • Multiple and nested logical time systems
  • Event buffers
  • Timed Messages in Aura


Reading:

Anderson, D. P. and Kuivila, R. 1990. A system for computer music performance. ACM Trans. Comput. Syst. 8, 1 (Feb. 1990), 56-82.

Concepts:
logical time as a specification of desired behavior
tempo as slope of time map
time as integral of tempo
beats as integral of 1/tempo
tempo and control parameters through computation in Formula
nested and multiple tempo
forward synchronous systems
event buffers
active objects and their implementation
how do event buffers reduce jitter at the cost of latency?
examples of event buffering in applications, device drivers, hardware.

Project 1 (due Sep 15)

Project 2: Implement efficient scheduler and logical time class.


Week 4




Sep 18

Sep 22

Score Representation
  • File Formats
    • Standard MIDI File format
    • Allegro file format
    • Symbolic Notation
  • Operations on scores:
    • tempo change
    • articulation
    • timbre/instrumentation
    • transposition
    • octave doubling
    • parameter mapping
  • Hierarchical Scores
  • Multiple Hierarchies


Reading:

Buxton, W., Sniderman, R., Reeves, W., Patel, S. & Baecker, R. (1985). The Evolution of the SSSP Score Editing Tools. In Roads, C. & Strawn, J. (1985). Foundations of Computer Music. MIT Press, Cambridge MA, 376-402.

Concepts:
special purpose vs. general/extensible representations
why is music notation difficult?
how much notation information is in a MIDI file?
scores as data types - operations on scores
hierarchy in music data

Project 2 (continues)


Week 5



Sep 25

Sep 29


Concurrency
  • Static Priority and other schemes
  • Single-reader, single-writer queues
  • Priority Inversion


Reading:
Dannenberg, ``Software Design for Interactive Multimedia Performance.'' Interface - Journal of New Music Research 22(3) (August 1993), pp. 213-228.

Concepts:
"classical" synchronization primitives: locks, semaphores
synchronization with message passing/mailboxes
real-time issues: blocking, priority inversion
lock-free synchronization
earliest deadline first scheduling

Project 2 (due Sep 29)

Project 3: Combine scheduler and score player. Demonstrate tempo control through time warping.


Week 6




Oct 1



Music Classifiers
  • basic theory
  • Naive Bayesian classifiers
  • Music features
    • symbolic
    • acoustic
  • Beat tracking
  • Key analysis
  • Harmonic analysis (chord labeling)


Reading:

Dannenberg, Thom, and Watson, ``A Machine Learning Approach to Musical Style Recognition" in 1997 International Computer Music Conference, International Computer Music Association (September 1997), pp. 344-347.

Concepts:
music features
estimating means
Bayes Theorem
maximum likelihood (of class membership)
beat tracking assumes:

tempo varies slowly
music events tend to coincide with beats

pitch histograms for key estimation (Krumhansl)
harmonic analysis based on conflicting goals:

chord labels explain pitch content
number of chord changes is minimized
higher-level music knowledge

Project 3 (continues)


Oct 5


Music Generation

  • Markov models
    • pitch sequences
    • pitch + rhythm
    • concurrencies
  • Music grammars
  • suffix trees

Final project preview


Reading:

Kohonen, T. "A self-learning musical grammar, or 'associative memory of the second kind'" in IJCNN., International Joint Conference on Neural Networks (June 1989), vol 1, pp. 1 - 5.

Concepts:
music as time series data
Markov models
estimating transition probabilities
concurrency (Birmingham and Pardo)
music as formal language
hierarchical structure and its relationship to grammars
context sensitive grammars
unsupervised sequence learning

Project 3 (continues)


Week 7




Oct 9


Real-time Computer Music Systems Overview


Reading:
Bloch and Dannenberg, ``Real-Time Accompaniment of Polyphonic Keyboard Performance,'' in Proceedings of the 1985 International Computer Music Conference, (August 1985), pp. 279-290.

Project 3 (continues)

Note: video on Monday, Oct 9


Oct 13


Computer Accompaniment

  • score following
    • monophonic melodies
    • polyphonic keyboard performance
    • vocal performance
    • using HMM models
  • accompaniment synchronization


Concepts:

score is known, timing is unknown
performance error and robust matching
dynamic programming
distance measures for monophonic and polyphonic
probabilistic score following techniques
semi-autonomous accompaniment generation

Project 3 (due Oct 13)

Project 4: Modify scheduler to run MIDI processing and graphical user interface processing in separate processes.


Week 8




Oct 16

(Oct 21 is mid-sem break)


Midterm
 

Project 4 (continues)

Week 9




Oct 23

Oct 27


Music Search

  • Query-By-Humming
  • Music Fingerprinting


Reading:

McNab, R. J., Smith, L. A., Witten, I. H., Henderson, C. L., and Cunningham, S. J. 1996. "Towards the digital music library: tune retrieval from acoustic input." In Proceedings of the First ACM international Conference on Digital Libraries (Bethesda, Maryland, United States, March 20 - 23, 1996). E. A. Fox and G. Marchionini, Eds. DL '96. ACM Press, New York, NY, 11-18.

Concepts:
QBH - what it does
themes
DP for approximate substring matching
music fingerprinting - what it does
music fingerprinting - features
music fingerprinting - hashing techniques

Project 4 (continues)



Week 10




Oct 30

Nov 3


Audio Concepts

  • samples
  • frames
  • blocks
  • synchronous processing

Audio APIs

  • PortAudio
  • callback models
  • blocking API models
  • scheduling

Plug-In Architectures


Reading:

Ross Bencina and Phil Burk, "PortAudio - an Open Source Cross Platform Audio API." In Proceedings of the 2001 International Computer Music Conference, International Computer Music Association, (2001).

Concepts:
samples
frames
blocks
how is audio signal processing computation organized?
why must audio processing be synchronous?
what does synchronous processing mean?
PortAudio - querying devices
PortAudio - opening/closing streams
PortAudio - reading/writing data
callback/asynchronous api
blocking/synchronous api
typical scheduling strategies for audio applications
what is the architecture of plug-ins?
how do applications use plug-ins?

Project 4 (due Nov 3)

Project 5: Modify project to act as master or slave and sync with another machine.


Week 11




Nov 6

Nov 10


Networking

Clock Synchronization


Reading:

Matthew Wright, Adrian Freed, Ali Momeni, "OpenSound Control: State of the Art 2003", in Proceedings of the 2003 Conference on New Interfaces for Musical Expression (NIME-03), Montreal, Canada, 2003, pp 153-159.

Concepts:
network latency
OSC addressing mechanisms
OSC timing mechanisms
OSC network addressing
OSC reply, status, acknowledgements (or lack thereof)
Clock drift
Clock skew

Project 5 (continues)


Week 12




Nov 13

Nov 17


Class Project Design Week


Reading:

Dannenberg, Rubine, and Neuendorffer, ``The Resource-Instance Model of Music Representation,'' in Proceedings of the 1991 International Computer Music Conference, International Computer Music Association, (October 1991). pp. 428-432.

Project 5 (due Nov 17)

Project 6: Implement a component for a distributed music system.


Week 13




Nov 20

(Nov 24 is part of Thanksgiving break)


Class Project Design Review


Reading:
TBA

Concepts: TBA

Project 6 (continues).


Week 14




Nov 27

Dec 1


System Integration Day

Project 6 (continues).

Week 15




Dec 4



Max Family of Graphical Programming Languages for Music



Dec 8


Review

Project 6 (due Dec 8).

Final Exams

Dec 14-19