Strudelify
Are You Lonesome Tonight cover art

1960 · Stuck On You

Are You Lonesome Tonight

Elvis Presley

KeyG majorTempo66 bpm
0:00/0:00
// Are You Lonesome Tonight — Elvis Presley
// 66 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(66/3)

// 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.

// other · piano · "Combined Tracks"
const piano = note("<~@4 A B C@2 D@2 E ~@68>".pickRestart({
  A: "~@4 e4 g4", B: "c5@2 b4@3 c5", C: "[b4@16 e4@4 g4@3 b4@8 a4@13 b4@4]/2", D: "[a4@16 e4@4 g4@3 a4@9 g4@12 a4@4]/2",
  E: "g4@2 f4@3 e4",
})).s("gm_piano").gain(0.07)

// other · soprano sax · "Combined Tracks"
const soprano_sax = note(`<
  ~@12 A B@2 C D E F G@2 H I J K L M N@2 O P Q R@2 S T@2 O U V W ~@3 A O X Y W ~@3 Z H I AA AB ~@3 AC O AD AE AF ~@3 AC
  AG AH@2 AI@2 AJ AK@2 ~@2
>`.pickRestart({
  A: "~@4 f4 a4", B: "[c5@8 b4@10 c5@5 b4@15 ~@2 f4@4 g4@4]/2", C: "b4@8 a4@10 ~ a4@2 b4@3", D: "a4@4 d4 e4",
  E: "f4@8 g4@11 a4@5", F: "c5@7 b4@13 g4@4", G: "[e4@19 ~ g4@2 a4@2]/2", H: "a#4 a4 g4", I: "c5@2 a4@3 c5",
  J: "g4@2 f4@3 e4", K: "f4@15 a4@5 b4@4", L: "c5 b4 a4", M: "d5@2 b4@3 d5",
  N: "[a4@8 g4@10 f#4@5 g4@16 ~ e4@5 g4@3]/2", O: "c5@2 b4@3 c5", P: "b4@14 ~ b4@5 c5@4", Q: "e5@2 d5@3 e5",
  R: "[d5@18 g#4@3 a4@4 c5@14 b4@5 a4@4]/2", S: "b4@2 c5@3 d5", T: "[c5@8 ~@2 e4 g4]/2", U: "b4@3 ~ e4 g4",
  V: "b4@2 a4@3 b4", W: "a4 ~", X: "b4@3 ~ f4 g4", Y: "b4@2 a4@8 a4 b4", Z: "~@4 g4 a4", AA: "g4@2 f4@2 ~ e4",
  AB: "f4@2 ~", AC: "~@4 e4 g4", AD: "b4@3 ~ b4 c5", AE: "e5@2 d5@3 c5", AF: "a4@2 ~", AG: "c5@17 ~ b4@3 c5@3",
  AH: "[b4@14 ~ b4@5 c5@3 e5@9 d5@11 e5@5]/2", AI: "[d5@16 g#4@4 a4@3 c5@16 b4@5 a4@4]/2", AJ: "~ b4@7 c5@8 d5@8",
  AK: "[c5@3 ~]/2",
})).s("gm_soprano_sax").gain(0.08)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C B C D E@2 F C G@2 H B@3 H B F I F@2 G@2 A@3 B F D A@3 B F B F D E@2 F@2 G@2 B J B@2 J B F@4 G@2 A@2 K B F D
  A@3 B F B I D A@3 ~@5
>`.pickRestart({
  A: "d2@7 ~", B: "g2@7 ~", C: "c2@19 ~@5", D: "e2@7 ~", E: "a2@7 ~", F: "c2@11 ~", G: "f2@11 ~", H: "g2@6 ~ d2",
  I: "c2@7 ~", J: "g2@20 ~ d2@3", K: "d2@11 ~",
})).s("gm_electric_bass_finger").gain(0.37)

// chords · piano
const piano_2 = note(`<
  A B@4 C D@3 E@2 F G@5 H@6 I@4 J K@3 L@3 M@2 N@7 O P@6 Q@3 R@2 S T@4 U@3 L@3 M@2 V@3 W@3 X@2 Y@2 ~
