-- Horizons: Pour conjurer les vertiges...

resetCycles

do
setcps (100/60/4)
let gDJF2 = (# djfbus 2 (range 0.05 0.95 "^29"))
let gDJF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let g  = gDJF1 -- . gFilter
let g2 = gDJF2 -- . gFilter2
d1 $ g
  $ midiOn "^42"  (<| "k k k <k!3 [<k ~> k]>" )
  $ midiOff "^42" (<| "k <~!4 k!4>")
  $ "[909,bd:2]"
  # lpf 2500
  # midiG' "^78" 0 1.3
d2 $ g $ "~ s ~ [s <~!3 s*2>]" # "[<electro1:3!3 [electro1:3,electro1:2?]>,snare:5]"
  # midiG' "^79" 0 1.8
d3 $ g
  $ whenmod 4 3 (fast "2 <4 <2 1>>")
  $ "~ h ~ h ~ h ~ <h h*2>"
  # n "[0,3]"
  # "h2ogmhh"
  # legato (slow 8 $ range 0.5 0.25 saw)
  # midiG' "^80" 0 1.25
-- re sib do sol
d4 $ g
  $ struct "t . t(3,8)"
  $ note ("d3 bf2 c3 <g2!3 f3>")
  # "bassWarsaw"
  # crushbus 41 (range 5 3.6 "^53")
  # midiG' "^81" 0 1.45
  # lpf 4000
  # room 0.4 # sz 0.8
d5 $ g
  $ whenmod 64 32 (
    (# room (slow 16 $ range 0 0.8 saw))
    . (# legato (slow 16 $ range 1 "s" saw))
  )
  $ degradeBy ("0 0.15!15 0" * "^54")
  $ note (
    "d3*[1|2] bf2*<1 <0 2>> c3 <g2!3 f3>"
    + (fast 4 $ arp "up" "<c'maj'4!32 c'maj'4!24 c'maj'8!8>")
   + "[0,7,12]"
  )
  # "supersaw"
  # midiG' "^82" 0 1.2
  # voice 0.04
  # pan 0.8
d6
  $ g
  $ struct "t*[4 <4 8 4 [8 16]>]"
  $ note (
  arp "up" "c'majPent'3"
  + "<d3 f3 <bf3!3 a3> <g3!3 bf3>>"
  + 12
  )
  # "laserbeam"
  # room 0.4 # sz 0.8
  # crushbus 41 (range 16 3.6 "^55")
  # midiG' "^83" 0.2 1.45
d7
  $ g
  $ mask "<f!12 t!4>"
  $ note ("d3 . c3 <g2!3 f3>" + "[0,<~!3 7>,<~ 12>]")
  # "phazer"
  # room (slow 8 $ range 0 0.6 saw)
  # sz (slow 8 $ range 0 0.6 saw)
  # midiG' "^84" 0 0.8
d11 $ g
  $ degradeBy (1 - "^18")
  $ whenmod 64 32 ( -- C'est une aventure !
    (every' 8 3 ((>| n "4") . (# begin 0)))
    . (>| n "<7!3 8*<1 2>>") -- Deux genres d'aventures
    . (# begin "<0 0.17 0 [0 0.5]>") -- Avance dans l'aventure
  )
  $ every' 16 15 (>| n "10 . 4 4") -- On est heureux... POURQUOI?
  $ every' 16 10 (>| n "4 3") -- Pourquoi -- On va vous le dire
  $ every' 16 7  (# n 5) -- Parce qu'il faut - voir loin
  $ "h"
  # n "<1!3 <2 3>>"
  # "horizons"
  # lesliebus 110 "^20"
  # lsize (range 0 2.5 "^19")
  # lrate 6.7
  # midiG' 1.2 0 1
  # cut 11


once $ "horizons:7"
# gain 2
# cut 30

once $ "phazer"


resetCycles

-- Soleil de Sete - LoFi avec accompagnement

once $ "dr" # gain 0.9

-- TODO:

d1 $ "bd dr"

do
setcps (90/60/4)
let modIndex = pF "modIndex"
let chords = "<[a,c,e,g6,b6,d6] [d,fs,a6,c6] [f,a,c6,e6] [c,e,g6,b6]>"
let chordsMin = "<<a c e> <d!3 fs> [f] [c]>" -- TODO confirm/finish/validate
-- let gFilter = whenmod 32 24 (# djfbus 2 (slow 8 (range 0.5 0.05 saw)))
-- let gFilter2 = whenmod 32 24 (# djfbus 3 (slow 8 (range 0.45 0.75 saw)))
let gDJF2 = (# djfbus 2 (range 0.05 0.95 "^29"))
let gDJF1 = (# djfbus 1 (range 0.05 0.95 "^49"))
let g  = gDJF1 -- . gFilter
let g2 = gDJF2 -- . gFilter2
d1 $ g
  $ midiOn ("^44" - "^76") (ply 2)
  $ midiOn "^76" (striate 4)
  -- $ mask "<t!16 f!4 t!12>" -- First break
  -- $ mask "<t!32 f!8 t!24>" -- Post-filter break
  -- $ mask "<f!6 t f t!24>"  -- Intro mask
  $ "k*<1!8 2!24> . k*[<<3 1> 3!6 4> <8 3 8 <8 [8 4]>>]"
  # "[bd:2,kick:5]"
  # legato 2
  # att 0.1
  # rel 0.8
d2 $ g -- Aerian snare
  -- $ mask "<t!16 f!3 t t!12>" -- First break
  -- $ mask "<f!12 t!4 f!5 t!13>" -- Snare mask
  $ n "~ <~!3 [~!3 <10 10?>]>. 9"
  # "sn"
  # midiG' "^79" 0 1.6
  # pan 0.6
  # lpf 1500
d3 $ g2
  $ mask "<f!16 t!12 f!4 t!16 f!4 t!12>"
  $ "d*[<<4!4 [8 <4 8>]!4> 16!4> <16!3 8 16 16 8 8 16 16 8 16 16 8 16 16>]"
  # "drum:2"
  # pan 0.35
  # dry 1.1 # room 0.5 # sz 0.8
  # midiG' "^80" 0 (slow 8 $ range 0.9 1.3 saw)
d5 $ g -- BREAKBEAT BUDDY
  -- $ mask "<t!32 f!7 [f t] t!24>" -- Post-filter break
  -- $ mask "<f!8 t!14 f f t!16>"
  $ whenmod 16 8 (
    sometimesBy "0 0.2 . 0.75!3 0"
    (ply "2 . [2|4]"))
  $ chop 16
  $ loopAt 2
  $ "fbreak100"
  # pan 0.65
  # midiG' "^83" 0 1.6
d4 $ g -- Bassline
  $ midiOn "^89" (chop 8)
  $ midiOff "^57" (mask "<f!8 t!8 f!4 t!12>")
  -- $ whenmod 64 48 (# crush (8 - (slow 16 $ range "-1.5" 2.5 perlin)))
  $ note ("[0,<~!8 0(<1 <3 5>>,8)!8>] [0,12]"
    |+ chordsMin
    - 24
  )
  # "bassWarsaw"
  # pan 0.3
  # hpf (range 0 500 perlin)
  # crushbus 41 (range 10 3.6 "^53")
  # midiG' "^81" 0 (slow 16 $ range 1.1 1.2 sine)
  # room 0.4
d6 $ g2-- Rhodes chords
  $ whenmod 4 3 (rarely (off "h" (arp "up" . mask "f f t? t")))
  $ superimpose ((|* gain "0 0.79") . (|+ note 12)) -- Depth
  $ whenmod 16 12 (someCyclesBy "0 1" rev)
  $ note (chords
    - 24
  )
  # "FMRhodes1"
  # modIndex (range 0 10 "^54")
  # midiG' "^82" 0 (slow 32 $ range 1.2 1.6 saw)
  # sz 0.9
  # pan 0.75
  # room 0.4