Strudelify

I Want You I Need You I Love You

Elvis Presley

KeyC majorTempo78 bpm
0:00/0:00
// I Want You I Need You I Love You — Elvis Presley
// 78 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 52 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/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 E F G H I J C D E F G H K L M N M O P Q R S T D E F G H K U V W X Y Z AA AB AC C D E F G H K AD AE ~
>`.pickRestart({
  A: "[d5,f5,g#5,c6] ~ [d5,f5,g#5,c6] ~ [d5,f5,g#5,c6] ~ [d5,f5,g#5,c6] ~ [d5,f5,g#5,c6] ~ [d5,f5,g#5,c6] ~ [f5,b5,e6] ~ [f5,b5,e6] ~ [f5,b5,e6] ~ [f5,b5,e6] ~ [f5,b5,e6] ~ [f5,b5,e6] ~", // Dm7b5 E
  B: "[e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [d#5,f#5,g#5,c6] ~ [d#5,f#5,g#5,c6] ~ [d#5,f#5,g#5,c6] ~ [d5,f5,g5,b5]@2 ~@10", // C G#7 G7
  C: "[g3,c4,e4]!2 [a3,c4,e4]!2", D: "[a3,c4,f4]!2 [g3,b3,d4,f4]!2", E: "[g3,b3,e4]!2 [g3,a#3,e4]!2", F: "[a3,c4,f4]!4",
  G: "[g#5,c6,f6] ~ [g#5,c6,f6] ~ [g#5,c6,f6] ~ [g#5,c6,f6] ~ [g#5,c6,f6] ~ [g#5,c6,f6] ~ [g#5,d6,f6] ~ [g#5,d6,f6] ~ [g#5,d6,f6] ~ [g#5,d6,f6] ~ [g#5,c6,f6] ~ [g#5,d6,f6] ~", // Fm Ddim Fm Ddim
  H: "[g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~ [g5,a5,c#6,e6] ~", // A7
  I: "[f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~", // F#m7b5
  J: "[f5,a5,d6] ~ [e5,g5,c6] ~ [g5,b5,e6] ~ [f5,a5,d6] ~ [e5,g5,c6] ~ [g5,b5,e6] ~ [f5,a5,d6] ~ [e5,g5,c6] ~ [f5,a5,d6] ~ [g5,b5,e6] ~ [f5,a5,d6] ~ [e5,g5,c6] ~", // Dm C Em Dm C Em Dm C …
  K: "[f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f#5,a5,c6,e6] ~ [f5,a5,b5,d6] ~ [f5,a5,b5,d6] ~ [f5,a5,b5,d6] ~ [f5,a5,b5,d6] ~ [f5,a5,b5,d6] ~ [f5,a5,b5,d6] ~", // F#m7b5 Bm7b5
  L: "[e5,g5,a5,c6]@2 ~@2 d5 ~ [d5,f5]@3 ~ [g4,c5,e5] ~ [e4,g4] ~@5 [g4,c5] ~@5, ~@6 c#5 ~@5 c5@2 ~@4 e5@2 ~@4", // Am7 Dm C Em C5
  M: "[g3,a#3,d4]@3 ~ [g3,a#3,d4] ~ [g3,a#3,d4]@3 ~ [g3,a#3,d4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,e4] ~", // Gm C
  N: "[f2,f3,a3,c4]@3 ~ [f2,c3,f3,a3,c4] ~ [f2,d3,f3,a#3,d4]@3 ~ [d3,f3,a#3]@2 [f2,c3,f3,a3,c4]@3 ~ [f2,f3,a#3,d4] ~ [f2,f3,a3]@3 ~ [f2,f3,a3] ~, ~@10 [f2,d4] ~@5 d3@2 a2@4 ~@2", // F A# F A# F Dm
  O: "[f2,f3,a3,c4]@3 ~ [f2,c3,f3,a3,c4] ~ [f2,d3,f3,a#3,d4]@3 ~ [f2,d3,f3,a#3]@2 [f2,c3,f3,a3,c4]@3 ~ [f2,f3,a#3,d4] ~ [f2,f3,a3]@3 ~ [f2,f3,a3] ~, ~@10 d4 ~@5 d3@2 a2@4 ~@2", // F A# F A# F
  P: "[a2,e3,a3,c4]@3 ~ [a2,e3,a3,c4] ~ [a2,e3,a3,c4]@3 ~ [a2,e3,a3,c4] ~ [d2,f#3,a3,c4]@3 ~ [d2,f#3,a3,c4] ~ [d2,f#3,a3,c4]@3 ~ [d2,f#3,a3,c4] ~", // Am D7
  Q: "[g2,d3,g3,b3]@3 ~ [g2,d3,g3,b3] ~ [g2,e3,g3,b3]@3 ~ [g2,e3,g3,b3] ~ [g2,d3,g3,b3]@3 ~ [g2,d3,g3,b3] ~ [g2,e3,g3,b3]@3 ~ [g2,e3,g3,b3] ~", // G Em G Em
  R: "[a2,e3,a3,c4]@3 ~ [a2,e3,a3,c4] ~ [a2,e3,a3,c4]@3 ~ [a2,e3,a3,c4] ~ [d2,a2,f#3,a3,c4]@3 ~ [d2,a2,f#3,a3,c4] ~ [d2,b2,f#3,a3,c4]@4 [d2,a2,f#3,a3] ~, ~@11 c4", // Am D7 D
  S: "[f5,b5,d6] ~ [f5,b5,d6] ~ [f5,b5,d6] ~ [f5,b5,d6] ~ [f5,b5,d6] ~ [f5,b5,d6] ~ [f5,b5,e6,g6] ~ [f5,b5,e6,g6] ~ [f5,b5,e6,g6] ~ [f5,b5,e6,g6] ~ [f5,b5,e6,g6] ~ [f5,b5,e6,g6] ~", // Bdim Em
  T: "[g3,c4,e4]!2 [a3,c4,e4]!2, g6 ~@7", // C Am
  U: "[e5,g5,a5,c6]@2 ~@2 d5 ~ [d5,f5]@3 ~ [g4,c5,e5] ~ [e4,g4] ~@3 [c6,g6] ~ [c6,e6,g6,a#6]@3 ~ [c6,e6,a6,c7] ~, ~@6 c#5 ~@5 c5@2 ~@10", // Am7 Dm C Em C5 C7 Am
  V: "[f6,a#6]@2 [d6,d7] ~ [f6,f7] ~ [g6,a#6,g7]@2 [a#6,g7] ~ [a#6,d7,g7] ~ a#6 ~ g6 ~ c6 ~ e6 ~ g6 ~ c7 ~, d6 ~@23", // A#5 D F Gm D# Gm
  W: "[g#6,a6]@3 ~ d7 ~ a6@2 c7 ~ c7 ~ a6@2 f6 ~ d6 ~ f6@2 a6 ~ [f6,c7] ~, ~@6 g#6 ~@5 g#6 ~@5 a5 ~@5", // Amaj7 F5
  X: "[g6,a#6]@2 d6 ~ [a#6,d7] ~ [g6,a#6]@2 g6@2 d6 ~ e6@2 g6 ~ [a#6,d7] ~ g#6 ~ f6@2 d6 ~, ~@9 [g6,c7]@2 ~", // Gm A# Gm A# C5
  Y: "[f6,a6]@4 c6 ~ d6 ~ f6 ~ g6 ~ [c6,f6,a6]@3 ~ [c6,f6,c7] ~ [c6,f6,c7]@3 ~ [d6,d7] ~, [f#6,a#6] ~@23", // F F5 D F#
  Z: "[e6,e7]@2 ~@2 [g6,c7,g7] ~ [e6,c7,e7] ~ c7 ~ a6 ~ [c6,c7]@3 ~ d7 ~ b6@2 d7@2 ~ [c6,g6,a6], ~@18 a#6 ~@5", // E C5 C Am7
  AA: "[b5,g6]@3 ~ d6 ~ [b5,g6] ~ [c6,a6] ~ [b5,g6] ~ [d6,b6] ~ e7 ~ e7 ~ a6@2 g6 ~ e6 ~, ~@18 a#6 ~@5", // Em F Em G
  AB: "[c6,e6,g6]@3 ~ [e6,g6] ~ [e6,a6]@3 ~ [e6,g6] ~ [d6,f#6]@2 ~@2 e6 ~ f#6@2 d7@2 ~@2", // C Em A5 Em D
  AC: "g6@3 ~ [b5,g6] ~ [c6,g6] ~ [c6,g6] ~ [c6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,d6,g6] ~ [b5,e6,g6] ~ [b5,e6,g6] ~ [b5,e6,g6]@2", // Em C5 G Em
  AD: "[e5,g5,a5,c6]", AE: "[c2,e3,b3,d4,e4,g4]",
})).s("gm_piano").gain(0.33).pan(0.6)

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

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C D E F G H I J C D E F G H K L M N M N O P O P C D E F G H K L Q R S R T U V@2 C D E F G H K W X ~
>`.pickRestart({
  A: "[d3,g#3,c4,d4,f4]!6 [g2,f3,b3,e4,g4]!6", // Dm7b5 Em
  B: "[c3,g3,c4,e4]!2 [c3,g3,e4] [g#2,f#3,c4,d#4,g#4]!3 [g2,f3,b3,d4,g4] ~@5", // C G#7 G7
  C: "~ c4 ~ c4, c3 a2, ~ e3@5 ~ e3@5, ~ g3@2 ~ g3@2",
  D: "~@3 g4, d3 g2, ~ a3@5 ~@6, ~@4 c4@9 ~ b3@10, ~@3 f4@4 ~ d4@4",
  E: "~ b3 ~ [a#3,c4], c3@11 ~ c3@11 ~, ~@2 e3@10 ~@2 e3@9 ~, ~@4 g3@9 ~@3 g3@7 ~", // A#sus2
  F: "~@4 a3@2 [d4,f4]@4 ~@2 [c4,f4]@5 ~ [d4,f4]@6, [f2,c3], ~ f3@11, ~@5 a3@7", G: "[f3,g#3,c4,f4]!12",
  H: "[a3,c#4,e4,g4]!12", I: "[a3,c4,d4,f#4]!12", J: "[a3,b3,d4,f4]!12", K: "[a3,c4,d4,f#4]!6 [g3,b3,d4,f4]!6",
  L: "[g3,c4,e4,g4]!12", M: "[g4,a#4,d5]!6 [g4,c5,e5]!6", N: "[a4,c5,f5]!12", O: "[c4,e4,a4]!6 [a3,c4,d4,f#4]!6",
  P: "[b3,d4,g4]!12", Q: "[f3,a#3,d4]@5 ~ [f3,a#3,d4]@5 ~ [e3,a#3,d4]@4 ~@2 [e3,a#3,d4]@5 ~",
  R: "[e3,a3,c4]@4 ~@2 [e3,a3,c4]@5 ~ [e3,a3,c4]@4 ~@2 [e3,a3,c4]@4 ~@2", // Am
  S: "[f3,a#3,d4]@5 ~ [f3,a#3,d4]@5 ~ [f3,a#3,d4]@4 ~@2 [e3,a#3,d4]@5 ~", // A# Em7b5
  T: "[g3,c4,e4]@4 ~@2 [g3,c4,e4]@4 ~@2 [f#3,c4,e4]@5 ~ [f#3,c4,e4]@4 ~@2", // C F#m7b5
  U: "[g3,b3,d4]@4 ~@2 [g3,b3,d4]@5 ~ [g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~@3", // G
  V: "[[g3,c4,e4]@4 ~@2 [g3,c4,e4]@4 ~@2 [c4,e4]@4 ~@2 [f#3,c4,e4]@4 ~@2 [b3,d4]@5 ~ [g3,b3,d4]@5 ~ [f3,b3,d4] ~ [f3,b3,d4] ~ [f3,b3,d4] ~ [f3,b3,d4] ~ [f3,b3,d4] ~ [f3,b3,d4] ~, ~@12 f#3 ~@10 g3@5 ~@20]/2", // C F#m7b5 Bm G Bdim
  W: "[g3,c4,e4,g4]@8 [e4,g4,c5]@3 ~ b4@2 ~ [f4,a4]@2 ~ [b3,d4,g4]@2 ~ [a3,c4,f4]@2 ~, ~@11 [d4,g4]@2 ~ c4@3 ~@7", // C F G F G5
  X: "[g3,b3,d4,e4]@23 ~", // Em7
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.4)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@2 A B A B@2 A C B A B A B@2 A D E ~@8 A B A B@2 A D E F G H I J K L M A B A B@2 A D A@2 ~
>`.pickRestart({
  A: "e5", B: "f5", C: "f#5", D: "f#5 f5", E: "e5@3 ~", F: "~@4 f5@2 f5@3 ~@6 e5@2 ~ e5@3 ~@3",
  G: "~@4 f5@2 f5@3 ~@7 f5@2 f5@3 ~@3", H: "~@4 f5@2 f5@3 ~@7 e5@2 e5@2 ~@4", I: "~@4 f5@2 f5@3 ~@7 f5@2 f5@2 ~@4",
  J: "~@4 g5@2 g5@3 ~@6 f#5@2 ~ f#5@3 ~@3", K: "~@4 g5@2 g5@3 ~@7 g5@2 g5@3 ~@3", L: "e5 f#5", M: "f5@23 ~",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.9)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note(`<
  ~@2 A B C A@2 D A E A B C A@2 D B F ~@8 A B C A@2 D B F G H I J K L A M A B C A@2 D B A M ~
>`.pickRestart({
  A: "c5", B: "c5 b4", C: "g4", D: "c#5", E: "b4", F: "c5@3 ~", G: "~@2 d5 d5@2 ~@3 c5 c5@2 ~",
  H: "~@4 c5@2 c5@4 ~@6 c5@2 c5@5 ~", I: "~@4 d5@2 d5@3 ~@7 c5@2 c5@4 ~@2", J: "~@4 c5@2 c5@3 ~@7 c5@2 c5@3 ~@3",
  K: "~@2 e5 e5@2 ~@3 e5 e5@2 ~", L: "~@4 d5@2 d5@4 ~@6 d5@2 d5@5 ~", M: "[b4,d5]",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.4)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_3 = note(`<
  ~@2 A B C D E A D A@2 B C D E A B F ~@8 A B C D E A B F G H I J K L D M A B C D E A B A@2 ~
>`.pickRestart({
  A: "g4", B: "a4 g4", C: "b4 a#4", D: "a4", E: "g#4", F: "g4@3 ~", G: "~@4 a#4@2 a#4@3 ~@6 a#4@2 ~ a#4@4 ~@2",
  H: "~@4 a4@2 a4@4 ~@6 a4@2 a4@3 ~@3", I: "~@4 a#4@2 a#4@3 ~@7 a#4@2 a#4@4 ~@2", J: "~@4 a4@2 a4@3 ~@7 a4@2 a4@3 ~@3",
  K: "~@4 [a4,c5]@2 [a4,c5]@3 ~@7 [a4,c5]@2 [a4,c5]@4 ~@2", L: "~@4 [g4,b4]@2 [g4,b4]@4 ~@6 [g4,b4]@2 [g4,b4]@3 ~@3",
  M: "g4@23 ~",
})).s("gm_string_ensemble_2").gain(0.33).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@2 [x ~@5 x ~@4 x]!16 [x!4]!8 [x ~@5 x ~@4 x]!8 [x!4]!8 [x ~@5 x ~@4 x]!7 x!2 ~>")
  .gain(0.38)

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

// drums · hihat
const hihat = s("hh").struct("<~@2 A@16 ~@8 B A@7 ~@8 B A@6 ~@3>".pickRestart({
  A: "x!12", B: "~ x!11",
})).gain(0.16)

// drums · open hat
const open_hat = s("oh").struct("<~@25 [~@3 x!9] ~@26>").gain(0.33)

// drums · crash
const crash = s("cr").struct("<~@26 x ~@15 x ~@7 x ~>").gain(0.27)

// drums · ride
const ride = s("rd").struct("<~@18 A@7 B ~@8 A@7 C ~@7 D ~@2>".pickRestart({
  A: "x!4", B: "x", C: "x!12", D: "x ~@2 x!5",
})).gain(0.38)

stack(
  piano, bass, electric_guitar_jazz, string_ensemble_2, string_ensemble_2_2, string_ensemble_2_3, kick, snare, hihat,
  open_hat, crash, ride
)

More by Elvis Presley