Strudelify

Mer Girl

Madonna

KeyB majorTempo97 bpm
0:00/0:00
// Mer Girl — Madonna
// 97 bpm, 12/8, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (12/8 at bar 1, 2/8 at bar 19, 12/8 at bar 19, 1/4 at bar 35, ...) are rendered on a constant 12/8 grid of one bar per cycle
// note: Full arrangement: all 81 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(97/6)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// bass · electric bass pick
const bass = note(`<
  ~@4 A@8 B@7 C@9 D E F C@3 G H I H I H J H J H J H J H J H J K L M@3 N@8 O@4 P@6 Q@3 ~@4
>`.pickRestart({
  A: "[~@4 b1@3 a1@3 b1@3 a1@3 b1@3 a1@3 b1@3 a1@3 b1@3 a1@3 b1@3 a1@3 b1@3 a1@3 b1@2]/8",
  B: "[~ a1@3 b1@3 a1@3 f#1@6 b1@3 a1@3 b1@3 a1@3 b1@3 a1@3 b1@3 a1@4 b0]/7", C: "b0 f#1@2 f#1 a1@2 a1@4 b0@2",
  D: "b0 f#1@2 f#1 a1@2 a1@4 c#1@2", E: "c#1 f#1@2 f#1 a1@2 a1@4 c#1@2", F: "c#1 f#1@2 f#1 a#1@2 a#1@4 b0@2",
  G: "b0 f#1@2 f#1 a1@2 a1@6", H: "b0@2 b0 a1 f#1 a1 a0@6", I: "b0@2 b0 a1 f#1 a1 e1@6", J: "b0@2 b0 a1 f#1 a1 c#1@6",
  K: "c#1 a1", L: "f#1@11 f#1", M: "b1 a1",
  N: "[b1@6 a1@8 b1@6 a1@6 b1@6 g#1 a1 g#1@4 b1@6 a1@6 b1@6 g#1 a1 g#1@4 b1@6 a1@6 b1@6 a1@6 b1@6 a1@4]/8",
  O: "[~@2 b1@6 a1@6 c#1@6 a1@6 f#1@12 b1@4 c#2 d#2 [a1,e2]@4]/4", P: "d#2 c#2 b1@4 c#2 d#2 [a1,e2]@4",
  Q: "[d#2 c#2 b1@4 c#2 d#2 [a1,e2]@21 ~@7]/3", // A5
})).s("gm_electric_bass_pick").gain(0.32)

// chords · lead 1 square
const lead_1_square = note("<A@5 ~@76>".pickRestart({
  A: "[~@8 [b3,e4,g4]@3 [a3,f#4]@3 ~@6 [b3,e4,g4]@3 [a3,f#4]@3 ~@6 [b3,e4,g4]@3 [a3,f#4]@3 ~@6 [b3,e4,g4]@3 [a3,f#4]@3 ~@10]/5", // Em D Em D Em D Em D
})).s("gm_lead_1_square").gain(0.32)

// other · synth strings 1
const synth_strings_1 = note("<~@45 A B C D E F G H ~@28>".pickRestart({
  A: "f#4 c#4", B: "f#4 g#4", C: "d#4 a4", D: "b4 g#4", E: "d#5 c#5", F: "b4 e5", G: "g#5 a5", H: "f#5",
})).s("gm_synth_strings_1").gain(0.25)

// chords · pad bowed
const pad_bowed = note(`<
  ~@12 A B C D E@2 F ~@11 G@4 H@2 I J I K L M N O P Q R S T U V W X Y Z AA AB@2 ~@2 AC AD ~@3 AE AF@2 ~@13
>`.pickRestart({
  A: "~@2 c#4@3 c#4@3 [g#3,c#4,e4]!4", // C#m
  B: "[g#3,c#4,e4] d#4 [a3,c#4,d#4] [a3,c#4]!3 c#4 b3 [f#3,a#3,c#4] [f#3,a#3]!2 [f#3,a#3,d#4]", // C#m D#m7b5 A F# D#m
  C: "[f#3,a#3,c#4] [f#3,a#3,d#4] [f#3,a#3,c#4] [f#3,a#3]!5 [b3,d#4] ~@3", D: "~@11 [d#5,f#5,b5]",
  E: "[d#5,f#5,b5]!2 [c#5,e5,a5]!6 [d#5,f#5,b5]!4", F: "[d#5,f#5,b5]!2 [c#5,e5,a5]!5 [c#5,e5,a5]@3 ~@2",
  G: "[~@10 [f#3,b3,d#4]@6 ~@3 [a3,c#4]@2 ~ [f#3,b3,d#4]@4 ~@2 [a3,c#4,e4]@3 [a3,c#4]@2 ~ [f#3,b3,d#4]@4 ~@2 [a3,c#4,e4]@3 [a3,c#4]@2 ~ [f#3,b3,e4]@2]/4", // B A B A B A Esus2
  H: "[~@7 [e3,a#3,c#4]@6 ~@11]/2", I: "~ b3", J: "~ a#3", K: "[f#3,b3,d#4] ~ [a3,c#4]@2", L: "[b3,d#4] ~@2 [g#3,b3]@3",
  M: "[f#3,b3,d#4] ~", N: "~@3 [e3,g#3,b3] ~@2", O: "[f#3,b3,d#4] [e3,a3,c#4]",
  P: "b3 [f#3,b3,d#4] [g#3,b3,e4] [a3,c#4]", Q: "[f#3,b3,d#4]@2 ~@7 [e3,a3,c#4]@3",
  R: "[f#3,b3,d#4]@2 ~@4 [e3,g#3,c#4]@3 [g#3,b3,e4]@3", S: "[f#3,b3,d#4]@2 ~@4 [a3,c#4,e4]@3 [a3,c#4,e4]@2 ~",
  T: "[f#3,b3,e4]@2 ~@7 [g#3,b3,e4]@3", U: "~@9 [e3,a#3,c#4]@2 ~", V: "~@2 [g#3,b3] [g#3,b3,e4]",
  W: "[g#3,c#4,e4]!6 [a3,c#4]!6", X: "[f#3,a#3,c#4] [f#3,a#3,d#4] [f#3,a#3,c#4] [f#3,a#3]!9",
  Y: "[f#3,b3,d#4] ~@3 [e3,a3,c#4]@2", Z: "[f#3,b3,d#4]@2 ~@4 [e3,a3,c#4]@3 [a3,c#4,e4]@3",
  AA: "[b3,d#4] ~@2 [a3,c#4]@3", AB: "[[b3,d#4,f#4]@3 ~@6 [e3,a3,c#4]@4 ~@11]/2",
  AC: "~@2 f#4 d#5 f#4 d#5 f#4 d#5 e5 g#4 e5 g#4", AD: "e5 g#4 ~@10", AE: "~@2 [c#4,e4,g#4]!6 [c#4,e4,a4]!4",
  AF: "[[c#4,e4,a4]!2 [c#4,f#4,a#4]!9 [c#4,f#4,a#4]@2 ~@11]/2", // A F#
})).s("gm_pad_bowed").gain(0.4)

stack(bass, lead_1_square, synth_strings_1, pad_bowed)

More by Madonna