Strudelify
Orion cover art

1986 · Master Of Puppets

Orion

Metallica

KeyE majorTempo128 bpm
0:00/0:00
// Orion — Metallica
// 128 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 6/8 at bar 112, 2/8 at bar 202, 4/4 at bar 202, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Full arrangement: all 243 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/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.

// bass · acoustic bass · "A.BASS 2"
const bass = note(`<
  ~@32 A@2 B C A@2 B C D E F G D E F G D E F G D E F H I J K L I J K L I J K L I J K L M A B C A@2 B C A@2 B C A@2 B C
  A@2 B C A@2 B C N@2 O P N O Q R@2 S T U V@2 W X@4 Y@4 Z@4 AA@2 AB AC AD@7 AE@3 AF@2 AG AH@2 AI AJ@8 AK@3 AL AM AN AO
  AP AQ@4 AR@3 AS@4 AT AU AV AW AX AY@4 AZ BA BB@4 BC@2 BD BE@2 BF BG@4 BH@2 BI BJ@2 BK@8 BL@8 BM@5 BN BO BP BQ BN BO BP
  BR ~@14
>`.pickRestart({
  A: "e3 e2!2 e3 e2!2 e3 e2", B: "d3 b2!2 d3 b2!2 d3!2", C: "d#3 b2!2 d#3 b2!2 d#3!2", D: "~@2 a2@3 e2@3", E: "c3",
  F: "~@2 c3@3 e2@3", G: "a2", H: "a2@9 e2@3 e2!2 ~ f2@3 f2!2 ~ e2@3",
  I: "e2@3 e2!2 ~ a2@3 e2!2 ~ e2!2 ~ b2@3 e2!2 ~ e2!2 ~", J: "c3@3 e2!2 ~ e2!2 ~ e2 ~@2 e2!2 ~ f2 ~@2 f2!2 ~ e2 ~@2",
  K: "e2@3 e2!2 ~ c3@3 e2!2 ~ e2!2 ~ b2@3 e2!2 ~ e2!2 ~", L: "a2@3 e2!2 ~ e2!2 ~ e2 ~@2 e2!2 ~ f2 ~@2 f2!2 ~ e2 ~@2",
  M: "~ e2!2 e3 e2!2 e3 e2", N: "b2!7 a2", O: "a2!7 e2", P: "f#2!6 a2!2", Q: "f#2!6 e2!2", R: "[e2@3 e2!3 e2@10]/2",
  S: "b2@3 b2!4 ~", T: "a2@9 a2@3 a2@4 a2@4 a2@4", U: "f#2@9 f#2@3 f#2@4 f#2@4 f#2@4", V: "[e2@3 ~]/2",
  W: "f#2@7 c#3@2 f#3@5 a2@5 e3@5",
  X: "[a2@4 b2@5 e3@5 b2@5 e2@4 c#3@5 e2@5 f#2@7 c#3@2 f#3@5 a2@5 e3@5 a2@4 b2@5 e3@5 b2@5 e2@14 f#2@6]/4",
  Y: "[~ c#3@2 f#3@5 a2@5 e3@4 a2@5 b2@5 e3@5 b2@4 e2@5 e3@5 e2@5 f#2@7 c#3@2 f#3@5 a2@5 e3@4 a2@5 b2@5 e3@5 b2@4 d3 [d#3,e3] ~]/4", // Emaj7
  Z: "[e3@2 e3@2 e3@2 ~ c#3@2 b2@2 ~ f#2@7 c#3@2 d3@5 a2@4 e3@5 a2@5 b2@5 e3@4 b2@5 e2@5 e3@5 e2@4 f#2@7 ~ c#3@2 f#3@5 a2@4 e3@5 a2@4]/4",
  AA: "[~ b2@5 e3@4 b2@5 e2@14 f#2@7 c#3@2 ~ f#3@5 a2@4]/2", AB: "e3@5 a2@5 b2@4 e3@5 b2@5",
  AC: "e2@5 e3@4 e2@5 f#2@7 c#3@2 ~",
  AD: "[f#3@4 a2@5 e3@5 a2@5 [d3,d#3] e3 e3@2 e3@2 ~ e3@2 e3@2 e3@2 ~ e3@2 c#3@2 ~ b2@2 a2@2 f#2@2 ~ e2@2 f#2@7 c#3@2 ~ f#3@4 a2@5 e3@5 a2@5 b2@4 e3@5 b2@5 e2@4 e3@5 e2@5 f#2@7 c#3@2 f#3@5 a2@5 e3@5 a2@4 b2@5 e3@5 b2@5 c#3@2 e3@2 c#3@2 ~ b2@2 a2@2 g#2@2 ~ f#2@7]/7", // D#maj7
  AE: "[c#3@2 f#3@5 a2@5 e3@5 a2@4 b2@5 e3@5 b2@5 e2@7 b2@2 e2@2 a2@2 ~ f#2@7 c#3@2 f#3@5 a2@5 e3@3]/3",
  AF: "[~ e3@5 b2@5 e3@5 e3@4 e3@2 ~ d3@2 c#3@2 ~ b2@2 a2@2 g#2@2 ~ f#2@7 c#3@2 f#3@4]/2",
  AG: "~ a2@5 e3@4 a2@5 b2@5 e3@4", AH: "[~ b2@4 e2@5 e3@5 e2@5 f#2@7 c#3@2 f#3@5 a2@4 e3@5 a2@5]/2",
  AI: "b2@5 e3@4 b2@5 b2@2 ~ a2@2 f#2@2 e2@2 ~",
  AJ: "[c#2@2 e2@2 f#2@7 ~ c#3@2 f#3@5 a2@4 e3@5 a2@5 b2@5 e3@4 b2@5 e2@7 b2@2 ~ a2@2 g#2@2 f#2@7 c#3@2 ~ f#3@5 a2@4 e3@5 a2@5 b2@4 b2@5 b2@5 e2@2 e2@2 ~ e2@2 e2@2 e2@2 ~ e2@2 f#2@7 c#3@2 ~ f#3@4 a2@5 e3@5 a2@5 b2@4 e3@5 b2@5 e2@5 e3@4 e2@5 f#2@7 c#3@2 ~ f#3@4 a2@3]/8",
  AK: "[~@2 e3@5 a2@5 b2@4 e3@5 b2@5 e3@2 e3@2 e3@2 ~ e3@2 c#3@2 ~ b2@2 f#2@7 c#3@2 f#3@5 a2@5 e3@5 a2@4 b2@4]/3",
  AL: "~ e3@5 b2@5 e2@7 b2@2 a2@2 g#2@2", AM: "~ f#2@7 c#3@2 f#3@5 a2@5 e3@4",
  AN: "~ a2@4 d3 [d#3,e3] ~ e3@2 e3@2 d3 d#3 e3 e3@2 e3@2 ~ e3@2 c#3@2", // Emaj7
  AO: "b2@2 ~ a2@2 f#2@2 e2@2 ~ f#2@7 c#3@2 f#3@5", AP: "a2@5 e3@4 a2@5 b2@5 e3@5",
  AQ: "[b2@4 e2@7 ~ f#2@2 g#2@2 a2@2 ~ f#2@7 c#3@2 f#3@5 a2@5 e3@4 a2@5 f#3@2 f#3@2 ~ f#3@2 f#3@2 ~ f#3@2 f#3@2 f#3@2 ~ e3@2 c#3@2 b2@2 ~ a2@2 e2@2 ~ f#2@4 f#2@2 ~ c#3@2 f#3@5 a2@4 e3@2]/4",
  AR: "[~ a2@2 g#2@2 ~ a2@2 b2@5 e3@2 b2@2 g#2@2 ~ f#2@2 e2@5 a2@2 g#2@2 ~ e2@4 f#2@5 f#2@2 ~ c#3@2 f#3@5 a2@4 e3@2 ~ a2@2 g#2@2 a2@2 ~ b2@5 e3@2]/3",
  AS: "[b2@2 g#2@2 ~ f#2@2 e2@5 a2@2 g#2@2 ~ e2@4 f#2@5 f#2@2 c#3@2 ~ f#3@5 a2@4 e3@2 ~ a2@2 g#2@2 a2@2 ~ b2@4 e3@2 ~ b2@2 g#2@2 ~ f#2@2 e2@5 a2@2 g#2@2 e2@5 f#2@5 f#2@2 c#3@2 ~ f#3@4 a2@4]/4",
  AT: "~ e3@2 ~ a2@2 g#2@2 a2@2 ~ b2@4 e3@2 ~ b2@2 g#2@2 f#2@2", AU: "~ e2@5 a2@2 g#2@2 e2@5 f#2@5 f#2@2 a2@2",
  AV: "~ c#3@2 a2@2 c#3@5 a2@2 c#3@2 ~ e3@2 c#3@2 ~ d3@4", AW: "d3@2 ~ b2@2 g#2@2 ~@3 e2@4 e2@2 ~ g#2@2 b2@2 ~ g#2@2",
  AX: "f#2@5 f#2@2 a2@2 c#3@2 ~ a2@2 c#3@5 a2@2 c#3@2 ~",
  AY: "[e3@2 c#3@2 d3@5 d3@2 ~ b2@2 g#2@2 ~@3 e2@4 e2@2 ~ g#2@2 b2@2 g#2@2 ~ a2@2 a2!2 ~ a2@2 f#2@2 a2@2 ~ c#3@2 c#3@2 c#3 ~ c#3 c#3@2 a2@2 ~ c#3@2 e3@2 d3@2 ~ d3!2 d3@2 b2@2 ~ g#2@2 b2@2 ~ e2@2 e2@2 e2@2 ~ g#2@2 b2@2 g#2@2 ~ a2@2 a2!2 a2@2]/4",
  AZ: "~ f#2@2 a2@2 ~ c#3@2 c#3@2 c#3 ~ c#3 c#3@2 a2@2 c#3@2 ~ e3@2 d3@2",
  BA: "~ d3!2 d3@2 b2@2 ~ g#2@2 b2@2 e2@2 ~ e2@2 e2@2 ~ g#2@2 b2@2",
  BB: "[g#2@2 ~ f#1@9 f#1@5 a1@9 a1@5 e1@9 ~ e1@4 c#2@9 ~ c#2@5 f#1@9 f#1@5 a1@9 a1@5 e1@8]/4",
  BC: "[~ e1@5 c#2@9 ~ c#2@4 f#1@9 ~ f#1@5 a1@9 a1@4]/2", BD: "~ e1@9 e1@5 c#2@9",
  BE: "[~ c#2@4 f#1@9 ~ f#1@5 a1@9 a1@5 e1@9 e1@5]/2", BF: "c#2@9 c#2@5 e2@5 e2@2 e2@2 ~",
  BG: "[e2@2 e2@2 g2@5 g2@2 ~ g2@2 g2@2 g2@2 ~ d3@4 d3@2 ~ d3@2 d3@2 d3@2 ~ b2@5 b2@2 b2@2 b2@2 ~ b2@2 e2@5 e2@2 e2@2 ~ e2@2 e2@2 g2@5 g2@2 g2@2 ~ g2@2 g2@2 ~ d3@4 d3@2 ~ d3@2 d3@2 d3@2 ~ b2@4 b2@2]/4",
  BH: "[~ b2@2 b2@2 ~ b2@2 e2@5 e2@2 e2@2 e2@2 ~ e2@2 g2@5 g2@2 g2@2 ~ g2@2 g2@2 d3@5 d3@2 ~ d3@2 d3@2]/2",
  BI: "d3@2 ~ b2@4 b2@2 ~ b2@2 b2@2 b2@2 ~ e2@5 e2@2",
  BJ: "[e2@2 e2@2 ~ e2@2 g2@5 g2@2 g2@2 ~ g2@2 g2@2 d3@5 d3@2 d3@2 ~ d3@2 d3@2 ~ b2@4 b2@2 ~ b2@2 b2@2 b2]/2",
  BK: "[~@2 e2@2 e2@2 ~@5 a2@9 e2@9 c3@24 ~@6 c3@9 e2@9 a2@24 b2@3 b2@3 b2@3 b2@3 b2@3 b2@3 a2@3 ~@3 b2@3 b2@3 b2@3 b2@3 b2@3 b2@3 d3@3 b2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 b2@3 a2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 a2]/8",
  BL: "[~@5 b2@3 b2@3 b2@3 b2@3 b2@3 b2@3 a2@3 ~@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 ~@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 a2@3 ~@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 ~@3 b2@3 b2@3 b2@3 b2@3 b2@3 b2@3 a2@3 ~@3 b2@3 b2@3 b2@3 b2@3 b2@3 b2@3 d3@3 b2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 b2@3 a2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 a2]/8",
  BM: "[~@5 b2@3 b2@3 b2@3 b2@3 b2@3 b2@3 a2@3 ~@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 a2@3 ~@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 f#2@3 a2@3 ~@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 e2@3 ~@3 e2@3 e2 ~ e2 a2@3 e2 ~ e2!2 ~ e2 b2@3 e2]/5",
  BN: "~ e2!2 ~ e2 c3@3 e2 ~ e2!2 ~ e2!2 ~@2 e2 ~ e2 f2 ~@2 f2",
  BO: "~ f2 e2 ~@2 e2@3 e2 ~ e2 c3@3 e2 ~ e2!2 ~ e2 b2@3 e2",
  BP: "~ e2!2 ~ e2 a2@3 e2 ~ e2!2 ~ e2!2 ~@2 e2 ~ e2 f2 ~@2 f2",
  BQ: "~ f2 e2 ~@2 e2@3 e2 ~ e2 a2@3 e2 ~ e2!2 ~ e2 b2@3 e2", BR: "~ f2 e2 ~@21",
})).s("gm_acoustic_bass").gain(0.54)

