Strudelify
Falling in Love (Is Hard on the Knees) cover art

1997 · Nine Lives

Falling in Love (Is Hard on the Knees)

Aerosmith

KeyG minorTempo116 bpm
0:00/0:00
// Falling in Love (Is Hard on the Knees) — Aerosmith
// 116 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 97 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): Fill Guitar, Ditto.
setcpm(116/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 · distortion guitar · "Guitar 1"
const distortion_guitar = note("<~ A@2 ~@8 A@2 ~@17 A@2 ~@8 A@2 ~@8 B C ~@16 A@2 ~@7 D ~@16 B E@2>".pickRestart({
  A: "[f3,c4,f4] [g3,d4,g4]!2 [f3,c4,f4] [g3,d4,g4]!2 [f3,c4,f4] [g3,d4,g4]", // F5 G5 F5 G5 F5 G5
  B: "[f3,c4,f4] [g3,d4,g4]!2 [gb3,db4,gb4] [ab3,eb4,ab4]!2 [g3,d4,g4] [a3,e4,a4]", // F5 G5 Gb5 Ab5 G5 A5
  C: "[a3,e4,a4] [ab3,eb4,ab4] [bb3,f4,bb4]!2 [a3,e4,a4] [b3,gb4,b4]!2 [bb3,f4,bb4]", // A5 Ab5 Bb5 A5 B5 Bb5
  D: "[f3,f4] [g3,g4]!2 [f3,f4] [g3,g4]!2 [f3,f4] [g3,g4]", // F G F G F G
  E: "[[a3,e4,a4] [ab3,eb4,ab4] [bb3,f4,bb4]!2 [a3,e4,a4] [b3,gb4,b4]!2 [bb3,f4,bb4]@3 ~@6]/2", // A5 Ab5 Bb5 A5 B5 Bb5
})).s("gm_distortion_guitar").gain(0.4)

// chords · trumpet
const trumpet = note("<~ A@2 ~@8 B@2 ~@17 B@2 ~@8 B@2 ~@8 C D E@3 F G H I@2 ~@8 B@2 ~@7 A ~@16 C J@2>".pickRestart({
  A: "[f4,f5] [g4,g5]!2 [f4,f5] [g4,g5]!2 [f4,f5] [g4,g5]", // F G F G F G
  B: "[f4,c5,f5] [g4,d5,g5]!2 [f4,c5,f5] [g4,d5,g5]!2 [f4,c5,f5] [g4,d5,g5]", // F5 G5 F5 G5 F5 G5
  C: "[f4,c5,f5] [g4,d5,g5]!2 [gb4,db5,gb5] [ab4,eb5,ab5]!2 [g4,d5,g5] [a4,e5,a5]", // F5 G5 Gb5 Ab5 G5 A5
  D: "[a4,e5,a5] [ab4,eb5,ab5] [bb4,f5,bb5]!2 [a4,e5,a5] [b4,gb5,b5]!2 [bb4,f5,bb5]", E: "g5", F: "[c5,g5]",
  G: "[b4,gb5]", H: "[bb4,f5]", I: "[a4,e5]/2",
  J: "[[a4,e5,a5] [ab4,eb5,ab5] [bb4,f5,bb5]!2 [a4,e5,a5] [b4,gb5,b5]!2 [bb4,f5,bb5]@3 ~@6]/2", // A5 Ab5 Bb5 A5 B5 Bb5
})).s("gm_trumpet").gain(0.26)

// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note(`<
  ~@3 A B A B C D A E ~@11 A B A B C D A E ~@2 F G H I F G H I ~@2 A B A B C D A E ~@28 A B A B C D A E A B A B C D A E
  ~@3
>`.pickRestart({
  A: "~ a4 d5 ~ g4 d5 g4 d5, d4, ~@3 bb3@5", B: "~ g4 d5 ~ a4 d5 a4 d5, c4, ~@3 d4@5",
  C: "~ a4 d5 ~ g4 d5 g4 d5, d4@3 bb3@5", D: "~ g4 c5 ~ a4 d5 a4 d5, c4@3 d4@5", E: "c4 g4 d5 g3 [d4,g4,d5]@4",
  F: "[g3,d4]!3 [c4,g4]!5", G: "[bb3,f4]!3 [eb4,bb4]!5", H: "[c4,g4]!3 [eb4,bb4]!5", I: "[bb3,f4]!3 [g3,d4]!5",
})).s("gm_electric_guitar_clean").gain(0.4)

// chords · overdriven guitar · "Guitar 3"
const overdriven_guitar = note(`<
  ~@13 A B A B A B A B C ~@10 A B A B A B A B ~@12 D@3 E F G H I J K J K L M J N ~@29
>`.pickRestart({
  A: "[g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~", B: "[g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5] ~ [g4,d5,g5]!2",
  C: "[f3,c4,f4] [g3,d4,g4]!2 [f3,c4,f4] [g3,d4,g4]!2 [f3,c4,f4] [g3,d4,g4]", D: "[eb5,g5] c5!2 [f5,a5]@2 c5 [f5,a5]@2",
  E: "[eb5,g5] c5!2 [f5,a5]@2 c5 [eb5,g5] [f5,a5]", F: "[eb5,g5] b4!2 [f5,a5] b4!2 [eb5,g5] [f5,a5]",
  G: "[eb5,g5] bb4!2 [f5,a5] bb4!2 [eb5,g5] [f5,a5]", H: "[e5,a5]!3 c6@2 c6!3",
  I: "c6@2 c6@2 c6@2 c6@2 c6@2 c6@2 c6 e6 e5@2", J: "~ a4 d5 ~ g4 d5 g4 d5, d4, ~@3 bb3@5",
  K: "~ g4 d5 ~ a4 d5 a4 d5, c4, ~@3 d4@5", L: "~ a4 d5 ~ g4 d5 g4 d5, d4@3 bb3@5",
  M: "~ g4 c5 ~ a4 d5 a4 d5, c4@3 d4@5", N: "c4 g4 d5 g3 [d4,g4,d5]@4",
})).s("gm_overdriven_guitar").gain(0.25)

// chords · distortion guitar · "Guitar 4"
const distortion_guitar_2 = note(`<
  ~@13 A B C D A B C D E ~@10 A B C D A B C D ~@12 F@2 G F@2 H I J K L@3 M N O P Q R S@4 A B C ~@20
>`.pickRestart({
  A: "[g3,d4]!3 [c4,g4]!5", B: "[bb3,f4]!3 [eb4,bb4]!5", C: "[c4,g4]!3 [eb4,bb4]!5", D: "[bb3,f4]!3 [g3,d4]!5",
  E: "[f3,c4,f4] [g3,d4,g4]!2 [f3,c4,f4] [g3,d4,g4]!2 [f3,c4,f4] [g3,d4,g4]", F: "[c4,g4,c5]!8",
  G: "[bb3,f4,bb4] [c4,g4,c5]!7", H: "[b3,gb4,b4]!8", I: "[bb3,f4,bb4]!8", J: "[a3,e4,a4]!8",
  K: "[c6,d6]!2 [c6,d6]@2 d6@4", L: "[d6@10 f5@8 [c6,d6]@2 d6 ab5@5 c6@4 g5@4 d6@4 f5@6 f5@4]/3",
  M: "~ d6 [d6,eb6] [c6,d6] d6 c6 d6 a5 ~ [a5,bb5] g5 d6 f5 a5 g5 f5", // Ebmaj7 Csus2 Bbmaj7
  N: "g5!2 f5 [d4,g4,b4] d5 d4 d5 d4 d5@2 d5!2 [d4,d5] c5 c5@2", O: "d4@2 a6@4 g6@2 f6 g6 f6@2 d6@3 f6",
  P: "e3@2 d6@3 ab5 g5@4 d6@2 a5 g5@3", Q: "d6 ab5 g5 d6 ab5 g5 d6 eb6", R: "d6!2 eb6!2 e6!4",
  S: "~@4 [g5,d6]@3 ~@5 [g5,d6]@3 ~", // G5
})).s("gm_distortion_guitar").gain(0.18)

// chords · overdriven guitar · "Fill Guitar"
const overdriven_guitar_2 = note("<~@16 A B@2 C ~@15 A B@2 C ~@34 A B@2 C ~@20>".pickRestart({
  A: "~@7 d5", B: "[g5@15 d5]/2", C: "g6",
})).s("gm_overdriven_guitar").gain(0.26)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C D C D C D C A C D C D C D C D A B A C D C D C D C D C A C D C D C D C D A B C D C D C D C@2 A@2 C D C D C D
  C@3 D C D C D C@2 A@2 C D C D C D C A C D C D C D C@3 D C D C D C@2 ~@3
>`.pickRestart({
  A: "~ x!2 ~ x!2 ~ x", B: "~ x!2 ~ x!2 ~@2", C: "x ~@2 x!2 ~@3", D: "x ~@2 x ~@4",
})).gain(0.46)

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

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

// drums · ride
const ride = s("rd").struct("<~@11 A B@3 A B@3 ~@13 A B@3 A B@3 ~@57>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.41)

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

stack(
  distortion_guitar, trumpet, electric_guitar_clean, overdriven_guitar, distortion_guitar_2, overdriven_guitar_2, kick,
  snare, hihat, ride, crash
)

More by Aerosmith