-- Liberté Dure
-- Ou, le pair programming hardcore
do
  unsolo 1 -- kick
  unsolo 2 -- hihats
  unsolo 3 -- drumroll
  unsolo 4 -- basse
  unsolo 5 -- Glitchs statics
  unsolo 6 -- Guerre
  unsolo 7 -- LIBRE

do
  solo 1 -- kick
  solo 2 -- hihats
  solo 3 -- drumroll
  solo 4 -- basse
  solo 5 -- Glitchs statics
  solo 6 -- Guerre
  solo 7 -- LIBRE

once $ s "hardkick"

do
  let bpm = 155
  let gKick = 0.6
  let gBass = 0.35
  let gDrums = 0.7
  let gSamples = 1
  let gGlitch = 0.7
  let mesures = 32
  let mPont = 16
  setcps (bpm/60/4)
  d1 -- Kick un peu rythme
    $ slow 4
    -- $ whenmod mesures (mesures - 1) (# gain ("0 1" * gKick))
    -- $ whenmod mesures mPont (# gain 0)
    $ s "k(<4!2 5!2 4!4 8 7 5 8 5>,8)"
    # s "kick:5" # gain gKick
    # crush ("[2|3]" * 8)
  d2 -- Batterie hihats sexy
    $ sometimesBy "0 0.5 0.75 <1!7 0>" (fast 2)
    $ s "h h h h*<1 2 1!2 2!4 1!2 2 1>" # s "ho hc"
    # n (irand 4)
    # gain ((slow 8 $ range 0.8 1 saw) * (gDrums * 0.8))
  d3  -- drumroll
    $ fast "16 <8!3 16>"
    $ s "dr"
    # gain (slow mesures $ range (gDrums - 0.2) gDrums saw)
  d4 -- Basse lead
    $ juxBy 0.25 (|+ note "[0]")
    $ superimpose (
      # crush "<2!3 1>"
    )
    $ note (scale "aeolian" ( -- gamme choisie
      "<0 0*2 0*3 [0(3,8) <[2*2 4] [2 4]>]>" -- melodie
      )
      - 24 -- ou ca: deux octaves en dessous
      )
    # s "supersaw" # voice (slow 4 "<1 0.1 0.01!2>")
    # gain gBass
  d5 -- Static rythme random
    $ s "glitch:2([2|4|8],4)" # speed (range 0.1 0.8 rand)
    # gain ((slow 32 $ range 1 0.8 isaw) * gGlitch)
  d6 -- MACRON VOICE
    $ always (# crush 4)
    $ whenmod 4 3 (# silence)
    $ n "{3 6 0}" # s "macron" # cut 6
    # lpf 800
    # gain (gSamples - 0.1)
    # pan (slow 32 $ range 0.7 0.2 sine)
  d7 -- BOT OPPOSITION
    $ whenmod 4 3 (# gain (gSamples + 0.1))
    $ n "0(1,4,1)" # s "ondes"
    # begin 0.95 # cut 7
    # pan (slow 32 $ range 0.3 0.8 cosine)
    # note (2)
    # sustain 2
    # gain 0

once $ s "ondes" # begin 0.95  -- libre

once $ s "ondes:1" # begin 0.508 # end 0.68  -- une variation reversible

do
  let cutB = 0.508
  let cutE = 1
  once $ s "ondes:1" # begin cutB # end cutE # cut 1  -- une onde

-- Elements de style:
-- "a distorted bass drum sound, overdriven to the point where it becomes clipped into a distorted square wave and makes a recognizably melodic tone. "
-- Mainstream hardcore tracks typically include samples and synthesized melodies with the typical tempo ranging from 165 to 180 bpm. Violence, drugs and profanity are common themes in mainstream hardcore, perceptible through its samples and lyrics, often screamed, pitch shifted, or distorted.
-- Lots of tracks rely on a clean, detuned supersaw lead, similar to uplifting trance and can therefore sound "happy".

-- Raggatek elements ? Drums analogues et synthe fou contretemps?
once $ s "ondes"

-- Samples
-- [Nous sommes] En guerre
-- LIBRE
