Strudelify

Love Don't Live Here Anymore

Madonna

KeyG minorTempo76 bpm
0:00/0:00
// Love Don't Live Here Anymore — Madonna
// 76 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(76/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 · epiano1 · "Ch  1"
const epiano1 = note("<A@5 ~@25 B@2 ~@24 B@2 ~@35>".pickRestart({
  A: "[~@8 [d5,bb5]@2 [bb4,g5]@2 [d5,bb5]@2 [c5,a5]@7 [a4,f5] [c5,a5] [a4,f5] g5@2 d5@2 g5@2 f5@4 c5@2 bb4 a4 g4 f4 [bb4,g5]@2 ~@2 d5@2 [a4,c5]@4 a4@4 f4 ~ [c4,g4,bb4,eb5]@20 ~@4, ~@12 bb4@3 a4@3 d5 f5 eb4@3 [d4,f5]@5 ~@12, ~@40 d5 ~ bb4@4 ~@34]/5", // Gm Eb Gm F Dm F Dm Eb …
  B: "[~@2 [d4,g4,bb4] [d4,a4,c5] [d4,g4,bb4,d5] [g4,bb4,d5,bb5] [eb4,g4,bb4,d5,g5]@5 ~@5]/2", // Gm D7 Gm Ebmaj7
})).s("gm_epiano1").gain(0.4)

// chords · epiano2 · "Ch  2"
const epiano2 = note("<A@5 ~@88>".pickRestart({
  A: "[~@8 [g3,d4,g4]@6 [d3,c4,f4]@10 [g3,bb3,d4,g4]@6 [d3,c4,d4,f4]@10 [eb3,bb3,d4,g4]@6 [d3,c4,d4]@8 ~@2 [c3,bb3,c4,eb4]@19 ~@5, ~@40 d3 ~@5 f4@10 ~@24]/5", // G5 Dm7 Gm Dm7 Ebmaj7 D7 Cm7
})).s("gm_epiano2").gain(0.23)

// chords · pad warm · "Ch  3"
const pad_warm = note("<A@5 ~@83 B@5>".pickRestart({
  A: "[~@8 [g3,bb3,d4,g4]@6 [d3,a3,c4,f4]@10 [g3,bb3,d4,g4]@6 [d3,a3,c4,f4]@10 [eb3,g3,bb3,d4]@6 [d3,f3,a3,c4]@9 ~ [c3,eb3,g3]@19 ~@5, ~@55 bb3@19 ~@6]/5", // Gm Dm7 Gm Dm7 Ebmaj7 Dm7 Cm
  B: "[~@3 [eb3,g3,bb3,d4,g4]@8 [d3,f3,a3,c4,f4]@7 ~@2]/5", // Ebmaj7 Dm7
})).s("gm_pad_warm").gain(0.23)

