packages feed

csound-expression-0.3.3: examples/teardrop.hs

-- massive attack - teardrop (intro)

import CsoundExpr.Base
import qualified CsoundExpr.Opcodes as C

import Temporal.Music.Western.P12  

import Orchestra(pipeOrgan', openHiHat', bassDrum', guitar)

scoBassDrum = low $ line [en c, qn c, en c, accent 0.5 $ hn f]
scoHiHat    = line [hnr, dim 3 $ loop 4 $ ed 0]

scoDrums = loop 20 $ chord [
    bassDrum'  $ f' scoBassDrum,
    openHiHat' $ p' scoHiHat ]


scoGuitar = sustain (1/16) $ guitar $ 
    envelopeRel [0, 2, 4, 4, 2] $
    loop 4 $ 
    pp' $ high $ line [qnr, line $ map qn 
    [low a, e, low a, d, low a, d, e]] 

scoOrgan = pipeOrgan' $ chord [q, low q]
    where q = loop 2 $ lower 3 $ line $ map bn [a, g, d, low a]

sco = bpm (moderato 0.7) $ chord [
    delay 10 $ scoGuitar,
    scoDrums,
    delay 2 $ scoOrgan,
    rest 0]

file   = "out.csd"
flags  = "-d"

out = csd flags headerMono sco

--main = writeFile file $ show out
main = play "totem" "tmp" "new" out