packages feed

hsc3-graphs-0.8: src/tgb.lhs

tgb (rd)

> import Sound.SC3.Monadic
> import System.Random

> main =
>   let { mkls bp t = envGen kr 1 1 0 1 RemoveSynth (envCoord bp t 1 EnvLin)
>       ; pm_t l r d t = let { le = mkls l d
>                            ; re = mkls r d }
>                        in tRand le re t
>       ; wrp i l r = linLin i (-1) 1 l r
>       ; pm_n rt l d = let { le = mkls l d
>                           ; re = mkls l d }
>                       in do { n <- whiteNoise rt
>                             ; return (wrp n le re) }
>       ; gb b d = do { gps <- pm_n ar [(0, 400), (1, 900)] d
>                     ; let { t = impulse ar gps 0
>                           ; pm_f (l, r) = pm_t l r d t }
>                       in do { du <- pm_f ([(0, 0.005), (0.5, 0.015), (1, 0.005)]
>                                          ,[(0, 0.009), (0.5, 0.020), (1, 0.009)])
>                             ; pn <- pm_f ([(0, -1.0), (0.5, -0.5), (1, 0.5)]
>                                          ,[(0, -0.5), (0.5, 0.5), (1, 1.0)])
>                             ; rt <- pm_f ([(0, 6), (0.5, 12), (1, 6)]
>                                          ,[(0, 12), (0.5, 12), (1, 12)])
>                             ; cs <- pm_f ([(0, 0), (1, 0.95)]
>                                          ,[(0, 0), (1, 1)])
>                             ; am <- pm_f ([(0, 0.25), (0.5, 0.55), (1, 0.15)]
>                                          ,[(0, 0.5), (0.5, 0.75), (1, 0.25)])
>                             ; let cs' = cs * (bufDur kr b)
>                               in return (tGrains 2 t b rt cs' du pn am 2) } }
>       ; fn = "/home/rohan/audio/text.snd" }
>   in withSC3 (\fd -> do { async fd (b_allocRead 10 fn 0 0)
>                         ; play fd . (out 0) =<< gb 10 12 })