resetCycles

do
  setcps (80/60/4)
  solo 1 -- Break + BEAT
  solo 2 -- Contresnares
  solo 3 -- Drumroll
  solo 4 -- Guitare aigue background
  solo 5 -- Guitare med foreground
  solo 6 -- Piano conclusif
  solo 8 -- Nappes
  let gKick = 0.8
  let gBreak = (slow 4 $ range 0.8 0.9 perlin)
  let gRoll = (slow 16 $ range 0.6 0.95 saw)
  let gGuitA = 1.1
  let gGuitG = 1.1
  let gPiano = (slow 128 $ range 0.45 0.8 saw) -- x2 64/128
  let gNappes = (0.5 * "<1!8 0.95 0.9 0.85 0.8>")
  d1 -- Beat sautillant 3-5
    $ superimpose (const -- BREAKBEAT
      $ whenmod 64 48 -- Part et revient
      (|* gain "<0.9!4 0.8!4 0.7!4 0.5!2 0.8 1.1>")
      $ whenmod 8 6 (mask "t(<3 1>,8,<0 5>)")
      $ rarely (ply "1 [2|4]")
      $ whenmod 16 12 (# lpf "<2000 1500 1000 500>")
      $ loopAt 2
      $ slice 4 ("0 1 <1!3 2> <1!4 3!4>")
      $ "fbonus"
      # n ("<0!12 1!4>")
      # gain gBreak
      # cut 8
    )
    $ whenmod 64 48 (mask "<f!31 t>")
    $ whenmod 16 12 (# lpf "<1000 750 500 250>")
    $ every' 2 1 (sometimes (<| "k*4 . k(3,8)"))
    $ s ("k . <[~ ~ ~ k] k(3,8)>")
    # "[jazz,reverbkick]"
    # lpf 2500 # release 0.5
    # gain gKick
    # pan 0.45
  d2 -- Contresnares
    $ whenmod 64 32 (mask "<f!7 t>")
    $ fast "<2!3 4 2!3 4 2!3 4 [4 8] 8 [8 4] 8>"
    $ superimpose (# "sn:4")
    $ s "~ <s!3 [~ s]>"
    # "snare"
    # lpf 5000
    # n "<2 [2|3] 2 [2|3|3]>"
    # gain (slow 4 $ range 0.6 0.9 perlin)
    # pan 0.55
  d3
    $ mask "<f!8 [t? t?]!4 [t t?]!4 t!16>"
    $ whenmod 32 28 (degradeBy ("0 1!15" * (1)))
    $ juxBy 0.75 (0.125 ~>)
    $ fast (
    "<1!8 2!6 4 [8 4]>" -- Accelera 16
    * "1 <1 2 1 [2 1]>"
    * "<4!28 2!3 [1 4]>" -- base 4 temps, ralentissement 32
    ) $ s "d" # "cpu:4"
    # gain gRoll
    # pan 0.4
  d4 -- Guitare aigue background
    $ mask ("<t!64 [f t]!32 f!32>")
    $ mask "<t!8 f!8 t!16>" -- Progressive guitar blending
    $ slice 8 (cat [
      "0 1 2 3", "0 1 2 3", "0 1 2 3*2",
      "5 4 6 7",
      "5 ~ 6 7", "4 5 6 7", "4 5 6 7",
      "7 0 6 7"
    ])
    $ loopAt 2
    $ "fguitar:8"
    # hpf (slow 24 $ range 0 6000 saw)
    # cut 4
    # pan 0.7
    # gain gGuitA
  d5 -- Guitare grave background
    $ mask ("<t!64 [t f]!32 f!32>")
    $ mask "<f!8 t!8 t!16>" -- Progressive guitar blending
    $ slice 4 (
      whenmod 32 16 (|>| "<0!4 1!4 2!4 3!4>(<3 4 6 7>,8)") $
      whenmod 16 8 (|> "<0 [0 1]> <1 [1 0]>")
      "0 <<1 [1 0]> 1*2>"
    )
    $ loopAt 2
    $ "fguitar:11"
    # djf (slow 32 $ range 0.4 0.8 isaw)
    # cut 5
    # pan 0.35
    # gain gGuitG
  d6 -- Piano conclusif
    $ mask (slow 64 "<f t>")
    $ whenmod 64 48 (mask "t(5,8)" . ply 4)
    $ whenmod 64 32 (whenmod 4 2 (mask "t t? t? f"))
    $ someCyclesBy "<0!3 0.25>" ((ply 4) . (|* gain 0.65))
    $ loopAt 2
    $ slice 4 (cat [
      "0 1 2 3", "0 1 2 3", "0 1 2 0", "0 1 2 3",
      "0 1", "0 . 1 2", "0 1 0 3", "1 1 3 3"
    ])
    $ "fpiano:10"
    # gain gPiano
    # cut 6
    # pan 0.6
  d8 -- Nappes synthetiques
    $ jux id
    $ stut 2 "q" 0.95
    $ off "<e!3 q>" (
      |+ note (scale "major" "<4!6 -4!2>")
    )
    $ note (
           "<0!3 -2 0!2 -2 0 12!3 10 12!3 [12 10 8 6]>"
           -- "[12 10 8 <6 5>]" -- Nanana
    + "-12")
    # s "moog:2"
    # gain gNappes
    # legato "<0.8!7 0.4>" -- Nappage parfois parcimonieux