Strudelify

Photograph

Def Leppard

KeyG majorTempo124 bpm
0:00/0:00
// Photograph — Def Leppard
// 123.5 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 133 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123.5/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("<~@16 A@5 B@4 C D@3 C E@3 ~@17 A@5 F@4 ~@15 G@7 H@8 I@2 C D@3 C E@3 ~@34>".pickRestart({
  A: "[~@11 [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 ~@3 [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 ~@3 [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]]/5", // E Em E Em E
  B: "[~@2 [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 [e2,b2,e3,g#3,b3,e4]@6 [b2,f#3,b3,d#4]@3 [b2,f#3,b3,d#4]@9 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@27 [c3,g3]@3 [c3,g3]@3 [c3,g3]@6 ~@4]/4", // E Em E B A C5
  C: "~@5 [b2,g3]@6 [b2,g3]@3 [b2,g3]@6 ~@4", // Em
  D: "[~@5 [d3,a3]@6 [a2,e3]@3 [a2,e3]@15 [d3,a3]@6 [a2,e3]@3 [a2,e3]@3 [g2,d3]@6 [a2,e3]@3 [a2,e3]@3 b2@3 [c3,g3]@3 [c3,g3]@3 [c3,g3]@6 ~@4]/3", // D5 A5 D5 A5 G5 A5 C5
  E: "[~@5 [d3,a3]@6 [a2,e3]@3 [a2,e3]@15 [d3,a3]@6 [a2,e3]@3 [a2,e3]@3 [g2,d3]@6 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 ~@16]/3", // D5 A5 D5 A5 G5 A5
  F: "[~@2 [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3]@2 ~ [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 [e2,e3,b3,e4,g4]@3 [e2,b2,e3,g#3,b3,e4]@6 [b2,f#3,b3,d#4]@3 [b2,f#3,b3,d#4]@9 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@27 ~@16]/4", // E Em E B A
  G: "[~@11 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@6 [a3,e4]@3 [a3,e4]@3 ~@3 [d3,a3,d4,e4]@15 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@6 [a3,e4]@3 [a3,e4]@3 ~@3 [d3,a3,d4,e4]@15 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@6 [a3,e4]@3 [a3,e4]@3 ~@3 [d3,a3,d4,e4]@15 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]]/7", // E5 Emaj7 A5 Dsus2 E5 Emaj7 A5 Dsus2 …
  H: "[~@8 [a3,e4]@3 [a3,e4]@3 ~@3 [d3,a3,d4,e4]@15 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]]/8", // A5 Dsus2 E5 Emaj7 A5 Dsus2 E5 Emaj7 …
  I: "[~@11 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@6 [c3,g3]@3 [c3,g3]@3 [c3,g3]@6 ~@4]/2", // A5 Dsus2 C5
})).s("gm_distortion_guitar").gain(0.32)

// bass · electric bass pick
const bass = note("<~@32 A@6 B@3 ~@25 C@8 D ~@23 E@8 ~@2 C@8 F@16 D>".pickRestart({
  A: "[~@14 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 e3@7, ~@8 b2@9 c3@15 d3@9 e3@15 b2@9 c3@15 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@7, ~@11 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 e3@9 d3@15 b2@9 c3@15 d3@9 ~@7]/6",
  B: "[~@5 g3@3 ~@6 g3@3 ~@12 g3@27 ~@16, ~@2 f#3@6 b2@9 c3@39 ~@16, ~@11 f#3@6 ~@9 f#3@30 ~@16]/3",
  C: "[~@14 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 d3@7, ~@8 b2@9 c3@15 d3@9 e3@15 b2@9 c3@15 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 e3@15 b2@9 c3@15 ~@3 f#3@6 ~@7, ~@11 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 e3@9 d3@15 b2@9 c3@15 d3@9 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 e3@9 ~@7]/8",
  D: "~@5 g3@3 ~@16, ~ f#3@3 ~@8",
  E: "[~@14 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 c3@15 ~@16, ~@8 b2@9 c3@15 d3@9 e3@15 b2@9 c3@15 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 e3@15 b2@9 ~@31, ~@11 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 e3@9 d3@15 b2@9 c3@15 d3@9 ~@9 f#3@6 ~@3 f#3@6 ~@31]/8",
  F: "[~@5 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 ~@12 g3@3 ~@6 g3@3 d3@7, ~@2 f#3@6 b2@9 c3@15 d3@9 e3@15 b2@9 c3@15 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 e3@15 b2@9 c3@15 ~@3 f#3@6 ~@7, ~@11 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 e3@9 d3@15 b2@9 c3@15 d3@9 ~@9 f#3@6 ~@3 f#3@6 ~@9 f#3@6 e3@9 ~@7]/8",
})).s("gm_electric_bass_pick").gain(0.48)