// chords · string ensemble 1 · "Ch  4"
const string_ensemble_1 = note(`<
  ~@4 A@6 B@3 C@3 D@8 E F@4 G H@6 I@6 J@8 E F@4 G K@2 L@4 M N O@6 P@8 Q@8 R@7
>`.pickRestart({
  A: "[~@2 [c4,d4,f4]@4 [eb3,bb3,d4]@16 [a3,c4]@8 [g2,bb3,d4]@8 ~@6 c4 ~ [f3,a3,c4,a4]@2, ~@6 g3@15 ~ d3@16 [c3,eb3,g3,bb3,g4]@8 ~@2, ~@22 f3@7 ~ g3@7 ~@11]/6", // Dm7 Ebmaj7 Am Gm F Cm7
  B: "[~@4 [eb3,a3,c4]@7 ~ f3@16 [g2,g3,d4,g4]@16 [c3,eb3,f3,bb3,eb4]@4, ~@11 bb4@17 ~@20, ~@3 [d3,bb3]@8 ~]/3", // Adim G5 Cm7 Gm
  C: "[~@2 c4 [c3,f3,c4,f4]@2 [eb3,c4,eb4]@2 d4@2 ~@2 d2, ~ a3@3, ~@12 f2@16 gb3@3 ~@5 d4@12, ~@10 f3@3 ~ d3@10, ~@43 d5@5]/3", // F5 Cm
  D: "[~ g5 a5 [eb3,g3,bb3,f4]@4 f4@2 d4@2 [d3,g3,g4]@4 [f3,g3]@4 [eb3,g3,bb3,d4,f4]@4 [f3,c4,d4]@4 [g3,bb3,d4,g4]@4 [f3,g3,bb3,d4,f4,g4], ~ d2@31, ~@6 d4@12 ~@4 bb3@8 f4@7 ~@27, ~@7 a3@16 ~@9, ~@7 [d3,c4]@4 d4@4 d3@8 [d3,a3]@9]/8", // Eb G5 Fsus2 Ebmaj7 Dm7 Gm Gm7 D7 …
  E: "~@3 [eb3,g3,bb3,d4]", F: "[~ [g3,c4,d4]@13 [c3,f3,g3,bb3]@16 [g2,d3,g3,bb3]@2, ~ a3@31, ~ d3@29 ~@2]/4",
  G: "~ [d3,f3]@5 [g2,d3,g3,bb3]@2, ~ [d2,a3]@7", // Dm Gm D5
  H: "[~@2 [bb3,bb4] [c4,c5] [d4,d5] [f4,f5] g5@14 a5@2 [c4,f5]@8 [g2,bb3,d4,g5]@8 ~@6 c4 ~ [f3,a3,c4,a4,f5]@2, ~ d2@47, ~ [d3,a3]@21 d3@26, ~ f3@5 [eb3,bb3,d4]@16 f3@7 ~ g3@7 ~ [c3,eb3,g3,bb3,g4,c5]@8 ~@2, ~@6 g3@15 ~ a3@24 ~@2]/6", // Bb C D F F5 Gm F D5 …
  I: "[~@10 g5 a5 f3@16 [g2,g3,d4,g4]@16 ~@12 c4@4 [c3,f3,c4,f4,a5]@8 [eb3,c4,eb4,g5]@8 d4@8 ~@8 d2@4, ~ a3@14 a3@9, ~@4 [eb3,c4]@7 bb4@17 ~@40 f3@6 ~@2 gb3@3 ~@5 d4@12, ~@3 d3@16 [d3,a5]@5, ~@12 [bb3,bb5]@32 [c3,eb3,f3,bb3,eb4,g5]@16 f2@16 ~@15 d5@5]/6", // G5 F Cm D5 Bb Cm7
  J: "[~ g5 a5 [eb3,g3,bb3,f4]@4 f4@2 d4@2 [d3,g3,g4]@4 [f3,g3]@4 [eb3,g3,bb3,d4,f4]@4 [f3,c4,d4]@4 [g3,bb3,d4,g4]@4 [f3,g3,bb3,d4,f4,g4], ~ d2@31, ~ g5@15, ~@3 d4@4 [d3,c4]@4 [bb3,d4]@4 [d3,f4]@8 [d3,a3]@9, ~@7 a3@16 ~@9]/8", // Eb G5 Fsus2 Ebmaj7 Dm7 Gm Gm7 D7 …
  K: "[~@4 [bb3,bb4]@2 [c4,c5]@2 [d4,d5]@2 [f4,f5]@2 ~@2 bb5 ~@2 a5 ~@4 a5 ~ a5@2 g5@4 ~ [a5,bb5], ~ [d3,a3]@15, ~ [d2,f3]@5 [eb3,g3,bb3,d4]@10, ~@8 bb5 ~@6 g5]/2", // Bb C D F Bbmaj7 D5 Dm Ebmaj7
  L: "[~@2 bb5 ~ bb5 c6 a5 ~@7 bb5 ~ bb5@2 a5 ~@3 a5 ~ a5 ~ g5@2 ~@4 a5@4 bb5@4 c6@3 ~ bb5@8 ~@4 c4@2 ~@2 [f3,a3,c4,a4,g5]@4, ~@3 d3@13, ~@3 a3@10 a5@2 ~, ~@3 c4@4 g5@8 ~, ~@6 f3@7 ~ [g2,g3,bb3,d4]@8 [c3,eb3,g3,bb3,g4]@8 ~@2]/4", // F Gm Cm7
  M: "~@4 [eb3,c4,a5]@7 ~ [d3,f3,bb3,bb5]@4, ~ a3@3, ~@11 bb4@5", N: "~ c6@2 [g2,g3,d4,g4,d6]",
  O: "[~@4 a5@4 bb5@4 bb5@12 a5@4 ~@4 a5@4 bb5@4 c6@4 [f3,f5]@14 ~@2 bb4@4 a4@2 g4@9 ~@13 eb5@4 [f3,a3,c4,a4,f5]@4, ~@12 eb4@48 [g3,bb3]@15 c5 [c3,eb3,g3,bb3,g4]@12 c4@2 ~@6, ~@6 [g3,bb3,d4]@16 c4@7 g5@19, ~@3 eb3@8 d3@13, ~@7 g5@4 a3@4 [g2,d4]@9]/6", // F Gm Cm7 Gm G5
  P: "[~@8 a5@2 ~@14 c6@4 d6@8 g6@4 a6@4 bb5@12 a5@4 ~@4 a5@4 bb5@4 c6@4 [f3,f5]@14 ~@2 bb4@4 a4@2 g4@9 ~@13 eb5@4 [f3,a3,c4,a4,f5]@4, ~@4 a3@24 [g3,d4]@16 eb4@48 [g3,bb3]@15 c5 [c3,eb3,g3,bb3,g4]@12 c4@2 ~@6, ~@4 [eb3,c4]@7 bb4 [f3,bb3]@16 g4@48 c4@14 g5@38, ~@3 g5@11 g2@8 eb3@8 g5@8 d3@26, ~@5 bb5 d3@16 [g3,bb3,d4]@16 a3@8 [g2,d4]@18]/8", // F G5 Gm Cm7 Cm Bb5 Gm G5
  Q: "[~@8 a5@2 ~@14 c6@4 d6@8 g6@4 a6@4 bb5@12 a5@4 ~@4 a5@4 bb5@4 c6@4 [f3,f5]@14 ~@2 bb4@4 a4@2 g4@9 ~@13 eb5@4 [f3,a3,c4,a4,f5]@4, ~@2 a3@12 [g3,d4]@8 eb4@32 [c3,eb3,g3,bb3]@6 c4 ~@3, ~@4 [eb3,c4]@7 bb4 [f3,bb3]@16 g4@48 c4@14 g5@38, ~@6 g5@22 g2@16 eb3@16 g5@16 a3@16 [g2,g3,bb3]@15 c5 g4@20, ~@5 bb5 d3@16 [g3,bb3,d4]@16 d3@8 d4@18]/8", // F G5 Cm7 Cm Bb5 Gm
  R: "[~@8 a5@2 ~@2 [d3,bb3]@3 ~@9 c6@4 [g2,g3]@3 ~@5 g6@4 a6@4 [eb4,g4,d5,g5]@32 [d4,f4,c5,f5]@27 ~@9, ~@4 [eb3,a3,c4]@7 bb4@17 d4@48 ~@36, ~@3 g5@19 ~@34, ~@5 bb5@7 ~@2 d6@4 ~@38, ~@3 f3@4 g4@4 ~@17]/7", // Gm G Ebmaj7 Dm7 Adim
})).s("gm_string_ensemble_1").gain(0.27)

