Strudelify

Kiss Me Quick

Elvis Presley

KeyB♭ majorTempo139 bpm
0:00/0:00
// Kiss Me Quick — Elvis Presley
// 139 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(139/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D A@2 E@2 F@2 B C G H I J A F K L A@2 F E@2 F M C N O P Q A R K D S@2 T U V W X Y Z AA E@2 AB AC Z AD AE O P AF
  AG F AH L W AI AJ AK W AL AM AN A@2 E@2 AB AO Z AH G AP AQ AR Z E Z A AS AO Z@2 AT F A AU AV
>`.pickRestart({
  A: "bb2@2 ~ f3 bb3@2 f3@2", B: "bb2@4 ~@2 f3@2 bb3@4 f3@3 ~", C: "bb2@2 ~ f3 bb3 f3 d3 c3", D: "bb2 ~@3",
  E: "f2@2 ~ c3 a3@2 c3@2", F: "f2@4 ~@2 c3@2 a3@4 c3@3 ~", G: "bb2 ~ bb2@2 ~@2 bb2 ~ bb2@2 ~@2 bb2@2 ~@2",
  H: "bb2 ~ bb2@2 ~@2 bb2@2 bb3@4 bb2@4", I: "eb2@4 ~@2 eb2 ~ eb2@2 ~@2 eb2@2 ~@2",
  J: "eb2 ~ eb2@3 ~ bb2@2 eb3@3 ~ eb3@3 ~", K: "bb2@2 ~ bb2 bb3 f3 d3 c3", L: "bb2@3 ~@13",
  M: "bb2@5 ~ f3@2 bb3@4 f3@3 ~", N: "bb2 ~ bb2@2 ~@2 bb2 ~ bb2@3 ~ bb2@3 ~", O: "bb2 ~ bb2@2 ~@2 f3@2 bb3@4 bb2@4",
  P: "eb2 ~ eb2@3 ~ eb2 ~ eb2@2 ~@2 eb2@2 ~@2", Q: "eb2 ~ eb2@3 ~ bb2@2 eb3@4 eb2@4", R: "f2@5 ~ c3@2 a3@4 c3@3 ~",
  S: "f2@5 ~ a2@6 c3@3 ~", T: "bb2@5 ~ d3@6 f3@4", U: "bb2@5 ~ d3@6 f3@2 ~@2", V: "f2@5 ~ a2@5 ~ c3@4",
  W: "f2@5 ~ a2@6 c3@4", X: "bb2@2 ~@8 bb2 ~ bb2 ~ bb2@2", Y: "f2 ~@7", Z: "bb2@5 ~ f3@2 bb3@4 f3@4",
  AA: "bb2@4 ~@2 f3@2 bb3@4 bb2@3 ~", AB: "f2@3 ~@3 c3@2 a3@4 c3@4", AC: "f2@3 ~@3 c3@2 a3@4 c3@3 ~",
  AD: "bb2@3 f3 bb3 f3 d3 c3", AE: "bb2@4 ~@2 bb2 ~ bb2@2 ~@2 bb2@2 ~@2", AF: "eb2@5 ~ bb2@2 eb3@4 eb2@4",
  AG: "bb2@3 f3 bb3@2 f3@2", AH: "bb2@5 ~ f3@2 bb3@2 f3@2 d3@2 c3@2", AI: "f2@4 ~@2 a2@6 c3@3 ~",
  AJ: "bb2@2 ~ d3@3 f3@2", AK: "bb2@2 ~ d3@3 f3 ~", AL: "f2@2 ~ a2@3 c3@2", AM: "bb2@3 ~@7 bb2@2 bb2 ~ bb2@2",
  AN: "f2@3 ~@13", AO: "f2@2 ~ c3 a3@2 f2@2", AP: "bb2 ~ bb2@3 ~ f3@2 bb3@4 bb2@4",
  AQ: "eb3 ~ eb3@2 ~@2 eb3 ~ eb3@2 ~@2 eb3@2 ~@2", AR: "eb3 ~ eb3@3 ~ eb2@2 eb3@4 eb2@4", AS: "bb2@2 ~ f3 bb3@2 bb2@2",
  AT: "bb2@5 ~ f3@2 bb3@4 bb2@4", AU: "eb2@5 ~ bb2@2 eb3@4 eb3@4", AV: "bb2@2 ~@2 bb2 ~ bb2 ~ bb2@2 ~@6",
})).s("gm_acoustic_bass").gain(0.46)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A@4 B@2 C@8 D@2 E@2 F@2 G@6 H@7 I F@2 J@2 B@2 K@3 L B@2 M@4 N@8 F@2 J@2 B@2 O@3 L P@6 Q@8 R@3 S T@4 U@3
>`.pickRestart({
  A: "[[d4,f4,bb4]@25 ~@7]/4", B: "[[d4,f4,bb4]@31 ~]/2",
  C: "[[c4,eb4,f4,a4]@63 ~@48 ab4@16 ~, ~@63 bb4@65, ~@32 [d4,f4]@31 ~]/8", D: "[g4 gb4, eb4@31 ~]/2",
  E: "[d4@15 ~ [c4,eb4,a4]@15 ~, f4@31 ~]/2", F: "[[d4,f4,bb4]@9 ~@7]/2",
  G: "[d4@31 ~ [c4,eb4]@63 ~, f4@95 ~, bb4@29 ~@2 a4@63 ~@2]/6", // Cm
  H: "[~@48 ab4@16 g4@16 gb4@15 ~ f4@14 ~@2, bb4@111 ~, [d4,f4]@62 ~@2 eb4@31 d4@16 ~, ~@64 gb4 ~@47]/7", // Dm
  I: "[c4,eb4,f4,a4]@15 ~", J: "[[c4,f4,a4]@31 ~]/2", K: "[[c4,f4,a4]@30 ~ [d4,f4,bb4]@3 ~@14]/3",
  L: "[c4,f4,a4]@3 ~@13", M: "[[c4,f4,a4]@63 ~]/4",
  N: "[~@48 ab4@14 ~ g4@16 gb4@16 ~ d4@15 ~ [c4,a4]@16, bb4@95 bb4@15 ~@18, [d4,f4]@61 ~@2 eb4@31 ~@2 f4@31 ~]/8", // F Dm
  O: "[[c4,f4,a4]@31 [d4,f4,bb4]@3 ~@14]/3", P: "[[d4,bb4]@31 ~ [c4,eb4,a4]@63 ~, f4@95 ~]/6",
  Q: "[~@47 ab4@15 ~@2 g4@16 gb4@15 [d4,bb4]@16 ~ [c4,a4]@16, bb4@95 ~@33, [d4,f4]@62 ~@2 eb4@30 ~ f4@31 ~@2]/8", // Gm F Dm
  R: "[[d4,f4,bb4]@47 ~]/3", S: "[c4,f4,a4]", T: "[[d4,f4,bb4]@47 [c4,f4]@15 ~@2, ~@47 a4@17]/4",
  U: "[f4@15 [eb4,g4]@16 [d4,f4]@2 ~@3 [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~@7, bb4@17 ~@7, d4@7 ~@17]/3", // Eb Dm Bb
})).s("gm_string_ensemble_2").gain(0.36).pan(0.7)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@4 B@2 C@4 D@2 ~@4 E F G ~ B@2 C@4 H@2 ~@4 E F G ~@9 B@2 C@4 I@2 ~@4 E F J@2 ~@8 K@6 L@2 M ~@3 E F N@3 O@4 F P@2 Q
>`.pickRestart({
  A: "[f5@25 ~@7]/4", B: "f5/2", C: "eb5/4", D: "[d5@13 ~@3]/2", E: "f5", F: "eb5", G: "d5", H: "[d5@5 ~@3]/2",
  I: "[d5@29 ~@3]/2", J: "[d5@9 ~@7]/2", K: "[f5 eb5@2]/6", L: "d5/2", M: "f5 ~@3", N: "d5/3", O: "f5/4",
  P: "[d5@15 eb5@16 ~]/2", Q: "f5@5 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.46).pan(0.3)

// chords · piano · "HONKY TONK"
const piano = note(`<
  ~@12 A B C D E ~@11 F G H I@2 ~@3 J K L M N O P Q R ~@7 S T U V W ~@3 X@2 M Y N K P Z R ~@7 AA T AB AC AD ~@11 AE
