module Chords where
import Midi
import Pitch ( Pitch )
chord ::
Time -> [Pitch] ->
[Midi.Event Midi.Message] ;
chord dur =
mergeMany . map (note dur) ;
chord3 ::
Time ->
Pitch -> Pitch -> Pitch ->
[Midi.Event Midi.Message] ;
chord3 dur p0 p1 p2 = chord dur [p0, p1, p2] ;
chord4 ::
Time ->
Pitch -> Pitch -> Pitch -> Pitch ->
[Midi.Event Midi.Message] ;
chord4 dur p0 p1 p2 p3 = chord dur [p0, p1, p2, p3] ;
major, major7, minor, minor7 ::
Time -> Pitch -> [Midi.Event Midi.Message] ;
major dur base =
chord4 dur base (base + 4) (base + 7) (base + 12) ;
major7 dur base =
chord4 dur base (base + 4) (base + 7) (base + 10) ;
minor dur base =
chord4 dur base (base + 3) (base + 7) (base + 12) ;
minor7 dur base =
chord4 dur base (base + 3) (base + 7) (base + 10) ;