Ideas for a MIDI Sequencer
My current implementation of this idea is called HasChorus. It is implemented as a
set of Haskell modules written
on top of Haskore.
Not all of the ideas have been implemented yet, but I'm starting
to sequence backing tracks pretty easily.
The sequencer will be written in a lazy functional programming
language. When finished, the sequencer will allow songs to be
"programmed" at a very high-level, in that same lazy functional
programming language. This means that it should be possible to
"program" a backing track in less than 1 hour (hopefully a lot
less), producing a MIDI file. There will be no facility for
real-time recording, and there is unlikely to be a facility to
import MIDI files.
I now plan on adding the following things to Haskore:
-
Explicit handling of drums, including a library of drum beats.
I plan to provide a scheme where it is easy to map in drum
fills so that they are played in a `drummerly' way.
Status: DONE? See
HasDrums.lhs. Needs a library of beats. I'm no
drummer, so I don't know where to start. I have a book of
drum machine beats, but it is copyright...
-
Creation of (simple) chord sequences, having the chords played
in a variety of standard, simple styles.
Status: DONE? See lots of modules. Needs
a better and more useful library of styles.
-
Mapping of bass sequences to fit chords, mostly consisting of
transposing a couple of standard bass lines for a song.
Status: DONE? As above...
-
Un-quantising (is that `groove quantisation'?).
Status: DONE. See HasGroove.lhs.
-
"Un-quantising" note volumes.
Status: DONE. See HasGroove.lhs.
-
Harmonies (maybe).
Status: Haven't even thought about this...
I'd be interested in hearing any
comments.
|