packages feed

hsc3-graphs-0.15: Sound/SC3/Graph/JMCC_bouncing_objects.hs

-- bouncing objects (jmcc) #2
module Sound.SC3.Graph.JMCC_bouncing_objects where

import Sound.SC3 {- hsc3 -}
import Sound.SC3.Lang.Control.OverlapTexture {- hsc3-lang -}
import qualified Sound.SC3.Lang.Random.ID as R {- hsc3-lang -}
import Sound.SC3.UGen.External.RDU {- sc3-rdu -}

bouncing_objects :: UGen
bouncing_objects =
  let imp_frq = xLine KR (5 + rand 'α' (-2) 2) 600 4 DoNothing
      imp_amp = xLine KR 0.09 0.000009 4 DoNothing
      imp = impulse AR imp_frq 0 * imp_amp
      exc = decay imp 0.001
      flt_frq = randN 4 'β' 400 8400
      flt_amp = randN 4 'γ' 0 1
      flt_rtm = randN 4 'δ' 0.01 0.11
      flt = klank exc 1 0 1 (klankSpec_mce flt_frq flt_amp flt_rtm)
      loc = pan2 flt (rand 'ε' (-1) 1) 1
      e = Envelope [1,1,0] [3,0.001] (replicate 2 EnvLin) Nothing Nothing
  in loc * envGen KR 1 1 0 1 RemoveSynth e

main :: IO ()
main = spawnTextureU (\i -> R.rrand i 0.6 1.6,maxBound) bouncing_objects