Strudelify
Drowned World   Substitute for Love cover art

Veronica Electronica

Drowned World Substitute for Love

Madonna

KeyB majorTempo68 bpm
0:00/0:00
// Drowned World   Substitute for Love — Madonna
// 68 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 83 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(68/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.

// other · pad bowed
const pad_bowed = note("<A@4 B@6 ~@73>".pickRestart({
  A: "[~@43 f#4@19 ~@3 g#4@9 e4@19 a4@25 g#4@25 f#4@19 ~@3 g#4@9 ~ e4@17]/4",
  B: "[~ a4@25 ~ g#4@25 f#4@19 ~@3 g#4@9 e4@19 a4@25 g#4@25 f#4@19 ~@3 g#4@9 ~ e4@18 a4@25 g#4@25 ~@36]/6",
})).s("gm_pad_bowed").gain(0.48)

// bass · epiano2 · "DROWNED WORLD/"
const bass = note("<~@4 A@4 B ~@74>".pickRestart({
  A: "[~@39 f#1@3 c#2@19 ~@3 g#1@3 d#2@9 ~ e1@3 b1@9 a1@3 e2@19 ~@3 g#1@3 ~ d#2@19 ~@3 f#1@3 c#2@19 ~@3 g#1@3 d#2@9 e1@3 b1@9 ~ a1@2]/4",
  B: "~ e2@19 ~@3 g#1@3 d#2@19 ~@3",
})).s("gm_epiano2").gain(0.32)

// chords · pad warm
const pad_warm = note(`<
  ~@9 A B C D E F C F G H I J E ~@11 K@6 L M@2 N@8 O@4 P@6 ~@3 Q@6 R@2 ~ S@6 E T@2 ~@2
>`.pickRestart({
  A: "[b3,d#4] ~@7", B: "[g#3,b3] ~", C: "[a3,b3]", D: "g#3", E: "[f#3,b3]", F: "g#3, b3 ~@7", G: "f#3, d#4 ~@3",
  H: "[b3,g#4]@3 e4@4 ~", I: "a3 b3@2 c#4, e3", J: "[e3,g#3,b3]",
  K: "[~@19 [b3,e4,g#4]@45 [f#3,b3]@45 g#3@45 ~ [a3,b3]@45 g#3@45 [f#3,b3]@43]/6", L: "~ g#3@15",
  M: "[[a3,b3]@15 g#3@17]/2", // Asus2
  N: "[~@40 [b3,e4,g#4]@47 [f#3,b3,d#4]@46 [e3,g#3,b3]@47 [e3,a3,b3]@47 [e3,g#3,b3]@46 [f#3,b3,d#4]@47 [e3,g#3,b3]@46 [e3,a3,b3]@18]/8", // E B E Esus4 E B E Esus4
  O: "[~@29 [e3,g#3,b3]@47 [b3,d#4]@46 b3@47 [c#4,e4,a4]@6 ~@17, ~@76 f#4@12 ~@81 e8@12 ~@11]/4", // E B A
  P: "[[a4,b4]@23 ~ [b3,e4,g#4]@46 b3@6 d#4@3 e4@12 ~@2 b3@6 d#4@3 e4@12 ~@3 b3@6 d#4@3 e4@12 ~@2 b3@6 d#4@3 e4@12 ~@2 b3@6 d#4@3 e4@12 ~@3 b3@6 d#4@2 e4@12 ~@3 b3@6 d#4@3 e4@12 ~@2 b3@6 d#4@3 e4@12 ~@34, ~@70 f#3@47 g#3@46 a3@47 g#3@47 ~@31]/6", // Asus2 E
  Q: "[~@37 g#3@42 a3@42 b3@42 ~ f#3@42 g#3@42 ~ a3@39]/6", R: "[~ b3@14 [f#3,b3,d#4]@16 ~]/2",
  S: "[~@15 [f#3,b3]@16 [f#3,b3]@16 [f#3,b3]@16 [f#3,b3]@16 [f#3,b3]@17]/6", T: "[~ [f#3,b3]@17 ~@14]/2",
})).s("gm_pad_warm").gain(0.52)