// bass · fretless bass · "FRETLESS 1"
const bass_2 = note("<~@8 A@2 B C D@2 B C D@2 B C D@2 B C D@2 B C D@2 B C ~@211>".pickRestart({
  A: "[~ e3@3]/2", B: "b3", C: "f#3", D: "e3/2",
})).s("gm_fretless_bass").gain(0.06)

// chords · overdriven guitar · "E.GUITAR 2"
const overdriven_guitar = note(`<
  ~@26 A B ~@2 C B D@2 C B D@2 C B E F G H E F G H E F G H E F G I J K L M J K L M J K L M J K L N D@2 C B D@2 C B D@2 C
  B D@2 C B D@2 C B D@2 C B O@2 P Q O P R@3 S P T U@2 ~@9 V@4 W@3 X@7 Y@6 Z@3 AA@7 AB@6 AC@3 AD@7 AE@6 AF@3 AG@7 AH@6
  AI@3 AJ@7 AK@8 AL@8 AM@8 AN ~@21
>`.pickRestart({
  A: "~ d4@23, f#3", B: "[f#3,b3,d#4]", C: "~ d4@23, [f#3,b3]", D: "[~ e4@47, [g3,b3]]/2",
  E: "[g#3,b3,e4]@2 [a3,c#4,e4]@3 [g#3,b3,e4]@3", F: "~ e4@23, [g3,c4]", G: "~@6 [g3,c4,e4]@9 ~ e4@8, ~@5 [g#3,b3]@3",
  H: "~ e4@23, [a3,c#4]", I: "~ e4@8 ~@15, [a3,c#4]@3 ~@5",
  J: "~@7 e4@2 ~@6 [g#3,b3,e4]@3 [f#3,b3,d#4]@3 ~@3, ~@2 [a3,c#4] ~@5", K: "[g3,c4,e4] ~@7",
  L: "~@2 [g3,c4,e4] ~@2 [g#3,b3,e4] [f#3,b3,d#4] ~", M: "~ e4@2 ~@21, [a3,c#4] ~@7", N: "~ e4@5 ~@18, [a3,c#4]@5 ~@19",
  O: "~ d#4@17 [g#3,b3,e4]@3 [f#3,b3,d#4]@3, [f#3,b3]@3 ~", P: "[f#3,b3,d#4]@3 ~ e4@20, ~ [a3,c#4]@7",
  Q: "~ c#4@17 ~ e4@5, [f#3,a#3]@3 [a3,c#4]", R: "[~ c#4@17 ~ e4@53, [f#3,a#3] [g#3,b3]@3]/3",
  S: "~ d#4@21 ~@2, [f#3,b3]@7 ~", T: "~ c#4@23, [f#3,a#3]", U: "[[g#3,b3,e4]@35 ~@13]/2",
  V: "[~@12 [f#3,a3,c#4]@14 [a3,c#4,e4]@14 ~ [b3,d4]@13 ~ [b3,e4]@13 ~ [a3,c#4]@14 [a3,c#4,e4]@13, ~@20 f#3@7 g#3@7 f#3@7 ~@7]/4", // F#m A Bm E5 A
  W: "[~@2 [b3,d4]@13 ~ [b3,e4]@13 ~ [a3,c#4]@14 [a3,c#4,e4]@14 [f#3,b3,d4]@14, ~ f#3@14 g#3@14 f#3@14 ~@29]/3", // Bm E5 A Bm
  X: "[~ [b3,e4]@13 ~ [a3,c#4]@13 ~ [c#4,e4]@14 [g#3,b3,e4]@27 ~@2 [a3,c#4]@13 ~ [c#4,e4]@14 [f#3,b3,d4]@14 [g#3,b3,e4]@14 ~ [a3,c#4]@13 ~ [c#4,e4]@13 ~ [b3,d4]@11, g#3@14 f#3@14 a3@14 ~@29 f#3@14 a3@14 ~@29 f#3@14 a3@14 f#3@12]/7", // E5 A C#m E A C#m Bm E …
  Y: "[~@3 [g#3,b3,e4]@14 ~ [a3,c#4]@13 ~ [c#4,e4]@13 ~ [b3,d4]@14 [g#3,b3,e4]@14 [f#3,a3,c#4]@14 ~ [c#4,e4]@13 ~ [b3,d4]@13 ~ [b3,e4]@14 [f#3,a3,c#4]@13, ~@17 f#3@14 a3@14 f#3@14 ~@29 a3@14 f#3@14 g#3@14 ~@14]/6", // E A C#m Bm E F#m C#m Bm …
  Z: "[~@2 [c#4,e4]@13 ~ [b3,d4]@13 ~ [b3,e4]@14 [f#3,a3,c#4]@14 [a3,c#4,e4]@14, ~ a3@14 f#3@14 g#3@14 ~@29]/3", // C#m Bm E5 F#m A
  AA: "[~ [b3,d4]@13 ~ [b3,e4]@13 ~ [a3,c#4]@14 [a3,c#4,e4]@14 ~ [b3,d4]@13 ~ [b3,e4]@13 ~ [a3,c#4]@14 [a3,c#4,e4]@14 [f#3,b3,d4]@14 ~ [b3,e4]@13 ~ [a3,c#4]@13 ~ [c#4,e4]@11, f#3@14 g#3@14 f#3@14 ~@15 f#3@14 g#3@14 f#3@14 ~@29 g#3@14 f#3@14 a3@12]/7", // Bm E5 A Bm E5 A Bm E5 …
  AB: "[~@3 [f#3,b3,d4]@14 ~ [b3,e4]@13 ~ [a3,c#4]@13 ~ [c#4,e4]@14 [f#3,b3,d4]@14 [g#3,b3,e4]@14 ~ [a3,c#4]@13 ~ [c#4,e4]@13 ~ [b3,d4]@14 [g#3,b3,e4]@13, ~@17 g#3@14 f#3@14 a3@14 ~@29 f#3@14 a3@14 f#3@14 ~@14]/6", // Bm E5 A C#m Bm E A C#m …
  AC: "[~@2 [a3,c#4]@13 ~ [c#4,e4]@13 ~ [b3,e4]@27 ~ [f#3,a3,c#4]@14, ~ f#3@14 a3@14 g#3@28 ~@15]/3", // A C#m E5 F#m
  AD: "[~ [c#4,e4]@13 ~ [b3,d4]@13 ~ [b3,e4]@14 [f#3,a3,c#4]@14 ~ [c#4,e4]@13 ~ [b3,d4]@13 ~ [b3,e4]@14 [f#3,a3,c#4]@14 [a3,c#4,e4]@14 ~ [b3,d4]@13 ~ [b3,e4]@13 ~ [a3,c#4]@11, a3@14 f#3@14 g#3@14 ~@15 a3@14 f#3@14 g#3@14 ~@29 f#3@14 g#3@14 f#3@12]/7", // C#m Bm E5 F#m C#m Bm E5 F#m …
  AE: "[~@3 [a3,c#4,e4]@14 ~ [b3,d4]@13 ~ [b3,e4]@13 ~ [a3,c#4]@14 [a3,c#4,e4]@14 [f#3,b3,d4]@14 ~ [b3,e4]@13 ~ [a3,c#4]@13 ~ [c#4,e4]@14 [f#3,b3,d4]@13, ~@17 f#3@14 g#3@14 f#3@14 ~@29 g#3@14 f#3@14 a3@14 ~@14]/6", // A Bm E5 A Bm E5 A C#m …
  AF: "[~@2 [b3,e4]@13 ~ [a3,c#4]@13 ~ [c#4,e4]@14 [f#3,b3,d4]@14 [g#3,b3,e4]@14, ~ g#3@14 f#3@14 a3@14 ~@29]/3", // E5 A C#m Bm E
  AG: "[~ [a3,c#4]@13 ~ [c#4,e4]@13 ~ [b3,d4]@14 [g#3,b3,e4]@14 ~ [a3,c#4]@13 ~ [c#4,e4]@13 ~ [b3,d4]@14 [g#3,b3,e4]@14 [f#3,a3,c#4]@14 ~ [c#4,e4]@13 ~ [b3,d4]@13 ~ [b3,e4]@11, f#3@14 a3@14 f#3@14 ~@15 f#3@14 a3@14 f#3@14 ~@29 a3@14 f#3@14 g#3@12]/7", // A C#m Bm E A C#m Bm E …
  AH: "[~@4 c#4@13 ~ [c#4,e4]@13 ~ [b3,e4]@13 ~@2 f4@13 ~ c#4@13 ~ e4@13 ~ [b3,e4]@13 ~ [c#4,f4]@13 ~@2 c#4@13 ~ e4@12, ~@3 [f#3,a#3]@14 a3@14 g#3@14 g#3@14 ~ [f#3,a#3]@14 [a3,c#4]@14 g#3@14 g#3@14 f#3@14 ~@14, ~@46 c#4@14 ~@57 a#3@14 [a3,c#4]@13]/6", // C#m E5 C# F# A
  AI: "[~@2 [b3,e4]@13 ~ [c#4,f4]@13 ~@2 c#4@13 ~ e4@13 [g#3,b3,e4]@14, ~ g#3@14 g#3@14 f#3@14 ~@29, ~@15 a#3@7 [a3,c#4]@7 ~@7]/3", // E5 C# E A
  AJ: "[~ [c#4,f4]@13 ~ [b3,e4]@13 ~@2 d4@13 [f#3,a3,d4]@14 ~ [b3,d#4]@13 ~ [b3,e4]@13 ~@2 d4@13 [f#3,a3,d4]@14 ~ d#4@13 ~ [b3,e4]@13 ~ [b3,d4]@13 ~ [a3,d4]@11, g#3@14 f#3@14 g3@14 ~@15 f#3@14 f#3@14 g3@14 ~@15 [f#3,b3]@14 f#3@14 g3@14 f#3@12, ~@29 b3@14 ~@43 b3@14 ~@68]/7", // C# E5 D B E5 D E5 Bm …
  AK: "[~@4 d#4@13 ~ [b3,e4]@13 ~ [b3,d4]@13 ~ [a3,d4]@14 ~ d#4@13 [g#3,b3,e4]@5 ~@5 [c#4,e4]@8 ~ [b3,e4]@8 ~ [c4,e4]@24 ~@6 [c4,e4]@9 [g#3,b3,e4]@8 ~ [c#4,e4]@23 ~ [b3,d#4]@17 a3, ~@3 [f#3,b3]@14 f#3@14 g3@14 f#3@14 ~ [f#3,b3]@14 ~@9 a3@9 g#3@9 g3@24 ~@6 g3@9 ~@9 a3@24 f#3@18 ~]/8", // E5 Bm D5 E C#m E5 C E …
  AL: "[[c#4,e4]@5 ~ [b3,d#4]@23 ~ [b3,d#4]@2 ~ [c#4,e4]@20 ~ [a#3,c#4]@17 ~ [c#4,e4]@5 ~ [b3,d#4]@17 ~ [c#4,e4]@5 ~ [b3,d#4]@2 ~ [c#4,e4]@20 ~ [a#3,c#4]@17 ~ [c#4,e4]@5 ~ [b3,e4]@23 ~ [b3,d#4]@17 a3, ~@5 f#3@24 f#3@3 a3@21 f#3@18 a3@6 f#3@18 a3@6 f#3@3 a3@21 f#3@18 a3@6 g#3@24 f#3@18 ~]/8", // C#m B C#m A#m C#m B C#m B …
  AM: "[[c#4,e4]@5 ~ [b3,d#4]@23 ~ [b3,d#4]@2 ~ [c#4,e4]@20 ~ [a#3,c#4]@17 ~ [c#4,e4]@5 ~ [b3,d#4]@17 ~ [c#4,e4]@5 ~ [b3,d#4]@2 ~ [c#4,e4]@20 ~ [a#3,c#4]@17 ~ [c#4,e4]@5 ~ [b3,e4]@23 ~@7 [c#4,e4]@3 ~@5 [g#3,b3,e4]@3 f#3, ~@5 f#3@24 f#3@3 a3@21 f#3@18 a3@6 f#3@18 a3@6 f#3@3 a3@21 f#3@18 a3@6 g#3@24 ~@6 a3@3 ~@10]/8", // C#m B C#m A#m C#m B C#m B …
  AN: "[b3,d#4] ~ [c4,e4] ~@5, ~@5 g3@3 ~@16", // B C
})).s("gm_overdriven_guitar").gain(0.32)

