{-# LANGUAGE DisambiguateRecordFields #-} import Sound.SC3 import Sound.SC3.UGen.Dot 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 = mce2 0 1 , input = c } main :: IO () main = do draw analog_bubbles audition analog_bubbles