Strudelify

Eat the Rich

Aerosmith

KeyE minorTempo120 bpm
0:00/0:00
// Eat the Rich — Aerosmith
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 acoustic bass (copy of ch 8 electric bass pick)
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
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: edit a riff to change every repeat.

// chords · distortion guitar
const distortion_guitar = note(`<
  A@2 B C B C B D B E F@12 G H G I G J K L M N O P Q R S T F@12 G H G I G J K L M N O P Q R S T B C B C B C B C U@2 V@2
  U@2 W X F@8
>`.pickRestart({
  A: "[e3,b3,e4,b4,e5] ~@2 [e3,b3,e4,b4,e5]@2 ~@3 [e3,b3,e4,b4,e5] ~@2 [e3,b3,e4,b4,e5]@2 ~@3", // E5
  B: "d4 e4 ~ g4@3 ~@2 d4 e4 ~ g3@3 ~ a3", C: "a#3 d4 a#3!2 a3!2 g3 e3 [e3,b3,e4,b4,e5] ~@2 [e3,b3,e4,b4,e5]@2 ~@3",
  D: "b3 d4 a#3!2 a3!2 g3 e3 [e3,b3,e4,b4]@2 ~ [e4,b4,e5]@2 ~@3", // E5
  E: "b3 d4 a#3!2 a3!2 g3 e3 [e3,b3,e4,b4] ~@2 [e3,b3,e4,b4]@2 ~@3", // E5
  F: "[[a4,e5,a5]@2 ~ [g4,d5]@24 ~@5, ~@3 g5 ~@28]/2", G: "[e3,b3,e4]@4 ~@2 [f#3,c#4,f#4]@7 ~@3",
  H: "[g3,d4,g4]@4 ~@2 [a3,e4,a4]@3 ~ a4 b4 a4 g4 e4 ~", I: "[g3,d4,g4]@4 ~@2 [a3,e4,a4]@3 ~ a4 b4@3 ~ a4",
  J: "[g3,d4,g4]@4 ~@2 [a3,e4,a4]@7 ~@3", // G5 A5
  K: "[b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~", // B5
  L: "[b3,e4,a4]@3 ~ [b3,e4,a4]@3 ~ [b3,f#4,b4]@3 ~ [b3,f#4,b4]@3 ~", // Esus4 B5
  M: "[e5,e6]!2 ~ [e5,e6] [d5,d6]!2 [e5,e6] ~@2 [e5,e6]!4 ~@3", N: "[e5,e6]@2 ~ [e5,e6]!2 ~ [e5,e6] ~@3 [e5,e6]!6",
  O: "[e5,e6] ~@3 [e5,e6] ~@4 [e5,e6]!2 ~@3 [e5,e6]!2", P: "[e5,e6] ~@3 [e5,e6] ~@4 [e5,e6] ~ [e5,e6]@2 ~ [e5,e6]!2",
  Q: "[e5,e6] ~@3 [e5,e6] ~@3 [e5,e6]!2 [e5,e6]@3 ~ [e5,e6]!2", // E
  R: "[e5,e6] ~@3 [e5,e6] ~ [e5,e6] ~@2 [e5,e6]!2 ~ [e5,e6]!4", // E
  S: "[e5,e6]!2 ~ [e5,e6] [d5,d6]!2 [e5,e6]@3 ~ [e5,e6]!6", T: "[e5,e6] ~@5 [e5,e6] ~@3 [e5,e6] ~@5",
  U: "[a3,e4,a4] ~@2 [a3,e4,a4]@2 ~@11", V: "[e3,b3,e4,b4,e5] ~@2 [e3,b3,e4,b4,e5]@2 ~@11",
  W: "[b3,f#4,b4]@3 ~ [b3,f#4,b4]@3 ~ [b3,f#4,b4]@3 ~ [b3,f#4,b4]@3 ~", // B5
  X: "[d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~", // D5
})).s("gm_distortion_guitar").gain(0.4)

// bass · electric bass finger
const bass = note(`<
  A B ~ C D E F E F E G H G I G H G H G H G J K L K M K N O P Q R Q R Q R Q S G H G T G H G H G H G J K L K M K N O P Q
  R Q R Q R Q U ~ C D E F E F E V@2 W@2 V@2 X Y G H G Z G H G AA
>`.pickRestart({
  A: "e2 ~@2 e2@2 ~@3 e2 ~@2 e2@2 ~@3", B: "e2 ~@2 e2@2 ~@3 e2 ~@2 e3@3 ~@2", C: "~@8 e2 ~@2 e2@2 ~@3", D: "~@15 a2",
  E: "a#2 d3 a#2 ~ a2 ~ g2!2 e2 ~@2 e2@2 ~@3", F: "d3 e3 ~ g3@3 ~@2 d3 e3 ~ g2@3 ~ a2",
  G: "e2 ~ b2 e3 ~ e2!2 ~ e2 ~ e2 ~ g2 ~ e2 ~", H: "e2 ~ b2 e3 ~ e2!2 ~ e2 ~ e2 ~ g2@3 ~",
  I: "e2 ~ b2 e3 ~ e2!2 ~ g#2 e2 a2 e2 a#2 e2 b2 ~", J: "e2 ~ b2 e3 ~ e2!2 ~ e2 ~ e2 ~ g2 ~ e3 ~",
  K: "e2@4 ~@2 f#2@7 ~@3", L: "g2@4 ~@2 a2@4 ~@2 a2@3 ~", M: "g2@4 ~@2 a2@3 ~ e3 ~ e3@3 ~",
  N: "g2@4 ~@2 a2@4 ~@2 a2 ~ a#2 ~", O: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ e3 ~",
  P: "a3 ~ f#3 a3 ~ f#3 a3 ~ b3!6 f#3 ~", Q: "e3@2 ~ d3@2 ~ b2 ~ a2@3 ~@3 a2 ~",
  R: "d3@2 ~ b2@2 ~ a2 ~ g2 ~ e2 ~ [e2,e3]@3 ~", S: "d3@2 ~ b2@2 ~ a2 ~ g2 ~ e2 ~ e3@3 ~",
  T: "e2 ~ b2 e3 ~ e2!2 ~ e2 a#2@2 ~ a2 ~ f#2 ~", U: "d3@2 ~ b2@2 ~ a2 ~ g2 ~ e2 ~ e2@3 ~", V: "a2 ~@2 a2@2 ~@11",
  W: "e2 ~@2 e2@2 ~@11", X: "b2@3 ~ b2@3 ~ b2 ~ b2 ~ b2 ~ b2 ~", Y: "d3 ~ d3 ~ d3!2 ~ d3!2 ~ d3 ~ d3 ~ d3!2",
  Z: "e2 ~ b2 e3 ~ e2!2 ~ g2 e2 a2 ~ a#2 ~ b2 ~", AA: "e2 ~ b2 e3 ~ e2!2 ~ e2!2 ~ e2 g2@3 ~",
})).s("gm_electric_bass_finger").gain(0.4)