// chords · overdriven guitar · "E.GUITAR 2" · soft notes
const overdriven_guitar_soft = note("<~@10 A B ~@2 A B ~@2 A B ~@2 A B ~@2 C ~@195 D@2 E@2 D@2 ~@15>".pickRestart({
  A: "~ d4@23, [f#3,b3]", B: "[f#3,b3,d#4]", C: "b3",
  D: "[~@12 [c4,e4]@3 ~@5 [g#3,b3,e4]@3 ~ [b3,d#4]@3 ~@3 [c#4,e4]@3 ~@15, ~@11 g3@3 ~@9 f#3@3 ~@3 a3@3 ~@16]/2", // C E B C#m
  E: "[~@12 [c#4,e4]@3 ~@5 [g#3,b3,e4]@3 ~ [b3,d#4]@3 ~@3 [c4,e4]@3 ~@15, ~@11 a3@3 ~@9 f#3@3 ~@3 g3@3 ~@16]/2", // C#m E B C
})).s("gm_overdriven_guitar").gain(0.08)

// drums · kick
const kick = s("bd").struct(`<
  ~@21 A@2 B A C A D A C A E A C A F A C A@2 G H I H I H I J G J K L G J K M A C H M A@2 K M A@2 K M A@2 K M A C N O A C
  A P A C A Q A C A R A C A S A C A D C@7 T U H V@2 H ~@3 W ~ X ~ Y Z ~ AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR ~ AS AT AU AV AW AX AY AZ ~ Y BA BB BC AA AB BD AD BE AF AG AH BF BG BH BI BJ BK AO AP BL BM BN BO AT BP AV AW
  BQ BR BS BT Z Y BU BV BW AB BX AD AE AF ~ BY AI BZ AK CA CB AN CC CD ~ AS CE AS CF CG CH@14 CI AR CJ AR CJ ~ CK ~ CL
  CM CN@4 CO ~@7 BH ~
>`.pickRestart({
  A: "x!2", B: "~ x!3 ~ x!3", C: "x ~@3 x ~@2 x", D: "x ~@11 x ~@2 x ~ x ~@3 x ~@2", E: "x!4", F: "x ~@2 x ~ x ~ x",
  G: "x!3 ~@2 x ~@2", H: "x", I: "~@2 x ~@2 x ~@2", J: "x ~@2 x!2 ~ x ~", K: "x!2 ~@6", L: "~@3 x!2 ~ x ~",
  M: "~@3 x ~@3 x", N: "x ~@11 x ~@2 x ~ x ~@6", O: "~ x ~@2 x ~@2 x", P: "~@6 x!2", Q: "x ~@2 x ~ x ~@6 x ~@8 x ~@2",
  R: "x ~@2 x ~ x!3", S: "x ~@6 x", T: "x ~@2 x!2 ~@2 x", U: "x ~@2 x!2 ~@3", V: "x ~@3 x!2", W: "~@3 x ~@4",
  X: "~@3 x", Y: "~@11 x", Z: "~ x ~@6", AA: "~@7 x ~@4 x ~@8 x ~@2", AB: "~@11 x ~@4 x ~@7",
  AC: "~ x ~@7 x ~@3 x ~@2 x ~@3 x ~@3", AD: "~@3 x ~@6 x ~", AE: "~ x ~@8 x ~@6 x ~@4 x ~", AF: "~ x ~@3 x ~@9 x ~@8",
  AG: "~@5 x ~@4 x ~@8 x ~@4", AH: "~@9 x ~@4 x ~@9", AI: "x ~@13 x ~@4 x ~@4", AJ: "~@4 x ~@18 x", AK: "~@9 x ~@13 x",
  AL: "~@4 x ~@8 x ~@6 x ~@3", AM: "~ x ~ x ~@4 x ~@8 x ~@6", AN: "~@4 x ~ x ~@4 x", AO: "~@12 x ~@4 x ~@6",
  AP: "~@2 x ~@14 x ~@3 x ~@2", AQ: "~@7 x ~@6 x ~@4 x ~ x ~@2", AR: "~ x ~@10", AS: "~@11 x ~@8 x ~@3",
  AT: "~@10 x ~@4 x ~@8", AU: "~ x ~@6 x ~@3 x ~@2 x ~@4 x ~@3", AV: "~@5 x ~@13 x ~@4", AW: "x ~@2 x ~@4",
  AX: "~@2 x ~@4 x ~@4", AY: "~@4 x ~@4 x ~@8 x ~@5", AZ: "~ x ~@4 x ~@2 x ~@3 x ~@10", BA: "~@4 x ~@6 x",
  BB: "~@3 x ~@8 x ~@6 x ~@4", BC: "x ~ x ~@4 x ~@9 x ~@6", BD: "~ x ~@14 x ~@3 x ~@3", BE: "~ x ~@8 x ~@13",
  BF: "x ~@8 x ~@4 x ~@4 x ~@4", BG: "~ x ~@4", BH: "~@23 x", BI: "~ x ~@2 x ~@8 x ~@10", BJ: "~@3 x ~@4 x ~@8 x ~@6",
  BK: "~ x ~@3 x ~@2 x ~@3 x ~@9 x ~", BL: "~@7 x ~@13 x ~@2", BM: "~@2 x ~@8 x ~@12", BN: "~@3 x ~@4 x ~@3",
  BO: "~@6 x ~@4 x ~@8 x ~@3", BP: "~ x ~@13 x ~@4 x ~@3", BQ: "x ~@3 x ~@9 x ~@6 x ~@2", BR: "~ x!2 ~@6 x ~@2",
  BS: "~@9 x ~@3 x ~@9 x", BT: "~@13 x ~@4 x ~@5", BU: "x!2 ~@2 x ~@3", BV: "~@2 x ~@4 x ~@9 x ~@6",
  BW: "x ~@3 x ~@2 x ~@4 x ~@8 x ~@2", BX: "~ x ~@18 x ~@3", BY: "~@7 x ~@4", BZ: "~@4 x ~@6 x ~@4 x ~ x ~@4 x",
  CA: "~@4 x ~@8 x ~@10", CB: "~@8 x ~@8 x ~@6", CC: "~@5 x ~@4 x ~ x ~@4 x ~@6", CD: "~@2 x ~@14 x ~@6",
  CE: "~@5 x ~@18", CF: "~@5 x ~@14 x ~@3", CG: "~@2 x ~@5 x ~@5 x ~@5 x ~@2 x", CH: "~@5 x ~@2 x ~@5 x ~@5 x ~@2 x",
  CI: "~@5 x ~@2 x ~@5 x ~@5 x ~@3", CJ: "~@7 x ~@2 x ~@3 x ~@4 x ~@2 x ~", CK: "~@7 x ~@2 x ~@3 x ~@9",
  CL: "~@7 x ~@2 x ~@13", CM: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  CN: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", CO: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@6",
})).gain(0.72)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<A B A B A B A B A B A B A B A C A B A D A ~@212 E F@7 G H>".pickRestart({
  A: "x!2", B: "x ~@3 x ~@2 x", C: "~ x!3 ~ x ~ x", D: "x ~ x!2", E: "~@20 x ~@2 x",
  F: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", G: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@3",
  H: "~ x ~@10",
})).gain(0.24)