// bass · fretless bass · "Dan Carver"
const bass_2 = note("<~@9 A B C D A E C D A E C D F@2 G@8 H@8 I J@8 K@7 L@7 M@7 N@8 ~@6>".pickRestart({
  A: "b1", B: "c#2", C: "a1", D: "e1@3 f#1", E: "c#2@3 f#1", F: "[b1@3 b1]/2",
  G: "[b1@45 c#2@45 ~ a1@45 e1@45 b1@45 ~ c#2@45 a1@45 e1@45 ~ b1@21]/8",
  H: "[~@24 c#2@45 a1@45 ~ e1@34 f#1@11 b1@45 c#2@34 f#1@11 ~ a1@45 e1@34 f#1@11 b1@43]/8", I: "~@3 c#2@34 f#1@11",
  J: "[a1@45 e1@45 ~ f#1@92 b1@46 c#2@47 a1@47 e1@46 b1@15]/8",
  K: "[~@32 c#2@46 a1@47 e1@47 b1@46 c#2@47 a1@47 e1@24]/7",
  L: "[~@11 f#1@11 b1@47 c#2@46 a1@47 e1@35 f#1@12 b1@42 c#2@42 a1@42 ~]/7",
  M: "[e1@32 f#1@10 b1@42 ~ c#2@42 a1@42 e1@32 f#1@11 b1@42 c#2@42 ~ a1@39]/7",
  N: "[~@3 e1@32 f#1@10 b1@48 b1@48 b1@48 b1@48 b1@48 b1@48 b1@48 ~@3]/8",
})).s("gm_fretless_bass").gain(0.52)

// other · music box
const music_box = note("<~@31 A@2 ~@19 B@2 ~@2 C@2 ~@11 D@8 ~@6>".pickRestart({
  A: "[~@24 g#4@17 e4@23 ~@32]/2", B: "[~@26 g#4@17 ~ e4@23 ~@29]/2", C: "[~@21 g#4@17 e4@23 ~@35]/2",
  D: "[~@15 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 d#4@3 e4@3 d#4@3 e4@3 d#4@2 e4@2 ~]/8",
})).s("gm_music_box").gain(0.36)

// other · overdriven guitar
const overdriven_guitar = note("<~@30 A B C@2 ~@17 D E F G H@2 I@2 J@3 K@7 L ~@13>".pickRestart({
  A: "~@38 a#4@3 b4@3 a#4@2 b4@2", B: "~ b4@23 ~@24", C: "[~@27 f4@3 f#4@3 a4@2 b4@8 ~ d5@3 e5@8 f#5@17 ~@24]/2",
  D: "~@13 a#4 b4 a#4", E: "b4@3 b4@23 ~@22", F: "~@31 f4@3 f#4@3 a4@2 b4@9", G: "d5@3 e5@9 f#5@17 ~@19",
  H: "[~@34 a#4@3 b4@3 a#4@3 b4@2 b4@23 ~@28]/2", I: "[~@25 f4@3 f#4@3 a4@3 b4@9 d5@3 e5@8 f#5@17 ~@25]/2",
  J: "[~@17 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@3 b3@5 d#4@3 e4@11 ~@2, ~@17 f#3@42 g#3@42 a3@42 ~]/3",
  K: "[b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@42 ~ g#3@42 a3@42 b3@42 ~ f#3@42 g#3@42 ~ a3@39, g#3 ~@7]/7",
  L: "~ b3@14 ~",
})).s("gm_overdriven_guitar").gain(0.32)

// other · electric guitar clean
const electric_guitar_clean = note("<~@43 A@2 B C@3 D E@2 F G H I ~@6 J@7 K ~@13>".pickRestart({
  A: "[~@33 f#3@6 ~@3 b3@5 f#3@3 b3@6 f#3@3 ~@6 b3@6 f#3@3 b3@5 f#3@3 ~@6 b3@6 g#3@2]/2",
  B: "~ b3@6 g#3@3 ~@5 b3@6 g#3@3 b3@6 g#3@6 ~@3 b3@6 g#3@3",
  C: "[b3@5 g#3@3 ~@6 b3@6 g#3@3 b3@6 g#3@6 ~@2 b3@6 f#3@3 b3@6 f#3@3 ~@6 b3@6 f#3@2 b3@6 f#3@3 e3@3 ~@3 b3@6 f#3@3 b3@6 f#3@3 ~@5 b3@6 f#3@3 b3@6 f#3@3 ~@6 b3@6 g#3@2 b3@5]/3",
  D: "~ g#3@3 ~@6 b3@6 g#3@3 b3@6 g#3@6 ~@2 b3@6 g#3@3 b3@6",
  E: "[g#3@3 ~@6 b3@5 g#3@3 b3@6 g#3@6 ~@3 b3@6 f#3@3 b3@6 f#3@3 ~@5 b3@6 f#3@3 b3@6 f#3@3 e3@3 ~@3 b3@5 f#3@3 b3@6 f#3@3]/2",
  F: "~@6 b3@6 f#3@3 b3@5 f#3@3 ~@6 b3@6 g#3@3 b3@6 g#3@3 ~",
  G: "~@5 b3@5 g#3@3 b3@6 g#3@6 ~@3 b3@6 g#3@3 b3@5 g#3@3 ~@3",
  H: "~@3 b3@6 g#3@3 b3@6 g#3@6 ~@2 b3@6 f#3@3 b3@6 f#3@3 ~@4", I: "~@2 b3@6 f#3@3 b3@5 f#3@3 e3@3 ~@26",
  J: "[~@42 b3@5 ~ d#4@2 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@3 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@3 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@2 b3@5 ~ d#4@2 e4@11 ~@3 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@10, ~@42 f#3@42 ~ g#3@42 a3@42 g#3@42 ~ f#3@42 g#3@42 ~ a3@39]/7",
  K: "~@3 b3@5 d#4@3 e4@11 ~@2 b3@5 d#4@3 e4@11 ~@5, ~ g#3@14 ~",
})).s("gm_electric_guitar_clean").gain(0.32)

