packages feed

hsc3-rec-0.7: Help/analog-bubbles.hs

{-# LANGUAGE DisambiguateRecordFields #-}

import Sound.SC3
import Sound.SC3.UGen.Record
import Sound.SC3.UGen.Record.CombN
import Sound.SC3.UGen.Record.LFSaw
import Sound.SC3.UGen.Record.Out
import Sound.SC3.UGen.Record.SinOsc

analog_bubbles :: UGen
analog_bubbles =
    let o = ugen LFSaw { rate = KR
                       , freq = mce2 8 7.23
                       , iphase = 0 } * 3 + 80
        f = ugen LFSaw { rate = KR
                       , freq = 0.4
                       , iphase = 0 } * 24 + o
        s = ugen SinOsc { rate = AR
                        , freq = midiCPS f
                        , phase = 0} * 0.04
        c = ugen CombN { rate = AR
                       , input = s
                       , maxdelaytime = 0.2
                       , delaytime = 0.2
                       , decaytime = 4 }
    in ugen Out { rate = AR
                , bus = 0
                , input = c }

main :: IO ()
main = audition analog_bubbles