Strudelify
I Can't Live With You cover art

Innuendo

I Can't Live With You

Queen

KeyE majorTempo184 bpm
0:00/0:00
// I Can't Live With You — Queen
// 184 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 203 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(184/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 · "Electric Guitar"
const distortion_guitar = note(`<
  A B C D C E F G C E F G H@2 I@2 C E C J K L K L M N O@2 P Q R@4 S@2 T@2 U@2 T@2 V@2 W@2 X@2 C E F G C E F G H@2 I@2 C
  E K L K L M N O@2 P Q R@4 S@2 T@2 U@2 T@2 V@2 W@2 X@2 Y Z AA@2 AB@2 AC@2 AD@2 AE@2 AF AG@2 AF AH@2 AG AF AH@2 AG AI
  AH@2 AG AF AJ AK AL AM C E F G C E F G AN AO AP AQ AR ~ F G C AS F G AT@4 AU@4 C AS F G C E F G AV AW AX AY AV AW AX
  AY AV AW AX AY C E F G ~ AV AW AZ BA AW AX AY C E AV BB BC BD BE BF BC BD BE BF BC BD BE BF BC BD BE BF ~
>`.pickRestart({
  A: "[e3,b3,e4,g#4]!2 ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~@2", B: "[e3,b3,e4,g#4] ~",
  C: "[e3,b3,e4,g#4]!2 ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4]", D: "e3 ~ e3@2", E: "[e3,b3,e4,g#4]",
  F: "[a2,e3,a3,c#4]", G: "[b2,f#3,b3,e4] [b2,f#3,b3,d#4]", H: "[d3,a3,d4,f#4]/2", I: "[a2,e3,a3,c#4,e4]/2",
  J: "[e3,b3,e4,g#4]@4 ~@2 [e2,b2,e3] [f2,c3,f3]", K: "[f#2,c#3,f#3] ~@3", L: "~@6 [e2,b2,e3] [f2,c3,f3]",
  M: "[f#2,c#3,f#3]@3 ~", N: "~ [b3,e4] ~ [b3,e4] ~ [b3,e4] ~@2", O: "[a#3@6 b3@6 c4@6 c#4@6 e4@3 c#4 g#3@4]/2",
  P: "[a3,e4,a4,d5]@2 [a3,e4,a4,d5]@2 ~ [a3,e4,a4,d5] ~ [a3,e4,a4,d5]", Q: "[a3,e4,a4,d5]@3 ~",
  R: "[a3@2 a3@2 ~ [d4,a4,d5] ~ [e4,g4,d5]@9]/2", S: "[c#4@6 d4@6 d#4@6 e4@6 g4@3 e4 a4@3 g4]/2", T: "[g4,c5,e5]/2",
  U: "[[a4,d5,f#5]@3 [a4,d5,f#5]@3 [a4,d5,f#5]@2]/2", // D
  V: "[[a4,d5,f#5]@2 [a4,d5,g5] [a4,d5,f#5]@2 [a4,d5,f#5] [a4,d5,f#5]@2]/2", // D Dsus4 D
  W: "[[g3,c4,e4]@3 [g3,b3,d4]@3 [g3,c4,e4]@3 [g3,b3,d4]@3 [g3,c4,e4]@2 [g3,b3,d4]@2]/2", // C G C G C G
  X: "[[a3,d4,f#4]@3 [a3,c#4,e4]@3 [a3,d4,f#4]@3 [a3,c#4,e4]@3 [a3,d4,f#4]@2 [a3,c#4,e4]@2]/2", Y: "[b4,e5,f#5]",
  Z: "[b4,d#5,f#5]", AA: "[b4,d#5,f#5]!4", AB: "[d4,g#4,b4,e5]/2", AC: "[c#4,e4,a4,e5]/2", AD: "[c4,e4,a4,e5]/2",
  AE: "[[b3,d4,g4,d5], g5@11 ~@5]/2", AF: "[f#4,b4,d#5]", AG: "[e4,a4,c#5]", AH: "[[b4,e5], g#5@11 ~@5]/2",
  AI: "[b4,e5,g#5] [a4,d#5,f#5]", AJ: "[b4,e5,g#5]", AK: "[a4,d5,f#5]@3 [b4,d5,g5,b5]",
  AL: "[a4,b4,d5,g5,b5]@3 [b4,d#5,f#5,b5]", AM: "[b4,d#5,f#5,b5]!2", AN: "a3!2", AO: "d4 e4", AP: "e4!2", AQ: "a4!2",
  AR: "b4", AS: "[e3,b3,e4,g#4] g#4@3", AT: "[a3,d4,e4]/4", AU: "[a2,e3,a3,c#4]/4", AV: "e4 d#4", AW: "c#4 b3",
  AX: "a3 g#3", AY: "f#3 b3", AZ: "a3@2 g#3 f#3", BA: "e3 d#4", BB: "c#4@4 b3@2 g#3 a3", BC: "b3 a3 g#3 a3 b3@4",
  BD: "e3 d#3", BE: "c#3 b2", BF: "b2 f#3",
})).s("gm_distortion_guitar").gain(0.48).pan(0.1)