>`.pickRestart({
  A: "[bb3,d4,f4,bb4] ~ [bb3,d4,f4,bb4] ~@3 [bb3,d4,f4,bb4] ~ [bb3,d4,f4,bb4] ~@3 [bb3,d4,f4,bb4] ~@3", // Bb
  B: "[bb3,d4,f4,ab4] ~ [bb3,d4,f4,ab4] ~@3 [bb3,d4,f4,ab4] ~ [bb3,d4,f4,ab4] ~@3 [bb3,d4,f4,ab4] ~@3", // Bb7
  C: "[bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3", // Eb
  D: "[bb3,eb4,gb4] ~ [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~ [bb3,eb4,gb4] ~@3 [bb3,gb4] ~@3, ~@6 eb4 ~", // Ebm
  E: "[bb3,d4,f4]@13 ~@3", // Bb
  F: "[bb3,d4,f4,bb4] ~ [d4,f4,bb4] ~@3 [bb3,d4,f4,bb4] ~ [bb3,f4]@2 ~@2 [bb3,f4,bb4]@2 ~@2, ~@2 bb3@2 ~@4 [d4,bb4] ~@3 d4 ~@3", // Bb Bb5 Gm
  G: "[bb3,d4,f4,ab4] ~ [bb3,d4,f4,ab4] ~@3 [bb3,d4,f4,ab4] ~ [bb3,d4,f4,ab4] ~@3 [bb3,d4,ab4] ~@3, ~@6 f4 ~", // Bb7
  H: "[bb3,eb4,g4] ~ [bb3,eb4] ~@3 [bb3,eb4,g4] ~ [eb4,g4]@2 ~@2 [eb4,g4]@3 ~, ~@2 g4@2 ~@4 bb3 ~@3 bb3 ~@3", // Eb Eb5 Eb
  I: "[[bb3,eb4,gb4] ~ [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~ [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~@3 [f4,bb4]@16, ~@15 [bb3,d4]@16 ~]/2", // Ebm Bb5 Bb
  J: "a5 ~ a5 c6 f6@2 c6 ~ a6 ~ f6@2 c6@2 f6@2", K: "a5 ~ a5 c6 f6@2 c6@2 a6@2 f6@2 c6@2 f6 ~",
  L: "bb5 ~ bb5 d6 f6@2 d6@2 bb6@2 f6@2 d6@2 f6@2", M: "bb5 ~ bb5 d6 f6@2 d6@2 bb6@2 f6@2 d6@2 f6 ~",
  N: "a5 ~ a5 c6 f6@2 c6@2 a6@2 f6@2 c6@2 f6@2", O: "a5 ~ a5 c6 f6@2 c6 ~ a6@2 f6@2 c6@2 f6 ~",
  P: "[bb5,d6] ~@9 [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~", Q: "[c4,f4,ab4,a4] ~@15", R: "[f3,bb3,d4]@13 ~@3",
  S: "[bb3,d4,f4,bb4] ~ [bb3,d4,f4,bb4] ~@3 [bb3,d4,f4,bb4] ~ [bb3,d4,f4,bb4] ~@3 [bb3,d4,f4] ~@3, ~@6 bb4 ~", // Bb
  T: "[bb3,d4,f4,ab4,bb4] ~ [bb3,d4,f4,ab4,bb4] ~@3 [bb3,d4,f4,ab4,bb4] ~ [bb3,d4,f4,ab4,bb4] ~@3 [bb3,d4,f4,ab4,bb4] ~@3", // Bb7
  U: "[bb3,eb4,g4,bb4] ~ [bb3,eb4,bb4] ~@3 [bb3,eb4,g4,bb4] ~ [bb3,eb4,g4,bb4] ~@3 [bb3,eb4,g4,bb4] ~@3, ~ g4 ~@6", // Eb Eb5 Eb
  V: "[bb3,eb4,gb4,bb4] ~ [bb3,eb4,gb4,bb4] ~@3 [bb3,eb4,gb4,bb4] ~ [bb3,eb4,gb4,bb4] ~@3 [bb3,eb4,gb4,bb4] ~@3", // Ebm
  W: "[bb3,d4,f4,bb4]@5 ~@3", X: "a5 ~ a5 c6 f6@2 c6 ~ a6@2 f6@2 c6@2 f6@2",
  Y: "bb5 ~ bb5 d6 f6@2 d6 ~ bb6@2 f6@2 d6@2 f6@2", Z: "[c4,f4,a4] ~@15",
  AA: "[bb3,d4,f4,bb4] ~ d4 f4 ~@2 [bb3,d4,f4,bb4] ~ [bb3,d4,f4,bb4] ~@3 [bb3,d4,f4,bb4] ~@3, ~ [bb3,bb4] ~@6", // Bb
  AB: "[bb3,eb4,g4,bb4] ~ [g4,bb4]@2 ~@2 [bb3,eb4,g4,bb4] ~ [bb3,eb4,bb4] ~@3 [bb3,eb4,g4,bb4] ~@3, ~@2 [bb3,eb4] ~@5 g4@2 ~@6", // Eb Gm Eb Eb5 Eb Eb5
  AC: "[bb3,eb4,gb4,bb4] ~ [bb3,eb4,gb4,bb4] ~@3 [bb3,eb4,gb4,bb4] ~ [bb3,eb4,gb4,bb4] ~@3 [bb3,gb4,bb4] ~@3, ~@6 eb4 ~", // Ebm
  AD: "[bb3,d4,f4,bb4]@13 ~@3", AE: "~@4 [f3,bb3,d4] ~ [f3,bb3,d4] ~ [f3,bb3,d4]@2 ~@6",
})).s("gm_piano").gain(0.36).pan(0.7)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A B A C D A E F@3 A@2 G H I J B E A K A B F@4 A@2 G H I J A F A K L M N O M P Q R B@2 F@2 S E A@2 G H I J A E A K M@2
  T U L M V W X B E F S Y A@2 G H Z J A E A@3 E A@3 F A AA AB
>`.pickRestart({
  A: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~@5 [bb4,d5,f5] ~@3", B: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~@5 [bb4,d5,f5]@2 ~@2",
  C: "[bb4,d5,f5] ~@7", D: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5]@2 ~@4 [bb4,d5,f5] ~@3",
  E: "~@4 [a4,c5,f5] ~ [a4,c5,f5] ~@5 [a4,c5,f5]@2 ~@2", F: "~@4 [a4,c5,f5] ~ [a4,c5,f5] ~@5 [a4,c5,f5] ~@3",
  G: "[bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3", // Bb
  H: "[ab4,d5,f5] ~ [ab4,d5,f5] ~@3 [ab4,d5,f5] ~ [ab4,d5,f5] ~@3 [ab4,d5,f5] ~@3", // Ddim
  I: "[g4,bb4,eb5] ~ [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~@3", // Eb
  J: "[gb4,bb4,eb5] ~ [gb4,bb4,eb5] ~@3 [gb4,bb4,eb5] ~ [gb4,bb4,eb5] ~@3 [gb4,bb4,eb5] ~@3", K: "[bb4,d5,f5] ~@15",
  L: "f3@6 a3@5 ~ c4@4", M: "f3@3 a3@3 c4@2", N: "bb3@5 ~ d4@6 f4@4", O: "bb3@4 ~@2 d4@6 f4@3 ~", P: "f3@5 ~ a3@6 c4@4",
  Q: "bb3@2 ~@8 [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~", R: "[f3,c4] ~@7",
  S: "~@4 [a4,c5,f5] ~ [a4,c5,f5]@2 ~@4 [a4,c5,f5] ~@3", T: "bb3@3 d4@3 f4@2", U: "bb3@6 d4@6 f4@3 ~",
  V: "bb3 ~@9 f4@2 bb3 ~ [bb3,f4]@2, ~@10 bb3 ~@5", W: "[f3,c4]@3 ~@13",
  X: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5]@2 ~@4 [bb4,d5,f5]@2 ~@2", Y: "~@4 [a4,c5,f5] ~ [a4,c5,f5]@2 ~@4 [a4,c5,f5]@2 ~@2",
  Z: "[g4,bb4,eb5] ~ [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~ [g4,bb4,eb5] ~@3 [g4,bb4,eb5] ~ eb5 ~", // Eb
  AA: "~@4 [g4,db5,eb5] ~ [g4,db5,eb5] ~@5 [g4,db5,eb5] ~@3", AB: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@7",
})).s("gm_electric_guitar_clean").gain(0.41).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@36 A B C@2 B D E ~@17 B@2 C@2 B@2 E ~@26>".pickRestart({
  A: "[f3,c4] ~ [f3,c4] ~ [f3,d4]@2 [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5 Dm F5
  B: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5 Dm F5
  C: "[bb3,f4] ~ [bb3,f4] ~ [bb3,g4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,f4] ~ [bb3,g4] ~ [bb3,f4] ~", // Bb5 Eb Bb5 Eb Bb5
  D: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ c4 ~", E: "[bb3,f4] ~@7",
})).s("gm_overdriven_guitar").gain(0.36).pan(0.8)