// bass · synth bass 2 · "Ch  6"
const bass = note("<~@4 A@8 B@5 ~@13 A@8 B@5 ~@13 A@8 C D E F G H I J K@8 L@8 M ~@4>".pickRestart({
  A: "[~@6 eb2@3 eb2 eb2@4 eb2@3 eb2 eb2@4 d2@3 d2 d2@4 g2@3 g2 g2@2 g2@2 c2@3 c2 c2@4 f2@3 f2 eb2@4 d2@3 d2 d2@4 g2@2]/8",
  B: "[~ g2 g2@4 c2@3 c2 c2@4 f2@3 f2 eb2@3 eb2 d2@3 d2 d2@4 d2@3 d2@3 d2@2 ~@2]/5", C: "~ g2 g2@4 eb2@2",
  D: "~@2 eb2@2 ~@2 eb2@3 ~ eb2 ~ eb2@4", E: "~@2 eb2@3 ~ eb2@3 ~ eb2 ~ d2@4", F: "~@2 d2@3 ~ d2@3 ~ d2@2 g2@4",
  G: "~@2 g2@3 ~ g2@3 ~ g2 ~ c2@4", H: "~ c2@4 ~ c2@2 ~@2 c2@2 f2@3 ~", I: "f2@2 eb2@3 ~ eb2@2 eb2@2 f2@2 d2@4",
  J: "~@2 d2@3 ~ d2@3 ~ d2@2 g2@3 ~",
  K: "[g2 ~ g2@3 ~ g2@2 f2@2 ~@2 eb2@4 ~@2 eb2@2 ~@2 eb2@3 ~ eb2 ~ eb2@4 ~@2 eb2@3 ~ eb2@3 ~ eb2 ~ d2@5 ~ d2@3 ~ d2@3 ~ d2@2 g2@6 g2@4 g2@4 ~@2 c2@4 ~ c2@4 ~ c2@2 ~@2 c2@2 f2@3 ~ f2@2 eb2@3 ~ eb2@2 eb2@2 f2@2 d2@5 ~ d2@3 ~ d2@3 ~ d2@2 g2@4, ~@5 g2@25 ~@7 g2@25 ~@2]/8",
  L: "[g2@2 g2@4 ~@2 f2@2 ~@2 eb2@4 ~@2 eb2@2 ~@2 eb2@3 ~ eb2 ~ eb2@4 ~@2 eb2@3 ~ eb2@3 ~ eb2 ~ d2@5 ~ d2@3 ~ d2@3 ~ d2@2 g2@6 g2@4 g2@4 ~@2 c2@4 ~ c2@4 ~ c2@2 ~@2 c2@2 f2@3 ~ f2@2 eb2@3 ~ eb2@2 eb2@2 f2@2 d2@5 ~ d2@3 ~ d2@3 ~ d2@2 g2@4, ~@3 g2@2 g2@25 ~@7 g2@25 ~@2]/8",
  M: "g2@2 g2@4 g2@2 f2@2 g2@3 ~@3",
})).s("gm_synth_bass_2").gain(0.41)