// chords · overdriven guitar · "Electric Guitar"
const overdriven_guitar = note(`<
  A ~ B@2 A C D E A C D E F@2 G@2 A C A H I J I J I ~ K@2 L M L M L ~ N@2 O@2 P@2 O@2 Q R O@2 S@2 A C D E A C D E F@2
  G@2 A C I J I J I ~ K@2 L M L M L ~ N@2 O@2 P@2 O@2 Q R O@2 S@2 T U V@2 ~@28 A C D E A W D E X Y Z AA AB ~ D E A AC D
  E AD@4 AE@4 A C D E A C D E AF@2 AG AH A C AG AH A AI AG AH A AI AG AH A AI AG AH A AI AG AH A C AG AH A C AG AH A C
  AG AH A C AG AH A C AG AH ~
>`.pickRestart({
  A: "[e3,b3,e4,g#4]!2 ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4]", // E
  B: "[[e3,b3,e4,g#4]!2 ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4]@5 e3@4]/2", C: "[e3,b3,e4,g#4] ~",
  D: "[a2,e3,a3]", E: "[b2,f#3,b3]", F: "[d3,a3,d4]/2", G: "[a2,e3,a3]/2",
  H: "[e3,b3,e4,g#4]@4 ~@2 [e2,b2,e3] [f2,c3,f3]", I: "[f#2,c#3,f#3] ~@3", J: "~@6 [e2,b2,e3] [f2,c3,f3]",
  K: "[a#2@6 b2@6 c3@6 c#3@6 e3@3 c#3 g#2@4]/2", L: "[a1,e2,a2]!2 ~@2", M: "~@11 e1 g1@3 e1",
  N: "[c#3@6 d3@6 d#3@6 e3@6 g3@3 e3 a3@3 g3]/2", O: "[[c3,e3]@3 [b2,g3]@3 [c3,e3]@3 [b2,g3]@3 [c3,e3]@2 [b2,g3]@2]/2",
  P: "[d3,a3,d4,g4]@3 [d3,a3,d4,f#4] [d3,a3,d4,f#4]@3 [d3,a3,d4,f#4]", Q: "[a2,d3,a3]@3 [a2,d3,a3]@5",
  R: "e4 d#4 ~ d4 c4 b3 ~ a3 f3 e3 ~ d3 c3 b2 ~ a2",
  S: "[[f#3,a3,d4]@3 [e3,a3,c#4]@3 [f#3,a3,d4]@3 [e3,a3,c#4]@3 [f#3,a3,d4]@2 [e3,a3,c#4]@2]/2", T: "[f#3,b3,e4]",
  U: "[f#3,b3,d#4]", V: "[f#3,b3,d#4]!4", W: "[e3,b3,e4,g#4]", X: "d4 e4", Y: "f#4 g#4", Z: "a4 b4", AA: "c5 c#5",
  AB: "e5", AC: "[e3,b3,e4,g#4] b4@3", AD: "[d4,f#4,a4,d5]/4", AE: "[[c#4,e4,a4,c#5]@7 a3]/4",
  AF: "[[e3,b3,e4,g#4]!2 ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4]@5 a3@4]/2", AG: "[a2,e3,a3,c#4]",
  AH: "[b2,f#3,b3,e4] [b2,f#3,b3,d#4]", AI: "~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4] [e3,b3,e4,g#4]@4",
})).s("gm_overdriven_guitar").gain(0.48).pan(0.9)