// drums · kick
const kick = s("bd").struct("<A@3 B A@15 B A@15 B A@6 B@2 A@15 B A@6 B@2 A@24 B>".pickRestart({
  A: "x!2", B: "x",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  A@3 ~ A@8 B@4 A@2 C D A@8 B@4 A@2 E F A@6 ~@2 A@8 B@4 A@2 E G A@6 ~@2 A@8 B@4 A@12 ~
>`.pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "x!2 ~ x!2 ~ x ~", C: "~@4 x ~@5 x!3 ~ x ~", D: "x", E: "~@4 x ~ x ~@5 x ~ x!2",
  F: "~@10 x!3 ~ x ~", G: "x ~@9 x!3 ~ x ~",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct(`<
  A@3 B A@8 C@3 D A@3 B A@8 C@3 D A@3 B ~@6 E F A@8 C@3 D A@3 F ~@6 E F A@8 C@3 D A@12 G
>`.pickRestart({
  A: "x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~", B: "x ~@6 x", C: "x!2 ~ x!2 ~ x ~", D: "x!2 ~ x!2 ~ x!2", E: "~@5 x!3", F: "x",
  G: "x ~ x!3 ~@3",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct(`<
  A ~@2 A@2 ~@7 A ~@6 A@2 ~@7 A ~@3 A ~@3 A ~@5 A@3 ~@7 A ~@3 A ~@3 A ~@5 A@3 ~@7 A ~@3 A ~@11 A
>`.pickRestart({
  A: "x",
})).gain(0.41)

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

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@36 [~ x ~@3 x ~@2] [~ x ~ x ~ x ~ x] [~@3 x ~@4] ~@22 [~ x ~@6] ~@31>").gain(0.2)

// drums · claves
const claves = s("clave:2").struct(`<
  A@3 ~ A@8 B@4 A@3 ~ A@8 B@4 A@3 ~@9 A@8 C B@3 A@3 ~@9 A@8 D B@3 A@10 E A F
>`.pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "x!2 ~ x!2 ~ x ~", C: "~@3 x!2 ~ x ~", D: "~ x ~ x!2 ~ x ~", E: "~@3 x ~@2 x ~",
  F: "~@2 x!3 ~@3",
})).gain(2.01)

stack(
  bass, string_ensemble_2, acoustic_guitar_steel, piano, electric_guitar_clean, overdriven_guitar, kick, snare, hihat,
  crash, ride, ride_soft, claves
)

More by Elvis Presley