| |
General guidelines on choosing a final project:
- It can be an algorithmic
composition of some sort.
- It can be a software tool of some
sort for any
computer music application.
- If you generate some music, you
should put in as much artistic effort as you can – we want it to sound good!
However, there should be CS
content too, otherwise this course would be hard to justify for computer
science credit.
- I require that your project be
written in Haskell, unless you have very good reason to use another language.
- It's Ok do a team project, but there should be significant content to it
for each participant. You should discuss team projects with me first.
Some ideas for projects:
- Composition:
 | Serial music composition
[generate a 12-tone row, then apply transformations (inversion, retrograde,
etc.) to it] |
 | Fractals / Clusters / Iterated Function Systems |
 | L-Systems or other grammar-based approach
[consider, for example, a grammar to capture traditional structure/form] |
 | Stochastic methods / Markov Chains |
 | Traditional species counterpoint |
 | General accompaniment / embellishment
[i.e. take an existing piece of music and add something to it -- given a
melody and basic harmonic structure, add a a bass line, a melodic
embellishment, or a melodic harmony] |
 | Mimic some aspect of "Band-in-a-Box"
[given a set of chord changes, and a "style" (say jazz, rock, or latin), add
a rhythm section (e.g. piano or guitar "comp"), drums, bass, and, if you are
ambitious, a "soloist"] |
 | Re-harmonizer
[given an existing piece of music, re-harmonize it -- choose different chord
sequences that still work with the melody, or that perhaps require small
changes to the melody] |
 | Dueling banjos
[model the improvisational process is some way] |
 | Ad hoc algorithmic composition
[e.g. chord-chart composition] |
 | Genetic / evolutionary algorithms |
Real-Time:
 | Take any of the ideas above, and make it real-time. |
 | In particular, take Midi input and use it to control part of the music
generation process. |
 | Write a music-based game. |
Performance / analysis
 | Articulation |
 | Dynamics |
 | Phrasing |
 | Slurs |
 | Embellishment |
 | Automated Schenkerian (or related) analysis |
 | Codification of aesthetics |
Haskore Infrastructure:
 | Add widgets to Haskore's graphical musical interface |
 | Backend for csound, SuperCollider, or similar music software package |
 | Midi extensions
[for Midi files, Midi in, and Midi out, such as aftertouch, pitch bend, and
so on] |
 | Enhance / change the basic structure of players
[e.g. to take into account key] |
 | Notation
[e.g. a LilyPond interface] |
|