Emily Howell is a computer program, created by the classical composer David Cope, that composes original music of surprising artistic quality. Examples of her work can be found on Cope's Youtube channel.
The goal of this project is to reimplement parts of this program in Haskell, in order to better understand its inner workings and creative algorithms. David Cope has kindly documented his work on algorithmic composition in many books and source code files, including
- Computer Models of Musical Creativity. Cambridge, MA: MIT Press. 2006
- Source code for Computer Models of Musical Creativity. Written in Macintosh Common Lisp.
Four Part Bach Chorales — I think this site has MIDI files for all the Bach chorales that Cope uses in the "Chorale" program.
HCodec — a library that provides functions to read, write and manipulate MIDI, WAVE and SoundFont2 multimedia files.
The Music Suite — Hans Hoglund's Haskell DSL for description, analysis, composition and manipulation of music.
- Reference documentation
- API haddocks
data Score a
- Pitch literals (c,d,...)
class IsPitch a
- examples