packages feed

hsc3-graphs-0.11: src/hh-808.hs

-- hh-808 (ryan at wabdo.com)
-- http://www.create.ucsb.edu/pipermail/sc-users/2007-August/036131.html

import Sound.SC3

hh_808 :: UGen
hh_808 =
  let time = 250
      fr = [205.35,304.41,369.64,522.71,540.54,812.21]
      pulseEnv = let e = env [1.0,0.6] [time] [EnvNum (-0.5)] 0 0
                 in envGen AR 1 1 0 (1/1000) DoNothing e
      s = mix (lfPulse AR (mce (map (* 4.09) fr)) 0 0.5)
      f = [\a -> ((a ==* 6.0) * 0.6) +
                 ((a ==* 2.0) * 0.2) +
                 ((a ==* 1.0) * 0.9)
          ,\a -> (a * pulseEnv) + (mix (lfPulse AR (mce fr) 0 0.55)) * 0.9
          ,\a -> rlpf a 7000 0.6
          ,\a -> rhpf a 6800 1.5
          ,\a -> rhpf a 6800 1.5
          ,\a -> rhpf a 1200 1.5
          ,\a -> a + freeVerb a 0.33 0.5 0.5
          ,\a -> let c = map EnvNum [0,-0.5,0,-50]
                     e = env [0,1,0.4,0,0] [2,time,50,500] c 0 0
                 in a * envGen AR 1 1 0 (1/1000) RemoveSynth e
          ,\a -> mce [a,delayN a 0.005 0.005]]
  in foldl1 (flip (.)) f s * 2

main :: IO ()
main = audition (out 0 hh_808)