Strudelify
Don't You (Forget About Me) cover art

1985 · Once Upon A Time

Don't You (Forget About Me)

Simple Minds

KeyA majorTempo114 bpm
0:00/0:00
// Don't You (Forget About Me) — Simple Minds
// 114 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 123 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(114/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.

// bass · synth bass 2 · "SYN BASS 2"
const bass = note(`<
  ~ A@2 B C D@2 B C E F G F E F G F E F G F E F G F E F G F E F G@2 H I J@2 K@2 L M H I J@2 N O L@2 A@2 B C D@2 B C E F
  G F E F G F E F G F E F G F E F G F E F G F E F G F E F G F P F G F E F G F E F G F E F G F E F G F E F G F E F G F E
  F G F Q ~
>`.pickRestart({
  A: "[d2@5 ~ e2@22 ~@4]/2", B: "d2@5 ~ e2@8 ~@2", C: "c2@5 ~ d2@8 ~@2", D: "[d2@4 ~@2 e2@23 ~@3]/2",
  E: "e2 ~ e2!3 ~ e2!3 ~ e2!3 ~ e2!2", F: "d2 ~ d2!3 ~ d2!3 ~ d2!3 ~ d2!2", G: "a1 ~ a1!3 ~ a1!3 ~ a1!3 ~ a1!2",
  H: "c2@2 ~ c2!2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", I: "c2@2 ~ c2!2 ~ c2 ~ c2@2 b1@2 a1@2 g1@2",
  J: "g1@2 ~ g1!2 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", K: "d2@2 ~ d2!2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  L: "a1@2 ~ a1!2 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", M: "a1@2 ~ a1!2 ~ a1 ~ a1 ~ a1 ~ a1 ~ b1@2",
  N: "d2@2 ~ d2!2 ~ d2 ~ d2@3 ~ d2 ~ d2 ~", O: "d2@2 ~ d2!2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2", P: "e2 ~@7",
  Q: "e2 ~ e2!3 ~ e2!3 ~ e2!3 ~ e2 ~",
})).s("gm_synth_bass_2").gain(0.35)

// other · pad sweep · "SWEEP PAD"
const pad_sweep = note(`<
  ~@9 A B A B A B A B A B A B A B A B A C D@2 A C E@2 ~@24 A B A B A B A B A B A B A B A B A C D@2 A C D@2 A C D@2 A C
  D@2 ~@16 A C D@2 A C D@2 A C D@2 A C D@2 A ~
>`.pickRestart({
  A: "e4", B: "f#4", C: "d4", D: "[c#4 d4, a4]/2", E: "[c#4,a4]/2",
})).s("gm_pad_sweep").gain(0.24).pan(0.1)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@33 A@6 B@2 A@6 B@2 ~@40 C D E D F D E D F D E D F D E D ~@18>".pickRestart({
  A: "[[c5,e5] b4 [f#5,a5], g5@2 ~, ~ d5@2]/6", B: "[a4,c#5,e5]/2", C: "[e5,g#5,b5]", D: "[d4,f#4,a4]",
  E: "[a3,c#4,e4]", F: "[e4,g#4,b4]",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.1)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@17 A B C@2 A B C@2 D E@3 D F@3 ~@32 A B C@2 A B C@2 D E@3 D E@3 D E@3 D E@3 ~@16 D E@3 D E@3 D E@3 D E@3 D ~