// chords · lead 4 chiff
const lead_4_chiff = note("<~@23 A@8 B@3 ~@49>".pickRestart({
  A: "[[f#3,b3,d#4]@45 [e3,g#3,b3]@45 ~ [e3,a3,b3]@45 [e3,g#3,b3]@45 [f#3,b3,d#4]@45 ~ [e3,g#3,b3]@45 [e3,a3,b3]@45 [e3,g#3,b3]@45 ~ [b3,d#4]@21, ~@363 f#4@11 ~@10]/8", // B E Esus4 E B E Esus4 E …
  B: "[~@24 b3@45 [c#4,e4,a4]@6 ~@17 [a4,b4]@23 ~@29]/3", // A Asus2
})).s("gm_lead_4_chiff").gain(0.48)

// other · epiano2
const epiano2 = note("<~@9 A B A B A B A B A B A B ~@62>".pickRestart({
  A: "f#3 c#4@6 ~ g#3 d#4@3 e3 b3@3", B: "a3 e4@6 ~ g#3 d#4@6 ~",
})).s("gm_epiano2").gain(0.29)

// drums · kick
const kick = s("bd").struct(`<
  ~@23 A B C D E F G H I J K L M N O P Q A B R ~@8 S T U V W J X Y Z AA AB AC AD AE AF AG AH AI AJ ~@13
>`.pickRestart({
  A: "x ~@22 x ~@21 x ~@2", B: "~@20 x ~@22 x ~@4", C: "~@17 x ~@22 x ~@7", D: "~@15 x ~@21 x ~@10",
  E: "~@12 x ~@22 x ~@12", F: "~@9 x ~@22 x ~@15", G: "~@7 x ~@21 x ~@18", H: "~@4 x ~@22 x ~@20",
  I: "~ x ~@22 x ~@22 x", J: "~@21 x ~@22 x ~@3", K: "~@19 x ~@21 x ~@6", L: "~@16 x ~@22 x ~@8",
  M: "~@13 x ~@22 x ~@11", N: "~@11 x ~@21 x ~@14", O: "~@8 x ~@22 x ~@16", P: "~@5 x ~@22 x ~@19",
  Q: "~@3 x ~@21 x ~@22", R: "~@17 x ~@30", S: "~@7 x ~@4", T: "~@3 x ~@22 x ~@21", U: "~@2 x ~@22 x ~@22",
  V: "x ~@23 x ~@22 x", W: "~@22 x ~@22 x ~@2", X: "~@19 x ~@23 x ~@4", Y: "~@18 x ~@22 x ~@6", Z: "~@17 x ~@20 x ~@9",
  AA: "~@11 x ~@20 x ~@15", AB: "~@5 x ~@21 x ~@20", AC: "x ~@6 x ~@8", AD: "~@5 x ~@41 x", AE: "~@7 x", AF: "~@3 x",
  AG: "~@5 x ~@2", AH: "~@25 x ~@22", AI: "~@19 x ~@28", AJ: "~@7 x ~@16",
})).gain(0.41)

