Strudelify
I'm Still Standing cover art

1983 · Too Low For Zero

I'm Still Standing

Elton John

KeyA minorTempo172 bpm
0:00/0:00
// I'm Still Standing — John Elton
// 172 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 11 ms ahead of the beat; the grid follows it, so its parts stay together.
setcpm(172/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, A@4 for four bars: edit a riff to change every repeat.

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@8 B C D B E F G C H B@2 C D B E F G C H B ~@15 I@4 J@5 B C D B E F G C H B ~@15 I@4 J@5 B C D B E F G C H B ~@15 I@4
  K@4 I@4 K@4 I@4 L@2 M@2 ~
>`.pickRestart({
  A: "[[e3,a3,c4,e4]@6 ~@2 d4@6 ~@2 e4@9 ~@2 [f3,a3,c4] ~ [g3,b3,d4] ~@2, ~@15 [d3,f3,a3]@13 ~@3 [e3,g#3,b3]@18 ~@15]/4", // Am F G Dm E
  B: "~@4 e4@3 [e4,a4]@4 c#4 [c#4,e4,a4]@3 ~, ~@4 [a3,c#4]@7 a3@5", // A5 A
  C: "~@4 f#4@3 [f#4,a4]@4 d4 [d4,f#4,a4]@3 ~, ~@4 [a3,d4]@7 a3@5", // F#m D D5
  D: "~@4 e4@3 [e4,g#4]@4 b3 [b3,e4,g#4]@3 ~, ~@4 [g#3,b3]@7 g#3@5", // E G#m
  E: "~@4 f#4@3 [f#4,a4]@4 d4 [d4,f#4,a4]@3 ~, ~@4 [b3,d4]@7 b3@5", // F#m D Bm
  F: "~@4 [f#3,d4]@3 [e4,g#4]@4 b3 [b3,e4,g#4]@3 ~, ~@4 b3@6 ~ g#3@5", // D E
  G: "~@4 f#4@3 [f#4,a4]@4 c#4 [c#4,f#4,a4]@3 ~, ~@4 [a3,c#4]@7 a3@5", // F#m A
  H: "~@4 f#4@3 [e4,a4]@4 c#4 [c#4,e4,a4]@3 ~, ~@4 [a3,c#4]@7 a3@5", // A5 A
  I: "[~@7 [g#3,b3,g4]@2 ~@2 [g#3,b3,f4]@2 ~@2 [e3,a3,e4]@13 ~@3 [f3,c4,f4]@13 ~@3 [e3,b3,e4]@16 ~]/4", // G#m Fdim A5 F5 E5
  J: "[~@7 [g#3,b3,g4]@2 ~@2 [g#3,b3,f4]@2 ~@2 [e3,a3,e4]@13 ~@3 [f3,c4,f4]@13 ~@3 [e3,b3,e4]@18 ~@2 a3!2 ~ [f3,c4,f4]@2 ~@2 [g3,d4,g4]@4 ~@2, ~@67 [e3,e4]@3 ~@10]/5", // G#m Fdim A5 F5 E5 F5 G5 E
  K: "[~@7 [g#3,b3,g4]@2 ~@2 [g#3,b3,f4]@2 ~@2 [e3,a3,e4]@14 ~@2 [f3,c4,f4]@13 ~@3 [e3,b3,e4]@16 ~, ~@15 f3 ~@48]/4", // G#m Fdim A5 F5 E5
  L: "[~@7 [g#3,b3,g4]@2 ~@2 [g#3,b3,f4]@2 ~@2 [e3,a3,e4]@14 ~@2 [f3,c4,f4], ~@15 f3 ~@16]/2", // G#m Fdim A5 F5
  M: "[[f3,c4,f4]@12 ~@3 [a3,c4,a4]@16 ~]/2", // F5 Am
})).s("gm_acoustic_guitar_steel").gain(0.16)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@8 A B C A D E F B G A@2 B C A D E F B G A ~@24 A B C A D E F B G A ~@24 A B C A D E F B G A ~@40
>`.pickRestart({
  A: "~@4 e3@11 ~, ~@4 a4@3 ~@9", B: "~@4 d3@11 ~, ~@4 a4@3 ~@9", C: "~@4 e3@11 ~, ~@4 g#4@3 ~@9", D: "~@4 a4@3 ~@9",
  E: "~@4 f#4@3 ~@9", F: "~@4 f#3@11 ~, ~@4 a4@3 ~@9", G: "~@4 e3@11 ~, ~@4 b4@3 ~@9",
})).s("gm_acoustic_guitar_steel").gain(0.1)

