packages feed

temporal-music-notation-demo-0.1.2: examples/break.hs

-- break beat

import System(system)

import Temporal.Music.Notation
import Temporal.Music.Western
import Temporal.Music.Western.TwelveTone

import Temporal.Music.Notation.Demo
import Temporal.Music.Notation.Demo.GeneralMidi

tom11 = line [qd 0, qd 0, qnr, qd 0, hd 0.5, dhnr]
tom12 = line [qd 0, qd 0, qnr, qd 0, hd 0.5, qnr, qd 0]

scoTom = ff' $ line [tom11, tom12]
scoSnare = mp' $ line [hnr,  hd 0, hnr, hd 0]

scoMaracas = mp' $ line [dhnr, tri $ line [ed 0.5, ed 0, ed 0]]

drums = loop 8 $ chord [
        bassDrum1 scoTom,
        loop 2 $ acousticSnare scoSnare,
        loop 3 $ maracas scoMaracas
    ]


scoAccomp = dynamicsRel [0, 1, 0.5, 1.5, 0.5, 1, 0] $ 
    loop 2 $ 
    mp' $ high $ sustain 0.5 $ chord [
    loop 2 $ line $ map qn [f, c, e, f, c, e, f, c],
    accent 1 $ low $ line [dwn a, dwn gs, hnr],
    accent 1.5 $ line [bnr, hnr, tri $ line [dhn gs, dhn e, dhn d]]
    ]

accomp = loop 4 $ glockenspiel scoAccomp 

-- fade out after 0.7*totalDur
res = dynamicsSeg [0, 0.7, 0, 0.3, -2] $ chord [
    drums,
    accomp
    ]

main = do
      exportMidi "break.mid" res
      system "timidity break.mid"