Strudelify

All The Young Dudes

Mott The Hoople

KeyA majorTempo80 bpm
0:00/0:00
// All The Young Dudes — Mott The Hoople
// 80 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 "Bass" electric bass finger (copy of ch 3 "Bass" acoustic bass)
// note: Full arrangement: all 55 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): Lead Guitar.
setcpm(80/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 · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note(`<
  ~ A B C D A B C D A B E F G H I J K L M N O P Q R S T U V W X@2 V Y Z@2 AA AB AC@2 AD AE AF AG AH AI AJ AK AL AM L M N
  O AN
>`.pickRestart({
  A: "[d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2 [c#3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@2 c#3!2", // D Dmaj7
  B: "[b2,f#3,b3,d4,f#4]@4 [b2,f#3,b3,d4,f#4]@2 b2!2 [a2,f#3,a3,d4,f#4]@4 [a2,f#3,a3,d4,f#4]@2 a2!2", // Bm D
  C: "[f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2@2", // F#m
  D: "[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]!3 [a2,e3,a3,d4,e4]@7 [a2,e3,a3,c#4]@2", // A Asus4 A
  E: "[f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2 [f#2,c#3,f#3,a3,c#4,f#4] ~ f#2 [f#2,c#3,f#3,a3,c#4,f#4]@4 [f#2,c#3,f#3,a3,c#4,f#4]@2", // F#m
  F: "[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]!3 [a2,e3,a3,d4,e4]@5 [a2,e3,a3,c#4]@2 a2@2", // A Asus4 A
  G: "[e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]!2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 e2@2", // Em7
  H: "[f#2,c#3,f#3,a#3,c#4,f#4]@4 [f#2,c#3,f#3,a#3,c#4,f#4]@2 f#2!2 [b2,f#3,b3,d4,f#4]@4 [a2,f#3,b3,d4]@2 [a2,f#3,b3,d4]@2", // F# Bm Bm7
  I: "[g2,d3,g3,b3,d4,g4]@2 [g2,d3,g3,b3,d4,g4]@2 [g2,d3,g3,b3,d4,g4]@2 g2@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,a3,d4,g4] [d3,a3,d4,f#4]@2 [d3,a3,d4,g4]@2", // G D Dsus4 D Dsus4
  J: "[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4] [a2,e3,a3,d4,e4]@3 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2", // A Asus4 A
  K: "[a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4] [a2,e3,a3,d4,e4]!3 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4] a2", // A Asus4 A
  L: "[d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@2 c#3!2", // D Dmaj7
  M: "[b2,f#3,b3,d4,f#4]@2 [b2,f#3,b3,d4,f#4]@2 [a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4] a2", // Bm D
  N: "[a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2 [g2,e3,a3,c4,e4]@2 [g2,e3,a3,c4,e4] g2", // Am Am7
  O: "[f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4] f2 [e2,c3,g3,c4,e4]@2 [c3,e3,g3,c4,e4] c3", // F C
  P: "[g2,d3,g3,d4,g4]@2 g2!2 [c3,e3,g3,c4,e4]@2 c3!2 [a2,e3,a3,c#4]@2 a2!2 [d3,a3,d4,f#4]@4", // G5 C A D
  Q: "[d3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@2 c#3!2 [b2,f#3,b3,d4,f#4]@4", // D Dmaj7 Bm
  R: "[b2,f#3,b3,d4,f#4]@2 [a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4] a2 [a2,e3,a3,c4,e4]@2", // Bm D Am
  S: "[a2,e3,a3,c4,e4]@2 [g2,e3,a3,c4,e4]@2 [g2,e3,a3,c4,e4] g2 [f2,c3,f3,a3,c4,f4]@2", // Am Am7 F
  T: "[f2,c3,f3,a3,c4,f4]@2 f2@2 [e2,c3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@2 c3@2 [g2,d3,g3,d4,g4]@2 g2!2", // F C G5
  U: "[c3,e3,g3,c4,e4]@2 c3!2 [a2,e3,a3,c#4]@2 a2!2 [d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2", // C A D
  V: "[c#3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@2 c#3!2 [b2,f#3,b3,d4,f#4]@4 [b2,f#3,b3,d4,f#4]@2 b2!2", // Dmaj7 Bm
  W: "[a2,f#3,a3,d4,f#4]@4 [a2,f#3,a3,d4,f#4]@2 a2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2", // D F#m
  X: "[[f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2@2 [a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]!3 [a2,e3,a3,d4,e4]@7 [a2,e3,a3,c#4]@2 [d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2]/2", // F#m A Asus4 A D
  Y: "[a2,f#3,a3,d4,f#4]@4 [a2,f#3,a3,d4,f#4]@2 a2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2!2 [f#2,c#3,f#3,a3,c#4,f#4]@2 f#2 [f#2,c#3,f#3,a3,c#4,f#4]", // D F#m
  Z: "[~ f#2 [f#2,c#3,f#3,a3,c#4,f#4]@4 [f#2,c#3,f#3,a3,c#4,f#4]@2 [a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]!3 [a2,e3,a3,d4,e4]@5 [a2,e3,a3,c#4]@2 a2@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]!2]/2", // F#m A Asus4 A Em7
  AA: "[e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 [e2,b2,e3,g3,d4,e4]@2 e2@2 [f#2,c#3,f#3,a#3,c#4,f#4]@4 [f#2,c#3,f#3,a#3,c#4,f#4]@2 f#2!2", // Em7 F#
  AB: "[b2,f#3,b3,d4,f#4]@2 [a2,f#3,b3,d4]!2 [g2,d3,g3,b3,d4,g4]!3 g2", // Bm Bm7 G
  AC: "[[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] [d3,a3,d4,g4] [d3,a3,d4,f#4]@2 [d3,a3,d4,g4]@2 [a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4] [a2,e3,a3,d4,e4]@3 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@4 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4] [a2,e3,a3,d4,e4]]/2", // D Dsus4 D Dsus4 A Asus4 A Asus4
  AD: "[a2,e3,a3,d4,e4]!2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4]@2 [a2,e3,a3,c#4] a2 [d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]@4", // Asus4 A D
  AE: "[c#3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@2 c#3!2 [b2,f#3,b3,d4,f#4]@4 [b2,f#3,b3,d4,f#4]@4", // Dmaj7 Bm
  AF: "[a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4] a2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2", // D Am
  AG: "[g2,e3,a3,c4,e4]@2 [g2,e3,a3,c4,e4] g2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4] f2", // Am7 F
  AH: "[e2,c3,g3,c4,e4]@4 [c3,e3,g3,c4,e4]@2 c3@2 [g2,d3,g3,d4,g4]@2 g2!2 [c3,e3,g3,c4,e4]@2 c3!2", // C G5 C
  AI: "[a2,e3,a3,c#4]@2 a2!2 [d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]@4 [c#3,a3,d4,f#4]@4", // A D Dmaj7
  AJ: "[c#3,a3,d4,f#4]@2 c#3!2 [b2,f#3,b3,d4,f#4]@4 [b2,f#3,b3,d4,f#4]@4 [a2,d3,a3,d4,f#4]@4", // Dmaj7 Bm D
  AK: "[a2,d3,a3,d4,f#4] a2 [a2,e3,a3,c4,e4]@2 [a2,e3,a3,c4,e4]@2 [g2,e3,a3,c4,e4]@2", // D Am Am7
  AL: "[g2,e3,a3,c4,e4] g2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4] f2 [e2,c3,g3,c4,e4]@2", // Am7 F C
  AM: "[c3,e3,g3,c4,e4]@2 c3@2 [g2,d3,g3,d4,g4]@2 g2!2 [c3,e3,g3,c4,e4]@2 c3!2 [a2,e3,a3,c#4]@2 a2!2", // C G5 C A
  AN: "[g2,d3,g3,d4,g4]@2 g2!2 [c3,e3,g3,c4,e4]@2 c3!2 [a2,e3,a3,c#4]@2 a2!2 ~@4", // G5 C A
})).s("gm_acoustic_guitar_steel").gain(0.19)

// other · overdriven guitar · "Lead Guitar"
const overdriven_guitar = note("<~ A B C D ~@17 E ~@3 F ~@17 G ~@4 H ~@4 E>".pickRestart({
  A: "~ d5 ~@2 e5@3 ~", B: "~@2 b4@2 ~@2 d5@2 c#5@5 ~ b4 ~", C: "b4!2 ~ b4!3 ~ a#4 ~@8",
  D: "b4!2 ~ b4!2 b4@3 [d5,f#5]@8", E: "[b2,b3] ~@3", F: "~@3 [b2,b3]", G: "~@2 [b2,b3] ~", H: "~ [b2,b3] ~@2",
})).s("gm_overdriven_guitar").gain(0.19)

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~ A B C D A B C E F G H I J K L M N O P Q R S@5 T U V W X Y Z AA AB@2 AC AD@2 AE AF AG AH AI AJ@4 AK O P Q AL AM
>`.pickRestart({
  A: "d2@3 d2 c#2@3 c#2", B: "b1@3 b1 a1@2 a1@2", C: "f#1!4 f#1@3 f#1", D: "a1@2 a1@2 a1@2 a1 a1@7 ~@2",
  E: "a1@2 e1@2 a1!2 e1@2 a1@6 a1 c#2", F: "d2@3 d2 c#2@3 a1", G: "b1@3 f#1 a1@2 a1@2", H: "f#1@2 f#1@2 f#1@2 f#1 g1",
  I: "a1!2 ~@2", J: "e2@3 e2", K: "f#2@2 b2 a2", L: "g2 d2", M: "a1@4 a1@2 a1 a1@3 a1@2 a1@2 a1@2",
  N: "a1@4 a1@2 a1!10", O: "d2 c#2", P: "b1 a1", Q: "a1 g1", R: "f1@2 e1 c2",
  S: "[b1 c2 c#2 d2@2 c#2@2 b1@2 a1@2 a1@2 g1@2 f1@2 e1 c2 b1]/5", T: "c2@2 c#2@2 d2@3 d2", U: "c#2@3 c#2 b1@3 b1",
  V: "a1@2 a1@2 f#1!4", W: "f#1@6 f#1@2 a1@2 e1@2 a1!2 e1@2", X: "a1@6 a1 c#2 d2@6 d2@2", Y: "c#2@3 a1 b1@3 f#1",
  Z: "a1!2 f#1!2", AA: "f#1@2 f#1 g1 a1@2 a1@2", AB: "[~@2 e2@3 e2 f#2@2]/2", AC: "b2 a2 g2@2",
  AD: "[d2@8 a1@4 a1@2 a1 a1@3 a1@2 a1@2 a1@2 a1@4 a1@2 a1!2]/2", AE: "a1!8 d2@8", AF: "c#2 b1", AG: "a1!2",
  AH: "g1 f1", AI: "e1 c2 b1 c2", AJ: "[c#2 d2@2 c#2@2 b1@2 a1@2 a1@2 g1@2 f1@2 e1]/4", AK: "c2 b1 c2 c#2",
  AL: "f1@2 e2 c2", AM: "b1 c2 c#2 ~",
})).s("gm_acoustic_bass").gain(0.4)

// chords · overdriven guitar · "Rhythm Guitar"
const overdriven_guitar_2 = note(`<
  ~@4 A B ~@2 C@2 ~@2 D E ~@2 F G H I J K L@5 M@2 ~ N O@2 ~ P Q ~@2 P R S T U V W X@4 Y H I J K Z
>`.pickRestart({
  A: "[a2,e3,a3]", B: "[d3,a3,d4]", C: "[[a2,e3,a3]@8 [e3,a3,d4] [e3,a3,c#4]@5 e3@2 [d3,a3,d4]@16, ~@4 a2@3 a2@9]/2",
  D: "[a2,e3,a3]@4 [a2,e3,a3]@4 [e3,a3,d4] [e3,a3,c#4]@3 b2@4, ~@2 a2 ~", E: "e3 ~",
  F: "[a2,e3,a3]@4 [a2,e3,a3]@4 [e3,a3,d4] [e3,a3,c#4]@3 [a2,e3,a3,c#4]@4, ~@2 a2 ~", G: "[a2,e3,a3]!16",
  H: "[d3,d4] [c#3,c#4]", I: "[b2,b3] [a2,a3]", J: "[a2,a3] [g2,g3]", K: "[f2,f3]@2 [e2,e3] [c3,c4]",
  L: "[[b2,b3] [c3,c4] [c#3,c#4] [d3,d4]@2 [c#3,c#4]@2 [b2,b3]@2 [a2,a3]@2 [a2,a3]@2 [g2,g3]@2 [f2,f3]@2 [e2,e3] [c3,c4] [b2,b3]]/5", // B C C# D C# B A G …
  M: "[[c3,c4] [c#3,c#4] [d3,a3,d4]@4 ~@2]/2", N: "~ [a2,e3,a3]",
  O: "[[e3,a3,d4] [e3,a3,c#4]@5 e3@2 [d3,a3,d4]@16 ~@8, a2@3 a2@9 ~@4]/2", P: "~@2 [a2,e3,a3]!2",
  Q: "[e3,a3,d4] [e3,a3,c#4]@3 b2@4 e3@8, a2 ~@3", R: "[e3,a3,d4] [e3,a3,c#4]@3 [a2,e3,a3,c#4]@4 [a2,e3,a3]!8, a2 ~@3",
  S: "[a2,e3,a3]!8 [d3,d4]@8", T: "[c#3,c#4] [b2,b3]", U: "[a2,a3]!2", V: "[g2,g3] [f2,f3]",
  W: "[e2,e3] [c3,c4] [b2,b3] [c3,c4]", // E C B C
  X: "[[c#3,c#4] [d3,d4]@2 [c#3,c#4]@2 [b2,b3]@2 [a2,a3]@2 [a2,a3]@2 [g2,g3]@2 [f2,f3]@2 [e2,e3]]/4", // C# D C# B A G F E
  Y: "[c3,c4] [b2,b3] [c3,c4] [c#3,c#4]", Z: "[b2,b3] [c3,c4] [c#3,c#4] ~",
})).s("gm_overdriven_guitar").gain(0.25)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@17 A ~@21 B C ~@3 D E ~@2 F G H ~@4>".pickRestart({
  A: "~@3 x", B: "~@8 x!5 ~@2 x", C: "x ~@2 x!2 ~ x ~ x ~@7", D: "~ x!3", E: "x ~ x!3 ~@11", F: "~@12 x!2 ~@2",
  G: "x!2 ~@2 x ~@3 x ~@3 x ~@3", H: "x",
})).gain(0.29)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 [~@6 x ~@2 x ~@5 x] ~@21 [~@7 x] [~ x ~@5 x ~@8] ~@14>").gain(0.32)

// drums · open hat
const open_hat = s("oh").struct("<~@47 [~ x ~@6] ~@7>").gain(0.29)

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

stack(
  acoustic_guitar_steel, overdriven_guitar, bass, overdriven_guitar_2, kick, snare, low_tom, hihat, mid_tom, open_hat,
  crash
)

More by Mott The Hoople