// bass · slap bass 2 · "SLAPBASS 2"
const bass = note(`<
  A@2 B@7 C D@2 C E@2 F C G@2 D C@3 H@3 C I J K L M N O P Q J R S M N T U V C T U W X T Y U D@2 C@3 H@3 C I J K L M N O
  P Q J R S M N T U V C T U W X T Y U D@2 C@3 H@3 C I J K L M N O P Q J R S M N T U V C T U W X T Y V C T U W X T Y V C
  T U W X T Z@2
>`.pickRestart({
  A: "[a1@3 ~ a1@3 ~ a1@3 ~ a1@3 a2@5 a1@3 ~ a1@3 ~ a1@2 ~ g1]/2",
  B: "[a1@3 ~ a1@3 ~ a1@3 ~ a1@3 a2@5 a1@3 ~ a1@2 ~@2 a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 a2@5 a1@3 ~ a1@2 ~@2 a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 a2@5 a1@3 ~ a1@2 ~@2 a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 g1, ~@31 g1@2 ~@30 g1@2 ~@30 g1@2 ~@15]/7",
  C: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~", D: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 g1",
  E: "[a1@3 ~ a1@3 e1@5 e1@3 f#1@4 ~ f#1@3 ~ f#1@3 ~ f#1@3 ~]/2", F: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 g1",
  G: "[a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@3 g1, ~@11 b1@2 ~@2 b1@2 ~@15]/2",
  H: "[a1@3 ~ a1@3 e1@5 e1@3 f#1@4 ~ f#1@3 ~ f#1@3 ~ f#1@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~ g1, ~@31 c2@2 ~@15]/3",
  I: "a1@2 ~@2 a1@3 c#2@4 ~ f#2@3 e2, ~@11 e2@2 ~@3", J: "a1@3 ~ a1@3 ~ b1@3 ~ b1@3 ~",
  K: "c2@3 ~ c2@3 ~ e2@2 ~@2 e2@3 ~", L: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 f1",
  M: "g1@2 ~@2 g1@3 ~ c2@3 ~ b2@4, ~@7 b1@2 ~@2 c3@2 ~@3", N: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  O: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 e2", P: "f2@3 ~ f2@3 ~ f2@3 ~ f2@2 ~ f2", Q: "g2@3 ~ g2@3 ~ g2@3 ~ g2@3 ~",
  R: "c2@3 ~ c2@3 ~ e2@3 ~ e2@2 ~ e2", S: "g1@3 ~ g1@3 ~ g1@3 ~ g1@3 ~", T: "d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~ d2",
  U: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~", V: "e2@3 ~ e2@3 ~ e2@3 ~ e2@2 ~ e2", W: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 g1",
  X: "a1@3 ~ a1@3 ~ a1@3 ~ a1@3 c2", Y: "e2@3 ~ e2@3 ~ e2@3 ~ e2@2 ~ d2",
  Z: "[a1@3 ~ a1@3 ~ a1@3 ~ a1@2 ~ a1@3 ~@14]/2",
})).s("gm_slap_bass_2").gain(0.36)

