packages feed

hsc3-0.3: Help/Graphs/tgr-rpr.lhs

tgr-rpr (rd)

> let { sf = "/home/rohan/audio/text.snd"
>     ; preset = [ 0.01, 0.02
>                , 0.95, 1.05
>                , 0.02, 0.06
>                , 0.2, 0.3
>                , 0.7, 0.9
>                , -1.0, 1.0 ]
>     ; dustR r lo hi = do { n1 <- dwhite 1 lo hi
>                          ; n2 <- whiteNoise r
>                          ; d <- dseq dinf n1
>                          ; return (tDuty r d 0 DoNothing (abs n2) 1) }
>     ; rpr n t = tRand (in' 1 KR n) (in' 1 KR (n + 1)) t
>     ; rrand l r = getStdRandom (randomR (l, r))
>     ; rSet = [ (0.005, 0.025), (0.05, 0.25)
>              , (0.75,  0.95) , (1.05, 1.25)
>              , (0.001, 0.01) , (0.02, 0.04)
>              , (0.1,   0.2)  , (0.2, 0.4)
>              , (0.0,   0.45) , (0.55, 1.0)
>              , (-1.0,  0.0)  , (0.0, 1.0) ]
>     ; edit fd = do { s <- mapM (\(l,r) -> rrand l r) rSet
>                    ; send fd (c_setn [(0, s)])
>                    ; threadDelay 350000 } }
> in do { clk <- dustR AR (in' 1 KR 0) (in' 1 KR 1)
>       ; rat <- rpr 2 clk
>       ; dur <- rpr 4 clk
>       ; pos <- liftM (* (bufDur KR 10)) (rpr 8 clk)
>       ; pan <- rpr 10 clk
>       ; amp <- rpr 6 clk
>       ; withSC3 (\fd -> do { async fd (b_allocRead 10 sf 0 0)
>                            ; send fd (c_setn [(0, preset)])
>                            ; let o = tGrains 2 clk 10 rat pos dur pan amp 2
>                              in play fd (out 0 o)
>                            ; threadDelay 3000000
>                            ; replicateM_ 16 (edit fd)
>                            ; reset fd }) }