packages feed

hsc3-graphs-0.11: src/plucked-strings.hs

-- plucked strings (jmcc)

import Sound.SC3.Monadic

plucked_strings :: UId m => m UGen
plucked_strings = do
  let dt = do r0 <- rand 60 90
              return (1 / midiCPS (floorE r0))
      i = do r0 <- rand 2 2.2
             n0 <- dust AR 0.5
             r1 <- rand 0.05 0.15
             r2 <- rand 0 (pi * 2)
             r3 <- iRand 0 2
             let s0 = impulse AR r0 0.3
                 s1 = n0 * 0.3
                 s2 = impulse AR (sinOsc KR r1 r2 * 5 + 5.2) 0.3
             return (select r3 (mce [s0,s1,s2]))
      s = do n0 <- pinkNoise AR
             r1 <- rand (-1) 1
             im <- i
             dt' <- dt
             let t = decay im 0.1 * n0 * 0.1
             return (pan2 (combL t dt' dt' 4) r1 1)
  return.sum =<< sequence (replicate 5 s)

main :: IO ()
main = audition . out 0 =<< plucked_strings