// drums · snare
const snare = s("sd").struct(`<
  ~@16 A B@2 C B D B E B@7 F B@2 G H B@4 ~@10 I J ~@2 I K B@2 I K B@2 I K B@2 I K B@2 I K B@2 G L B@2 M N B@3 L B@2 G O
  B@3 P B@11 ~@17 Q ~ R ~ S ~ T U V W ~ X ~ Y Z ~ AA ~@2 AB ~ AC AD AE ~ AE J ~ AF ~ AG ~ AH AI AJ N AK AL J U AM ~ A
  ~@2 AN AO AF AP AQ ~ AR AS AT AD AE AU ~ AV AW AX AY AG ~ Q AZ R N S BA BB U BC W A X ~ AN BD BE ~@3 AU BF BG@19 BH BI
  BH BJ BK BG@2 BI BK BL BM ~@8
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@2 x ~@4 x", D: "~@6 x ~@11 x ~@2 x ~ x", E: "x!2 ~@10 x!2 ~@10", F: "~ x ~ x ~ x ~ x",
  G: "~@2 x ~@3 x!2", H: "~ x!2 ~ x ~ x ~", I: "~@2 x ~@2 x ~@2", J: "x", K: "x ~@4 x ~@2", L: "~@2 x!2 ~ x!2 ~",
  M: "~@2 x!2 ~ x ~@2", N: "~@5 x ~@2", O: "~ x!2 ~ x ~@3", P: "~ x!3", Q: "~ x ~@10", R: "~@11 x ~@12", S: "~@5 x",
  T: "x ~@6 x ~@16", U: "~ x ~@4", V: "~@9 x ~ x ~@2 x ~ x ~ x ~@2 x ~@2", W: "~@13 x ~@10", X: "~@11 x",
  Y: "~@3 x ~@3 x ~@16", Z: "~@7 x ~@16", AA: "~@2 x!2 ~@2", AB: "~ x ~@22", AC: "~@5 x ~@6", AD: "~@7 x ~@4",
  AE: "~@19 x ~@4", AF: "~ x", AG: "~@7 x", AH: "~@2 x ~@6 x ~@14", AI: "~ x ~@2", AJ: "~@11 x ~@3 x ~@8",
  AK: "~@20 x ~@2 x", AL: "x!2 ~@6", AM: "~@9 x!2 ~@3 x!2 ~@2 x ~ x ~@3", AN: "~ x ~@6", AO: "~@7 x ~@6 x ~@9",
  AP: "~@16 x ~@4 x ~@2", AQ: "~ x ~@18 x ~@3", AR: "~ x ~@6 x ~@15", AS: "~@5 x ~@18", AT: "~@10 x ~@4 x ~@3 x ~@4",
  AU: "~@23 x", AV: "~@4 x ~ x ~ x ~@2 x ~@12", AW: "~@8 x ~@4 x ~@3 x ~@4 x ~", AX: "~@2 x!2 ~ x ~@18",
  AY: "~@17 x ~@6", AZ: "~@6 x ~@4 x ~@4 x ~@7", BA: "x ~@4 x ~@4 x ~@4 x ~@3 x!2 ~@3", BB: "x!2 ~@2 x!2 ~ x ~@16",
  BC: "~@3 x ~@4", BD: "~@7 x ~@4 x ~@4 x ~@3 x ~@2", BE: "~@2 x ~@4 x!2 ~@3 x!2 ~ x!2 ~@2 x ~@4",
  BF: "x ~@4 x ~@5 x ~@5 x ~@5 x", BG: "~@5 x ~@5 x ~@5 x ~@5 x", BH: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x",
  BI: "~@5 x ~@5 x ~@5 x ~@2 x ~@2 x", BJ: "~@5 x ~@5 x ~@2 x ~@2 x ~ x!2 ~@2 x", BK: "~ x!2 ~@2 x ~@5 x ~@5 x ~@5 x",
  BL: "~@5 x ~@5 x ~@5 x ~@6", BM: "~@11 x ~@5 x ~@5 x",
})).gain(0.56)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A@15 B C ~@119 D ~@8 E ~@87 F G H I H J K H L ~>".pickRestart({
  A: "~ x ~ x", B: "x ~@11 x!2 ~@4 x!2 ~@4", C: "~ x ~@2", D: "~@7 x ~@3 x ~@12", E: "~@18 x ~@4 x", F: "~@23 x",
  G: "~@5 x ~@18", H: "~@5 x ~@5 x ~@5 x ~@5 x", I: "~@2 x ~@2 x ~@5 x ~@5 x ~@5 x",
  J: "~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x", K: "~@2 x ~@2 x ~ x!2 ~ x ~@13", L: "~@5 x ~@5 x ~@5 x ~@6",
})).gain(0.16)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@27 A ~@46 A ~@4 B ~@3 C ~@11 A ~@9 D E@2 ~@10 F G ~@17 H I ~@4 J ~@2 K L ~@13 M ~@18 N ~@14 O ~@4 P ~@27 Q R@6 S T
  ~@5 U
>`.pickRestart({
  A: "~@2 x", B: "~@2 x!3 ~@3", C: "~ x ~@4", D: "~@3 x!4 ~", E: "~@3 x!2 ~@3", F: "~@7 x", G: "~@2 x ~@4 x ~@16",
  H: "~ x ~ x ~@2 x!2 ~@3 x!2 ~@3 x!2 ~@2 x ~@2 x", I: "~ x ~@2 x ~ x ~ x ~@15", J: "x!2 ~@10",
  K: "~@13 x!2 ~@3 x!2 ~@3 x", L: "x ~@2 x!2 ~@3 x ~ x ~@2 x ~ x ~ x ~@2 x ~@3", M: "~@13 x ~@2 x ~ x ~ x ~@3",
  N: "~@17 x ~@2 x ~@3", O: "~ x!2 ~@5", P: "~ x!2 ~@9", Q: "~@7 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  R: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~", S: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@4", T: "~ x ~@14 x ~@7",
  U: "~ x ~@2 x ~@19",
})).gain(0.48)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct(`<
  ~@235
  [~@8 x ~@2 x]
  [~@4 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~]
  [~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~]!5
// … 94 more lines

More by Metallica