>`.pickRestart({
  A: "[e3,g#3]", B: "[f#3,a3]", C: "[[c#3,e3] [d3,f#3], a3]/2", D: "[e3,g#3,b3]",
  E: "[[d3,f#3] [c#3,e3] [d3,f#3], a3]/3", F: "[[d3,f#3] [c#3,e3]@2, a3]/3",
})).s("gm_string_ensemble_2").gain(0.2).pan(0.9)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@3 A ~ B@2 A ~@43 A ~ B@2 A ~@67>".pickRestart({
  A: "~@3 g4@5", B: "[~@13 d4@17 ~@2]/2",
})).s("gm_guitar_harmonics").gain(0)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~ A@2 B C A@2 B C ~@16 D E F G H I J ~@17 A@2 B C A@2 B C ~@16 D E F G H I J ~@10 K@2 L M@2 N O P@2 Q@2 R S@3 ~@18
>`.pickRestart({
  A: "[d2@5 ~ e2@24 ~@2]/2", B: "d2@5 ~ e2@7 ~@3", C: "c2@5 ~ d2@9 ~", D: "[e2,e3,e4,b4]@13 ~@3",
  E: "[d4,a4]@3 ~, [d2,d3] ~", F: "[a1,a2,a3,e4]@7 ~", G: "[d4,a4]@11 ~@5, [d2,d3]@9 ~@7", H: "[e2,e3,e4,b4]@3 ~",
  I: "[d4,a4]@13 ~@3, [d2,d3]@5 ~@3", J: "[a1,a2,a3,e4]@13 ~@3",
  K: "[d3@7 ~@7 a4@4 ~@10 a2@2 ~@2, a4@10 e4@8 ~@2 b3@11 ~, ~@4 d3@3 ~@2 a2@5 ~@2, ~@12 f#4@6 ~@6 e4@7 ~]/2",
  L: "~ [a3,d4,f#4]@2 ~@3 d3@2, ~@3 d3@2 ~@3, ~ [a3,d4,f#4]", // D
  M: "[~@6 g#4 ~@2 e5@2 e5@2 ~@3, ~ e3@6 e5@2 ~@7, ~@3 f#4@5 d3@6 ~@2, ~@5 b4@3 ~@8]/2",
  N: "~ e5 ~ a4 b4 c#5 e4@2, a2, ~@4 c#5@5 ~@7", O: "~@3 [e5,f#5,a5]@2 ~ d3@2, ~@5 e5@2 ~",
  P: "[~@5 e5@2 e5@2 e5@2 ~@5, ~@2 e3@13 ~@17, ~ f#4@3 ~@4, ~@3 g#4@5 ~@8, ~ b4 ~@2]/2",
  Q: "[~@2 b3@2 c#4@2 e4@4 ~@6 a3 ~ [a4,e5,f#5]@4 [e5,f#5]@4 ~@4 d3@2, a2@5 ~@5 e4@4 e4@4 ~@8 f#5@6, ~@6 a2@3 ~@7]/2", // F#m7 Esus2
  R: "~@2 [f#4,g#4,b4]@2 ~@3 b4, ~@2 e3@5 ~ e3@7 ~, ~@5 f#4@3, ~@3 g#4", // G#m7
  S: "[~@6 a5@4 a5@4 ~@6 e5 ~ c#6@4 a2 ~@9 f#5@2 d6@4 d6@4 d6@2, d3@9 ~@7 a2@9 ~@3 a2@8 ~@12, ~@2 e5@9 ~@21 a3@4 ~@12, ~@4 f#5@7 ~@3 a5@4 ~@8 c#6@4 c#6@4 e5@4 ~@10]/3",
})).s("gm_piano").gain(0.4).pan(0.3)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~@91 A@2 B C ~ D@2 E ~ F ~@22>".pickRestart({
  A: "[~@6 c#4@9 a2@5 ~@12]/2", B: "~@4 g#4 ~@3", C: "~@5 e5@2 ~", D: "[e4@2 ~@3 [f#5,a5]@2 [e5,f#5,a5]@2 ~@7]/2",
  E: "~@3 e5@2 e5@2 ~", F: "~@3 a4@2 [a4,e5]@3",
})).s("gm_piano").gain(0.25).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~ A@2 B C D@2 B E@2 ~@39 A@2 B C A@2 B F ~@66>".pickRestart({
  A: "[d3,a3,d4]/2", B: "[d3,a3,d4]@3 [e3,e4,g4]@5", C: "[c3,g3,c4]@3 [d3,a3,d4]@5", D: "[[d3,a3,d4]@30 [d3,a3]!2]/2",
  E: "[[c3,g3,c4]@3 [d3,a3]@13, ~@3 d4@9 ~@4]/2", F: "[c3,g3,c4]@6 [d3,a3,d4]@9 ~",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.7)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@9 A B C D A D E D A B C D A D C D A F C D A D C G H@2 I@2 J@2 K L H@2 I M J@2 K@2 ~@8 A B C D A D C D A B C D A D C
  D A B C D A B C D A B C D A B C D ~@16 N O P Q N O P Q N O P Q N O P Q R ~
