Week 1
|
|
Aug 28
|
Course Overview
- Syllabus, Grading, Projects, etc.
- PortMidi
- Languages
|
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
- 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
|
|
|