// chords · distortion guitar
const distortion_guitar_2 = note("<A@7 B@8 C@6 D@4 ~@15 E@2 F@8 G@5 D@4 ~@47 H@3 ~@24>".pickRestart({
  A: "[~@11 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@6 [a3,e4]@3 [a3,e4]@3 ~@3 [d3,a3,d4,e4]@15 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@6 [a3,e4]@3 [a3,e4]@3 ~@3 [d3,a3,d4,e4]@15 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]]/7", // E5 Emaj7 A5 Dsus2 E5 Emaj7 A5 Dsus2 …
  B: "[~@11 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]]/8", // A5 Dsus2 E5 Emaj7 A5 Dsus2 E5 Emaj7 …
  C: "[~@8 [a2,e3,g3,e4]@6 [a2,e3,g3]@9 [e2,e3,b3]@3 [e2,e3,b3]@3 [e2,e3,b3]@3 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4], ~@7 e4@3 ~@62]/6", // A7 E5 Emaj7 A5 Dsus2 E5 Emaj7 A5 …
  D: "[~@11 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@6 [e2,b2,e3,g#3,b3,e4]@6 [b2,f#3,b3,d#4]@3 [b2,f#3,b3,d#4]@9 [a2,e3,a3,c#4]@3 [a2,e3,a3,c#4]@27 ~@16]/4", // A5 Dsus2 E B A
  E: "[~@8 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4@3 c4]/2",
  F: "[~@2 c4@6 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@6 [a2,e3,g3,e4]@6 [a2,e3,g3]@9 [e2,e3,b3], ~@91 e4@3 ~@2]/8", // E5 Emaj7 A5 Dsus2 E5 Emaj7 A5 Dsus2 …
  G: "[~@2 [e2,e3,b3]@3 [e2,e3,b3]@3 ~@3 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 ~@9 [a3,e4]@3 [a3,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 [d3,a3,d4,e4]@3 ~@9 [b3,e4]@3 [b3,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]@3 [b3,d#4,e4]]/5", // E5 Emaj7 A5 Dsus2 E5 Emaj7 A5 Dsus2 …
  H: "[~@11 [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [c3,g3]@2 ~ [d3,a3]@2 ~ [d3,a3]@2 ~ [e3,b3]@2 ~@17]/3", // C5 D5 E5
})).s("gm_distortion_guitar").gain(0.48)

// chords · brass section
const brass_section = note("<~@24 A B C D E B C D F ~@25 A B C D E B C D F ~@23 A B C D E B C D F ~@34>".pickRestart({
  A: "~@8 [c5,e5,g5]@3 ~@3 [c5,e5,g5]@3 ~@3 [c5,e5,g5]@3 ~", // C
  B: "~@2 [c5,e5,g5]@3 ~@3 [b4,d5,g5]@3 ~@3 [b4,d5,g5]@3 ~@3 [b4,d5,g5]@3 ~", // C G
  C: "~@2 [b4,d5,g5]@3 ~@3 [a4,d5,f#5]@3 ~@3 [a4,c#5,e5]@3 ~@3 [a4,c#5,e5]@3 ~", // G D A
  D: "~@2 [a4,c#5,e5]@3 ~@3 [a4,d5,f#5]@3 ~@3 [a4,c#5,e5]@3 ~@3 [g4,b4,d5]@3 ~", // A D A G
  E: "~@2 [a4,c#5,e5]@3 ~@3 [c5,e5,g5]@3 ~@3 [c5,e5,g5]@3 ~@3 [c5,e5,g5]@3 ~", F: "~@2 [a4,c#5,e5]@3 ~@19",
})).s("gm_brass_section").gain(0.32)

