-- Intro: only the leads
-- Work snare in, then bass
--
--

do
setcps (114/60/4)
let gMask = (midiOn "^41" (mask "t . <f t f <f t>> <t f f <t f>>"))
let gMute = (midiOn "^73" (mask "f*16"))
let gMute2 = (midiOn "^74" (mask "f*16"))
let gMute3 = (midiOn "^75" (mask "f*16"))
let gM1 = gMask . gMute
let gM2 = gMask . gMute2
let gM3 = gMask . gMute3
let gF1 =  (# djfbus 1 (range 0.05 0.95 "^49"))
let gF2 = (# djfbus 2 (range 0.05 0.95 "^50"))
let gF3 = (# djfbus 3 (range 0.05 0.95 "^51"))
d1 $ gM2 $ gF1 -- Kick solide
  $ fix ((|* gain 0.9) . (# lpf 1000)) "jazz"
  $ fix ((# att 0.02) . (# rel 0.5) . (# lpf 5000)) "kick:4"
  $ midiOn "^42" (struct "t*4")
  $ midiOff "^42" (<| "k ")
  $ "[jazz,kick:4,909]"
  -- # midiG' "^78" 0 1.2
  # gain 1.2
d2 $ gM1 $ gF1
  $ "~ s . ~ <~!4 s ~ ~ s> s ~" # "snare:38"
  # pan 0.65
  # room 0.8 # sz 0.8 # dry 1
  -- # midiG' "^79" 0 1.5
  # gain 1.5
d3 $ gM1 $ gF1
  $ "[~ d ~ d ~ d*<2!2 1 2> ~ d]"
  # "electrn:4"
  # hpf 7000
  -- # midiG' "^80" 0 1.6
  # gain 1.6
d4 $ gF2
  $ midiOn "^89" (ply "<4 8>" . slow 2)
  $ midiOff "^57" (mask "f(4,8,1)")
  $ note ((slow 2 $ ("<e3 e3 b3 <b3 b3 a3 a3>>" + "[0,0(4,8,1)*2]"))
    -- "<[d,f,a,c6,e6,g6] [ef, gf, bf, df6,f6,af6]>"
    )
  # crushbus 41 (range 16 2.5 "^53")
  # "bassWarsaw"
  # pan 0.25
  -- # midiG' "^81" 0 1.5
  # gain 1.5
d5 $ gM3 $ gF3
  $ midiOn "^58" (mask "t(<1 2>,4)")
 -- c e d b / c a d b / a c b g    / c a g b
  $ note ("<[c@2 e@2 d@1 b4@3]!2 [c@2 a4@2 d@1 b4@3]!2 [a4@2 c@2 b4@1 g4@3]!2 [c@2 a4@2 c@1 b4@3]!2>" - 3)
  # att 0.8
  # rel 2
  # "superfork"
  # pan (slow 16 $ range 0.95 0.65 saw)
  # hpf 300
  -- # velocity 0.45
  -- # midiG' "^82" 0 2.5
  # gain 2.5
  # crushbus 51 (range 16 4.5 "^54")
  # roombus  52 (range 0 0.5 "^54") # sz 0.5 # dry 1.3
d8 $ gF1
  $ midiOn "^92" (ply "1 <2 4 4 8>")
  $ chop 16
  $ loopAt 2 $ "break:18"
  # cut 8
  # pan 0.8
    -- # midiG' "^84" 0 1.4
d9 $ gF2 -- Pads atmospheriques
  $ off 0.25 ((# pan 0.8) . (# cut 91))
  $ note ("<e4 e4 b4 <b4 b4 a4 a4>>"
  - 12
  -9 -- calage
  )
  # "trance_pads:7"
  # cut 9 # legato 2
  -- # midiG' "^20" 0 1
  # pan 0.2
  # room 0.4








once
  $ note "c@2 e@2 d@1 b4@3"
  -- $ note "c e d b4"
  # "[FMRhodes1,FMRhodes2]"
  # modIndex 0.5
  # room 0.2 # dry 1 # sz 0.5

once
  $ note ("c@2 e@2 d@1 b4@3" - 3)
  # "trance_amb:3"
  -- # start 0.01
  # legato 0.25
  # att 0.05
  # rel 0.2
  # cut 5
  -- # hpf 500
  -- # room 0.1
  -- # dry 0.9




-- Fundamental C
-- First loops on B
-- Eventually resolved in A

d5 $ gF1
  $ "trance_syn:10"
  # midiG' "^82" 0 1.1
  # cut 5

do
-- resetCycles
setcps (120/60/4)
  $ fix ((|* gain 0.9) . (# lpf 1000)) "jazz"
  $ fix ((# att 0.02) . (# rel 0.5) . (# lpf 5000)) "kick:4"
  $ midiOn "^42" (struct "t*4")
  $ midiOff "^42" (<| "k . ~ <~!3 k> ~ ~")
  $ "[jazz,kick:4]" # lpf 3000
  # midiG' "^78" 0 1.5
d2 $ gM1 $ gF1 -- snare contretemps variable
  $ midiOn "^43" (<| "~ cp ~ cp")
  $ midiOff "^43" (<| "~ cp")
  $ "[cp]"
  # pan 0.65
  # legato 0.22
  # midiG' "^79" 0 1.5
d3 $ gM1 $ gF1
  $ "~ d ~ d ~ d ~ <d!12 [~ d]!3 [d d]>"
  # "snare:34"
  # hpf 7000
  # midiG' "^80" 0 1.5