packages feed

hsc3-graphs-0.15: gr/e-lamell-p.hs

-- e-lamell-p (rd)

import Sound.SC3 {- hsc3 -}
import qualified Sound.SC3.Lang.Pattern.Plain as P {- hsc3-lang -}

e_lamell :: UGen
e_lamell =
    let ctl = control KR
        f = ctl "freq" 440
        a = ctl "amp" 1
        d = ctl "d" 0.1
        n = ctl "n" 12
        l = ctl "l" 0
        t = lchoose 'α' [1,32]
        h = line AR n t d DoNothing
        s = blip AR f h
        e_d = envPerc 0.005 d
        e = envGen AR 1 a 0 1 RemoveSynth e_d
    in pan2 s l e

patterns :: [(Synthdef,P.Param)]
patterns =
    let sy = synthdef "e-lamell" (out 0 e_lamell)
        to_cps = P.degree_to_cps' [0,2,4,5,7,9,11] 12
    in [(sy,[("freq",to_cps (P.rand 'β' [0,2,5,7]) (P.wrand 'γ' [2,3,4,5] [0.2,0.35,0.35,0.1]))
            ,("dur",repeat 0.1)
            ,("d",P.white 'δ' 0.01 0.8)
            ,("amp",P.white 'ε' 0 0.75)
            ,("n",P.white 'ζ' 2 36)
            ,("l",P.white 'η' (-1) 1)])
       ,(sy,[("freq",to_cps (P.rand 'θ' [0]) (P.rand 'ι' [1,2,3]))
            ,("dur",repeat 0.1)
            ,("d",P.white 'κ' 0.01 1.2)
            ,("amp",P.rand 'λ' [0,0.25,0.5,1])
            ,("n",P.white 'μ' 2 36)
            ,("l",P.white 'ν' (-1) 1)])]

main :: IO ()
main = audition (P.sbind patterns)