packages feed

hsc3-0.5: Help/Graphs/tgb.lhs

tgb (rd)

> import Sound.SC3
> import System.Random

> 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) }
>     ; rrand l r = getStdRandom (randomR (l, r))
>     ; 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 })