// drums · rim
const rim = s("rim").struct(`<
  ~@23 A B C D E F G H I J K L M N O P Q A B C ~@8 R H S T A U V W L X Y Z AA AB AC AD AE AF AG ~@13
>`.pickRestart({
  A: "~@11 x ~@22 x ~@13", B: "~@9 x ~@21 x ~@16", C: "~@6 x ~@22 x ~@18", D: "~@3 x ~@22 x ~@21",
  E: "~ x ~@21 x ~@22 x ~", F: "~@21 x ~@21 x ~@4", G: "~@18 x ~@22 x ~@6", H: "~@15 x ~@22 x ~@9",
  I: "~@13 x ~@21 x ~@12", J: "~@10 x ~@22 x ~@14", K: "~@7 x ~@22 x ~@17", L: "~@5 x ~@21 x ~@20",
  M: "~@2 x ~@22 x ~@21 x", N: "~@22 x ~@22 x ~@2", O: "~@19 x ~@22 x ~@5", P: "~@17 x ~@21 x ~@8",
  Q: "~@14 x ~@22 x ~@10", R: "~@13 x ~@2", S: "~@13 x ~@23 x ~@10", T: "~@12 x ~@22 x ~@12", U: "~@9 x ~@22 x ~@15",
  V: "~@8 x ~@22 x ~@16", W: "~ x ~@3 x ~@2", X: "x ~@21 x ~@20 x ~@4", Y: "~@16 x ~@20 x ~@10", Z: "~@5 x ~@10 x ~@7",
  AA: "~@5 x ~@10", AB: "~@5 x ~@18", AC: "~@4 x ~@42 x", AD: "~@41 x ~@6", AE: "~@35 x ~@12", AF: "~@5 x ~@2",
  AG: "~ x",
})).gain(0.41)

// drums · clap
const clap = s("cp").struct("<~@63 A B C D E F G ~@13>".pickRestart({
  A: "~@13 x ~@10", B: "~@5 x ~@6", C: "~@5 x ~@10", D: "~@3 x ~@12", E: "~@2 x ~@20 x", F: "~@5 x", G: "~@35 x ~@12",
})).gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@62 A B C D E F G H ~@13>".pickRestart({
  A: "~@7 x", B: "~@37 x ~@10", C: "~@31 x ~@16", D: "~@25 x ~@22", E: "~@5 x ~@6", F: "~@7 x ~@16", G: "~@3 x ~@12",
  H: "~ x ~@14",
})).gain(0.41)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@23 A B C D E F G H I J K L M N O P Q A B R ~@8 S T U V W X Y Z AA AB AC AD ~@20
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2",
  B: "x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2",
  C: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  D: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  E: "~ x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~",
  F: "~ x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
  G: "~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~",
  H: "~ x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~",
  I: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  J: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x",
  K: "~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x",
  L: "~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x",
  M: "~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x",
  N: "~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x",
  O: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
  P: "x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2",
  Q: "x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2",
  R: "x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@10",
  S: "~@28 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
  T: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  U: "~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2",
  V: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  W: "~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2",
  X: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  Y: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  Z: "~ x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x",
  AA: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~",
  AB: "~@3 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~",
  AC: "~@3 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@2",
  AD: "~@3 x ~@4 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@7",
})).gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@62 A B C D E F G H ~@13>".pickRestart({
  A: "~@7 x", B: "~@15 x ~@21 x ~@10", C: "~@10 x ~@20 x ~@16", D: "~@4 x ~@20 x ~@21 x", E: "~@20 x ~@20 x ~@6",
  F: "~@14 x ~@20 x ~@12", G: "~@3 x ~@6 x ~@5", H: "~ x ~@6 x ~@7",
})).gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct("<~@59 A B C D E F G H I J K ~@13>".pickRestart({
  A: "~@17 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@4", B: "x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4",
  C: "x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4",
  D: "x ~@4 x ~@4 x ~@5 x ~@4 x ~@4 x ~@5 x ~@4 x ~@7 x ~@2",
  E: "x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@4 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@4 x ~@2 x ~@2 x ~ x",
  F: "~@2 x ~@2 x ~ x ~@4 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@5 x ~ x ~@2 x ~@2 x ~ x ~@2 x",
  G: "~@2 x ~@4 x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@4 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@3",
  H: "~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@4 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~ x ~@5 x ~ x ~",
  I: "~ x ~@2 x ~ x ~@2 x ~@2 x ~@4 x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@2 x ~@4 x ~@2 x ~ x ~@2 x ~",
  J: "~ x ~ x ~@2 x ~@4 x ~@2 x ~@2 x ~ x ~@2 x ~ x ~@2 x ~@4 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
  K: "x ~@5 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@4 x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@4",
})).gain(0.41)

// drums · cowbell
const cowbell = s("cb").struct("<~@33 A B ~@24 C D E F ~@20>".pickRestart({
  A: "~@30 x ~ x ~ x ~ x ~ x!2 ~@7 x", B: "~@5 x ~@42", C: "~@9 x ~@6", D: "x ~@21 x ~@20 x ~@4",
  E: "~@16 x ~@20 x ~@10", F: "~@5 x ~@10 x ~@7",
})).gain(0.41)

stack(
  pad_bowed, bass, pad_warm, bass_2, music_box, overdriven_guitar, electric_guitar_clean, lead_4_chiff, epiano2, kick,
  rim, clap, snare, pedal_hat, crash, tambourine, cowbell
)

More by Madonna