Commit 43e0a477 by PLN (Algolia)

feat(copycat): drum rework from detailed onset analysis

Deep demucs drum study findings:
- Kick: 8th note pulse (NOT 4otf), ghost doubles before drop
- Cymbal: THE defining texture, upbeat 8ths throughout most of track
- Clap: appears late (~200s) on contretemps (beats 1&3), ~1200Hz dry snap
- Drop at 2:20: kick disappears, pure cymbal upbeat 8ths
- Arrangement: kick 8ths → cymbal break → kick+cymbal+clap climax

Changes:
- d1 kick: rewritten as 8th note pulse, ^29 ghost double control
- d2 clap: ^43 ON = contretemps (beats 1&3), OFF = backbeat
- d3 hats: OH on every upbeat 8th, ^44 toggles cymbal breakdown mode
parent 127f3eac
...@@ -105,15 +105,23 @@ let gM3 = gMask . gMute3 ...@@ -105,15 +105,23 @@ let gM3 = gMask . gMute3
-- Main Bbm/F vamp with Db/Ebm variation -- Main Bbm/F vamp with Db/Ebm variation
-- Demucs evidence: bass at Bb1(58Hz)/F2(87Hz), C2(65Hz) passing tone at breakdown -- Demucs evidence: bass at Bb1(58Hz)/F2(87Hz), C2(65Hz) passing tone at breakdown
let rt = slow 2 "<bf2 f2 bf2 f2 bf2 f2 df2 ef2>" -- root sequence (for d6 piano, pad, etc) let rt = slow 2 "<bf2 f2 bf2 f2 bf2 f2 df2 ef2>" -- root sequence (for d6 piano, pad, etc)
d1 $ gF1 $ gMute2 -- KICK: Deep 4otf house kick d1 $ gF1 $ gMute2 -- KICK: 8th note pulse (demucs: kick on EVERY downbeat 8th)
$ midiOn "^42" (<| "k k k <k k*2 k [~ k]>") -- NTO pattern: kick+OH alternating 8ths, NOT 4otf!
$ midiOff "^42" (<| "k") -- ^42 ON: full 8th kicks (groove). OFF: sparse intro kick
-- Before drop: ghost doubles appear (flam at +0.15 beat)
$ midiOn "^42" (<| "k*8") -- the real NTO groove: 8th kicks
$ midiOff "^42" (<| "k ~ ~ <~!3 k>") -- intro: sparse
$ sometimesBy "^29" ( -- ^29 mid knob: kick ghost doubles (pre-drop energy)
superimpose (("0.07" <~) . (|* gain 0.7))
)
$ fix ((# att 0.01) . (# rel 0.5) . (# lpf 2000)) "kick:4" $ fix ((# att 0.01) . (# rel 0.5) . (# lpf 2000)) "kick:4"
$ "[techno:0,808bd:2,kick:4]" $ "[techno:0,808bd:2,kick:4]"
# gain 1.3 # gain 1.3
d2 $ gF1 $ gM -- CLAP: h2o natural handclap, reverbed d2 $ gF1 $ gM -- CLAP: Dry snap, contretemps (demucs: enters at climax ~200s)
$ midiOn "^43" (<| "~ cp ~ [cp <~ cp>]") -- busy: ghost claps -- NTO clap: beats 1&3 (contretemps), ~1200Hz, dry mid+hi_mid snap
$ midiOff "^43" (<| "~ cp ~ <~ cp*<1 2>>") -- sparse: classic backbeat -- Appears late in arrangement for climax energy
$ midiOn "^43" (<| "cp ~ cp ~") -- ON: contretemps (beats 1&3, NTO climax pattern)
$ midiOff "^43" (<| "~ cp ~ <~ cp*<1 2>>") -- OFF: classic backbeat (our interpretation)
$ sometimesBy "^30" ( -- ^30 mid knob: flam probability $ sometimesBy "^30" ( -- ^30 mid knob: flam probability
superimpose (("e" <~) . (|* gain 0.7)) superimpose (("e" <~) . (|* gain 0.7))
) )
...@@ -123,20 +131,24 @@ d2 $ gF1 $ gM -- CLAP: h2o natural handclap, reverbed ...@@ -123,20 +131,24 @@ d2 $ gF1 $ gM -- CLAP: h2o natural handclap, reverbed
# dry 1 # dry 1
# gain 1.1 # gain 1.1
# pan 0.55 # pan 0.55
d3 $ gF1 $ gM -- HATS: h2o sparse offbeat + light flourish d3 $ gF1 $ gM -- HATS/CY: Open hat 8ths → cymbal morph at drop (demucs confirmed)
$ midiOn "^76" (stut 3 0.6 "s") -- double time on push button -- NTO: OH on every upbeat 8th (alternating with kick)
$ midiOn "^44" (<| "h(4,8,1)") -- state ON: four-on-floor hats -- At drop (~2:20): hats morph to high cymbals, kick drops out
$ midiOff "^44" (mask "t(3,8)") -- state OFF: sparse euclidean -- ^44 ON: cymbal mode (breakdown). OFF: open hat groove
-- ^76 push: rolls
$ midiOn "^76" (stut 3 0.6 "s") -- push: hat rolls
$ midiOn "^44" ( -- state ON: cymbal breakdown (no kick, shimmering)
(<| "[~ cy]*4") . (# "h2ogmcy:1") . (# legato 0.6)
)
$ sometimesBy "^32" ( -- ^32 mid knob: roll probability $ sometimesBy "^32" ( -- ^32 mid knob: roll probability
ply "<2!3 [2 4]>" ply "<2!3 [2 4]>"
) )
-- n: 0-4 closed Hard→Soft, 5-9 open, 15-19 semi-open $ "[~ h]*4" -- base: open hat on every upbeat 8th
$ "~ h ~ h ~ h ~ <h!3 h*2>"
# "h2ogmhh" # "h2ogmhh"
# legato (range 0.1 0.8 "^52") -- ^52 bot knob: hat tightness # legato (range 0.1 0.8 "^52") -- ^52 bot knob: hat tightness
# pan 0.42 # pan 0.42
# n "~ 3 ~ 2 ~ 4 ~ <3!3 [3 6]>" -- occasional open hat flourish # n "<6!3 [6 8]>" -- 6=open hat, 8=more open. vary per bar
# gain (1.9 * "~ 0.8 ~ [0.75|0.85] ~ 0.8 ~ <0.9!3 [0.9 0.5]>") # gain 1.5
d4 $ gF2 $ gM3 -- BASS: V chord tones (F2/A2/C2), rhythmically alive d4 $ gF2 $ gM3 -- BASS: V chord tones (F2/A2/C2), rhythmically alive
-- onset analysis: NTO bass = ALWAYS F2/A2/C2 (V chord), never sits on Bb! -- onset analysis: NTO bass = ALWAYS F2/A2/C2 (V chord), never sits on Bb!
-- hits every ~2 beats with variation, answer at beat 2.7→3.7→next bar 0.2 -- hits every ~2 beats with variation, answer at beat 2.7→3.7→next bar 0.2
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment