-- mridangam (jmcc)
import Sound.OSC {- hosc -}
import Sound.SC3.ID {- hsc3 -}
import Sound.SC3.Lang.Pattern {- hsc3-lang -}
spe3_mridangam :: Synthdef
spe3_mridangam =
let t_amp = tr_control "t_amp" 1
n = whiteNoise 'α' AR * 70
e = decay2 t_amp 0.002 0.1
o = distort (resonz (n * e) (midiCPS 60) 0.02 * 4) * 0.4
in synthdef "mridangam" (out 0 o)
spe3_drone :: Synthdef
spe3_drone =
let s1 = saw AR (midiCPS (mce2 60 60.04))
s2 = saw AR (midiCPS (mce2 67 67.04))
o = lpf (s1 + s2) (midiCPS 108) * 0.007
in synthdef "drone" (out 0 o)
p :: Fractional n => [P n]
p =
[pseq [0.0] 10
-- intro
,pseq [0.9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] 2
,pseq [0.9,0.0,0.0,0.2,0.0,0.0,0.0,0.2,0.0,0.0] 2
,pseq [0.9,0.0,0.0,0.2,0.0,0.2,0.0,0.2,0.0,0.0] 2
,pseq [0.9,0.0,0.0,0.2,0.0,0.0,0.0,0.2,0.0,0.2] 2
-- solo
,prand 'β' [pseq [0.9,0.0,0.0,0.7,0.0,0.2,0.0,0.7,0.0,0.0] 1
,pseq [0.9,0.2,0.0,0.7,0.0,0.2,0.0,0.7,0.0,0.0] 1
,pseq [0.9,0.0,0.0,0.7,0.0,0.2,0.0,0.7,0.0,0.2] 1
,pseq [0.9,0.0,0.0,0.7,0.2,0.2,0.0,0.7,0.0,0.0] 1
,pseq [0.9,0.0,0.0,0.7,0.0,0.2,0.2,0.7,0.2,0.0] 1
,pseq [0.9,0.2,0.2,0.7,0.2,0.2,0.2,0.7,0.2,0.2] 1
,pseq [0.9,0.2,0.2,0.7,0.2,0.2,0.2,0.7,0.0,0.0] 1
,pseq [0.9,0.0,0.0,0.7,0.2,0.2,0.2,0.7,0.0,0.0] 1
,pseq [0.9,0.0,0.4,0.0,0.4,0.0,0.4,0.0,0.4,0.0] 1
,pseq [0.9,0.0,0.0,0.4,0.0,0.0,0.4,0.2,0.4,0.2] 1
,pseq [0.9,0.0,0.2,0.7,0.0,0.2,0.0,0.7,0.0,0.0] 1
,pseq [0.9,0.0,0.0,0.7,0.0,0.0,0.0,0.7,0.0,0.0] 1
,pseq [0.9,0.7,0.7,0.0,0.0,0.2,0.2,0.2,0.0,0.0] 1
,pseq [0.9,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0,0.0] 1] 30
-- tehai
,pseq [2.0,0.0,0.2,0.5,0.0,0.2,0.9
,1.5,0.0,0.2,0.5,0.0,0.2,0.9
,1.5,0.0,0.2,0.5,0.0,0.2] 3
-- sam
,pseq [5] 1]
act :: Transport m => m ()
act = do
play spe3_drone
_ <- async (d_recv spe3_mridangam)
let i = Instr_Def spe3_mridangam False
play (pmono [(K_instr,pinstr' i),(K_id,100)
,(K_param "t_amp",pseq p 1),(K_dur,1/8)])
main :: IO ()
main = withSC3 act