// bass · synth bass 2 · "Bass"
const bass = note(`<
  ~@4 A B C D E F G H I J K L A M A N O P O P O ~ Q@2 R S R S R@2 T@2 U@2 V@2 W@2 X Y Z@2 AA@2 A B C D E F G H I J K L A
  M O P O P O ~ Q@2 R S R S R@2 T@2 U@2 V@2 W@2 X Y Z@2 AA@2 AB AC AD AE AF@2 AG@2 AH AI AJ AE AK AL AM AN AO AP AQ@10
  AP AR AS AE A B AT AJ A B AT AJ AU AV AW AX A B AY AZ A F AY BA BB@2 BC@2 BD@4 A B AT BE A B AT AE BF BG BH BI A BJ BK
  BL BM BN BO BP BQ B BR AZ BM BN BS BT BU BV AT AZ BM BN BW BX A B K BY A B K BY A B K BY A B K BY ~
>`.pickRestart({
  A: "e2 e2@2 e2@2 e2@2 e2", B: "e2 ~", C: "a1@5 a1@2 a1", D: "b1@4 b1 f#2 d#2 b1", E: "e2 e2@2 e2@2 e2@2 b1",
  F: "e2 ~ e2@2", G: "a1@2 c#2 e2", H: "b1@2 d#2 f#2", I: "d2@3 d2!5", J: "d2@3 d2@2 d2!3", K: "a1@3 a1 a1@2 ~@2",
  L: "a1 c#2 ~ d2 ~ c#2 d2 d#2", M: "e2 ~@3", N: "e2@2 ~@2 e2@2 e1 f1", O: "f#1 ~@3", P: "~@6 e1 f1",
  Q: "[a#1@3 b1@3 c2@3 c#2@3 e2@2 e2@2]/2", R: "a1!2 ~@2", S: "a1@4 a1@4 ~@3 e1 g1@3 e1",
  T: "[c#2@3 d2@3 d#2@3 e2@3 g2@2 e2@2]/2", U: "[c2@4 c2@2 c2@3 c2@3 c2@2 c2@2]/2",
  V: "[d2@3 d2 d2@2 d2@6 d2@2 d2@2]/2", W: "c2!4", X: "d2!4", Y: "d2@3 f#2 a2@4 d2@4 d2@4",
  Z: "[c2@3 g1@3 c2@3 g1@3 c2@2 g1@2]/2", AA: "[d2@3 a1@3 d2@3 a1@3 d2@2 a1@2]/2", AB: "b1 b1@2 b1@2 b1@2 b1",
  AC: "b1!2 b1@2", AD: "b2 b2@2 b2@2 b2@2 b2", AE: "b1!2", AF: "[d2@3 d2]/2", AG: "[c#2@3 c#2]/2", AH: "c2", AI: "c2!2",
  AJ: "b1", AK: "b1@6 b1!2", AL: "b1@2 b1!2 b1@2 b1!2", AM: "c#2@4 c#2@2 c#2!2", AN: "d#2@3 d#2", AO: "e2 e2@2 e2",
  AP: "e2@3 e2 e2@2 e2@2", AQ: "e2!4", AR: "f#1@3 f#1 b1@4", AS: "g1!4", AT: "a1", AU: "d2!2", AV: "d2@4 d2@2 g#2 a2",
  AW: "a1!2", AX: "a1 c#2 ~ d2 ~ d#2 ~@2", AY: "a1@3 a1", AZ: "b1@3 b1 b1@2 b1@2", BA: "b1@5 b1 c2 c#2",
  BB: "[d2@7 a2]/2", BC: "[d3@3 a2]/2", BD: "a1/4", BE: "b1 d#2@2 f#2@2 b2 b1@2", BF: "e2 d#2", BG: "c#2 b1",
  BH: "a1@3 a1 c#2 a1@3", BI: "b1@3 b1 d#2 b1 d2 d#2", BJ: "e2@2 e2!2 e2@2 e2!2", BK: "a1@4 a1@3 a#1",
  BL: "b1@4 b1@3 b1", BM: "e2@3 e2 d#2 d#2@2 d#2", BN: "c#2@3 c#2 b1 b1@2 b1", BO: "a1@3 a1!2 a1@2 a1",
  BP: "b1@3 b1!2 b1@2 b1", BQ: "e2@2 e2@4 e2@4 e2@4 e2 ~", BR: "a1@2 a1!2", BS: "a1@3 a1 c#2 c#2@2 c#2",
  BT: "b1@3 b1 c#2 d2 d#2@2", BU: "e3 d#3", BV: "c#3 b2", BW: "a1@3 a1 g#1 g#1@2 g#1", BX: "b1 b1@2 b1 b1@2 b1@2",
  BY: "b1@3 b1 b1@2 ~@2",
})).s("gm_synth_bass_2").gain(0.8)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E F C@4 G B@5 H ~ H B E I E J E B E J E B E J E B E J E B E J E B E J E B E J E F C@4 G B@5 H ~ E I E J E B E
  J E B E J E B E J E B E J E B E J E B E J K L B ~ B F B C G F G C E G E I B M C B I C B@2 C G@2 B@5 N C B C N C E O B
  C B P B C Q R S C I R B I B@2 H ~ B@2 N C B C@3 I C B C@2 I N C B C B C B C N C@3 B C B R T U C R C@2 V W X U C R X U
  C R X U C R X U C R ~
