Strudelify

Don't Get Me Wrong

The Pretenders

KeyG majorTempo104 bpm
0:00/0:00
// Don't Get Me Wrong — The Pretenders
// 104 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Strings" named as a string part, played on string ensemble 1 (its pad new age patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 96 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): El Guitar.
setcpm(104/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 · piano
const piano = note(`<
  ~@17 A@2 B ~ C@2 D@2 E@2 F@2 G@2 H@2 A@2 B ~ I@2 D@2 A@2 B ~ I@2 J@4 K@4 L@2 M@2 N@2 O@2 P@2 M@2 N@2 O@2 Q@2 ~@8 R@2 B
  ~ I@2 S@2 I@2 T@5
>`.pickRestart({
  A: "[~ [d3,d4] [g3,g4] [a3,a4]@2 [d4,d5]@2 [a3,a4]@9]/2", B: "[b3,e4,g4]@11 ~, a4",
  C: "[~ e3 [a3,a4] [c4,c5]@2 d4@2 g3@6 ~@3, ~@3 e4@7 ~@5 d5@24 ~@9, ~@15 e4 ~@5 g4@16 ~@11]/2", // A C
  D: "[[d4,f#4,a4]@3 ~]/2", E: "[[g3,d4,g4]@16 ~@5 [g4,g5]@3, ~@3 [b3,b4], ~@13 [d4,d5]@3]/2",
  F: "[~@7 [g4,g5], g4@7 ~, [d4,d5]@13 [d4,d5]@3, ~@3 [b3,b4]]/2", // G D B
  G: "[[a3,e4,c5,e5]@35 ~ g3@3 ~@3 [g4,g5]@6, ~@6 g4 ~, ~@13 [d4,d5]@3]/2", H: "[[c4,g4,c5]@9 ~@7]/2",
  I: "[~@3 e3@3 [a3,a4]@3 ~@3 e4 ~@2 d4@6 g3@18 ~@9, ~ e4@2 [c4,c5]@2 d5@8 ~@3, ~@15 e4 ~@5 g4@16 ~@11]/2", // A C
  J: "[[g3,d4,g4]@31 ~@11 g4@6 [g3,g4,c5,e5]@24 [g3,g4,c5,e5]@24, ~@3 [b3,b4]@4 ~, ~@13 [d4,d5]@16 ~@3, ~@7 g5@8 ~]/4", // G5 C B D
  K: "[g3,g4,c5,e5]", L: "[g3,g4,c5,e5]/2", M: "[b3,d4,g4]/2", N: "[b3,e4,g4]/2", O: "[c4,e4,a4]/2",
  P: "[a3,d4,f#4,a4]/2", Q: "[d4,f#4,a4]/2",
  R: "[~@7 [a3,a4]@9, ~ d3@15, ~ d4@4 [d4,d5]@11, ~ [g3,g4]@7, ~@3 [a3,a4]@4 ~@9]/2", // A D G A
  S: "[~@24 [e4,e5]@23 ~, ~@6 e3@41 ~, ~ e4@3 ~@4, ~@12 [g3,g4]@35 ~, ~@18 [b3,b4]@29 ~]/2", // E G B
  T: "[~@4 e4 ~@3 e4 ~@3 [e4,e5]@8, ~ e3@4 e3@4 e3@8 ~@3, ~ e4@3 e5@3 [b3,b4]@3 [g3,g4]@8 ~@2, ~@2 [g3,g4]@3 e4@3 e5@3 [b3,b4]@8 ~, ~@3 [b3,b4]@3 [g3,g4]@3 e4@3 ~@8]/5", // E B G B G
})).s("gm_piano").gain(0.49)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A@2 B@2 C@2 D@2 E F B G C H D@2 A F B I C H D@2 A@2 B G C J D@2 A@2 B K C H D@2 E A B L C D A@2 M N M O N P Q D R S
  T U V W X@2 Y Z B AA AB C D@2 AC AD AE AF AG AH AI D A@2 B@2 C D B@2 C D B@3 AJ ~
>`.pickRestart({
  A: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
  B: "e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2",
  C: "a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2",
  D: "d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2",
  E: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 d1 ~@2",
  F: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 b0 ~@2 c1 ~@2 d1 ~@2",
  G: "e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 g1 ~@2 b1 ~@2 e1 ~@2",
  H: "a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 e1 ~@2",
  I: "e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 f#1 ~@2 g1 ~@2 g#1 ~@2",
  J: "a1 ~@2 a1 ~@2 a1 ~@2 a1 e1 ~ a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2",
  K: "e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 g1 ~@2 a1 ~@2 e1 ~@2",
  L: "e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 g1 ~@2 f#1 ~@2 e1 ~@2", M: "a1 b0 c1 d1@3 f#1 g1",
  N: "a1 b0 c1 ~@3 d2 d1, ~@3 d1@4 ~", O: "a1 b0 c1 ~@2 e1 f#1 g1, ~@3 d1@3 ~@2",
  P: "a1 b0 c1 ~@2 d2 f#1 g1, ~@3 d1@3 ~@2", Q: "d1!2 ~ d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2",
  R: "g1 ~@2 g1 ~@2 d1 ~@2 d1 ~@2 e1 ~@2 e1 ~@2 f#1 ~@2 f#1 ~@2",
  S: "g1 ~@2 g1 ~@2 d2 ~@2 d2 ~@2 b1 ~@2 b1 ~@2 c1 ~@2 d1 ~@2",
  T: "e1 ~@2 e1 ~@2 b1 ~@2 b1 ~@2 g1 ~@2 g1 ~@2 e1 ~@2 b0@2 ~",
  U: "e1 ~@2 e1 ~@2 b1 ~@2 b1 ~@2 g1 ~@2 g1 ~@2 e1 ~@2 e1 ~@2",
  V: "a1 ~@2 a1 ~@2 e2 ~@2 e2 ~@2 c2 ~@2 c2 ~@2 a1 ~@2 d1 ~@2",
  W: "a1 ~@2 a1 ~@2 e2 ~@2 e2 ~@2 c2 ~@2 c2 ~@2 a1 ~@2 e1@3",
  X: "d1 ~@2 d1 ~@2 d1 ~@2 d1 ~@2 d1 ~ d1!2 ~@2 d1 ~@2 d1 ~@2",
  Y: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 d1@3",
  Z: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 f#1@3",
  AA: "e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 g1@2 ~ b1@2 ~ e1 ~@2",
  AB: "a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 e1@3", AC: "g1@3 d1", AD: "g1@2 b0 d1", AE: "e1@3 b1",
  AF: "e1@2 e1 g1", AG: "a1@3 e1", AH: "a1@2 a1 e1", AI: "d1@3 a1", AJ: "e1",
})).s("gm_electric_bass_finger").gain(0.49)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@17 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 A@2 B@2 C@2 D@2 A@2 B@2 I@6 J@4 K@2 L@2 M@2 N@2 O@2 P@2 M@2 Q@2 R@2 ~@8 A@2 B@2
  S@2 T@2 S@2 U@4 ~
>`.pickRestart({
  A: "[~ [d4,d5] [g4,g5] [a4,a5]@2 [d5,d6]@2 [a4,a5]@9]/2", B: "[[b3,e4,g4,a4]@11 ~]/2",
  C: "[~@3 e4@3 [a4,a5]@3 ~@3 e5 ~@2 d5@6 [g4,g5]@27, ~ e5@2 [c5,c6]@2 d6@11, ~@15 e5 ~@32]/2", // A G C
  D: "[[d4,f#4,a4]@3 ~]/2", E: "[[g4,d5,g5]@16 ~@5 [g5,g6]@3, ~@3 [b4,b5], ~@13 [d5,d6]@3]/2",
  F: "[~@7 [g5,g6], g5@7 ~, [d5,d6]@13 [d5,d6]@3, ~@3 [b4,b5]]/2", // G D B
  G: "[[a4,e5,c6,e6]@35 ~ g4@3 ~@3 [g5,g6]@6, ~@6 g5 ~, ~@13 [d5,d6]@3]/2", H: "[[c5,g5,c6]@9 ~@7]/2",
  I: "[~@3 e4@3 [a4,a5]@3 ~@3 e5 ~@2 d5@6 [g4,g5]@27 [g4,d5,g5]@31 ~@11 g5@6 [g4,g5,c6,e6]@24 [g4,g5,c6,e6]@24, ~ e5@2 [c5,c6]@2 d6@16 ~@8 [d5,d6]@16 ~@3, ~@15 e5 ~@68 [b4,b5]@48 ~@12, ~@15 g6@8 ~]/6", // A G G5 C D B
  J: "[g4,g5,c6,e6]", K: "[[g4,g5,c6,e6]@11 ~]/2", L: "[[b3,d4,g4]@7 ~]/2", M: "[[b3,e4,g4]@11 ~]/2",
  N: "[[c4,e4,a4]@43 ~@5]/2", O: "[[a3,d4,f#4,a4]@23 ~]/2", P: "[[b3,d4,g4]@15 ~]/2", Q: "[[c4,e4,a4]@23 ~]/2",
  R: "[[d4,f#4,a4]@23 ~]/2", // D
  S: "[~@3 e4@3 [a4,a5]@3 ~@3 e5 ~@2 d5@6 g4@18 ~@9, ~ e5@2 [c5,c6]@2 d6@8 ~@3, ~@15 e5 ~@5 g5@16 ~@11]/2", // A C
  T: "[~@24 [e5,e6]@23 ~, ~@6 e4@41 ~, ~ e5@3 ~@4, ~@12 [g4,g5]@35 ~, ~@18 [b4,b5]@29 ~]/2", // E G B
  U: "[~@4 e5 ~@3 e5 ~@3 [e5,e6]@4, ~ e4@4 e4@4 e4@7, ~ e5@3 e6@3 [b4,b5]@3 [g4,g5]@6, ~@2 [g4,g5]@3 e5@3 e6@3 [b4,b5]@5, ~@3 [b4,b5]@3 [g4,g5]@3 e5@3 ~@4]/4", // E B G B G
})).s("gm_string_ensemble_1").gain(0.16)

