Strudelify
It's My Life cover art

2000 · Crush

It's My Life

Bon Jovi

KeyE♭ majorTempo120 bpm
0:00/0:00
// It's My Life — Bon Jovi
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 112 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 30.
// note: The whole transcription plays 21 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(120/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 · distortion guitar
const distortion_guitar = note(`<
  A ~ A ~ B ~ C ~ A ~ C ~ D@2 E ~@2 F G H I F G J K F G H I F G J K A ~ A ~ B ~ C ~ A ~ C ~ D@2 L@2 ~ F G H I F G J K F
  G H I F G J K M N O@2 N@2 P Q R@4 S F G H I F G J K F G H I F G J K F G H I F G J K F G H I F G J T ~
>`.pickRestart({
  A: "[g2,c3]@4 [g2,c3]@3 ~@9", B: "[g2,c3] ~@3", C: "[g2,c3]@4 [g2,c3]@3 ~ [g2,c3] ~ [g2,c3] ~ [g2,c3]@2 [g2,c3]@2",
  D: "[[g2,c3]@31 ~]/2", E: "[c3,f3]@3 ~ [c3,f3]@3 ~@9", F: "[g2,c3]@11 ~ [g2,c3] ~ [g2,c3] ~",
  G: "[ab2,c3]@13 ~ [ab2,c3] ~", H: "[bb2,eb3]@11 ~ [bb2,eb3] ~ [bb2,eb3] ~", I: "[bb2,d3]@13 ~ [bb2,d3] ~",
  J: "[f2,bb2]@15 ~", K: "bb2 b2", L: "[c3,f3]/2",
  M: "[eb2,ab2]@2 ab2 ~@3 [eb2,ab2] ~ [eb2,ab2]@2 [eb2,ab2] ~@3 [eb2,ab2] ~", // Ab5
  N: "[eb2,ab2]@2 [eb2,ab2] ~@3 [eb2,ab2] ~ [eb2,ab2]@2 [eb2,ab2] ~@3 [eb2,ab2] ~", // Ab5
  O: "[f2,bb2]@2 [f2,bb2]@2 ~@2 [f2,bb2] ~ [f2,bb2]@2 [f2,bb2]@2 ~@2 [f2,bb2] ~", // Bb5
  P: "[c2,f2]@2 [c2,f2]@2 ~@2 [c2,f2] ~ [c2,f2]@2 [c2,f2]@2 ~@2 [c2,f2] ~", // F5
  Q: "[c2,f2] ~ [c2,f2] ~ [c2,f2] ~ [c2,f2] ~ [c2,f2] ~ [c2,f2] ~ [c2,f2] ~ [c2,f2] ~", R: "[[g2,c3]@63 ~]/4",
  S: "[g2,c3]@3 ~ [g2,c3]@3 ~@9", T: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
})).s("gm_distortion_guitar").gain(0.49).pan(0.7)

// bass · distortion guitar
const bass = note("<~@49 [d4 eb4 d4 eb4 d4 eb4 d4 eb4] ~@62>").s("gm_distortion_guitar").gain(0.49).pan(0.3)

// other · distortion guitar
const distortion_guitar_2 = note("<~@66 A@3 B@3 C@2 D ~ E@2 ~@7 F@2 ~@14 F@2 ~@9>".pickRestart({
  A: "d3 eb3 d3 eb3 d3 eb3 d3 eb3",
  B: "[d3@2 eb3@2 d3@2 eb3@2 d3@2 eb3@2 d3@2 c3@6 bb3 c4 ~ eb4 g4@10 g4@2 ~ g4@2 ~ g4@6 f4 eb4]/3",
  C: "[f4 bb3 c4@10 ~ bb2 eb3 bb2]/2", D: "c3", E: "d5 eb5 d5 eb5 d5 eb5 d5 eb5", F: "eb5 d5 eb5 d5 eb5 d5 eb5 d5",
})).s("gm_distortion_guitar").gain(0.4)

// other · lead 2 sawtooth
const lead_2_sawtooth = note("<A ~ A ~ B ~ C ~@3 C ~@22 A ~ A ~ B ~ C ~@3 C ~@34 D ~@33>".pickRestart({
  A: "c2!2 ~@2", B: "c2 ~@3", C: "c2@4 c2@3 ~@5 c2@4", D: "c2@3 ~ c2@3 ~@9",
})).s("gm_lead_2_sawtooth").gain(0.49)

