Strudelify
All Shook Up cover art

1997

All Shook Up

Elvis Presley

KeyB♭ majorTempo153 bpm
0:00/0:00
// All Shook Up — Elvis Presley
// 153 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "STEEL GTR" acoustic guitar steel (copy of ch 3 "JAZZ GTR" electric guitar jazz)
// note: Full arrangement: all 73 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(153/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 · "A.PIANO 1"
const piano = note(`<
  ~ A B C D A B C D A B E ~ F G H I A B C D A B E ~ F G H I J@2 K L J M N ~ A B C D A B E ~ F G H I J@2 K O J M P ~ A B
  C D A B E ~ F G H I F G H Q
>`.pickRestart({
  A: "bb1@3 ~ [bb1,f3,bb3,d4] ~ d2@4 [f3,bb3] ~ f2@4 [f2,f3,bb3,d4] ~ g2@4 [f3,bb3,d4] ~", // Bb Bb5 Bb
  B: "bb1@3 ~ [bb1,f3,bb3,d4] ~ d2@4 [f3,bb3,d4] ~ f2@3 ~ [f2,f3,bb3,d4] ~@5 [f3,bb3,d4] ~, ~@3 g2", // Bb
  C: "bb1@3 ~ [bb1,f3,bb3,d4] ~ d2@4 [f3,bb3,d4] ~ f2@4 [f2,f3,bb3,d4] ~ g2@4 [f3,bb3,d4] ~", // Bb
  D: "bb1@3 ~ [bb1,f3,bb3,d4] ~ d2@4 [f3,bb3,d4] ~ f2@4 [f3,bb3,d4] ~ g2@3 ~ [f3,bb3,d4] ~, ~@8 f2 ~@3", E: "bb1 ~@7",
  F: "eb2@4 [g3,bb3,c4,eb4] ~ g2@4 [g3,bb3,c4,eb4] ~ bb2@4 [g3,bb3,c4,eb4] ~ c3@4 [g3,bb3,c4,eb4] ~", // Cm7
  G: "f2@4 [a3,c4,eb4] ~ a2@4 [a3,c4]@2 c3@4 [a3,c4,eb4] ~ d3@4 [a3,c4,eb4] ~, ~@10 eb4 ~@13", // Adim Am Adim
  H: "bb2@4 [f3,bb3,d4] ~ g2@4 [f3,bb3,d4] ~ f2@4 [bb3,d4] ~ d2@4 [bb3,d4]@2, ~@16 f3@2 ~@4 f3 ~", // Bb
  I: "bb1@4 [f3,bb3] ~ d2@4 [f3,bb3,d4] ~ f2@4 [f3,bb3,d4] ~ g2@4 [f3,bb3,d4] ~, ~@2 d4 ~@9", // Bb5 Bb
  J: "eb2@4 [g3,bb3,c4,eb4] ~ g2@4 [g3,bb3,c4,eb4] ~ bb2@4 [g3,bb3,c4,eb4] ~ g2@4 [g3,bb3,c4,eb4] ~", // Cm7
  K: "bb1@4 [f3,bb3,d4] ~ d2@4 [f3,bb3] ~ f2@4 [f3,bb3,d4] ~ d2@4 [f3,bb3,d4] ~, ~@5 d4 ~@6", // Bb Bb5 Bb
  L: "bb1@4 [f3,ab3,bb3,d4] ~ d2@4 [f3,ab3,bb3,d4] ~ f2@4 [f3,ab3,bb3,d4] ~ d2@4 [f3,ab3,bb3,d4] ~", // Bb7
  M: "eb2@4 [g3,bb3,c4,eb4] ~ g2@4 [g3,bb3,c4,eb4] ~ bb2@4 [g3,bb3,eb4]@2 g2@5 ~, ~@16 c4 ~@7", // Cm7 Eb
  N: "[f3,a3,c4] ~@23, [f2,eb4] ~@7", O: "bb1@4 [f3,bb3,d4] ~ d2@4 [f3,bb3,d4] ~ f2@4 [f3,bb3,d4] ~ d2@4 [f3,bb3,d4] ~",
  P: "[f2,f3,a3,c4,eb4] ~@7", Q: "[bb1,f2,bb2]@2 ~ [bb1,f2,bb2] ~ [bb1,f2,bb2]@2 ~@5",
})).s("gm_piano").gain(0.33).pan(0.6)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B C D E@6 F ~ G H I J E@6 F ~ G H I K L M N@2 L O P ~ E@6 F ~ G H Q R L M N@2 L O P ~ E@6 F ~ G H Q R G H Q S
>`.pickRestart({
  A: "bb2@4 ~@2 g2@5 ~ f2@5 ~ g2@5 ~", B: "bb2@5 ~ g2@5 ~ f2@6 g2@6", C: "bb2@3 ~ bb2 ~ g2@5 ~ f2@5 ~ g2@5 ~",
  D: "bb2@5 ~ g2@6 f2@5 ~ g2@4 ~@2", E: "bb2@5 ~ ab2@3 ~ g2 ~ f2@6 g2@5 ~", F: "bb2 ~@5",
  G: "eb2@4 ~@2 g2@5 ~ bb2@5 ~ c3@6", H: "f2@5 ~ a2@5 ~ c3@5 ~ d3@5 ~", I: "bb2@5 ~ g2@5 ~ f2@5 ~ d2@5 ~",
  J: "bb1@5 ~ d2@5 ~ f2@5 ~ g2@3 ~@3", K: "bb2@5 ~ ab2@4 ~@2 g2@5 ~ bb2@2 g2 ~ f2@2",
  L: "eb2@5 ~ g2@4 ~@2 bb2@5 ~ c3@5 ~", M: "db3@5 ~ c3@5 ~ bb2@5 ~ g2@5 ~", N: "bb2@5 ~ ab2@3 ~ g2 ~ f2@5 ~ g2@5 ~",
  O: "db3@5 ~ c3@5 ~ bb2@5 ~ g2@4 ~@2", P: "f2 ~@5", Q: "bb2@5 ~ g2@5 ~ f2@5 ~ a2@5 ~",
  R: "bb2@5 ~ g2@4 ~@2 f2@5 ~ bb2@4 ~@2", S: "bb2@4 ~@2 bb2@3 ~ bb2@4 ~@10",
})).s("gm_acoustic_bass").gain(0.44)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C@2 D C@5 E F ~ G@4 C@5 E F ~ H@4 I@2 J K I@2 L A C@5 E F ~ M@4 I@2 J K I@2 L A C@5 E F ~ M@4 N@3 O
>`.pickRestart({
  A: "~@11 [a3,db4,e4,a4]", B: "[bb3,f4,bb4]@4 ~@2 [f4,bb4]@4 d4 ~ [f4,bb4]@5 d4 ~@4 [a3,db4,e4,a4]@2",
  C: "[bb3,f4,bb4]@4 [d4,f4] ~@5 [d4,f4] ~@5 [d4,f4] ~@5 [a3,db4,e4,a4]@2", // Bb5 Dm A
  D: "[bb3,f4,bb4]@4 d4 ~ [f4,bb4]@4 d4 ~@11 [a3,db4,e4,a4]@2", E: "[bb3,f4,bb4]@4 [d4,f4] ~@5 [d4,f4] ~@5 [d4,f4] ~@7",
  F: "[bb3,f4,bb4] ~@5", // Bb5
  G: "[~@2 eb5@19 ~@4 f5@17 ~@6 [bb4,d5]@34 ~@12 [a3,db4,e4,a4]@2, [g4,bb4]@20 ~@3 a4@20 ~@4 [f4,g4]@34 ~@15, ~ c5@19 ~@4 [c5,eb5]@19 ~@53]/4", // Bb A Gm Fsus2 Cm
  H: "[~@2 eb5@19 ~@4 f5@17 ~@6 [d5,f5]@34 ~@14, [g4,bb4]@20 ~@3 a4@20 ~@4 [f4,bb4]@34 ~@15, ~ c5@19 ~@4 [c5,eb5]@19 ~@53]/4", // Dm Gm Bb5 Cm
  I: "[bb3,eb4,g4]@8 ~@2 [bb3,eb4,g4] ~@13", J: "[d4,f4]@6 ~@4 [bb3,d4,f4] ~@13", K: "[d4,f4]@8 ~@2 [bb3,d4,f4] ~@13",
  L: "[a3,c4,eb4,f4] ~@7", // F7
  M: "[~@2 eb5@19 ~@3 [c5,eb5]@19 ~@5 [bb4,d5]@34 ~@14, [g4,bb4]@20 ~@3 a4@20 ~@4 [f4,g4]@34 ~@15, ~ c5@19 ~@76]/4", // Cm Bb Gm Fsus2
  N: "[~@2 eb5@19 ~@3 [c5,eb5]@19 ~@5 [bb4,d5]@22 ~@2, [g4,bb4]@20 ~@3 a4@20 ~@4 [f4,g4]@22 ~@3, ~ c5@19 ~@52]/3", // Cm Bb Gm Fsus2
  O: "[bb2,f3,bb3]@4 ~@2 [bb2,f3,bb3] ~@3 [bb2,f3,bb3]@3 ~@11", // Bb5
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.4)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note("<~ A@11 ~@5 A@7 ~@7 B C ~@4 A@7 ~@7 B C ~@4 A@7 ~@9>".pickRestart({
  A: "d4 ~@5", B: "bb3 ~@3", C: "bb3 ~@2",
})).s("gm_electric_guitar_jazz").gain(0.11).pan(0.4)

// other · flute
const flute = note(`<
  ~@6 A ~ B ~ C D E@2 F@3 ~ G ~ H ~ I D E@2 J@3 ~@9 K ~ L ~ M D N@2 O@3 ~@9 P ~ Q ~ M D R@2 S@4 T@2 U
>`.pickRestart({
  A: "d4@6 d4@4 d4@9 ~@5", B: "d4@4 d4@6 d4@9 ~@5", C: "d4@2 d4 d4@2 d4@2 ~@5", D: "~@11 d4",
  E: "[d4@3 d4@2 d4@3 d4 d4@2 eb4@4 ~@8 eb4]/2", F: "[f4@4 ~@4 f4@6 d4@9 d4@4 ~@9]/3", G: "d4@3 d4@2 d4@3 ~@4",
  H: "d4@6 d4@4 d4@7 ~@7", I: "d4@6 d4@4 d4@5 ~@9", J: "[f4@8 ~@14 f4@6 d4@18 d4@7 ~@19]/3", K: "d4@2 d4@3 d4@2 ~@5",
  L: "d4@4 d4@2 d4@4 d4@5 ~@9", M: "~@2 d4 d4@2 d4@2 ~@5", N: "[d4@3 d4@2 d4@3 d4 d4@2 eb4@6 ~@6 eb4]/2",
  O: "[f4@13 ~@9 f4@6 d4@18 d4@9 ~@17]/3", P: "d4@2 d4@3 d4@3 ~@4", Q: "d4@2 d4 d4@2 d4@3 ~@4",
  R: "[d4@6 d4@4 d4@6 d4@2 d4@4 eb4@11 ~@13 eb4@2]/2",
  S: "[f4@16 ~@6 f4@6 d4@18 d4@11 ~@7 d4@2 d4@4 eb4@11 ~@13 eb4@2]/4", T: "[f4@7 ~@4 f4@3 d4@9 d4]/2",
  U: "d4@3 d4@2 d4 ~@6",
})).s("gm_flute").gain(0.16).pan(0.4)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~ A@10 ~@2 A@10 ~@2 A@10 ~@2 A@6 ~@2 A@10 ~@2 A@6 ~@2 A@7 ~>".pickRestart({
  A: "~@3 x ~@3 x",
})).gain(0.05)

stack(piano, bass, electric_guitar_jazz, electric_guitar_jazz_2, flute, snare, snare_soft)

More by Elvis Presley