>`.pickRestart({
  A: "e2 ~ e3 ~ e2 ~ e3 ~ e2 ~ e3 ~ e2 ~ e3 ~",
  B: "d2 ~ d3 ~ d2 ~ d3 ~ [d2,d4] c#4 [d3,a3,d4] [c#4,d4] [d2,a3,d4] ~ d3 ~", // D D5 Dmaj7 D5
  C: "a2 ~ a3 ~ a2 ~ a3 ~ a2 ~ a3 ~ a2 ~ a3 ~", D: "d2 ~ d3 ~ d2 ~ d3 ~ [d2,d4] ~ [d3,d4] d4 d2 ~ d3 ~",
  E: "a2 ~ a3 ~ a2 ~ a3 ~ a2 ~@3 a2 ~ a3 ~",
  F: "d2 ~ d3 ~ d2 ~ d3 ~ [d2,d4] c#4 [d3,a3,d4] [c#4,d4] [d2,a3,d4] c#4 d3 ~", // D D5 Dmaj7 D5
  G: "d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~ d2 ~ d3 ~", H: "c3 c4!2 c5 c3 c4!2 c5 c3 c4!2 c5 c3 c4!2 c5",
  I: "g2 g3!2 g4 g2 g3!2 g4 g2 g3!2 g4 g2 g3!2 g4", J: "d2 d3!2 d4 d2 d3!2 d4 d2 d3!2 d4 d2 d3!2 d4",
  K: "a2 a3!2 a4 a2 a3!2 a4 a2 a3!2 a4 a2 a3!2 a4", L: "a2 a3!2 a4 a2 a3!2 a4 a2 a3!2 a4 b2 b3!2 b4",
  M: "g2 g3!2 g4 g2 g3!2 g4 g2 g3!2 g4 g2 ~ g3 g4", N: "e3 e4!2 e5 e3 e4 [e4,e5] e5 e3 e4 [b3,e5] b4 [e4,b5] e5 e3 e4",
  O: "[d3,e5] d4 [d4,d5] d5 d3 d4 [d4,d5] d5 d3 d4 [a3,d5] a4 [d3,a5] d4 [d4,d5] d5", // Dsus2 D D5 D
  P: "a2 a3 [c#4,a4] c#5 [a2,a5] a3 [c#4,a4] c#5 [a2,a5] a3 [c#3,a4] c#4 [a2,c#5,a5] a3 [c#3,a4] c#4", // F#m A F#m A F#m A F#m
  Q: "[d3,c#5,a5] d4 [d4,d5] d5 d3 d4 [d4,d5] d5 d3 d4 [a3,d5] a4 [d4,a5] d5 d3 d4", // Dmaj7 D D5
  R: "e3 e4!2 e5 e3 e4 [e4,e5] e5 e3 e4 [b3,e5] b4 [e4,b5] e5 e3 ~", // E E5
})).s("gm_electric_guitar_muted").gain(0.08).pan(0)

// other · electric guitar muted · "MUTED GTR" · soft notes
const electric_guitar_muted_2 = note(`<
  ~@10 A B C D C E C D A B C D C B C D F B C D C B ~@26 A B C D C B C D A B C D C B C D A B C D A B C D A B C D A B C D
  ~@33
>`.pickRestart({
  A: "~@13 [c#4,d4] [a3,d4] [c#4,d4]", // Dmaj7 D5 Dmaj7
  B: "[a3,d4] [c#4,d4] d4 [c#4,d4] [a3,d4] [c#4,d4] d4 [c#4,d4] [a3,d4] [c#4,d4] ~ d4 ~@4", // D5 Dmaj7 D5 Dmaj7 D5 Dmaj7
  C: "~@9 c#4 a3 c#4 [a3,d4] [c#4,d4] [a3,d4] [c#4,d4]", D: "a3 ~@15",
  E: "[a3,d4] [c#4,d4] d4 [c#4,d4] [a3,d4] [c#4,d4] d4 [c#4,d4] [a3,d4] [c#4,d4] a3 d4 ~@4", // D5 Dmaj7 D5 Dmaj7 D5 Dmaj7
  F: "~@13 d4 [a3,d4] [c#4,d4]", // D5 Dmaj7
})).s("gm_electric_guitar_muted").gain(0.03).pan(0)

// other · pad metallic · "METAL PAD"
const pad_metallic = note(`<
  ~ A@2 B C D@2 E F ~@40 D@2 G C D@2 G H ~@32 I J K L M L N K M L K L M L K ~@19
