Strudelify

You Must Love Me

Madonna

KeyC majorTempo84 bpm
0:00/0:00
// You Must Love Me — Madonna
// 84 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Bass" named as a bass, played on electric bass finger (its string ensemble 1 patch is not one)
// note: duplicate parts dropped: ch 7 french horn (copy of ch 5 "Bridge" orchestral harp)
// note: Full arrangement: all 61 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(84/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 · piano · "Harmony"
const piano = note(`<
  A B A B ~@6 C D E F G H I@2 J K L M N ~ L O ~@2 P Q P B ~@6 C D E F G H I@2 J K L M N ~ L O ~@2 P Q P B R
>`.pickRestart({
  A: "c5 g4, e4", B: "a4@2 b4 c5 [g4,d5]@4, f4 ~", C: "a3@3 d4@4 ~", D: "[f4,c5]@2 a4 f4 [d4,b4]@2 g4 d4",
  E: "c4 g4 c5 g4 c4 g4 b4 g4", F: "c4 g4 c5 g4 c4 ~ c4 d4, ~@5 g4@3", G: "c4 g4 c5 g4 c4 g4@3",
  H: "c4 f4 a4 f4 c4 f4@2 e4", I: "d4 a4 c5@6", J: "c4 b3", K: "[c4,f4] [f4,c5] [d4,b4] [g4,d5]", L: "e4@3 ~", M: "e4",
  N: "e4 ~", O: "g4 a4@3", P: "c4@2 ~ e4 [g3,g4]@4, ~ c4 ~@2", Q: "a3@2 b3 c4 d4@4, [f4,a4]@3 ~@5", R: "c4",
})).s("gm_piano").gain(0.32)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A B A B C D E F G H I@2 J@3 F K@2 I L M N M N M O P Q R B R B C D E F G H I@2 J@3 F K@2 I L M N M N M O P Q S@4 T
>`.pickRestart({
  A: "~ g3 c4@4 ~@2, c3", B: "~ a3 c4@2 b3@4, c3", C: "g3 b3, c3", D: "~ c3, [e3,g3]", E: "g3@2 a#3 ~, c3",
  F: "f3@3 c3 f3@2 e3@2", G: "~ a3 c4@6, d3", H: "~ a3 c4@4 ~@2, d3", I: "~ d3 g3@4 d3@2, g2", J: "c3!2", K: "d3",
  L: "~ d3 a3@6, g2", M: "~ e3, [g#3,d4]", N: "[a3,c4]@4 e3 a3 c4@2", O: "[f3,c4]", P: "[d3,c4] [e3,d4]", Q: "[g3,b3]",
  R: "~ g3@6 ~, c3", S: "[~@9 a3 c4@2 b3@4, c3 c3, ~ g3@8 ~@7]/2", T: "[e3,g3]",
})).s("gm_electric_bass_finger").gain(0.25)

// chords · string ensemble 2 · "Add" · C F G C F G
const string_ensemble_2 = note("<[[c3,e3,c4]] [[f3,a3,c4] [g3,b3,d4]] [[c3,e3,c4]] [[f3,a3,c4] [g3,b3,d4]] ~@57>")
  .s("gm_string_ensemble_2").gain(0.48)

// other · orchestral harp · "Bridge"
const orchestral_harp = note("<~@32 A B C D E F G H I J K L M@2 N O P Q R ~ P S ~@2 T U T V B>".pickRestart({
  A: "e4@2 e4!2 g4@3 b3", B: "c4", C: "~ e4!3 g4@2 a#3!2", D: "a#3 a3 a#3 a3@4 ~", E: "f4 e4 f4 a4@3 f4 e4",
  F: "e4 d4 e4 f4@3 c4!2", G: "c4 d4 c4 b3@4 ~", H: "[f4,c5]@2 a4 f4 [d4,b4]@2 g4 d4", I: "c4 g4 c5 g4 c4 g4 b4 g4",
  J: "c4 g4 c5 g4 c4 ~ c4 d4, ~@5 g4@3", K: "c4 g4 c5 g4 c4 g4@3", L: "c4 f4 a4 f4 c4 f4@2 e4", M: "d4 a4 c5@6",
  N: "c4 b3", O: "[c4,f4] [f4,c5] [d4,b4] [g4,d5]", P: "e4@3 ~", Q: "e4", R: "e4 ~", S: "g4 a4@3",
  T: "c4@2 ~ e4 [g3,g4]@4, ~ c4 ~@2", U: "a3@2 b3 c4 d4@4, [f4,a4]@3 ~@5", V: "a4@2 b4 c5 [g4,d5]@4, f4 ~",
})).s("gm_orchestral_harp").gain(0.14)

// other · music box
const music_box = note("<~@32 A B C D E F G H I J K L M@2 N O P Q R ~ P S ~@2 T U T V B>".pickRestart({
  A: "e7@2 e7!2 g7@3 b6", B: "c7", C: "~ e7!3 g7@2 a#6!2", D: "a#6 a6 a#6 a6@4 ~", E: "f7 e7 f7 a7@3 f7 e7",
  F: "e7 d7 e7 f7@3 c7!2", G: "c7 d7 c7 b6@4 ~", H: "[f7,c8]@2 a7 f7 [d7,b7]@2 g7 d7", I: "c7 g7 c8 g7 c7 g7 b7 g7",
  J: "c7 g7 c8 g7 c7 ~ c7 d7, ~@5 g7@3", K: "c7 g7 c8 g7 c7 g7@3", L: "c7 f7 a7 f7 c7 f7@2 e7", M: "d7 a7 c8@6",
  N: "c7 b6", O: "[c7,f7] [f7,c8] [d7,b7] [g7,d8]", P: "e7@3 ~", Q: "e7", R: "e7 ~", S: "g7 a7@3",
  T: "c7@2 ~ e7 [g6,g7]@4, ~ c7 ~@2", U: "a6@2 b6 c7 d7@4, [f7,a7]@3 ~@5", V: "a7@2 b7 c8 [g7,d8]@4, f7 ~",
})).s("gm_music_box").gain(0.14)

stack(piano, bass, string_ensemble_2, orchestral_harp, music_box)

More by Madonna