Strudelify
(You're The) Devil in Disguise cover art

Retro Songs By Elvis Presley

(You're The) Devil in Disguise

Elvis Presley

KeyF majorTempo122 bpm
0:00/0:00
// (You're The) Devil in Disguise — Elvis Presley
// 122 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 61 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
// note: The whole transcription plays 38 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(122/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 · piano
const piano = note(`<
  ~ A B C@4 D@2 E F G H I H I@2 H@2 I J A B C@4 D@2 E K I H I H I L H M I N A O C@4 D@2 E P I N I Q I R I S A B
>`.pickRestart({
  A: "[bb3,d4,f4] ~ [bb3,d4,f4]!2 ~ [bb3,d4,f4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4]!2 ~", B: "[f4,a4,c5] ~@15",
  C: "[~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3, f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 f2@6 ~@2 f2@5 ~@3, ~@2 [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4]@2]/4", // Am
  D: "[~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3, bb2@3 ~ bb2@3 ~ bb2@3 ~ bb2@2 ~@2, ~@2 [d4,f4]@3 ~ [d4,f4]@3 ~ [d4,f4]@3 ~ [d4,f4]@2]/2", // Dm
  E: "~@2 c4@2 ~@2 c4@2 ~@2 c4@2 [e4,g4]@2 c4 ~, c3@6 ~@2 c3@7 ~, ~@4 [e4,g4]@7 ~@5", // Em
  F: "[c3,e4]@2 ~@7 c7 b6 [e6,f6,g6,a6] [b5,c6,d6] [f5,g5,a5] [b4,c5,d5,e5] [e4,f4,g4,a4], [c4,g4] ~@15", // C Fmaj7 Bm F Cmaj7 Fmaj7 C5
  G: "[d4,f5,a5,c6] [f5,a5,c6]!15, f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4]", // Dm7 F
  H: "[d5,f5,a5]!16, d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3]", // Dm
  I: "[f5,a5,c6]!16, f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4]", // F
  J: "[d5,f5,a5]!14 [d3,f3,a3,d5,f5,a5] [d5,f5,a5], d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3] d2 ~", // Dm
  K: "[c3,c4,e4,g4] ~@9 [b6,c7] [f6,g6,a6] [b5,c6,d6,e6] [e5,f5,g5,a5] [a4,b4,c5,d5] [e4,f4,g4]", // C Cmaj7 F Cmaj7 Fmaj7 D7 Em
  L: "[f5,a5,c6]!16, f2@2 [f3,a3,c4]@2 f2@2 [f3,a3,c4]@2 f2@2 f3@2 ~ f3@3, ~@9 [a3,c4]@2 f2@2 ~ [a3,c4]@2", // F Am
  M: "[d5,f5,a5]!12 [d2,d5,f5,a5] [d5,f5,a5]!3, d2@2 [d3,f3,a3]@2 d2@2 [d3,f3,a3]@2 d2@2 [d3,f3,a3]@2 ~ [f3,a3]@2 ~, ~@7 d3", // Dm F
  N: "[d5,f5,a5]!12 [d2,d5,f5,a5] [d5,f5,a5] [d3,d5,f5,a5] [d5,f5,a5], d2@2 [d3,f3,a3]@2 d2@2 [d3,f3,a3]@2 d2@2 [d3,f3,a3]@2 ~ [f3,a3]@2 ~", // Dm F
  O: "[a3,c4] ~@7, f3 ~@15", // Am
  P: "[c4,e4,g4] ~@9 [b6,c7] [e6,f6,g6,a6] [b5,c6,d6] [e5,f5,g5,a5] [a4,b4,c5,d5] [d4,e4,f4,g4], c3 ~@7", // C Cmaj7 Fmaj7 Bm Fmaj7 D7 Em7
  Q: "[d5,f5,a5]!15 [d3,d5,f5,a5], d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3] d2 f3, ~@13 a3@2 ~", // Dm
  R: "[d5,f5,a5]!14 [f3,d5,f5,a5] [d3,d5,f5,a5], d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3] d2 ~, ~@13 a3@2 ~", // Dm
  S: "[d5,f5,a5]!12 [d2,d5,f5,a5] [d5,f5,a5] [f3,a3,d5,f5,a5] [d3,d5,f5,a5], d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3] ~@2", // Dm
})).s("gm_piano").gain(0.19)

// chords · electric guitar clean
const electric_guitar_clean = note("<~ A B C@4 D E F G ~@10 A B C@4 H E I G ~@10 A B C@4 J E I G ~@8 A K>".pickRestart({
  A: "[bb2,d3,f3] ~ [bb2,d3,f3]!2 ~ [bb2,d3,f3]!2 ~ [c3,e3,g3] ~ [c3,e3,g3]!2 ~ [c3,e3,g3]!2 ~", B: "[f2,a2,c3] ~@15",
  C: "f2 ~@2 f2 a2@2 c3@2 ~@2 c3@2 a2@2 c3@2, ~@8 f3@5 ~@3",
  D: "bb2 ~@3 d3@2 f3@2 ~@2 f3@2 d3@2 f3@2, ~@3 bb2@2 ~@3 bb3@4 ~@4",
  E: "bb2 ~@2 bb2 d3@2 f3@2 ~@2 f3@2 d3@2 f3@2, ~@8 bb3@5 ~@3",
  F: "c3 ~@2 c3 ~@2 g3@2 c4@2 g3@2 e3@2 g3@2, ~@2 e3@3 ~@3, ~@8 d4 ~@7", G: "c3 ~@15",
  H: "bb2 ~@2 bb2 d3@2 f3@2 bb3@2 f3@2 d3@2 f3@2",
  I: "c3 ~@2 c3 ~@2 g3@2 ~@2 g3@2 e3@2 g3@2, ~@2 e3@3 ~@3, ~@8 c4@5 ~@3",
  J: "bb2 ~@2 bb2 d3@2 f3@2 ~@2 f3@2 d3@2 f3@2, ~@2 bb3 ~", K: "[f2,a2,b2,c3] ~@7",
})).s("gm_electric_guitar_clean").gain(0.22)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C@4 D@2 E F G H G I G@2 H@2 G H A B C@4 D@2 J F G H G H G@2 H@2 G H A K C@4 D@2 L F G H G H G H G H A M
>`.pickRestart({
  A: "[bb2,d3,f3] ~ [bb2,d3,f3]!2 ~ [bb2,d3,f3]!2 ~ [c3,e3,g3] ~ [c3,e3,g3]!2 ~ [c3,e3,g3]!2 ~", B: "[f2,a2,c3] ~@15",
  C: "[~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3, f2@7 ~ f2@6 ~@2 f2@7 ~ f2@6 ~@2 f2@7 ~ f2@6 ~@2 f2@6 ~@2 f2@5 ~@3, ~@4 [a3,c4]@6 ~@2 [a3,c4]@6 ~@2 [a3,c4]@6 ~@2 [a3,c4]@6 ~@2 [a3,c4]@6 ~@2 [a3,c4]@6 ~@2 [a3,c4]@7 ~ [a3,c4]@4]/4", // Am
  D: "[~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3 ~ bb3, bb2@7 ~ bb2@6 ~@2 bb2@7 ~ bb2@5 ~@3, ~@2 [d4,f4]@3 ~ [d4,f4]@3 ~ [d4,f4]@3 ~ [d4,f4]@2]/2", // Dm
  E: "~@2 c4@2 ~@2 c4@2 ~@2 c4@2 [e4,g4]@2 c4 ~, c3@3 ~ c3@3 ~, ~@2 [e4,g4]@3 ~@3", F: "[c3,c4,e4,g4] ~@15",
  G: "f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4] f2 [f3,a3,c4]", // F
  H: "d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3]", // Dm
  I: "d2 [d3,f3,a3] d2 [f3,a3] d2 [d3,f3,a3] d2 [d3,f3,a3], ~@3 d3@2 ~@3", // Dm F Dm
  J: "~ c4 g4 c4@2 [c3,c4,e4,g4]!3, c3@5 ~@3, ~@2 e4@3 ~@3", K: "[f3,a3,c4] ~@15",
  L: "~@3 c4 [c3,c4,e4,g4]!4, c3 ~, ~ c4@2 ~@5, ~ [e4,g4] ~@2", M: "[f3,a3,c4] d4 ~@14",
})).s("gm_acoustic_guitar_steel").gain(0.19)

// bass · acoustic bass
const bass = note(`<
  ~ A B C D E@2 F G H I J K J K J@2 K@2 J K A B L E@3 F G H I J M J K J@2 K@2 J K A B L E@3 F G H N J K J K J K J K A O
>`.pickRestart({
  A: "bb1 ~ bb1!2 ~ bb1!2 ~ c2 ~ c2!2 ~ c2!2 ~", B: "f2 ~@15", C: "f1@4 ~@2 f1@2 c2@3 ~ c2@4",
  D: "f1@2 ~@4 f1@2 c2@3 ~@2 c2@3", E: "f1 ~@5 f1@2 c2@3 ~ c2@4", F: "bb1 ~@5 bb1@2 f2@3 ~ f2@4",
  G: "bb1 ~@5 bb1@2 f2@3 ~ f2@3 ~", H: "c2@2 ~@4 c2@2 g1@3 ~ g1@4", I: "c2 ~@7", J: "f2@3 ~ c2@2 ~@2 f2@3 ~ c2@2 ~@2",
  K: "d2@3 ~ a1@2 ~@2 d2@3 ~ a1@3 ~", L: "f1@2 ~@4 f1@2 c2@3 ~ c2@4", M: "d2@3 ~ a1@3 ~ a1@3 ~ d2@3 ~", N: "c2 ~@15",
  O: "f3 ~@15",
})).s("gm_acoustic_bass").gain(0.25)

// bass · electric bass pick
const bass_2 = note(`<
  ~@2
  [~@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~]
  ~@19
  [~@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~]
  ~@19
  [~@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~]
  ~@18
>`).s("gm_electric_bass_pick").gain(0.34)

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

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

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

// drums · open hat
const open_hat = s("oh").struct("<~@23 x ~@19 x ~@17>").gain(0.25)

// drums · crash
const crash = s("cr").struct("<~@11 x ~@19 x ~@19 x ~@9>").gain(0.25)

// drums · ride
const ride = s("rd").struct("<~@3 A@6 B ~ C D@9 ~@2 A E A@4 B ~ C D@9 ~@2 A@6 B ~ C D@6 F ~@2>".pickRestart({
  A: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", B: "x ~ x!3 ~ x ~ x ~ x ~ x ~@3", C: "~ x!7", D: "x!8",
  E: "x ~ x!2 ~@2 x ~ x ~ x ~ x ~ x ~", F: "x!7 ~",
})).gain(0.22)

// drums · bongos
const bongos = s("bongo:4").struct("<~@3 [~@2 x!2 ~@4]!7 ~@13 [~@2 x!2 ~@4]!7 ~@13 [~@2 x!2 ~@4]!7 ~@11>").gain(0.73)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@3 [~@3 x]!7 ~@13 [~@3 x]!7 ~@13 [~@3 x]!7 ~@11>").gain(0.73)

stack(
  piano, electric_guitar_clean, acoustic_guitar_steel, bass, bass_2, kick, snare, hihat, open_hat, crash, ride, bongos,
  bongos_2
)

More by Elvis Presley