// bass · electric bass pick
const bass_2 = note(`<
  A B ~ C D E F E F E G H G I G H G H G H G J K L K M K N O P Q R Q R Q R Q S G H G T G H G H G H G J K L K M K N O P Q
  R Q R Q R Q U ~ C D E F E F E V@2 W@2 V@2 X Y G H G Z G H G AA
>`.pickRestart({
  A: "e1 ~@2 e1@2 ~@3 e1 ~@2 e1@2 ~@3", B: "e1 ~@2 e1@2 ~@3 e1 ~@2 e2@3 ~@2", C: "~@8 e1 ~@2 e1@2 ~@3", D: "~@15 a1",
  E: "a#1 d2 a#1 ~ a1 ~ g1!2 e1 ~@2 e1@2 ~@3", F: "d2 e2 ~ g2@3 ~@2 d2 e2 ~ g1@3 ~ a1",
  G: "e1 ~ b1 e2 ~ e1!2 ~ e1 ~ e1 ~ g1 ~ e1 ~", H: "e1 ~ b1 e2 ~ e1!2 ~ e1 ~ e1 ~ g1@3 ~",
  I: "e1 ~ b1 e2 ~ e1!2 ~ g#1 e1 a1 e1 a#1 e1 b1 ~", J: "e1 ~ b1 e2 ~ e1!2 ~ e1 ~ e1 ~ g1 ~ e2 ~",
  K: "e1@4 ~@2 f#1@7 ~@3", L: "g1@4 ~@2 a1@4 ~@2 a1@3 ~", M: "g1@4 ~@2 a1@3 ~ e2 ~ e2@3 ~",
  N: "g1@4 ~@2 a1@4 ~@2 a1 ~ a#1 ~", O: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ e2 ~",
  P: "a2 ~ f#2 a2 ~ f#2 a2 ~ b2!6 f#2 ~", Q: "e2@2 ~ d2@2 ~ b1 ~ a1@3 ~@3 a1 ~",
  R: "d2@2 ~ b1@2 ~ a1 ~ g1 ~ e1 ~ [e1,e2]@3 ~", S: "d2@2 ~ b1@2 ~ a1 ~ g1 ~ e1 ~ e2@3 ~",
  T: "e1 ~ b1 e2 ~ e1!2 ~ e1 a#1@2 ~ a1 ~ f#1 ~", U: "d2@2 ~ b1@2 ~ a1 ~ g1 ~ e1 ~ e1@3 ~", V: "a1 ~@2 a1@2 ~@11",
  W: "e1 ~@2 e1@2 ~@11", X: "b1@3 ~ b1@3 ~ b1 ~ b1 ~ b1 ~ b1 ~", Y: "d2 ~ d2 ~ d2!2 ~ d2!2 ~ d2 ~ d2 ~ d2!2",
  Z: "e1 ~ b1 e2 ~ e1!2 ~ g1 e1 a1 ~ a#1 ~ b1 ~", AA: "e1 ~ b1 e2 ~ e1!2 ~ e1!2 ~ e1 g1@3 ~",
})).s("gm_electric_bass_pick").gain(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<~@66 A ~@15 B C D@2 E F G H>".pickRestart({
  A: "[e5,e6]@3 ~@13", B: "f#5 ~ d6@3 ~ f#5@2 ~ d6@2 ~ f#5 ~ d6 ~", C: "f#5@2 ~ d6@2 ~ f#5@2 ~ d6@2 ~ f#5 ~ [a5,d6] ~",
  D: "[g5 ~ f#5 ~ e5 f#5 e5@3 ~ a4 ~ [g5,b5,e6] g5 ~ [b5,e6]@2 ~ [b5,e6] g5 ~ [b5,e6] g5 ~ [b5,e6] ~ e6@6]/2", // Em E5
  E: "~ d6 e6!2 [d6,e6] [b5,e6] d6 ~ e6 d6 ~ b5 ~ d6 b5 ~", F: "[b5,d6] b5!3 d6 b5!2 a5 g5 a5 g5 a5 a#5 d6 a5 b5",
  G: "e6 g5 a5 g5 a5 ~ g5 e5 a5 g5!3 a5!2 d6 a5", H: "g5 a5 g5 e5 a5 [e5,g5] g5 a5 ~ a5 g5 e5 a5 e5 [g#5,b5] e4",
})).s("gm_overdriven_guitar").gain(0.4)

stack(distortion_guitar, bass, bass_2, overdriven_guitar)

More by Aerosmith