Strudelify
Deeper and Deeper (Shep's Deep Beats) cover art

1992 · Erotica

Deeper and Deeper (Shep's Deep Beats)

Madonna

KeyB♭ majorTempo122 bpm
0:00/0:00
// Deeper and Deeper (Shep's Deep Beats) — Madonna
// 122 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 9 synth choir (copy of ch 5 synth choir)
// note: Full arrangement: all 165 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · epiano2
const epiano2 = note(`<
  ~@4 A B C D E F G H E F G H E F G H E I G H J K L M J K L M J K L M J K L M E I G H E I G H ~@2 J K L M J K L M J K L
  M J K L M E I G H E I G H E I G H E I G H N O P O N O P O N O P O N O P O ~@10 Q R Q S@2 T Q U@2 V L M J V L M E F G H
  E F G H E F G H E F G H E I G H E I G H E I G H E I G H E I G H E I G H W
>`.pickRestart({
  A: "[g3,bb3,c4,eb4]@12 [g3,bb3,c4,eb4]@3 ~", B: "[a3,c4,d4,f4]@8 [a3,c4,d4,f4]@7 ~", C: "[g3,b3,d4]",
  D: "[d3,g3,b3,d4]@11 ~ [f3,g3,b3,d4]@3 ~", E: "[g3,bb3,c4,eb4]@5 ~@3", F: "[a3,c4,d4,f4]@5 ~ [a3,c4,d4,f4] ~",
  G: "[d3,g3,b3,d4]@10 ~@2 [d3,g3,b3,d4]@3 ~", H: "[f3,g3,b3,d4]@7 ~ [f3,g3,b3,d4]@7 ~",
  I: "[a3,c4,d4,f4]@10 ~@2 [a3,c4,d4,f4]@3 ~", J: "[g2,g3,bb3,d4]@7 ~@9", K: "~@12 [c3,eb3,f3,g3,bb3]@3 ~",
  L: "[d3,g3,bb3,d4]@5 ~@11", M: "[c3,eb3,g3,bb3]@5 ~@11", N: "[eb4,g4,c5]@9 ~@3 [eb4,g4,c5]@2 ~@2",
  O: "[eb4,ab4,c5]@9 ~@3 [eb4,ab4,c5]@2 ~@2", P: "[eb4,a4,c5]@9 ~@3 [eb4,a4,c5]@2 ~@2",
  Q: "g3@2 [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~@2 g3, ~@4 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~, ~@7 [bb3,d4,g4]", // Gm
  R: "g3@2 [a3,c4,eb4,g4]@2 ~ [ab3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~@2 g3, ~@4 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~, ~@7 [a3,c4,eb4,g4]", // Am7b5 Abmaj7 Am7b5
  S: "[g3@2 [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~ eb3@2 ~ eb3@2 ~@2 g3 g3@2 [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~ [bb3,d4,g4]@2 ~@2 g3, ~@4 g3@2 ~ g3@2 ~ [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 [c4,d4,g4]@2 ~@3 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~, ~@7 d3 ~@7 [bb3,d4,g4]]/2", // Am7b5 Gm Am7b5 Csus2 Gm
  T: "g3@2 [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~@2 g3, ~@4 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~, ~@7 [a3,c4,eb4,g4]", // Am7b5
  U: "[g3@2 [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 ~ eb3@2 ~ eb3@2 ~@2 [g3,d4] [g2,g3,bb3,d4]@7 ~@9, ~@4 g3@2 ~ g3@2 ~ [a3,c4,eb4,g4]@2 ~ [a3,c4,eb4,g4]@2 [c4,g4]@2 ~@15, ~@7 d3 ~@8]/2", // Am7b5 G5 Gm Am7b5 C5
  V: "~@6 [c3,eb3,f3,g3,bb3] ~", W: "g4@3 ~@13",
})).s("gm_epiano2").gain(0.32)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  A B C D A B C D E F G H E I F J K L M N K O L P Q R S@2 Q R S@2 Q R S@2 Q R S@2 K L M N K O L P ~@2 Q R S@2 Q R S@2 Q
  R S@2 Q R S@2 K L M N K O L P K L M N K O L P T U V U T U V U T U V U T U V U W@2 ~@8 X Y Z AA X AB AC@2 Q R S@2 Q R
  S@2 K L M N K O L P K L M N K O L P K L M N K O L P K L M N K O L P K L M N K O L P AD
>`.pickRestart({
  A: "[c4,eb4,g4,bb4]@12 [c4,eb4,g4,bb4]@3 ~", B: "[f4,a4,c5,d5]@7 ~ [f4,a4,c5,d5]@7 ~", C: "[d4,g4,b4]",
  D: "[d4,f4,g4,b4]@7 ~ [b3,d4,f4,g4,b4]@7 ~", E: "eb6", F: "d6", G: "b5", H: "a5 g5", I: "f6", J: "f6 g6",
  K: "[eb5,eb6]", L: "[d5,d6]", M: "[b4,b5]", N: "[a4,a5] [g4,g5]", O: "[f5,f6]", P: "[f5,f6] [g5,g6]", Q: "[d4,d5]",
  R: "[c4,c5]", S: "[d4,d5]/2", T: "[g3,c4,eb4]", U: "[ab3,c4,eb4]", V: "[a3,c4,eb4]",
  W: "[c5,c6] ~@3 [c5,c6] ~@3 [c5,c6] ~@3 [c5,c6] ~@3", X: "g4 a4 bb4@3 g4 a4 bb4, [g3,bb3,d4]",
  Y: "c5@3 bb4 c5@2 eb5@2, [eb3,g3,c4]", Z: "eb5 c5 d5@6, [g3,bb3,d4]", AA: "eb5 c5 d5 bb4 c5 a4 bb4@2, [a3,c4,eb4]",
  AB: "c5@5 eb4!2 d4, [eb3,g3,c4]", AC: "[[d3,g3,bb3] [eb3,g3,a3], g4]/2", AD: "g3@3 ~@13",
})).s("gm_string_ensemble_1").gain(0.32).pan(0.6)

// other · synth brass 1
const synth_brass_1 = note(`<
  ~@8 A B C D E F G H A B I@2 E J K H ~@2 L ~@3 M N ~@2 M ~@3 M N A B I@2 E J K H ~@4 L ~@3 L N ~@2 M ~@3 M N A B I@2 E
  J K H A B I@2 E J K H O ~ O ~ O ~ O ~ O ~ O ~ O ~ O ~ P@2 ~@18 M ~@3 M Q A B I@2 E F K H A B I@2 E F K H A B I@2 E J K
  H A B I@2 E J K H A B I@2 E J K H ~
>`.pickRestart({
  A: "eb4@3 ~", B: "f4@3 ~", C: "d4@3 ~", D: "b3@3 ~ c4 ~ d4 ~", E: "eb4", F: "d4@12 d4 ~@3", G: "g4@2 g4 ~ g4 ~ g4@10",
  H: "f4@8 eb4@4 d4@3 ~", I: "[~@10 [g4,g5]!2 ~ [g4,g5] ~@2 b3@6 ~@2 c4@2 ~@2 d4@2 ~@2, d4@6 ~ [g4,g5]@4 ~@5]/2",
  J: "d4@6 d4 ~", K: "[g4,g5]@2 [g4,g5] ~ [g4,g5] ~ [g4,g5]@10", L: "~@2 g4 ~@13", M: "~ g4 ~@6", N: "~ bb4 ~@3 c5 ~@2",
  O: "eb5 ~@3 eb5 ~@3 eb5 ~ c5 ~ eb5 ~ c5 ~", P: "c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3", Q: "~@2 bb4 ~@7 c5 ~@5",
})).s("gm_synth_brass_1").gain(0.28).pan(0.3)

// other · synth brass 1 · soft notes
const synth_brass_1_soft = note("<A B C D A B C E ~@19 F ~@7 F ~@17 F ~@7 F ~@57 F ~@45>".pickRestart({
  A: "eb4@3 eb4", B: "d4!2", C: "b3", D: "a3 g3", E: "c4 d4", F: "~@2 g4 ~@7 g4 ~@5",
})).s("gm_synth_brass_1").gain(0.03).pan(0.3)

// other · string ensemble 1
const string_ensemble_1_2 = note(`<
  ~@8 A B C D E F G H A B C D E F G H ~@16 A B C D E F G H ~@18 A B C D E F G H A B C D E F G H ~@16 I@2 ~@24 A B C D E
  F G H A B C D E F G H A B C D E F G H A B C D E F G H A B C D E F G H ~
>`.pickRestart({
  A: "d5 eb5 d5 c5 d5 ~ bb4 ~", B: "a4 ~ bb4 ~ c5@4", C: "d5@2 eb5@2 d5@2 c5@2 d5@3 ~ b4@3 ~",
  D: "a4@3 ~ g4@3 ~ a4@3 ~ bb4@3 ~", E: "c5 ~ d5 ~ eb5 ~@7 d5 ~ eb5 ~", F: "f5 ~@5 eb5 ~ f5 ~@3 g5 ~@3",
  G: "g5 ~ eb5 ~@3 f5 ~ d5 ~@3 eb5 ~ c5 ~", H: "~@2 d5 ~ b4@12", I: "c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3",
})).s("gm_string_ensemble_1").gain(0.4).pan(0.4)

// other · orchestra hit
const orchestra_hit = note(`<
  ~@26 A B ~@2 C D ~@2 C B ~@2 C D ~@12 A B ~@2 A D ~@2 C B ~@2 C D ~@16 E ~ F ~ G ~ H ~ G ~ I ~ J ~ I ~ K ~@19 C L ~@2
  C M ~@41
>`.pickRestart({
  A: "~@2 g5 ~@13", B: "~ g5 ~@3 g5 ~@2", C: "~ g5 ~@6", D: "~ bb5 ~@3 c6 ~@2", E: "eb5 ~ eb5 ~ eb5 c5 eb5 c5",
  F: "eb5@2 ~@2 eb5@2 ~@2 eb5@2 c5@2 eb5 ~ c5@2", G: "eb5@2 ~@2 eb5@2 ~@2 eb5 ~ c5@2 eb5@2 c5@2",
  H: "eb5@2 ~@2 eb5 ~@3 eb5@2 c5@2 eb5 ~ c5@2", I: "eb5@2 ~@2 eb5 ~@3 eb5@2 c5@2 eb5@2 c5@2",
  J: "eb5 ~@3 eb5@2 ~@2 eb5 ~ c5@2 eb5@2 c5 ~", K: "c5 ~@3 c5 ~@3 c5 ~@7", L: "~@2 g5@2 ~@6 g5 ~@5",
  M: "~@2 bb5 ~@7 c6 ~@5",
})).s("gm_orchestra_hit").gain(0.54)

// other · orchestra hit · soft notes
const orchestra_hit_soft = note("<~@98 [~@12 c5 ~@3] [c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3] ~@65>")
  .s("gm_orchestra_hit").gain(0.18)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@100 A B C D A E C F G H I J G K L M ~@49>".pickRestart({
  A: "g2 a2 bb2@3 g2 a2 bb2", B: "c3@6 a2@2 bb2@2 c3@2 d3@2 eb3!2", C: "eb3@2 c3@2 d3@9 ~ eb3!2",
  D: "eb3 c3 d3 bb2 c3 a2 bb2@2", E: "c3@6 bb2@2 c3@4 eb3@2 eb3!2", F: "eb3 c3 d3 bb2 c3@2 a2@2",
  G: "g3 a3 bb3@3 g3 a3 bb3", H: "c4@6 a3@2 bb3@2 c4@2 d4@2 eb4!2", I: "eb4@2 c4@2 d4@9 ~ eb4!2",
  J: "eb4 c4 d4 bb3 c4 a3 bb3@2", K: "c4@4 ~ bb4!2 a4", L: "g4@12 ~@2 d4 ~", M: "d4 eb4 d4 c4 d4@10 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.66).pan(0.6)

// bass · synth bass 1
const bass = note(`<
  ~@16 A B C D E F C G E F H I E J H K E L H B E L H B E D M B A D C B ~@2 E F A G E F H I E J H K E L H B E L M B A D M
  B A D C B A D N F O P O P O P O P O P O P O P O P ~@10 Q R Q R Q R Q S H I E J H K E L H B N L H B N D H B C D A B C D
  E F C G E F M I E J M K E L M B E L M B E D M B T
>`.pickRestart({
  A: "g2@3 ~ g2@3 ~ bb1@2 ~ bb1 ~@2 bb1@2", B: "c2@3 ~ c2@2 ~@2 eb2@3 ~ f2@2 ~@2",
  C: "g2@3 ~ g2@3 ~ b1@2 ~ b1 ~@2 b1@2", D: "c2@2 ~@2 c2@3 ~ eb2@2 ~@2 f2@3 ~",
  E: "g2@3 ~ g2@2 ~@2 bb1@2 ~ bb1 ~@2 bb1@2", F: "c2@3 ~ c2@2 ~@2 eb2@3 ~ f2@3 ~", G: "c2@2 ~@2 c2@3 ~ eb2@3 ~ f2@3 ~",
  H: "g2@2 ~@2 g2@3 ~ bb1@2 ~ bb1 ~@2 bb1@2", I: "c2@2 ~@2 c2@3 ~ eb2@3 ~ f2@2 ~@2", J: "c2@3 ~ c2@3 ~ eb2@3 ~ f2@3 ~",
  K: "c2@3 ~ c2@3 ~ eb2@3 ~ f2@2 ~@2", L: "c2@3 ~ c2@3 ~ eb2@2 ~@2 f2@3 ~", M: "g2@2 ~@2 g2@3 ~ b1@2 ~ b1 ~@2 b1@2",
  N: "g2@3 ~ g2@2 ~@2 b1@2 ~ b1 ~@2 b1@2", O: "c2@2 ~@2 c2@2 ~ c2@2 ~ c2@2 eb2@2 f2@2",
  P: "c2@2 ~@2 c2@2 ~ c2@2 ~ c2@2 f2@2 eb2@2", Q: "g1@3 ~ g1@3 ~ a1@3 ~ bb1@3 ~", R: "c2@3 ~ a1@3 ~ bb1@3 ~ c2@3 ~",
  S: "g1@3 ~ eb1@3 ~ d1@3 ~ d2@3 ~", T: "g4@3 ~@13",
})).s("gm_synth_bass_1").gain(0.59)

// other · music box
const music_box = note(`<
  ~@24
  [g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~]!16
  ~@8
  [g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~]!18
  ~@50
  [g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~]!8
  ~@41
>`).s("gm_music_box").gain(0.32)

// other · tremolo strings
const tremolo_strings = note("<~@82 A@16 B@2 ~@65>".pickRestart({
  A: "c6/8", B: "c6 ~@3 c6 ~@3 c6 ~@3 c6 ~@3",
})).s("gm_tremolo_strings").gain(0.4).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note("<~@100 A B A C A D A E ~@57>".pickRestart({
  A: "[bb2,d3,g3,bb3] [d3,g3,bb3] [d3,g3,bb3]@2 [d3,g3,bb3] ~ [bb2,d3,g3,bb3] g3 [d3,g3,bb3]@2 [d3,g3,bb3] ~ [bb2,d3,g3,bb3] [d3,g3,bb3] [d3,g3,bb3]@2", // Gm
  B: "[eb3,g3,a3,c4] [eb3,a3,c4] [eb3,g3,c4] ~ [eb3,g3,c4] ~ [eb3,g3,a3,c4] a3 [eb3,a3,c4] ~ [eb3,g3,c4] ~ [eb3,g3,a3,c4] [g3,a3,c4] [eb3,g3,c4]@2", // Am7b5 Adim Cm Am7b5 Adim Cm Am7b5 Am7 …
  C: "[eb3,g3,a3,c4] [eb3,a3,c4] [eb3,g3,c4]@2 [eb3,g3,c4] ~ [eb3,g3,a3,c4] a3 [eb3,a3,c4]@2 [eb3,g3,a4] ~ [eb3,g3,a3,c4] [g3,a3] [eb3,g3,a3]@2", // Am7b5 Adim Cm Am7b5 Adim Am7b5 Gsus2 Am7b5
  D: "[eb3,g3,a3,c4] [eb3,a3,c4] [eb3,g3,c4]@2 [eb3,g3,c4] ~ [eb3,g3,a3,c4] a3 [eb3,a3,c4] ~ [eb3,g3,c4] ~ [eb3,g3,a3,c4] [g3,a3,c4] [eb3,g3,c4]@2", // Am7b5 Adim Cm Am7b5 Adim Cm Am7b5 Am7 …
  E: "[eb3,g3,a3,c4] [eb3,a3,c4] [eb3,g3,c4]@2 [eb3,g3,c4] ~ [eb3,g3,a3,c4] a3 [eb3,a3,c4]@2 [eb3,g3,a4] ~ [eb3,g3,a3,c4] [g3,a3] ~@2", // Am7b5 Adim Cm Am7b5 Adim Am7b5 Gsus2
})).s("gm_acoustic_guitar_steel").gain(0.45).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@8 [x!4]!92 ~@4 [x!4]!60 ~>").gain(0.64)

// drums · snare
const snare = s("sd").struct(`<
  ~@11 A B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B C B D B C B D B C B D B C B D B C
  B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D B D ~@8 B C B D B C B D B C B D B C B D B C B D B C B D B
  C B D B C B D B C B D B C B D B C B D B C B D B C B D B C B D ~
>`.pickRestart({
  A: "~@5 x!3", B: "~@4 x ~@2 x ~@4 x ~@3", C: "~@4 x ~@2 x ~ x ~@2 x ~@3", D: "~@4 x ~@2 x ~ x ~@2 x ~ x!2",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@8 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B A B C D A B C D A B C D A B C
  D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D C D C D C D C D C D A B C D A B C D A B C D A B C D
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D ~
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", B: "x ~@3 x!2 ~@2 x ~@3 x ~@3", C: "x!2 ~@2 x!2 ~@2 x ~@3 x!2 ~@2",
  D: "x!2 ~@2 x ~@3 x!2 ~@2 x!2 ~@2",
})).gain(0.64)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@9 A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A ~ A B C ~ A B C ~ A B C ~ A B C
  ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C B C B C B C B C B C ~ A B C ~ A B C ~ A B C ~ A B C ~
  A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~ A B C ~
>`.pickRestart({
  A: "~ x ~@7 x ~@3 x ~@2", B: "~@9 x ~@6", C: "~@5 x ~@10",
})).gain(0.43)

// drums · open hat
const open_hat = s("oh").struct("<~@8 [~ x ~ x ~ x ~ x]!156 ~>").gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct("<~@8 [x!16]!96 ~@4 [x!16]!56 ~>").gain(0.43)

// drums · congas
const congas = s("conga:13").struct("<~@8 A@16 ~@8 A@16 ~@10 A@42 B@16 A@48 ~>".pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x ~@2",
})).gain(1.83)

// drums · congas
const congas_2 = s("conga:18").struct("<~@8 A@16 ~@8 A@16 ~@10 A@42 ~@16 A@48 ~>".pickRestart({
  A: "~@3 x ~@3 x",
})).gain(1.83)

// drums · congas
const congas_3 = s("conga:33").struct("<~@8 A@16 ~@8 A@16 ~@10 A@42 B@16 A@48 ~>".pickRestart({
  A: "~@7 x ~@7 x", B: "~@7 x ~ x ~@6",
})).gain(1.83)

stack(
  epiano2, string_ensemble_1, synth_brass_1, synth_brass_1_soft, string_ensemble_1_2, orchestra_hit, orchestra_hit_soft,
  acoustic_guitar_steel, bass, music_box, tremolo_strings, acoustic_guitar_steel_2, kick, snare, hihat, hihat_soft,
  open_hat, tambourine, congas, congas_2, congas_3
)

More by Madonna