// chords · piano · "HONKY TONK"
const piano = note(`<
  A@8 B@5 C@5 B@5 D@5 E@2 F@2 G@2 H@4 F@2 G@2 I@3 J K@6 B@5 D@5 E@2 F@2 G@2 H@4 F@2 G@2 I@3 J K@6 L@5 M@5 E@2 F@2 G@2
  H@4 F@2 G@2 I@3 J N@5 O@2 J N@5 O@2 J P@3 J Q@2
>`.pickRestart({
  A: "[[a3,a4,c5]@14 ~ [a3,d4,f4,a4,c5]@15 ~ [a3,g#4,b4]@23 ~ [c4,f4]@3 ~ [d4,g4]@5, e4@12 ~@19 e4@21 ~@12]/4", // Am Dm7 E F5 G5
  B: "[[a2,e3,a3,c#4]@11 ~@4 [f#3,a3]@11 ~@2 a2@3 b3@3 d4@3 ~@2 [g#3,b3]@7 ~ [e3,a3,c#4]@11 ~ [e3,a3,c#4] a2@3 [f#3,a3,d4]@16 a2, ~@11 [e3,a3,c#4]@2 ~@14 [f#3,a3,d4]@2 ~@2 e3@15 ~@34, ~@12 a2@9 ~@10 g#3@8 ~@41]/5", // A F#m G#m A D A D
  C: "[~@3 [a3,d4] a2@3 [e3,g#3,b3]@3 ~ g#3 g#3@2 ~@2 [f#3,a3,c#4]@10 ~ [f#3,a3,c#4] f#2@2 ~ [d2,f#3,a3]@11 ~ [f#3,a3]@4 ~@24 [e3,a3,b3]@3 ~ [e3,a3,b3]@4 ~, ~@3 f#3@2 ~@2 e2@7 f#2@13 ~@15 [d2,d4]@4 ~ a2@16 a2@17, ~@11 [e3,b3]@4 ~@15 d4@11 ~@7 [e3,a3]@21 ~@11, ~@48 c#4@19 ~@13]/5", // D5 E F#m D F#m Esus4 D E5 …
  D: "[~@3 [a3,d4] a2@2 ~ [e3,g#3,b3]@3 ~ g#3 g#3@2 ~@2 [f#3,a3,c#4]@10 ~ [f#3,a3,c#4] f#2@2 ~ [d2,f#3,a3]@11 ~ [f#3,a3]@4 ~@24 [e3,a3,c#4]@3 ~ [e3,a3,c#4]@4 ~, ~@3 f#3@2 ~@2 e2@7 f#2@13 ~@15 [d2,d4]@4 ~ a2@16 a2@17, ~@11 [e3,b3]@4 ~@15 d4@11 ~@7 [e3,a3]@21 ~@11, ~@48 c#4@19 ~@13]/5", // D5 E F#m D F#m A D E5 …
  E: "[~@4 [c4,e4]@2 ~ a3@4 ~ c4@2 ~ [a3,c4]@4 ~ [c4,e4]@2 ~ [a3,c4]@4 ~ [a3,c4]@3 a2, ~@3 a2@7 ~ a2@5 ~@3 a2@5 ~@3 a2@2 ~@3, ~@12 a3 ~@7 a3 ~@11]/2", // C Am C Am
  F: "[g2@4 [g3,b3,e4]@2 ~ [g3,b3]@4 ~ [g3,b3,d4]@2 ~ [g3,b3]@4 ~ [g3,b3,d4] ~@2 [g3,b3,d4]@4 ~ [g3,b3,e4]@3 d4, ~@4 d4@7 g2@2 ~@2 d4 ~@3 g2@4 ~@4 g2@3 ~@2]/2", // Em G Em
  G: "[~@4 [f3,a3,c4,e4]@2 ~ [f3,a3,c4]@4 ~ [f3,a3,c4] ~@2 [f3,a3,c4,e4]@4 ~@4 [f3,a3,c4]@4 ~ [f3,a3,c4]@3 d2, d2@6 ~@5 d2@5 ~@3 d2@6 ~@2 d2@2 ~@3]/2", // Fmaj7 F Fmaj7 F
  H: "[[f3,a3,c4]@4 ~@3 [f3,a3,c4] ~@3 [f3,a3,c4]@4 ~ g2@4 ~@3 [g3,b3,d4] ~@3 [g3,b3,d4]@3 ~ [a3,c4,e4]@4 ~ [c4,e4]@2 ~ a3@4 ~ c4@2 ~ [a3,c4]@4 ~ [c4,e4]@2 ~ [a3,c4]@4 ~ [a3,c4]@3 a2, e4@15 ~ [g3,b3,d4]@6 ~@22 a3 ~@7 a3 ~@11, f2@3 ~ f2@8 ~@3 f2@2 ~@3 g2@9 ~@6 a2@7 ~ a2@5 ~@3 a2@5 ~@3 a2@2 ~@3]/4", // F G Am C Am C Am G
  I: "[~@4 e2@4 [e3,g#3,b3]@3 ~@4 [e3,g#3,b3]@4 ~@4 [g#3,d4,e4,g4]@2 ~@2 [g#3,d4,e4,g4]@4 [a3,c4]@5 a2@6 ~ [a2,a3,c4,e4]@5, ~@11 e2@7 ~ e2@12 e4@8 ~@9]/3", // E E7 Am
  J: "~@7 [c4,d4]@4 ~ [c4,d4]@4, ~@4 d2@6 ~ d2@5, ~@7 [f3,a3]@8 ~", // Csus2 F
  K: "[~@3 b3 ~@3 [g#3,b3]@4 ~ g#3 ~@2 [e3,g#3,b3]@4 ~@4 [g#3,d4,e4] ~@3 [g#3,d4,e4,g4]@4 [a3,c4]@5 [a2,c4]@5 ~@2 [a3,c4] ~@3 [f3,a3,c4]@5 ~@3 [f3,a3]@4 ~ a3 ~@6 e2@7 ~ [g#3,b3] ~@3 [e3,g#3,b3]@4 ~@3 [a3,c4] e2@3 ~ g2@4 ~, e2@10 ~ e2@4 ~@4 e2@10 ~@14 a2@6 ~@3 d2@6 ~ d2@7 ~@9 e2@8 ~@13, ~@7 e3@3 ~@21 e4@13 ~@3 d4@12 c4@3 ~@2 [e3,g#3]@9 ~@2 e3@2 ~@19, ~@64 b3@6 ~@16 f4@2 ~@2 [b3,d4,g4]@5 ~]/6", // G#m E E7 Am F G#m E Am …
  L: "[[a2,e3,a3,c#4]@11 ~@4 [f#3,a3]@11 ~@2 a2@3 [g#3,b3]@8 [g#3,b3]@7 ~ [e3,a3,c#4]@11 ~ [e3,a3,c#4] a2@3 [f#3,a3,d4]@16 a2, ~@11 [e3,a3,c#4]@2 ~@14 [f#3,a3,d4]@2 ~@2 e3@15 ~@34, ~@12 a2@9 ~@59]/5", // A F#m G#m A D A D
  M: "[~@3 [a3,d4] a2@2 ~ [e2,e3,g#3,b3]@7 ~@2 [f#3,a3,c#4]@10 ~ [f#3,a3,c#4] f#2@2 ~ [d2,f#3,a3]@11 ~ [f#3,a3]@4 ~@24 [e3,a3,c#4]@3 ~ [e3,a3,c#4]@4 ~, ~@3 f#3@2 ~@9 f#2@13 ~@3 d4@11 ~ [d2,d4]@4 ~ a2@16 a2@17, ~@48 [e3,a3]@21 ~@11, ~@48 c#4@19 ~@13]/5", // D5 E F#m D F#m A D A5
  N: "[~@3 b3 ~@3 [g#3,b3]@4 ~ g#3 ~@2 [e3,g#3,b3]@4 ~@4 [g#3,d4,e4] ~@3 [g#3,d4,e4,g4]@4 [a3,c4]@5 [a2,c4]@5 ~@2 [a3,c4] ~@3 [f3,a3,c4]@5 ~@3 [f3,a3]@4 ~ a3 ~@6 e2@7 ~ [g#3,b3] ~@3 [e3,g#3,b3], e2@10 ~ e2@4 ~@4 e2@10 ~@14 a2@6 ~@3 d2@6 ~ d2@7 ~@9 e2@4 ~, ~@7 e3@3 ~@21 e4@13 ~@3 d4@12 c4@3 ~@2 [e3,g#3]@9 ~@2 e3@2 ~@3, ~@32 b3@3 ~@5]/5", // G#m E E7 Am F G#m E
  O: "[[e3,g#3,b3]@3 ~@4 [g#3,d4,e4,g4]@2 ~@2 [g#3,d4,e4,g4]@4 [a3,c4]@5 a2@6 ~ [a2,a3,c4,e4]@5, e2 ~@2 e2@12 e4@8 ~@9]/2", // E E7 Am
  P: "[~@3 b3 ~@3 [g#3,b3]@4 ~ g#3 ~@2 [e3,g#3,b3]@4 ~@4 [g#3,d4,e4] ~@3 [g#3,d4,e4,g4]@4 [a3,c4]@5 [a2,c4]@5 ~@2 [a3,c4] ~@3 [f3,a3,c4,d4], e2@10 ~ e2@4 ~@4 e2@10 ~@14 a2@4 ~, ~@7 e3@3 ~@21 e4@13 ~@4]/3", // G#m E E7 Am Dm7
  Q: "[~@3 c4 ~@3 [a3,b3]@4 ~ a3 ~@2 [c3,e3,a3]@4 ~@13, a1@10 ~ a1@4 a1 ~@16, ~@7 e3@3 ~@22]/2", // Asus2 Am
})).s("gm_piano").gain(0.29).pan(0.4)

