import Sound.Tidal.ParVagues.Control

resetCycles
setcps (115/60/4)

-- Invoque l'été
-- Il ne viendra pas tout seul ;)
do
let gF = 1.5
let gG a = (gain (gF * "^77" * a)) -- gain Global
let gM' l h a = (gG (range l h a)) -- gain Modéré
let gM a = (gM' 0.2 0.8 a) -- gain Modéré doux
let gLPF = (# lpf (min 10000 ((range 200 20000 ("^49")))))
let gHPF = (# hpf (max 0 (min 7500 ((range "-7500" 7500 ("^49"))))))
let gFreqL = (# lpq (range 0 0.25 "^29"))
let gFreqH = (# hpq (range 0 0.25 "^30"))
let gFreqs = (gFreqH . gFreqL)
let gDJF = (gLPF . gHPF)
let g = gDJF . gFreqs
d1 $ g
  $ midiOn  ("^42" - "^41") (slow 4)
  $ midiOn  "^41" (<| "k k k <k k k*2 [~ k]>")
  $ midiOff "^41" (<| "k*2")
  $ "[jazz,808bd:1]"
  # gM' 0 1.2 "^78"
d2 $ g -- Clave de l'été
  $ midiOn "^43" (fast 2)
  $ midiOn ("^75"-"^43") (fast 2)
  $ (|* gain "0.75 1 1 1 0.75 1 1 1")
  $ "d ~ ~ d d ~ d <~!3 d>"
  # "snare:22" # gM' 0 1.4 "^79"
  # speed (range 0.5 1.5 "^51")
d4 $ g
  $ fast 2
  $ midiOn "^44"  (slice 16 ("0*<1 2> 1 2 3*<2 1>") . (>| "breaks125"))
  $ midiOn "^76" (slice 8 "0 <1 ~> 7 3*<1 2 4 4>")
  $ sometimesBy "0 ^32!7" (shuffle 8)
  $ someCyclesBy "^52" (iter 4)
  -- $ slice 8 "0 1 <2!3 0> <3!3 1 4 5 6 7>" "0 1 <2!3 0> <3!3 1>"
  $ chop 8
  $ loopAt 2 $ "breaks125:3"
  # gM' 0 1.2 "^80"
  # cut 4
d5 $ g
  $ loopAt 2
  $ slice 8 (run "<4!4 8 8 [4 8 4] [8 4 8]>")
  $ "fbass:13"
  # pan 0.2
  # room 0.2
  # lpq  (range 0 0.125 "^33")
  # crush (range 10 4.5 "^53")
  # gM' 0.3 1.1 "^81"
  # cut 4
d6 $ g
  $ chop 16
  $ someCyclesBy "^58" (superimpose (
    degradeBy (slow 8 $ sine) . segment 8
    . (# speed 1)
    . (|* gain (0.5 + 0.1 * perlin)) . (|+ pan 0.1)
    . (# cut 31)
    )
  )
  $ whenmod 16 12 (rev)
  $ whenmod 8 4 (chop 4)
  $ loopAt 4
  $ "fguitar" # n "<12!16 13!16>"
  # gM' 0 1 "^82"
  # release (range 0.15 1 "^34")
  # crush (range 8 1.4 "^54")
  # pan 0.75
  # room 0.2 # dry 1
  # cut 3
d7 $ g
  $ loopAt 4
  $ mask "t(<4 8 12 16>,16)"
  $ slice 16 (run 16)
  $ "fpiano:13"
  # pan 0.45
  # room 0.2
  # gM' 0 1.3 "^83"
  # cut 7
d8 $ g
  $ midiOn "^92" (|+ note 12)
  $ midiOn "^60" (
  superimpose (
    struct "t(5,8)"
    . arp "[down,up]"
    . (|+ note 12)
    . (|* gain 1.2)
    . (|- pan 0.1)
  ))
  $ note "<a3'maj g3'maj a3'min d3'maj>"
  # octave 4
  # room 0.4
  # "moogBass"
  # midiG' "^84" 0.3 1.4
d9 $ g
  $ degradeBy (slow 16 $ range 0.8 0.2 saw)
  $ struct "t(3,8) [<t!3 [~ t]> <t ~> <t t*2> <t*2 t t*2 t*2>]"
  $ midiOn "^59" (# speed (range 0.25 2 ("^55" + perlin)))
  $ midiOff "^59" (# speed
    (segment 16 $ fast 2 $ range 0.25 1.2 (perlin + (slow 8 $ sine)))
  )
  $ "hh:3"
  # lpq (range 0 0.2 "^35")
  # gM' 0 2 "^19"