// chords · electric guitar clean · "El Guitar"
const electric_guitar_clean = note(`<
  ~ A B C ~@2 D E ~ A B C ~@2 D E ~ A B C ~@2 D E ~ A B C ~@2 D E ~ A B C ~@2 D E ~ A B C ~@2 E A B ~@8 A B C ~@2 D E ~
  A B C ~@2 D E ~ A B C ~@2 D E ~ A B C ~@2 E ~@3 E ~@5
>`.pickRestart({
  A: "~@21 d3 ~@2", B: "~@9 d3 ~@11 d3 ~@2", C: "~@3 f#3 ~@20", D: "~@9 e3 ~@14", E: "~@21 f#3 ~@2",
})).s("gm_electric_guitar_clean").gain(0.29)

// chords · acoustic guitar steel · "Variation"
const acoustic_guitar_steel = note(`<
  A@2 B C D@2 E F G H B C D@2 E F G H B C D@2 E F G H B C D@2 E F G H B C D@2 E F G H B C D@2 F H B I@6 J@2 H B C D@2 E
  F G H B C D@2 E F G H B C D@2 E F G H B C D@2 F K@2 L F K@2 M@2 ~
>`.pickRestart({
  A: "[~@24 [g2,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~ d3 [g2,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,g3,b3]@2 d3, ~@23 d3@2 ~@23]/2", // G
  B: "[g2,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,g3,b3]@2 d3 [g2,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,g3,b3]@2 e3", // G
  C: "[e2,g3,b3] ~@2 [e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e3,g3,b3]@2 e3 [e2,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e3,g3,b3]@2 e3", // Em
  D: "[[e2,g3,b3] ~@2 [e3,g3,b3] e2 ~ [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3]@2 e3 [e2,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3]@2 ~ [a2,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~ e3 [a2,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4]@2 e3, ~@23 e3@2 ~@23]/2", // Em Am
  E: "[a2,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,a3,c4] ~@2 [a2,a3,c4]@2 e3 [a2,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~ f#3", // Am
  F: "[d2,a3,d4] ~@2 [d2,f#3,a3,d4] ~@2 [d2,f#3,a3,d4] ~@2 [d2,f#3,a3,d4]@2 f#3 [d2,a3,d4] ~@2 [d2,f#3,a3,d4] ~@2 [d2,f#3,a3,d4] ~@2 [d2,a3,d4] ~ f#3", // D5 D D5 D D5
  G: "[d2,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3]@2 d3, ~@11 d3@2 ~@11", // D
  H: "[g2,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~ d3 [g2,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,d3,g3,b3] ~@2 [g2,g3,b3]@2 d3", // G
  I: "[a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2", // Am D
  J: "[d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2 [d2,d3,f#3,a3] ~@2", // D
  K: "[[e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3]@2 e3 [e2,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3]@2 ~ [e2,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2, ~@23 e3@2 ~@10 e3@2 ~@11]/2", // Em
  L: "[a2,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~ e3 [a2,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4] ~@2 [a2,e3,a3,c4]@2 e3", // Am
  M: "[[e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3]@2 e3 [e2,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3] ~@2 [e2,e3,g3,b3]@2 e3@2 ~@23]/2", // Em
})).s("gm_acoustic_guitar_steel").gain(0.17)

