Assignment 4, CSC344, Winter 2014
The goal of this project is to create a program that performs algorithmic composition.
As always, this is a fairly open-ended goal. In particular, as we discussed in class, there are at least three different approaches to generating sound:
generating sample data directly (online or offline),
generating a MIDI track that you load into a DAW, or
generating OSC messages that can drive a DAW directly.
The advantage of online systems is that they can involve live feedback, such as knobs or sliders that dynamically control composition parameters.
1 Baseline
If you’re looking for more specific directions, I can make some suggestions.
I think that the easiest way to get this project working is to pick a language like Python or Javascript or Racket. Yeah, okay, especially Python. Or JavaScript.
In order to be minimally interesting, your program should produce music with some kind of structure. I don’t want to dictate what you do, but one possible project would be to randomly generate a markov model that generates future tones based on the current one.
As I say, this is really just one of an infinite set of interesting programs.
2 Deliverables
As before, you should make all of your code available on your github repo.
For delivery, you have two choices. If your program generates music off-line, you may submit a 60-second piece of music that it generates, as you have before. If your program is an online composition program, you should be prepared to demo it in class; the same one-minute limit on the actual interaction with the program applies.