// chords · piano · "Ch  7"
const piano = note("<~@8 A ~@3 B ~@3 C@3 D@6 E@5 F@8 G H@5 I@3 J@8 K L@5 M@7 N@8 O@8 P@8 ~>".pickRestart({
  A: "~@4 [bb4,g5] [c5,a5] [d5,bb5]@2", B: "~@4 bb5 [eb5,c6] [g4,eb5] ~, ~@8 d5 ~@7",
  C: "[~@12 [bb3,d4,f4]@4 ~@6 f4@2 ~@2 bb3 ~ [c4,f4]@5 ~@9 a3 ~ [d4,g4]@2 bb3@2, ~@12 eb3@16 [d3,f3]@9 ~@3 [d3,f3]@4 ~@4, ~@12 g3@3 ~ g3@7 ~ g3@4 ~@16 g3@4, ~@18 bb3@7 ~@3 a3@13 ~@3 bb3 ~@3, ~@10 d4@4 ~@3 [c4,f4]@4 ~@3]/3", // Bb F5 G5 Dm F5
  D: "[~@10 g4 ~ g4@2 ~@10 g3@2 bb3 ~ [bb3,d4,f4]@6 ~@6 eb3@4 c4@5 ~ c4@5 ~ c4@2 ~@2 [bb3,g4]@5 ~ [bb3,g4]@5 ~ [d4,g4]@2 bb3 ~ [d4,g4]@2 g4 ~@3 g4@4 g4 ~ d4@2 g4@2 [eb3,g3,bb3,d4]@4, d4@8 bb3@3 ~ f3@6 g4@9 ~@31 d4@13 ~@9 d4@6 ~@10, ~@2 g4@6 ~ d4@2 d4@4 ~ d4@12 ~@8 [bb3,d4,f4]@7 ~ [a3,f4]@14 ~@14 bb3 ~@3 bb3 ~ bb3@7 ~ bb3@5 ~@5, ~@6 g3@5 ~ g3@10 f3@6 eb3@10 ~@6 [d3,f3]@16 ~@15 f3@17 ~@4, ~@12 bb3 ~ bb3@11 ~@3 g3@5 ~ g3@10 ~@16 g3@30 ~@6]/6", // Bb Eb G5 Ebmaj7 Bb Dm
  E: "[~@2 [d3,f3]@10 [a3,c4]@7 ~@5 d4@2 ~@2 bb3@5 ~ bb3@8 ~@2 d4@7 ~ d4@2 c4@2 bb3@2 a3@2 [g3,d4]@6 [a3,c4,f4]@7 ~ c4 f4 [g3,bb3,d4,g4]@4, ~@2 [a3,c4]@9 ~ [d3,g3]@16 [c3,eb3]@32 ~@6 [d3,f3]@10 ~@4, ~@20 [a3,c4]@8 d4@15 ~@37, ~@14 g3@6 ~ g3@7 ~@12, ~@28 c4 ~@15 bb3@10 ~@6 [bb3,g4]@5 ~@8 a3@2 ~@5]/5", // Dm Am G5 F Gm Am G5 Cm …
  F: "[~@12 [eb4,g4,bb4]@8 ~@8 bb4@6 ~@6 bb4@3 ~ c5@6 ~@6 [g4,c5]@4 g3@5 ~@7 [bb4,g5]@2 [c5,a5]@2 [eb4,bb4,d5,bb5]@5 ~ ab4 ~@5 bb3@4 [f4,a4,c5]@6 a4@2 ~@4 a4@2 c5@2 ~@16 [g3,g4]@4, ~ [a3,c4]@63, ~@2 f3@74 bb3@6 [f4,g4,bb4]@10 ~@6 [f4,gb4,c5]@2 [eb3,eb4]@2 f4@2 c5 ~@3 [bb3,bb4]@6 d4@8 bb4@6, ~ [d3,f4]@21 d3@32 [d3,f4]@10, ~@6 [eb3,d4]@5 d4 eb4 g4 [eb3,d4]@3 d4@2 eb4 g4@2 [d4,f4]@3 d4@2 f4@3 [f4,g4,bb4]@3 g3@3 [f4,g4]@2 c3@8 f3@18]/8", // Eb C5 Eb F Ebmaj7 F G Am …
  G: "~@4 bb5 [eb5,c6] [c3,bb3,f4,g4,bb4]@2, ~ d4@4 ~@3, ~@4 [g4,bb4]@7 ~@5, ~@8 d5 ~@3 eb5@2 ~@2", // Cm Csus4 Gm
  H: "[~@8 bb4@2 c5@2 [f4,c5]@8 [eb3,eb4,c5]@7 ~ [d4,gb4]@6 ~@10 [gb3,d5]@10 ~@6 [bb3,d4]@4 ~@10 bb3 ~ [d3,f3,a3,c4,f4]@4, ~ bb3@5 f3@24 [g3,f4]@2 g3 bb3 d4 f4 g3@2 ~@2, ~ f4@2 ~@2 f4@10 eb3@4 ~, ~@8 g4@4 a4@16 e4 ~@9 d4@2 a4@2 a3@34 ~@4, ~@7 d3@12 ~]/5", // F5 Cm D Bb Dm7 G7
  I: "[~@12 [d4,g4]@2 ~@12 g4 ~ g4@2 ~@10 g3@2 bb3 ~ [eb3,g3,bb3,d4,f4]@4, ~ c4@23, ~@2 f4@10 [g3,bb3]@2 bb3@2 d4@2 g4@4 g3@2 bb3 d4@2 d4 [f3,g3,bb3]@2 bb3@2 d4@2 g4@4 f3@10, ~ d3@5, ~@4 f3 a3@19]/3", // G5 Ebmaj7 Gm Gm7
  J: "[~@8 eb3@4 c4@6 c4@6 ~@4 [bb3,g4]@5 ~ [bb3,g4]@5 ~ [d4,g4]@2 bb3 ~ [d4,g4]@2 g4 ~@3 g4@4 g4 ~ d4@2 g4@2 [eb3,g3,bb3,d4]@6 [d3,a3,c4]@10 [a3,c4]@8 ~@4 d4@2 ~@2 bb3@5 ~ bb3@8 ~@2 d4@7 ~ d4@2 ~@2 bb3@2 ~@2 [g3,bb3,d4,g4]@4, ~@2 g3@10 [d3,a3]@32 bb3 ~ bb3@2 d4@6 bb3@5 ~@17 d3@46 a3@6, ~@4 [bb3,f4]@8 f3@14 d4@2 g3@12 bb3 ~@2 f3@23 f3@62, ~@2 d4@3 ~ f4@58, ~@12 c4@21 ~@5 g3@4 [a3,c4]@4 [c3,eb3,g3,c4,d4]@7 g3 bb3@5 c4@5]/8", // Eb G5 Ebmaj7 D7 Am Gm D5 Bb5 …
  K: "~@2 a3@7 ~@3 [g3,bb3,d4,g4]@4, ~ [d3,f3]@7, ~ [c4,f4]@4 c4@3, ~@9 a3@2 f4@5", // Gm Dm F5
  L: "[~@2 a3@3 ~@7 [eb4,g4,bb4]@8 ~@8 bb4@6 ~@6 bb4@3 ~ c5@6 ~@6 [g4,c5]@4 g3@5 ~@7 [bb4,g5]@2 [c5,a5]@2 [c3,bb3,eb4,bb4,d5,bb5]@4, ~ [f3,c4]@39, ~ [d3,f4]@21 d3@18, ~@6 eb3@6 eb4@2 eb3@5 eb4 g4@2 d4@2 ~ d4@5 [g4,bb4]@3 g3@4 ~@3, ~@12 d4@4 ~@6 d4@4 g4@2 d4@5 ~ d4@9 ~ f4@10 f4@6 f4@12 [f4,g4]@8]/5", // Eb C5 Eb F Cm7 F5 Dm Gm …
  M: "[~@2 ab4 ~@5 bb3@4 [f4,a4,c5]@6 a4@2 ~@4 a4@2 c5@2 ~@16 g4@6 ~@6 bb5@2 bb4@2 g4@2 ~@2 bb4@2 [g4,d5]@3 ~ eb4@2 g4@2 bb4@2 ~@6 d5@3 ~ [bb4,d5]@2 [g4,a4,bb4]@2 eb4 ~ f4@2 ~@4 [d4,c5]@4 ~@2 [g4,a4]@2 bb4@2 g4@2 g4@2, ~@2 [f4,g4,bb4]@10 f3@96 c5 ~@3, ~@18 [f4,c5]@4 f4@6 bb3@14 bb4@8 d4@2 [g4,bb4]@4 d5 ~ g5@54, ~@18 gb4 ~ eb3@8 [d3,f4]@32 [eb3,d4,eb4,bb4]@2 g4@4 bb4@4 d4@2 eb4@2 [g4,d5]@2 [eb3,d4,eb4,bb4]@2 g4@2 bb4@2 d4@4 eb4@2 c5 ~ [g4,bb4]@2 d3@20, ~@20 eb4@4 c5 ~@3 bb4@6 d4@10 g3@48 [d4,c5]@2 f4@2 a4@6 [d4,f4]@2 c5@2 g4 ~ [g3,f4,bb4,d5]@4]/7", // F G5 Bb Gm D7 Gsus2 Gm7 F5 …
  N: "[~@2 d5@2 ~@2 [d5,bb5] ~ [bb4,g5]@2 [bb4,c5,a5]@2 eb4@2 ~@2 g4 ~ ab4 ~@3 eb4@2 ~@2 g4@2 [f4,a4,c5]@4 [f4,a4]@2 a4@2 ~@2 c5 ~ a4@2 [f4,c5]@2 f4@4 f4@2 [d4,d5]@4 ~@2 f4@2 d5@2 g4@2 ~@2 bb4@2 [g4,bb4,d5]@2 ~@2 [d5,bb5] ~ [c5,d5,a5] ~ [bb4,eb5,c6]@2 g4@2 ~@2 bb4@2 d5@2 ~@2 eb4@2 g4@2 bb4@2 ~@6 d5@3 ~ [bb4,d5]@2 [g4,a4,bb4]@2 eb4 ~ f4@2 ~@4 [d4,c5]@4 ~@2 [g4,a4]@2 [g4,bb4]@2 g4@2 g4@2, ~@2 g3@30 c5 ~ [f4,gb4,c5]@2 [eb3,eb4]@2 f4@2 c5 ~ eb4 ~ d3@14 bb4@2 g3@16 [eb3,d4,eb4,bb4]@2 g4@4 [g4,bb4]@4 d4@2 eb4@2 [g4,d5]@2 [eb3,d4,eb4,bb4]@2 g4@2 bb4@2 d4@4 eb4@2 c5 ~ [g4,bb4]@2 [d3,d4,c5]@2 f4@2 a4@6 [d4,f4]@2 c5@4 [g3,f4,bb4,c5,d5]@4, ~ bb4@3 g4@2 c3@3 [g4,bb4]@3 c4@52, ~@2 g4@2 f4@2 [bb3,c4,bb4,d5,bb5] eb4@2 f4@3 bb3 bb4 f3@50, ~@8 [c5,a5] ~ g5@34 [bb3,d4,bb4]@6 [f4,bb4]@4 d4@4 f4@4 g4@4 d4@2 [g4,bb4]@4 bb5@2 g5@54]/8", // Gm Eb F F5 D Gm D7 Cm7 …
  O: "[~@2 d5@2 ~@2 [d5,bb5] ~ [bb4,g5]@2 [bb4,c5,a5]@2 eb4@2 ~@2 g4@2 ab4 ~@3 eb4@2 ~@4 [f4,a4,c5]@4 [f4,a4]@2 a4@2 ~@2 c5 ~ a4@2 [f4,c5]@2 f4@4 f4@2 [d4,d5]@4 ~@2 f4@2 d5@2 g4@2 ~@2 bb4@2 [g4,bb4,d5]@2 ~@2 [d5,bb5] ~ [c5,d5,a5] ~ [bb4,eb5,c6]@2 g4@2 ~@2 bb4@2 d5@2 ~@2 eb4@2 g4@2 bb4@2 ~@6 d5@3 ~ [bb4,d5]@2 [g4,a4,bb4]@2 eb4 ~ f4@2 ~@4 [d4,c5]@4 ~@2 [g4,a4]@2 [g4,bb4]@2 g4@2 g4@2, ~ g3@12 bb4 f3@40 [d4,c5] f4 a4@3 [d4,f4] c5@2 [g3,f4,bb4,c5,d5]@2, ~ bb4@3 g4@2 c3@3 [g4,bb4]@3 c4@52, ~@4 g4@4 f4@4 [bb3,c4,bb4,d5,bb5]@2 eb4@4 f4@6 bb3@2 g4@6 c5 ~ [f4,gb4,c5]@2 [eb3,eb4]@2 f4@2 c5 ~ eb4 ~ d3@14 bb4@2 g3@16 [eb3,d4,eb4,bb4]@2 g4@4 [g4,bb4]@4 d4@2 eb4@2 [g4,d5]@2 [eb3,d4,eb4,bb4]@2 g4@2 bb4@2 d4@4 eb4@2 c5 ~ [g4,bb4]@2 d3@20, ~@8 [c5,a5] ~ g5@34 [bb3,d4,bb4]@6 [f4,bb4]@4 d4@4 f4@4 g4@4 d4@2 [g4,bb4]@4 bb5@2 g5@54]/8", // Gm Eb F F5 D Gm D7 Cm7 …
  P: "[~@2 d5@2 ~@2 [d5,bb5] ~ [bb4,g5]@2 [bb4,c5,a5]@2 eb4@2 ~@2 g4@2 ab4 ~@3 eb4@2 ~@4 [f4,a4,c5]@4 [f4,a4]@2 a4@2 ~@2 c5 ~ a4@2 [f4,c5]@2 f4@4 f4@2 [d4,d5]@4 ~@2 f4@2 d5@2 g4@2 ~@2 bb4@2 [g4,bb4,d5]@2 ~@2 [d5,bb5] ~ [c5,d5,a5] ~ [bb4,eb5,g5,c6]@2 [eb4,g4,bb4,d5,g5]@12 ~@20 [d4,f4,a4,c5,d5,f5,a5]@12 ~@8, ~ g3@21 [d4,bb4]@3 [f4,bb4]@2 d4@2 f4@25 ~@10, ~ bb4@3 g4@2 c3@3 [g4,bb4]@3 [bb3,c4] g4@16 bb4@2 g4@2 d4 bb4@2 bb5 ~@27, ~@4 g4@4 f4@4 [bb3,c4,bb4,d5,bb5]@2 eb4@4 f4@8 bb4@2 f3@4 c5 ~ [f4,gb4,c5]@2 [eb3,eb4]@2 f4@2 c5 ~ eb4 ~ [d3,bb3]@16 g3@6 ~@2 g4@8 ~@52, ~@8 [c5,a5] ~ g5@64 ~@54]/8", // Gm Eb F F5 D Gm D7 Cm7 …
})).s("gm_piano").gain(0.38)