// drums · kick
const kick = s("bd").struct("<~ A@48 B@6 C@2 A@16 D@6 A@15 D ~>".pickRestart({
  A: "x!4", B: "x ~@5 x ~@7 x!2 ~@4 x!2 ~@2", C: "x!8", D: "x",
})).gain(0.71)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@55 [~@3 x!5] [x!8] ~@23 [x!8] ~@15>").gain(0.5)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@55 [x!3 ~@5] ~@23 [~@3 x ~@12 x ~@4 x ~@2] ~@16>").gain(0.29)

// drums · open hat
const open_hat = s("oh").struct("<~@2 [~@23 x] ~@9 [~@23 x] ~@83>").gain(0.36)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~@7 A ~@7 A ~@3 A ~ A ~ A ~@7 A ~@5 A ~ B@6 ~@2 A ~ A ~ A ~ A ~@9 A ~@7 A ~@7 A ~ A@4 ~
>`.pickRestart({
  A: "x", B: "x ~@2 x ~@4",
})).gain(0.5)

// drums · ht
const ht = s("ht").struct("<~ [~ x ~ x ~ x ~ x]!93 ~@2>").gain(0.57)

// drums · shaker
const shaker = s("sh").struct(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A ~@2
>`.pickRestart({
  A: "~@5 x!2 ~@4 x!2 ~@4 x!2 ~@4 x", B: "x ~@4 x!2 ~@4 x!2 ~@4 x!2 ~@5",
})).gain(0.21)

stack(
  piano, bass, string_ensemble_1, electric_guitar_clean, acoustic_guitar_steel, kick, snare, hihat, low_tom,
  low_tom_soft, open_hat, crash, ht, shaker
)

More by The Pretenders