>`.pickRestart({
  A: "~@13 c5@3 d5@5 e5@3",
  B: "[~@16 g4@5 ~@16 b4@3 [b3,c5]@5 ~@19 [c5,e5]@3 b4@2 ~@19 b3@5 d4 ~@2, [g3,d5]@23 ~ g3@22 ~@2 [g3,c4]@20 ~@4 g3@5 d4@8 g3@8 ~@3, ~@5 d4@14 ~@2 d4@8 b3@3 d4@14 ~@7 e4@3 g4@12 ~ a4@21 ~@6, ~@8 g4@8 ~@8 [g4,f5]@14 ~@10 c5@13 e4@6 ~@5 g4@18 ~@6, ~@13 b4@24 ~@8 d5@22 ~@5 d4@3 b3@5 [f4,d5]@16]/4", // Cmaj7 C G5 C5 G7 Dm
  C: "~@5 g4@3 ~@8 e5@3 e4@2 g4@3, [g3,c4]@19 ~@5, e4@13 e4@5 ~@6, ~@8 g4@11 ~@5, ~ e5 c5", // C5
  D: "[~@29 a4@3 [a4,e5]@5 ~@6 c4@2 ~@3 e4@5 ~@14 c4@2 [g4,e5]@3, [g3,b3]@21 b4@16 e5@11 [a4,e5]@5 e4@3 g4@3 c4@2 [a4,e5]@9 ~@2, ~@3 e4@8 ~@2 e4@9 ~@2 e4@13 a4@3 a3@8 a3@21 ~@3, ~@5 g4@11 g4@28 ~ b4@19 e4@5 ~@3, ~@8 b4@8 e5@8 a3@5 c4@8 c5@30 ~@5]/3", // A5 C G A5
  E: "[~@5 g4@3 ~@35 c4@2 e5@2 ~, [g3,e4]@19 e4@5 ~@3 c4@5 [a#4,e5]@13 g4 ~@2, c4@13 [c4,d5]@7 ~@4 [g3,e4]@16 [g3,e4]@6 ~@2, ~@8 [g4,e5]@12 ~ g4@8 g4@8 [c4,g4]@7 ~@4, ~@4 c5@7 ~]/2", // C A#dim Csus2 C C5
  F: "~@16 [f4,c5]@3 ~@2 g4@3, [f3,a4]@11 ~, c5@13 c4@7 ~@4, c4@8 f4@8 ~@5 c5 ~@2, ~@8 a3@11 a3@4 ~", // F5 F
  G: "[~@37 g4@3 [g4,d5]@3 b3@2 ~@19 g4@3 d4@2 ~@19 [b4,d5]@3 d4@2 ~@22 d4@2 [g4,b4,d5]@3, [f3,a4]@16 [f4,c5]@19 d4@11 ~@7 b3@16 g4@3 d4@8 [b4,d5]@5 d4@3 a4@28 ~@4, ~@3 c4@5 f4@5 c4@6 ~@5 d4@3 b3@16 ~@2 d5@11 [g4,d5]@8 d5@11 b3@18 ~@3 g4@5 b3@8 d4@3 b3@5 ~@3, ~@5 g4@14 ~@2 a4@8 g4@3 b4@11 ~@2 b4@16 b4@6 ~@2 b4@8 g4@14 ~@2 [b4,d5]@11 [g4,b4,d5]@12 ~@4, ~@8 a3@11 ~@5 g3@21 ~@3 [g3,d4]@21 ~@3 g3@24 [g3,d4]@13 g3@9 ~@2]/5", // G5 Bm G F F5 Bm G5 Bm …
  H: "[~@16 g4@3 d4@2 ~@43 c5@3 ~@26 e4@3 ~@8 e5@5 d5@3 [a#4,d5]@3 ~@2 g4@3 ~@8 e5@5 e5@3 [g4,c5,e5]@5 e4 ~@2, [g3,f4,b4]@22 ~@2 [g3,d4]@21 ~@3 g3@24 [g3,c4]@22 ~@2 g3@46 ~@2, d5@16 d5@16 f4@8 g4@8 [c4,e4]@5 g4@11 d5@13 e4@3 d5@3 e4@9 ~@4 e4@16 c4@8 [g4,e5]@5 e4@13 ~@6, ~@5 b3@8 b3@8 ~@8 b3@3 d5@5 b3@8 d4@22 e4@5 e5@8 e5@5 d5@3 g4@11 c4@2 g4@3 a#4@5 [g4,e5]@6 e4@5 a#4@8 [g4,c5]@5 [c4,a#4]@7 ~@4, ~@8 d4@11 ~@2 b4@19 d5@16 c5@5 [c4,e4]@7 ~ g4@8 g4@8 c5@30 ~@5 a#3@21 ~@3]/6", // A# C G7 G5 C5 C C5 C7 …
  I: "[~@16 g4@5 ~@24 a3 ~@7 f#4@3 ~@8 [f#4,a4,d5]@3 ~@2 [f#4,d5]@3 ~@16 [a3,a4,d5]@5 d4@3, [f3,a4]@21 ~@3 [f3,a4]@21 ~@3 a3@27 a3@5 d5@5 c5@6 ~@5, c5@13 f4@3 c5@3 ~@5 c5@8 g4@8 f4@28 ~@4 d5@5 a4@11 ~@8, ~@5 a3@16 ~@8 a3@11 c5@8 [f#3,d4]@21 ~@3 [f#3,f#4]@21 ~@3, ~@8 c4@11 ~@2 f4@11 c5@5 c4@6 ~@2 a4@11 [f#4,d5]@5 c5@6 d4@10 d4@14 ~@5]/4", // D D5 F D F# D
  J: "~@16 [a3,a4]@5 [d4,f#4] ~@2, f#3@11 ~, d4@8 [f#4,d5]@11 ~@5, f#4@5 a4@8 [d4,c5]@6 ~@5, ~@3 a3@13 ~@8", // A D D7
  K: "[~@16 [b3,b4]@4 ~ d4 ~@18 e5@5 ~@19 [g4,e5]@3 e4@2 b4@2 ~, [g3,g4]@21 ~@3 [g3,c4,e4]@13 [g3,c4,e4]@9 ~@2 [g3,b3]@20 ~@4, d4@13 d4@6 ~@5 g4@16 g4@13 e4@13 ~@6, d5@8 [b4,d5]@8 [a4,d5]@27 ~@5 b4@8 g4@5 b4@7 ~@4, ~@5 b3@11 ~@16 c5@11 ~@2 c5@23 ~@4]/3", // B C G C G Bm D5
  L: "[~@19 d4@2 ~@11 f4@5 f4@3 f4@3 d4@2 ~@11 [f4,d5]@5 [f4,d5]@3 [f4,a4,d5]@3 d4@2 [f4,d5] ~@2, [f3,a3]@11 ~ [f3,d4]@10 ~@2 [f3,d4]@10 ~@2, f4@8 f4@5 f4@7 ~@4 f4@5 a3@15 ~ f4@8 a3@15 ~@4, ~@5 d4@11 d5@16 d5@5 c5@3 d5@16 ~@5 c5@6 ~@5, ~@11 a4@9 ~ a4@19 a4@24 ~@8]/3", // Dm F Dm
  M: "[~@29 g4@3 ~@8 c5@3 b4@2 a4 ~@2, [g3,b4]@21 ~@3 [g3,c4,e4]@8 c5@5 [g3,c4,e4]@8 ~@3, d4@8 d5@5 d4@3 [f4,d5]@28 ~@4, d5@8 g4@11 ~@13 [g4,a#4]@12 ~@4, ~@5 b3@14 ~@2 d4@22 ~@5]/2", // G C Dm Gm
  N: "[~@16 a4@5 ~@8 g4@3 ~@8 [g4,d5,e5]@3 [c4,e4]@2 g4@2 ~@17 e4@3 ~@21 a4@3 c4@2 ~@8 a4@3 ~@5 a4@3 a4@3 c4@2 ~@8 g4@3 ~@8 [g4,e5]@4 ~ g4@3 ~@5 c4@3 ~@11 e4@2 g4 ~@2, [g3,d4]@21 ~@3 g3@20 ~@4 g3@20 ~@4 [a3,e4]@5 a4@3 c5@5 a3@11 a3@21 ~@3 [g3,c4,e4]@8 g4@5 [g3,c4,e4]@9 ~@2 g3@8 [g3,c4,e4]@13 ~@3, g4@8 d5@32 ~@5 c5@19 [g4,e5]@21 e4@8 a4@6 c4@5 a4@3 e4@10 ~@11 c5@12 ~ c5@22 ~@5, ~@5 b3@16 ~@3 [c4,e4]@13 [c4,e4]@5 ~@6 [b3,b4]@8 g4@3 b3@10 ~@6 c4@13 d5@5 ~@3 e4@8 e5@8 d5@28 ~@4 g4@13 g4@6 ~@5, ~@8 g4@5 b4@8 g4@8 ~@3 [g4,e5]@8 ~@8 g4@5 e4@8 b4@6 ~@2 b4@22 ~@2 c5@22 ~@2 a4@23 ~@4 [a#4,e5]@16 [a#4,e5]@6 ~@2]/7", // Em7 C G5 A5 C B C A#dim
  O: "~@16 c4@5 f4@2 ~, f3@11 ~, c4@13 a4@6 ~@5, a4@2 [f4,g4,c5]@3 ~, c5@5 a3@14 ~@5", // Fsus2
  P: "[~@19 c4@2 ~@19 g4@3 b3@2 ~@8 d5@3 ~@11 d4@2 ~@16 b4@3 ~@5 d4 ~@18 g4@5 ~@11 g3@5 ~@6 d4@2 f4 ~@2, [f3,c5]@20 ~@4 g3@21 ~@3 g3@21 ~@3 [g3,d4]@21 ~@3 g3@29 b3@8 g3@9 ~@2, a4@16 a4@5 [f4,c5]@16 d4@8 g4@3 d4@5 g4@3 f4@5 d5@19 [g4,d5]@8 [g4,d5]@13 b3@3 g4@5 b4@31 ~@4, a3@13 [a3,f4]@7 ~@7 b3@2 g4@6 b3@5 d5@11 b3@5 d5@3 d4@2 g4@3 b3@5 g4@11 b3@12 ~@4 d4@21 d4@11 d4@8 b3@5 ~@3, ~@8 c4@11 ~@5 d4@8 b4@11 b4@24 b4@18 ~@3 b4@16 d5@15 ~ [f4,d5]@21 ~@3]/6", // F5 G5 F5 G5 Dm
  Q: "[~@19 d4@2 ~@8 g4@3 ~@8 [g4,e5]@3 ~@10 g4@3 ~@11 e4@2 g4@3, [g3,g4]@16 [g3,b3,a4]@6 ~@2 [g3,c4,e4]@13 [g3,c4,e4]@11 e4@19 ~@5, d5@13 [b4,d5]@9 ~@10 c5@11 c5@13 [g4,c5,e5]@12 ~@4, ~@5 b3@11 ~@5 g4@8 ~@3 g4@8 ~@5 g4@3 g3@13 g3@11, ~@8 d4@8 ~@5 d5@21 ~@6 c4@16 c4@5 ~@3]/3", // C G C Bm C
  R: "[~@13 c4@3 ~@5 g4@3 ~@16 [a#3,c4,a#4,e5]@5 g4@2 ~, e5@19 ~@5 [g4,a#4,e5]@8 [g4,a#4,c5,e5]@8 [g4,c5]@3 ~@5, g3@2 [g3,c4] [a#3,c4]@2 ~, c4@8 [g4,c5]@11 ~@5 g3@13 g3@9 ~@2, [g4,c5]@5 e4@11 e4@13 e4@8 e4@6 ~@2 e4 ~@2]/2", // C7 Edim C7 C5 A#sus2 C5
  S: "~@13 f3@3 ~@3 a3@2 f4@2 ~, [a4,c5]@5 ~, c4@8 [f3,c4]@3 ~, f3@2 f4@3 ~, ~@5 a3@13 ~@6", // Am F5
  T: "[~@16 f4@3 ~@10 f#4@3 f#4@5 ~@27 f#4@3 a3@2 f#4@3 ~@5 [d4,f#4]@3 ~@8 [f#4,d5]@3 [f#3,d4]@2 [f#4,d5] ~@2, [f3,a4]@20 ~@4 [f#3,d4]@21 ~@3 [f#3,d4]@21 ~@3 f#3@8 f#3@11 ~@5, c5@16 c5@11 a3@5 d5@35 ~@2 a4@14 [a3,c5]@9 ~@4, c4@13 c4@6 a4@18 [f#4,c5]@3 a3@5 f#4@8 a3@11 c5@16 [f#4,d5]@8 ~@8, ~@8 a3@12 ~ f4@22 a4@13 f#4@5 a4@6 d4@5 [d4,f#4]@3 a3@5 d4@5 [d4,a4]@6 ~@5]/4", // D F D Am F#dim D D5
  U: "[~@13 d5@3 [g4,d5]@3 [g3,b3,d4]@2 ~@19 e5@5 ~@19 [g4,e5]@3 e4@2 b4@2 ~, g3@19 ~@5 [g3,c4,e4]@13 [g3,c4,e4]@9 ~@2 [g3,b3]@20 ~@4, d4@8 [b4,d5]@3 d4@8 ~@2 g4@19 g4@13 e4@13 ~@6, d5@5 g4@8 [a4,b4]@6 ~@2 d5@22 ~@5 b4@8 g4@5 b4@7 ~@4, g4@3 b3@16 ~@13 c5@11 ~@2 c5@23 ~@4]/3", // G5 G C G Bm Asus2
  V: "[~@16 a4@5 ~@8 g4@3 ~@21 g4@3 ~@5 e5@3 [g4,e5]@3 e4@2 [g4,e5]@3, [g3,d4]@21 ~@3 [g3,c4]@20 ~@4 g3@20 ~@4, g4@8 d5@29 ~@3 c5@28 ~@4, ~@5 b3@16 ~@3 e4@13 [e4,d5]@8 ~@3 [b3,e4]@8 e5@3 [b3,e4]@8 b3 ~@4, ~@8 g4@5 b4@8 g4@8 ~@3 [g4,e5]@11 ~@2 g4@8 ~@3 g4@5 b4@7 ~@4]/3", // C G5 C5 E7 E5 C
  W: "[e4@2 ~@11 f4@3 f4@3 ~@10 f4@3 [f4,d5]@5 [f4,d5]@3 f4@3 [f3,a3,d4]@2 ~@11 f4@5 [f4,c5]@3 [f4,a4,c5,d5]@3 d4@2 [f4,a4,d5] ~@2, f3@21 f4@3 [f3,a3,d4]@19 ~@5 [f3,d4]@21 ~@3, [a3,d4]@11 a3@10 a4@19 a4@7 ~@6 a3@16 ~@3, ~@5 f4@8 d4@6 c5@18 c5@6 ~@2 f4@11 ~@16, ~ a4 d5@2 ~ d5@2 d5 ~]/3", // Dm F5 Dm7 Dm D5
  X: "[[d4,f4,g4,b4,d5]@5 ~, g3@7 ~@17]/2", Y: "[~ b4, ~@7 g3@9, ~@23 [c4,e4,g4]@25]/2",
})).s("gm_piano").gain(0.56)

// chords · electric guitar jazz · "Guitar" · C5
const electric_guitar_jazz = note("<~@76 [e4 g4 a4 ~@7 e5 f5, ~@3 b4@7 ~@2, ~@2 g3] [[c3,g5]] ~>")
  .s("gm_electric_guitar_jazz").gain(0.38)

// chords · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  ~@9 A B C@2 D E F G@2 H I J K L M N O P@2 Q R S T U V W X@2 ~@3 Y Z AA AB@2 ~@3 AC AD AE AF@2 ~@3 AG AH AI AJ AK ~@3
  AL AM AN AO@2 R S T U V W AP@2 ~@2
>`.pickRestart({
  A: "[c4,c5]", B: "[c#4,a#4] [d4,a4] [e4,g4]", C: "[a3@4 f3 e3 d3@2 a2@4, [c4,f4]]/2", D: "[b2,d4,g4]",
  E: "g5 d5 g4, [d3,b4]", F: "d4 e4 f4, b2, g3@2 ~", G: "[g4 ~@2 [b2,g3]@3, [d3,b3] ~, ~ d4@5]/2",
  H: "d4 d#4@2, [b2,g3]", I: "[c3,e4]@2 e3@2 b3 a3, g3, ~ c4@2", J: "[g3,e4] [e3,g4]@2, c4", K: "a#4 c5 a#4",
  L: "a4 c5 a#4", M: "a4 c5 g4", N: "f4 e4 d4", O: "a4 d5 c5", P: "b4 d5 c5", Q: "b4 ~ [e4,c5], d4@2 ~, ~ g5@2",
  R: "[e3,c4,g4,e5,c6]", S: "[g3,c4,g4,e5,b5]", T: "[f3,c4,f4,d5,a5]", U: "[d3,a3,d4,a4,f5]", V: "f6 a5@2, [a3,f4,d5]",
  W: "[g3,d4,b4,g5]", X: "[[e3,g4,c5,c6]@5 ~]/2", Y: "~@4 e5 g5", Z: "a5@2 g5@3 a5, [g3,e4,c5]",
  AA: "g5 f5 e5, [g3,e4,a#4]", AB: "[f3,f4,c5,a5]/2", AC: "~@4 d5 e5", AD: "f5@2 g5@3 a5, [g3,d4,b4]",
  AE: "c6@2 b5@3 g5, [f3,d4,a4]", AF: "[g3,c4,g4,e5]/2", AG: "~@4 a5 b5", AH: "c6@2 b5@3 a5, [d4,a4,f#5]",
  AI: "d6@2 b5@3 d6, [d4,a4,f#5]", AJ: "a5@2 g5@3 f#5, [d3,f#4,c5]", AK: "[b2,d4,g4], g5@2 ~", AL: "~@4 g#5 a5",
  AM: "c6@2 b5@3 a5, [a3,f4,c5]", AN: "b5 c6 d6, [g3,d4,b4]", AO: "[[e3,c4,g4,c6]@5 ~]/2", AP: "[[e3,g4,c5]@5 ~]/2",
})).s("gm_string_ensemble_2").gain(0.27)

// drums · hihat
const hihat = s("hh").struct("<[~@4 x ~@2 x ~@8 x ~@7] [~ x!2]!73 [~ x ~]!3 ~@2>").gain(0.52)

// drums · open hat
const open_hat = s("oh").struct("<[~ x ~] ~@78>").gain(0.52)

stack(piano, soprano_sax, bass, piano_2, electric_guitar_jazz, string_ensemble_2, hihat, open_hat)

More by Elvis Presley