// drums · kick
const kick = s("bd").struct("<~@4 A B@23 C ~ A B@23 C ~ A B@31 C ~@4>".pickRestart({
  A: "~@3 x", B: "~ x!2 ~@3 x ~", C: "~ x!2 ~@5",
})).gain(0.8)

// drums · rim
const rim = s("rim").struct("<~@5 A@4 B@8 A@12 ~@2 B@12 A@12 ~@2 B@2 A@2 B@28 ~@4>".pickRestart({
  A: "~ x", B: "x!2",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B C D E F D@2 G B C D H C@3 H C@2 I H C@3 J ~ A B C D E F D@2 G B C D H C@3 H C@2 I H C@3 J ~ A B C D E F D@2 G
  B C D E F D@2 G B C D E F D@2 G B C D E F D@2 K ~@4
>`.pickRestart({
  A: "~@6 x!2", B: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~", C: "x!8", D: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~",
  E: "x ~ x ~ x ~ x ~ x ~@3 x ~ x!2", F: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", G: "x ~ x ~ x ~ x!3 ~@3 x ~ x ~",
  H: "x!5 ~ x!2", I: "x ~ x ~ x ~ x!2 ~@2 x ~ x ~ x ~", J: "x!6 ~@2", K: "x ~ x ~ x ~ x!3 ~@7",
})).gain(0.48)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A ~@3 A ~@3 A ~@3 A ~@3 A ~@9 A ~@3 A ~@3 A ~@3 A ~@3 A ~@9 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4
>`.pickRestart({
  A: "~@5 x ~@2",
})).gain(0.48)

// drums · splash
const splash = s("cr").struct("<~@4 A ~@25 A ~@25 A ~@7 A ~@28>".pickRestart({
  A: "~@3 x",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct("<~@28 A B C ~@23 A B C ~@36>".pickRestart({
  A: "~@3 x", B: "x!4", C: "x!3 ~",
})).gain(0.4)

// drums · bell tree
const bell_tree = s("marktrees:0").struct("<~@16 A ~@25 A ~@21 B ~@7 B ~@7 B ~@12>".pickRestart({
  A: "~@4 x!7 ~@5", B: "~@3 x",
})).gain(1.91)

stack(epiano1, epiano2, pad_warm, string_ensemble_1, bass, piano, kick, rim, hihat, open_hat, splash, ride, bell_tree)

More by Madonna