resetCycles

do
let gFactor = 1.2
let gG a = (gain (gFactor * "^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 novaOn  ch pat = someCyclesBy ch pat
let novaOff ch pat = someCyclesBy (1 - ch) pat
let gDJF = (# djfbus 1 (range 0.05 0.95 "^13"))
-- region Args FMRhodes
let rel = pF "rel" -- 1
let lfoSpeed = pF "lfoSpeed" -- 4.8
let lfoDepth = pF "lfoDepth" -- 0.1
let inputLevel = pF "inputLevel" -- 0.2
let modIndex = pF "modIndex" -- 0.2
let mix = pF "mix" -- 0.2
-- endregion Args FMRhodes
let gMix = ((# mix (range 0 20 "^78")) . (|* gain (range 1 0.88 "^78")))
let gMod = ((# modIndex (range 0.2 100 "^79")) . (|* gain (range 0.8 0.58 "^79")))
let gArp = (stutWith 4 "e" (sometimesBy (range 0.125 0.875 "^50") ((|+ freq 110) . (|* gain 0.95))))
let gRemix = ((novaOn "^41" (|- note 24)) . (novaOn "^42" $ slow 4) . (novaOn "^43" $ striate 2))
let n1 = novaOn "^73" (|+ note 5)
let n2 = novaOn "^74" (|+ note 7)
let n3 = novaOn "^75" (|+ note 12)
let n4 = (novaOn "^76" ((|- note "7") . novaOn "^44" (|- note "<0 1>")))
let n5 = novaOn "^89" (|- note 5)
let gNotes = n1 . n2 . n3 . n4 . n5
let gRoom = ((# room 0.2) . (# dry 0.8))
let g = id
let g = gArp . gMix . gNotes . gMod . gDJF . gRoom . gRemix
let gAcc = (|* gain (range 0.1 2 "^56"))
let gA = gDJF . gAcc . gRoom
setcps (110/60/4)
d1 $ g
  $ degradeBy (1 - "1 ^49!15")
  $ off "h" id
  $ "FMRhodes1"
  # inputLevel 0.1
  # gain (range 0.3 1.8 "^77")
d2 $ gA $ whenmod 32 24 (slow 2) "[jazz,techno]*4" # gain 0.57
d3 $ gA
  $ whenmod 16 8 (fast 2) "hh(<4 3 5>,8)"
  # release 0.8
  # pan 0.35
  # gain (range 0.45 0.85 "^83")
d4 $ gA
  $ novaOff "^60" (# silence)
  $ novaOn "^92" (fast 2)
  $ "~ clap"
  # lpf 2000
  # gain (range 0 0.75 "^84")
  # pan 0.8
  # note (-4)


do
let novaOn  ch pat = (sometimesBy (ch) pat)
let novaOff ch pat = sometimesBy (1 - ch) (pat)
d4
  -- $ novaOn "^73" (fast 2)
  $ iter 4 $ n (run 8)
  # "cpu2"
  # gain 0.75