// bass · electric bass finger
const bass_2 = note(`<
  A B C ~ D ~ E F E F E F G@2 H@2 ~ I J K L I J M N I J K L I J M N A ~ C ~ D ~ E F E F E F G@2 H@2 ~ I J K L I J M N I
  J K L I J M N O@2 P@2 O@2 Q@2 R@4 S I J K L I J M N I J K L I J M N I J K L I J M N I J K L I J M N ~
>`.pickRestart({
  A: "c1@3 ~ c1@4 ~@8", B: "~@5 g1 eb1 c2", C: "c1 ~ c1 ~ c1@3 ~@9", D: "c1 ~@3", E: "c1@4 c1@3 ~ c1 ~ c1 ~ bb1@2 c2@2",
  F: "c1@3 ~ c1@3 ~ bb1@2 g1@2 eb2@2 c2@2", G: "c1@3 ~ c1@3 ~ c1 ~ c1 ~ c1@3 ~", H: "f1@3 ~ f1@3 ~ f1 ~ f1 ~ f1@3 ~",
  I: "c1 ~ c1@2 c2@2 c1 ~ c1@2 eb1@2 f1@2 g1@2", J: "ab1 ~ ab1@2 eb2@2 ab1 ~ ab1@2 bb1@2 c2@2 bb1@2",
  K: "eb1 ~ eb1@2 eb2@2 eb1 ~ eb1@2 f1@2 g1@2 f1@2", L: "d1 ~ d1@2 d2@2 d1 ~ d1@2 eb1@2 f1@2 eb1@2",
  M: "bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1 ~ bb1@2 bb1@2", N: "bb1@2 bb1@2 bb1 ~ bb1@2 b1@2 b1 ~ b1 ~ b1 ~",
  O: "ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~", P: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~",
  Q: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", R: "[c1@63 ~]/4", S: "c1@2 ~@2 c1@3 ~@9",
})).s("gm_electric_bass_finger").gain(0.54)

// other · piano
const piano = note("<A B A B ~@2 C ~@3 C ~ D@3 E ~@17 A B A B F D A B ~@2 A B D@3 E ~@63>".pickRestart({
  A: "~@5 c4 eb4 g4", B: "ab4 g4", C: "~@12 c4@2 c4 ~", D: "~@4 c4@3 ~@5 c4@3 ~", E: "~@4 c4@3 ~@9", F: "~@12 c4@3 ~",
})).s("gm_piano").gain(0.7).pan(0.7)

// chords · brass section
const brass_section = note(`<
  ~@16 A B C ~ D E F@2 ~ E G@2 H@2 I@2 J K ~@15 A B C ~ D E F@2 ~ E L@2 H@2 I@2 J ~@12 A B C ~ D E F@2 ~ E G@2 H@2 I@2 M
  N ~@3 E F@2 ~ E G@2 H@2 I@2 J K
>`.pickRestart({
  A: "~@8 [c4,eb4]@3 ~ [eb4,g4]@3 ~", B: "[eb4,g4]@11 ~ [eb4,g4] ~ [eb4,ab4]@2",
  C: "~@2 [d4,ab4]@3 ~ [c4,ab4]@3 ~ [bb3,g4]@6", D: "f4@3 ~ [f4,bb4]@3 ~ [f4,bb4]@3 ~ bb4@2 ab4@2, ~@3 f4",
  E: "~@8 [eb4,g4]@2 [eb4,g4] ~ g4@2 [eb4,g4] ~, ~@12 eb4 ~@3", // Eb
  F: "[[eb4,ab4]@3 ~ [eb4,ab4] ~ [eb4,ab4]@6 [eb4,g4]@2 [d4,f4]@15 ~@3]/2", // Ab5 Eb Dm
  G: "[[eb4,ab4]@3 ~ [eb4,ab4]@3 ~ [eb4,ab4]@3 ~ [eb4,g4]@6 ~@14]/2", // Ab5 Eb
  H: "[~@8 [f4,bb4]@3 ~ [f4,ab4]@2 [eb4,g4]@4 ~@14]/2", // Bb5 Fm Eb
  I: "[[eb4,ab4]@3 ~ [eb4,ab4] ~ [eb4,ab4]@5 ~ [eb4,g4]@2 [d4,f4]@14 ~@4]/2", J: "[d4,f4] ~ [d4,g4] ~",
  K: "[eb4,g4] ~@3", L: "[[eb4,ab4]@3 ~ [eb4,ab4]@3 ~ [eb4,ab4]@3 ~ [eb4,g4]@8 ~@12]/2",
  M: "[bb3,eb4]@3 ~@5 [b3,d4]@4 ~@4", N: "[g3,c4] ~@3",
})).s("gm_brass_section").gain(0.59).pan(0.3)