>`.pickRestart({
  A: "[a4,d5]/2", B: "[a4,d5]@3 g5@5", C: "c5@3 d5@5", D: "d5/2", E: "[a4,d5]@3 [e5,g5]@5", F: "[g4,c5]@3 [a4,d5]@4 ~",
  G: "d5@5 ~ g5@10", H: "c5@3 d5@4 ~", I: "e3", J: "d3", K: "a3", L: "d4", M: "e4", N: "c#4",
})).s("gm_pad_metallic").gain(0.28).pan(1)

// chords · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@25 A B C D E B F@2 ~@4 G H I J ~@4 G H K L ~@24 M B C D N B C D N B C D N B C D O P Q P R P Q S R P S P R P S P N B
  C D N B C D N B C D N B C D T ~
>`.pickRestart({
  A: "~@10 [e4,g#4,b4]!2 ~ [e4,g#4,b4] ~ [e4,g#4,b4]", B: "[d4,f#4,a4]@3 ~", C: "~@6 [a4,c#5,e5] ~ [a4,c#5,e5]@7 ~",
  D: "~@6 [a4,d5,f#5] ~ [a4,d5,f#5]@6 ~@2", E: "[e4,g#4,b4]@5 ~@5 [e4,g#4,b4]!2 ~ [e4,g#4,b4] ~ [e4,g#4,b4]",
  F: "[~@6 [e4,a4,c#5] ~ [e4,a4,c#5]@10 ~@4 [a4,c#5,e5] ~ [a4,c#5,e5]@7 ~]/2", G: "~@6 [f#4,a4,d5] ~ [f#4,a4,d5]@7 ~",
  H: "~@6 [f#4,a4,d5] ~ [f#4,a4,d5]@6 ~@2", I: "~@6 [a4,c#5,e5] ~ [a4,c#5,e5]@5 ~ [a4,c#5,e5,a5] ~",
  J: "[a4,c#5,e5,a5]@15 ~", K: "~@6 [a4,c#5,e5] ~ [a4,c#5,e5]@5 ~ [c#5,e5,a5] ~", L: "[c#5,e5,a5]@15 ~",
  M: "[e4,g#4,b4]@8 ~@2 [e4,g#4,b4]!2 ~ [e4,g#4,b4] ~ [e4,g#4,b4]", N: "[e4,g#4,b4]@8 ~@2 [e4,g#4,b4]!4 ~ [e4,g#4,b4]",
  O: "[e5,g#5,b5]", P: "d5", Q: "c#5", R: "e5", S: "a4", T: "[e4,g#4,b4]@8 ~@2 [e4,g#4,b4]!4 ~@2",
})).s("gm_synth_brass_1").gain(0.32).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A@3 B A@2 C B C B C B C B C B C B C B C D E B C B F B C B C B C B C B C B C B C B C B C B A B A@3 B A@2 C B C B
  C B C B C B C B C B C B A B A B A B A B A B A B A B A B G H@15 A B A B A B A B A B A B A B A B A ~
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x ~@2 x ~ x ~@7", C: "x ~@2 x!2 ~@3", D: "x ~@2 x ~ x ~@2 x ~@7",
  E: "x ~@5 x ~@3 x ~@2 x!2 ~", F: "x ~@5 x ~@3 x ~@2 x ~ x", G: "~ x!3", H: "x!4",
})).gain(0.36)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@15 D E B@3 E B@2 F B@7 G B@15 C B@32 H ~@13 I J B@3 K B@3 L B M B N B@3 L B ~
>`.pickRestart({
  A: "~@6 x!2", B: "~ x ~ x", C: "~@2 x ~@2 x!3", D: "~@2 x ~@3 x!2", E: "~@4 x ~@6 x ~@4", F: "~@4 x ~@5 x!3 ~ x!2",
  G: "~@4 x ~@4 x ~@2 x ~ x ~", H: "x", I: "~@10 x!6", J: "x ~ x!4 ~@2 x!2 ~@2 x!2 ~@2", K: "~@4 x ~@6 x!2 ~@3",
  L: "~@4 x ~@5 x!3 ~@3", M: "~@3 x!2 ~@7 x ~@3", N: "~@4 x ~@7 x!3 ~",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@52 A ~@39 A B A B C D B@2 C B@3 C ~@18>".pickRestart({
  A: "~@7 x", B: "x", C: "~@14 x!2", D: "x ~@6 x",
})).gain(0.42)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@52 [~@15 x] ~@45 [~@7 x] ~@3 [~@7 x] ~@20>").gain(0.24)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B C D E F G H I J I@3 J I@3 J I@3 J I K L M N O P M N Q N@7 R@2 N@6 S I J I@3 J I@3 J I@3 J I@3 J I@3 J I@3 J I@3
  J I@3 J I@3 J I@2 T I@4 J I@2 J U V W I X I@2 U J I@3 J I@3 J I@3 J I@3 ~
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2 x!4 ~ x ~ x", B: "x!5 ~ x!8 ~ x", C: "x!6 ~ x!4 ~ x!2 ~ x", D: "~ x!2 ~ x!3 ~ x!4 ~@4",
  E: "x!13 ~ x ~", F: "x!7 ~ x!4 ~ x ~ x", G: "x!5 ~ x!5 ~ x ~ x ~", H: "x!7 ~ x!5 ~ x!2", I: "x!8", J: "x!7 ~",
  K: "x!5 ~@3", L: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", M: "~ x!6 ~", N: "x!4 ~ x!3", O: "x!4 ~ x ~ x",
  P: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", Q: "x!4 ~@4", R: "~ x!3 ~ x!3", S: "~ x!2 ~@2 x ~ x", T: "~@2 x!6", U: "~ x!7",
  V: "x!5 ~ x!2", W: "x!5 ~ x ~", X: "x!5 ~@2 x",
})).gain(0.24)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@33 A@4 ~@4 A@4 ~@3 A ~@41 B@15 ~@18>".pickRestart({
  A: "~ x", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
})).gain(0.12)

// drums · mid tom
const mid_tom = s("mt").struct("<~@4 A ~ B ~@17 C ~@7 C ~@7 D ~@11 E ~@39 F G F G H F G I J C G@2 ~@19>".pickRestart({
  A: "~@13 x!3", B: "~@7 x", C: "~@13 x ~@2", D: "~@15 x", E: "~@12 x!2 ~@2", F: "~@11 x ~@2 x ~", G: "x",
  H: "~@9 x ~ x!2 ~@3", I: "~ x", J: "~@3 x ~@3 x",
})).gain(0.42)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@98 [~@5 x!2 ~] [~ x ~@3 x!2 ~] [~@13 x ~@2] ~ [~@7 x] ~@20>").gain(0.24)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A B C D E F G H ~ I ~@3 I ~@3 I ~@3 I ~@3 J ~ K ~ I ~@6 L@4 ~@4 L@3 M ~ I ~@3 I ~@3 I ~@3 I ~@3 I ~@3 I ~@3 I ~@3 I
  ~@3 I ~@3 I ~@19 I ~@3 I ~@3 I ~@3 I ~@4
>`.pickRestart({
  A: "~ x ~ x ~@2 x!2", B: "~@5 x ~@8 x ~", C: "~@11 x ~@2 x ~", D: "~@3 x ~@3 x ~@8", E: "~@13 x ~ x",
  F: "~@7 x ~@4 x ~ x ~", G: "~@5 x ~@5 x ~ x ~ x", H: "~@7 x ~@5 x ~@2", I: "~@7 x", J: "x ~@6 x", K: "~@3 x",
  L: "~ x", M: "x ~@2 x ~@2 x ~",
})).gain(0.36)

// drums · high tom
const high_tom = s("ht").struct("<~@24 A ~@7 B ~@7 C ~@51 D ~ D ~ E D@2 F G A ~@21>".pickRestart({
  A: "~@10 x ~@2 x ~@2", B: "~@13 x ~@2", C: "~@15 x", D: "~@8 x ~@2 x ~@4", E: "~@2 x!2 ~ x!2 ~ x ~@6 x",
// … 19 more lines

More by Simple Minds