// bass · fretless bass
const bass_2 = note(`<
  ~@15 A@8 B@2 C D@3 C E@2 F@8 G@2 H@8 I@7 B@2 C D@3 C E@2 J@8 ~@8 H@8 K C D@3 C E@2 L@7 ~ M@2 N@8 O@16 ~
>`.pickRestart({
  A: "[~@8 a1@18 e2@6 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e2@6 b1@10]/8",
  B: "[~@2 a1@30 c2@3 c2@3 c2@3 ~@7]/2", C: "~@5 b1@6 b1@3 b1@3 ~@7",
  D: "[~@5 d2@6 a1@3 a1@15 d2@6 a1@6 g1@6 a1@6 b1@3 c2@3 c2@3 c2@3 ~@7]/3",
  E: "[~@5 d2@6 a1@3 a1@15 d2@6 a1@6 g1@6 a1]/2",
  F: "[~@5 a1@3 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@15 b1@9 c2@15 d2@9 e2@15 b1@9 c2@24 c2@3 c2@3 c2]/8",
  G: "[~@2 c2@3 c2@3 c2@24 ~@16]/2",
  H: "[~@8 a1@3 e1@3 e1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 e1@3 e1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 e1@3 e1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 e1@3 e1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 a1@3 a1@3 a1@3 a1@3 e1]/8",
  I: "[~@2 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e2@6 b1@10]/7",
  J: "[~@5 a1@3 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@15 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@7]/8",
  K: "~@2 e1@3 e1@3 c2@3 c2@3 c2@3 ~@7",
  L: "[~@5 a1@3 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@15 b1@9 c2@15 d2@9 e2@15 ~@16]/7",
  M: "[~@11 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 d2]/2",
  N: "[~@2 d2@3 e2@3 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@15 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@7]/8",
  O: "[~@8 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@15 b1@9 c2@15 d2@9 e2@15 b1@9 c2@15 e2@9 d2@7]/8",
})).s("gm_fretless_bass").gain(0.57)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@39 A ~@2 B ~@15 C ~@18 D E ~@10 F ~@17 G ~@25>".pickRestart({
  A: "~@11 x ~@2 x ~@9", B: "~ x!2 ~@21", C: "~@4 x!2 ~ x ~@16", D: "~@21 x!3", E: "x", F: "~@23 x", G: "~@4 x!2 ~@18",
})).gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@8 A B@6 C@2 B@5 C B D ~@17 A B@6 C@2 B@5 C B D ~@23 E F@3 G F H I ~@43>".pickRestart({
  A: "~@11 x ~@2 x ~@2 x ~@2 x ~@2 x", B: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  C: "~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x", D: "~@2 x ~@2 x ~@18", E: "~@11 x ~@5 x ~@2 x ~@2 x",
  F: "~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x", G: "~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x",
  H: "~@5 x ~@5 x ~@2 x ~@5 x ~@2 x", I: "~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@3",
})).gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@42 A ~@15 B ~@30 C A ~@16 B ~@25>".pickRestart({
  A: "~ x ~@22", B: "~ x ~@10", C: "~@11 x",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct("<~@4 [~@7 x ~@2 x ~] [~ x ~@2 x ~@2 x ~@2 x ~]!3 [~ x ~@10] ~@124>").gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@3 A ~@6 A@2 ~@5 B C ~@3 D ~@3 D ~@10 A ~@6 A C ~@5 B C ~@3 D ~@3 D ~@14 E F A ~@5 B F ~@3 D ~@3 D ~@7 G A H
  ~@25
>`.pickRestart({
  A: "~ x ~", B: "~@8 x ~@8 x ~@6", C: "~@5 x ~@18", D: "~@5 x ~@5 x ~@5 x ~@5 x", E: "~@17 x ~@6",
  F: "~@5 x ~@11 x ~@6", G: "~ x ~@10", H: "~@5 x",
})).gain(0.64)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@81 A B C@3 D C E ~@15 F ~@28>".pickRestart({
  A: "~ x ~", B: "~@7 x ~@4", C: "~ x ~@5 x ~@4", D: "~@4 x ~@2 x ~@4", E: "~ x ~@10", F: "~@8 x ~@8 x ~@6",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@32 A B@6 C ~@26 A B@6 D ~@24 A B@5 E ~@3 F B@23 E>".pickRestart({
  A: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", B: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  C: "~@2 x ~@2 x ~@2 x ~@15", D: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3", E: "~@2 x ~@2 x ~@18",
  F: "~@8 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
})).gain(0.64)

// drums · cowbell
const cowbell = s("cb").struct("<~@24 A B@7 C ~@25 A B@7 C ~@23 A B@7 C ~@34>".pickRestart({
  A: "~@4 x ~@2 x ~@2 x ~", B: "~ x ~@2 x ~@2 x ~@2 x ~", C: "~ x ~@10",
})).gain(0.64)

stack(
  distortion_guitar, bass, distortion_guitar_2, brass_section, bass_2, kick, snare, low_tom, hihat, mid_tom, open_hat,
  crash, crash_soft, ride, cowbell
)

More by Def Leppard