setcps 1

let scale = getScale (scaleTable ++ [("blues", [0, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12])])

d1 $ s "dr(<2 2 2 4>,4)"
# gain 0.8

d2
$ every 8 (# n "0 [7|1]>")
$ every 4 (off 0.125 (|> 8))
$ every 4 degrade
$ every' 4 2 (# n 8)
$ s "[hh [hh hh] ~]"
# gain 0.6
# pan 0.8

d3
$ someCycles (fast 2 . degradeBy 0.6 . (# gain 0.4))
$ s "sn(<<1 3> 3>,8)"
# n (choose [1,2,3])
# gain 0.5
# pan 0.2

d4
-- TODO: Now with blues scale, off/superimpose sounds bad. FIX!
-- $ someCycles (degradeBy 0.2)
-- $ superimpose ((slow 2) . (|-| note (0)))
-- $ often ((|+| note 7) . (# velocity 0.5) . (fast 2))
-- $ always (superimpose (|-| note 7) . (# velocity 0.4))
-- $ superimpose ((fast 2) . (|-| note 14))
$ s "superpiano*2"
# note (scale "blues" ("<0 <3 3 2 3> 6 <10 8 8 10>>"))
-- # note (scale "blues" ("<0 3 6 10>")) -- 1
-- # note (scale "blues" ("<0 3 6 8>")) -- 2
-- # note (scale "blues" ("<0 2 6 8>")) -- 3
-- # note (scale "blues" ("<0 3 6 10>")) -- 4
# velocity (0.6 + rand / 4)
# sustain sine

d3
$ slow 2
$ s "superpiano*12"
# note (scale "blues" "0 .. 12")
# velocity (0.5 + rand / 4)

d1 $
superimpose (rev . (slow 2) . (|-| note 24)) $
somecyclesBy 0.8 (fast 2) $ somecycles (slow 2) $
s "superpiano" # note (scale "aeolian" (irand 12))
# velocity (0.5 + rand / 2)
# sustain sine