// chords · piano · "HONKY TONK" · soft notes
const piano_soft = note(`<
  ~@8 A@2 B ~@7 A@2 B ~@7 C ~@4 D ~@2 C ~@4 D E ~ F ~ G@2 H I J ~ A@2 B ~@7 C ~@4 D ~@2 C ~@4 D E ~ F ~ G@2 H I J ~ A@2
  B ~@7 C ~@4 D ~@2 C ~@4 D E ~ F ~ G@2 H I J ~ F ~ G@2 H I J ~ F ~ G@2 H ~ K ~
>`.pickRestart({
  A: "[~@15 d4@11 ~@6]/2", B: "~@12 a2@3 ~", C: "~@7 c4@4 ~@5", D: "~@4 [f3,a3] ~@11", E: "e2@3 ~@9 [e3,g#3,b3] ~@3",
  F: "~@4 [a3,c4] ~@3", G: "[e3 ~@2 [e3,g#3] ~@8 b3@2 ~ e2@2 ~@15, ~@11 e3@3 ~@18]/2", H: "~@4 a3@5 ~@7",
  I: "~@11 f3@2 ~@3", J: "~@7 b3@3 ~@6", K: "e3 ~@2 [e3,a3] ~@8 b3@2 ~@2, ~@11 e3@3 ~@2",
})).s("gm_piano").gain(0.08).pan(0.4)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note("<~@86 A B C D@7 ~@40>".pickRestart({
  A: "a2@4 [c3,c#3]@2 ~@3 f#3@2 ~ a3@2 ~@2, ~@7 a2@2 ~@7, ~@4 e3 ~@3", B: "b3@4 a3@2 ~@2 a3@5 ~@3, ~@7 f#3@3 ~@6",
  C: "~ f#3@2 ~ a3@2 ~@2 b3@4 a3@2 ~ f#3, e3 ~@7",
  D: "[a3@2 ~@2 a3@7 ~ a3 ~@2 a3@3 f#4 ~@5 f#4@6 a3@4 [b3,g#4]@2 ~@4 g#4@6 ~ c4@4 [c#4,a4]@2 ~@3 a4@7 c#4@3 [d4,b4]@2 ~@4 b4@7 d#4@4 [e4,c#5] [d4,b4]@4 [c#4,a4]@6 ~ d#4@4 [e4,c#5] [d4,b4]@4 a4@2 ~ f#4 e4@2 ~@2, ~@23 a3@6 ~@10 b3@7 ~@8 c#4@6 ~@10 d4@9 ~@9 a#4 ~@23]/7", // E F#m G C#m G F#m C#m G
})).s("gm_distortion_guitar").gain(0.33)

