packages feed

hsc3-graphs-0.15: gr/fm-iter.hs

-- fm-iter (rd)

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

-- audition (out 0 fm_iter)
fm_iter :: UGen
fm_iter =
  let f0 = recip (0.3 + whiteNoise 'α' AR * 0.01)
      t0 = impulse AR f0 0
      t1 = tDelay t0 0.15
      t = mce2 t0 t1
      k = tRand 'β' 56 57 t
      i = tRand 'γ' 40 480 t
      j = tRand 'δ' (-1) 1 t
      c = midiCPS k
      m = midiCPS (k + 1 + j)
      s = envPerc 0.01 0.9
      e = envGen AR t 0.1 0 1 RemoveSynth s
      f = sinOsc AR c 0 * i + m
  in sinOsc AR f 0 * e

main :: IO ()
main = overlapTextureU (3,3,6,maxBound) fm_iter