// chords · brass section
const brass_section_2 = note(`<
  ~@21 A@2 B C D@2 ~@2 A@2 B E F ~@20 A@2 B C D@2 ~@2 A@2 B E ~@20 C G@3 ~ A@2 B C D@2 ~@2 A@2 B C D@2 ~@2 A@2 B E F
>`.pickRestart({
  A: "[g4@4 ab4@3 g4, eb4]/2", B: "[d4,f4]", C: "~@8 [g3,b3,eb4]@3 ~ [b3,eb4,g4]@3 ~",
  D: "[g4@4 ab4@3 g4, eb4, c4 ~@3]/2", E: "bb3 ~ b3 ~", F: "c4 ~@3", G: "[g4@8 ab4@6 g4@3 ~@7, eb4@17 ~@7, c4 ~@5]/3",
})).s("gm_brass_section").gain(0.59).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  A B C B D E F G F G F G F G F G A F G F G F G F G F G F G F G F G H I J K D E F G F G F G F G F G A F G F G F G F G F
  G F G F G F G F@7 J ~@4 A F G F G F G F G F G F G F G F G F G F G F G F G F G F G F G F G ~
>`.pickRestart({
  A: "x!2 ~@2", B: "x ~@2 x!3 ~ x", C: "x!3 ~@4 x", D: "x", E: "~@5 x ~@2", F: "x!2", G: "x ~@3 x!2 ~@2",
  H: "x ~ x ~ x ~@2 x", I: "x ~@2 x!2 ~@2 x", J: "x ~@3 x ~@2 x", K: "x ~@3 x!4",
})).gain(0.7)

// drums · snare
const snare = s("sd").struct("<~@2 A B C A B@10 ~ B@16 A B A B C A B@10 ~ B@23 D ~@5 B@32 ~>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "x", D: "~@2 x ~@2 x ~@2",
})).gain(0.7)

// drums · low tom
const low_tom = s("lt").struct("<A ~ A ~ B ~@11 A ~@16 A ~ A ~ B ~@11 A ~@28 A ~@33>".pickRestart({
  A: "x!2 ~@2", B: "x",
})).gain(0.78)

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

// drums · mid tom
const mid_tom = s("mt").struct("<A ~ A ~ B ~@11 A ~@16 A ~ A ~ B ~@11 A ~@28 A ~@33>".pickRestart({
  A: "x!2 ~@2", B: "x",
})).gain(0.78)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~@9 B ~@5 C D@7 C D@7 ~@9 B ~ B ~@3 B ~ C D@7 C D@7 C D@6 E ~@5 C D@14 E C D@7 C D@3 C D@3 ~
>`.pickRestart({
  A: "~@5 x ~ x", B: "~@3 x", C: "~@2 x!6", D: "x!8", E: "x!5 ~ x ~",
})).gain(0.39)

// drums · crash
const crash = s("cr").struct("<~@17 A ~@7 A ~@24 A ~@7 A ~@7 A ~@7 A ~@4 A ~@15 A ~@3 A ~@3 A ~@3 A ~@4>".pickRestart({
  A: "x",
})).gain(0.62)

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

stack(
  distortion_guitar, bass, distortion_guitar_2, lead_2_sawtooth, bass_2, piano, brass_section, brass_section_2, kick,
  snare, low_tom, hihat, mid_tom, open_hat, crash, ride
)

More by Bon Jovi