A common instance of Music.T.
> module Haskore.Music.GeneralMIDI
> (T, Note, NoteBody, Instr,
> RhyMusic.velocity, RhyMusic.body,
> RhyMusic.instrument, RhyMusic.pitch, RhyMusic.drum,
> RhyMusic.noteFromStdMelodyNote,
> fromStdMelody, fromMelodyNullAttr,
>
> GM.Instrument(..), GM.Drum(..),
> toProgram, toChannel,
>
> bn, wn, hn, qn, en, sn, tn, sfn,
> dwn, dhn, dqn, den, dsn, dtn,
> ddhn, ddqn, dden,
> bnr, wnr, hnr, qnr, enr, snr, tnr, sfnr,
> dwnr, dhnr, dqnr, denr, dsnr, dtnr,
> ddhnr, ddqnr, ddenr,
> line, chord, changeTempo, transpose, phrase,
> (Music.+:+), (Music.=:=), Dur,
>
> PhraseAttribute(..), Dynamic(..),
> Tempo(..), Articulation(..), Ornament(..), NoteHead(..),
> accent, crescendo, diminuendo, loudness1,
> ritardando, accelerando, staccato, legato,
> defltLegato, defltStaccato,
> defltAccent, bigAccent) where
> import qualified Sound.MIDI.General as GM
> import Sound.MIDI.Message.Channel (toChannel, toProgram, )
> import Haskore.Basic.Duration hiding (T)
> import Haskore.Music as Music hiding (T)
> import qualified Haskore.Music.Rhythmic as RhyMusic
> import qualified Haskore.Melody as Melody
> import qualified Haskore.Melody.Standard as StdMelody
> type Instr = GM.Instrument
> type Drum = GM.Drum
> type Note = RhyMusic.Note Drum Instr
> type NoteBody = RhyMusic.NoteBody Drum Instr
> type T = RhyMusic.T Drum Instr
>
> fromStdMelody :: Instr -> StdMelody.T -> T
> fromStdMelody = RhyMusic.fromStdMelody
> fromMelodyNullAttr :: Instr -> Melody.T () -> T
> fromMelodyNullAttr = RhyMusic.fromMelodyNullAttr