-- Study Tubby: See https://www.pure.ed.ac.uk/ws/portalfiles/portal/15441495/Tubbys_Dub_Style.pdf
-- TODO:
-- 3Delay: Drum / Voice / Guitar delays
-- HMIX: Mix Hfiltered global with dry to interfere

do
setcps (90/60/4)
let f3 = (# djfbus 3 (range 0.05 0.99 "^13"))
let f2 = (# djfbus 2 (range 0.05 0.99 "^29"))
let f1 = (# djfbus 1 (range 0.05 0.95 "^49"))
d1 $ f1 -- Kick classic runner 4/4 <-> dub rhythm
  $ midiOn  "^41"  (<| "k k k <k [<~ k> k]> k k k <k k*2 k [~ k]>")
  $ midiOff "^41" (<| "k . k([<3 1 3 3> <1 3>],8)")
  $ "[ab:5,jazz]"
  # legato 0.8
  # midiG' "^78" 0 1.2
d2 $ f1  -- snare contretemps
  $ whenmod 16 12 (fast 2)
  $ mask "<f!4 t!28>"
  $ "~ snare:1"
  # lpf 3500
  # att 0.002
  # rel 0.9
  # gain 0.8
  # midiG' "^79" 0 0.8
d3 $ f3 -- Hihats + rhythmique horloge
  $ superimpose (const $
    fast "<1!4 2 1 1 2 2!8>"
    $ "hh*8"
    # midiG' "^80" 0 0.8
    )
  $ slice 16 ("[0 1 2 3]*<2!3 [<2 4> 4]>")
  $ loopAt 1
  $ "fbreak80:20"
  # midiG' "^80" 0 1.2
d4 -- Bassline classique
  $ f1
  $ chop 8
  $ slice 4 "1"
  $ loopAt 4
  $ "rootsBass:2"
  # lsize (range 0 2 "^33")
  # lesliebus 41 (range 0 1 "^53")
  # lrate 6.8
  # cut 4
  # pan 0.2
  # midiG' "^81" 0 1.8
d5 $ f2
  $ midiOn "^90" (stutWith 4 "e" (
    (|+ cut 1) . (|* gain 0.9) . (# legato 2)
    ))
  $ off "h" id
  $ "rootsGuitar" # n "<1!3 3>"
  # cut 50
  # midiG' "^82" 0 1.1
  # pan 0.8
d6 $ f2 -- Piano contretemps delayed crushed
 $ note ("~ b ~ <b <b d6> b a>" + "[0,7]")
 -- $ note "d6"
 # "superpiano"
 # velocity 0.4
 # delayfb (range 0.5 1.1 "^55") -- 1D: fb / size controlled with single knob
 # crushbus 61 (range 16 5 "^19") -- Weird interferences with delay
 # delayt "h"
 # delay (range 0 1.01 "^55")
 # room 0.3
 # midiG' "^83" 0 1.8