// other · pad bowed · "BOWEDGLASS"
const pad_bowed = note(`<
  ~@8 A B C D E@2 B D F@2 A B C D E@2 B D F@2 ~@24 A B C D E@2 B D F@2 ~@24 A B C D E@2 B D F@2 ~@40
>`.pickRestart({
  A: "e4", B: "f#4", C: "g#4", D: "a4", E: "[f#4@22 ~ e4@9]/2", F: "[a4@15 ~]/2",
})).s("gm_pad_bowed").gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
  A@3 B A@7 C D C D A@13 C@3 E C@4 E C E@13 D@2 C D A@7 C E C E C@3 E@3 C E C E C E@2 C E@4 C@2 A@10 C@6 E C@3 E@3 C E C
  E@4 C E C@2 E@4 C E C@2 E@4 C@2 E ~
>`.pickRestart({
  A: "x!2", B: "x ~@6 x ~@8", C: "x ~@7 x ~@6 x", D: "~ x", E: "~@8 x ~@6 x",
})).gain(0.26)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@31 A ~@4 A ~@5 A@5 ~@5 A ~@12 A ~@5 A ~ A ~ A ~@2 A ~@3 A@2 ~@22 A@2 ~@4 A ~ A@2 ~@4 A ~ A@2 ~@4 A ~ A@2 ~@2 A ~
>`.pickRestart({
  A: "x",
})).gain(0.07)

// drums · snare
const snare = s("sd").struct("<A@3 B A@27 B A@18 C A@8 B A@46 C A@8 B A@7 B A@7 B A@2 D ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x ~@4", C: "~@3 x ~@8 x ~@3", D: "~@4 x ~@6 x!2 ~@3",
})).gain(0.33)

// drums · low tom
const low_tom = s("lt").struct("<~@28 [~@3 x]!24 ~@10 [~@3 x]!24 ~@10 [~@3 x]!39 ~>").gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 [~@3 x]!24 ~@10 [~@3 x]!24 ~@10 [~@3 x]!39 ~>").gain(0.26)

// drums · open hat
const open_hat = s("oh").struct("<A@8 B A@19 B A@23 B A@9 B A@23 B A@9 B A@38 ~>".pickRestart({
  A: "x!4", B: "~ x!3",
})).gain(0.19)

// drums · crash
const crash = s("cr").struct("<~@8 A ~@19 A ~@23 A ~@9 A ~@23 A ~@9 A ~@37 B ~>".pickRestart({
  A: "x", B: "~@15 x",
})).gain(0.33)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, bass, piano, piano_soft, distortion_guitar, pad_bowed, kick,
  kick_soft, snare, low_tom, mid_tom, open_hat, crash
)

More by Elton John