packages feed

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

-- sidereal time (jmcc) #9
{-# OPTIONS_GHC -F -pgmF hsc3-hash-paren #-}
module Sound.SC3.Graph.JMCC_sidereal_time_hp where

import Control.Monad {- base -}
import Sound.SC3 {- hsc3 -}
import Sound.SC3.Lang.Control.OverlapTexture {- hsc3-lang -}

sidereal_time :: UId m => m UGen
sidereal_time = do
  let p = 15
  z <- let y = do
             fr <- replicateM p (expRandM 100 6000)
             rt <- replicateM p (randM 2 6)
             return (klankSpec fr (replicate p 1) rt)
       in clone 2 y
  let f = xLine KR #(expRandM 40 300) #(expRandM 40 300) 12 DoNothing
  let t = lfPulse AR f 0 #(randM 0.1 0.9)
          * max 0 #(lfNoise2M KR #(randM 0 8))
          * 0.002
      o = distort (klank t 1 0 1 (mceTranspose z)) * 0.1
  return (combN o 0.6 #(randM 0.1 0.6) 8 + mceReverse o)

main :: IO ()
main = overlapTextureU (4,4,6,maxBound) =<< sidereal_time

{-
audition (out 0 sidereal_time)
-}