>`.pickRestart({
  A: "x!2 ~ x ~ x ~@2", B: "x", C: "x ~@2 x ~ x ~@2", D: "x ~@10 x!3 ~ x", E: "x ~@6 x", F: "x ~@2 x ~ x ~ x",
  G: "x ~@2 x ~@4", H: "x!2 ~ x ~ x ~ x", I: "x ~@2 x", J: "x!2 ~@2", K: "x ~@4 x ~ x", L: "x ~ x ~@2 x ~ x",
  M: "x ~@2 x ~@2 x ~", N: "x!2", O: "x ~@4 x ~@2", P: "x ~@10 x ~@4", Q: "x ~ x!2", R: "x ~@2 x ~ x!2 ~",
  S: "x ~@2 x!2 ~@3", T: "~ x!2 ~ x!2 ~ x", U: "x ~ x!2 ~ x!2 ~", V: "x ~@2 x ~@3 x", W: "x!2 ~ x ~ x!2 ~",
  X: "~ x!2 ~ x!2 ~@2",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~ A ~ B A@7 B A@4 ~ A ~ A@4 C A@5 C A@25 B A@4 ~ A@4 C A@5 C A@20 ~@2 A@15 D A@3 E A@7 F A@11 G A@12 ~ A ~ A@4 C A@19
  C A@4 H A@7 I J A@2 I J A@2 I J A@2 I J A@2 ~
>`.pickRestart({
  A: "~ x", B: "~@3 x!3 ~ x ~@8", C: "~@2 x!2", D: "x!2", E: "~@3 x!2 ~@11", F: "x!2 ~@2 x ~@3",
  G: "~@3 x ~@4 x ~@3 x ~@3", H: "~@3 x ~@2 x ~", I: "x ~@2 x ~@2 x ~", J: "~ x ~@2 x ~@3",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@11 A ~@43 A ~@37 B ~@15 A ~@3 A ~@15 C ~@3 D ~@31 C ~@37>".pickRestart({
  A: "~@12 x!2 ~ x", B: "~@8 x!2 ~ x!3 ~ x", C: "~@3 x", D: "~@4 x!2 ~ x ~@8",
})).gain(0.54)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  A B A ~ A@17 C A C A@5 C A C A C A@5 C A C A C B C A@17 C A C A@5 C A C A C A@5 C A C A C B C A@54 ~@8 A@52 ~
>`.pickRestart({
  A: "x!4", B: "x!2 ~ x", C: "x!3 ~",
})).gain(0.54)

// drums · mid tom
const mid_tom = s("mt").struct("<~@3 A ~@7 B ~@43 B ~@36 C D ~@15 E ~@3 B ~@7 F ~@26 G H ~@53>".pickRestart({
  A: "~@8 x!2 ~@6", B: "~@8 x!2 ~ x ~@4", C: "~@6 x ~@4 x ~@4", D: "~@4 x!2 ~ x ~@8", E: "~@4 x!2 ~ x ~ x ~ x ~@4",
  F: "~@2 x!2 ~@2 x!2", G: "x ~@2 x ~ x ~@2", H: "x",
})).gain(0.54)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@21 A ~ A ~@5 A ~ A ~ A ~@5 A ~ A ~ A B A ~@17 A ~ A ~@5 A ~ A ~ A ~@5 A ~ A ~ A B A ~@18 C@2 ~@95
>`.pickRestart({
  A: "~@3 x", B: "~ x", C: "x!2",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@92
  [~@2 x ~@5 x ~@3 x!2 ~ x]
  [x!2 ~ x ~@12]
  ~@15
  [~ x ~ x ~@12]
  ~@3
  [~@5 x ~ x ~@8]
  ~@89
>`).gain(0.54)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~ B@5 ~ B@2 C@2 ~ C ~@2 A ~@9 A ~@7 A ~@12 B@4 ~ B@2 C@2 ~ C ~@2 A ~@7 A ~@7 A ~@16 B@8 C ~ C ~@3 B@34 C ~ C ~@2 A
  ~ A B D B@50 ~
>`.pickRestart({
  A: "~ x", B: "x!2", C: "x", D: "x ~@3 x!2 ~@2",
})).gain(0.36)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x!4 ~ x ~ x] x [x!4 ~ x ~ x] x [x!4 ~ x ~ x]!198 ~>").gain(2.13)

stack(
  distortion_guitar, overdriven_guitar, bass, kick, snare, low_tom, pedal_hat, mid_tom, open_hat, high_tom, crash,
  cabasa
)

More by Queen