Strudelify

Fifty-Mission Cap

The Tragically Hip

KeyA majorTempo132 bpm
0:00/0:00
// Fifty-Mission Cap — The Tragically Hip
// 132 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 · electric bass finger · "Bass"
const bass = note(`<
  A B C@2 D E F E F E F E F E F E F E F E G H@3 I E F E G H@3 I E F E G H J K L M N O P B Q O R B N O S T U T V W X Y F
  E F E F E F E F E F E F E F H@3 I E F E G H J K L M N O P B Q O R B N O S T U T V W Z B AA B AB AC AD AE AA B AA B AB
  AC AD AE AA B AA B AB AC AF AG@2
>`.pickRestart({
  A: "~@7 e3", B: "~ e3!7", C: "e3!8", D: "e3@2 e3@2 e3@2 e3@2 e3@2 e3@3 ~ e2@2", E: "~ e2!7", F: "e2!6 d2 e2",
  G: "e2!6 d2 a2", H: "~ a2!3 g2 a2 g2 a2", I: "~ a2!3 g2 a2 d2 e2", J: "~ a2!3 g2 a2 d2 g2", K: "~ g2!6 f#2",
  L: "~ f#2!6 f#3", M: "f#3 e3!7", N: "e3!7 b2", O: "~ a2!7", P: "a2!5 f#3 ~ e3",
  Q: "e3@2 e3@2 e3@2 e3@2 e3@2 b2@3 ~ a2@2", R: "a2!7 f#3", S: "a2!7 f#2", T: "b2@5 ~ b2@3 ~ b2@2 c#3@2 a2@2",
  U: "~@2 a2@2 a2@3 ~ e3@3 ~ e3@2 f#2@2", V: "~ a2!2 e3!4 f#2", W: "b2@5 ~ b2@4 ~@2 a2@2 d3@2, ~@5 b2@2 ~",
  X: "~@2 d3@2 d3@3 ~ d3@2 d3@2 d3@2 d2@2", Y: "e2!8", Z: "~ d3!4 f#3 b2 e3", AA: "e3!5 f#3 b2 e3", AB: "e3!6 a2 d3",
  AC: "~@2 d3@2 d3@3 ~ d3@2 d3@2 d3@2 d3@2", AD: "d3!5 f#3 b2 e3", AE: "~@2 e2@2 e3@3 ~ e3@2 e3@2 e3@2 e3@2",
  AF: "d3@2 d3@2 ~ d3@2 d3@2 d3@2 ~ f#3@2 a2@2", AG: "[e2@2 ~ b2@17 ~@12]/2",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · distortion guitar · "Guitar 1"
const distortion_guitar = note("<A@8 B@8 C@8 ~@105>".pickRestart({
  A: "[~@7 [b4,e5,g#5]@3 ~@3 e5 ~ [a4,d5,f#5]@3 ~@3 [a4,d5] ~ [g4,c5,e5]@3 ~@3 [g4,c5] ~ [a4,d5,f#5]@3 ~@3 d5 ~ [b4,e5,g#5]@3 ~@3 e5 ~ [a4,d5,f#5]@3 ~@3 [a4,d5] ~ [g4,c5,e5]@3 ~@3 [g4,c5] ~ [a4,d5,f#5]]/8", // E D D5 C C5 D E D …
  B: "[~@5 d5 ~ [b4,e5,g#5]@3 ~@3 e5 ~ [a4,d5,f#5]@3 ~@3 [a4,d5] ~ [g4,c5,e5]@3 ~@3 [g4,c5] ~ [a4,d5,f#5]@3 ~@3 d5 ~ [b4,e5,g#5]@3 ~@3 e5 ~ [a4,d5,f#5]@3 ~@3 [a4,d5] ~ [g4,c5,e5]@3 ~@3 [g4,c5] ~ [a4,d5,f#5]]/8", // E D D5 C C5 D E D …
  C: "[~@5 d5 ~ [b4,e5,g#5]@3 ~@3 e5 ~ [a4,d5,f#5]@3 ~@3 [a4,d5] ~ [g4,c5,e5]@3 ~@3 [g4,c5] ~ [a4,d5,f#5]@3 ~@3 [a4,d5] ~ [a4,e5]@3 ~@3 [g4,c5,e5] ~ [a4,d5,f#5]@3 ~@3 d5 ~ [g4,c5]@3 ~@6]/8", // E D D5 C C5 D D5 A5 …
})).s("gm_distortion_guitar").gain(0.51)

// chords · overdriven guitar · "Guitar 2"
const overdriven_guitar = note(`<
  ~ A@2 B@5 C@3 D@3 E@7 F G F H I J K L F G F M I N O@2 P Q@2 R S@2 T U V W@2 X Y Z AA AB AC@2 AD@2 AE@3 AF AG@2 AH AI@3
  AJ@2 AK@6 F M F AL@2 L K AM@2 H K R AN AO AP AQ@2 AR@2 AS AT AU@2 AV AW@2 AX@2 AY@3 AZ@6 BA@3 BB BC BD@4 BE@2 BF BC BG
  BH BI ~
>`.pickRestart({
  A: "[~@2 [e3,b3] ~ [e3,b3]@2 e2@2 ~@4 e3@2 e3@2 ~@6 d3@4 ~@2 d3@2 ~@2, e2@5 ~@3 [e3,b3]@4 ~@2 d3@6 d2@5 ~ d2@4 ~@2, ~@5 e2@2 ~@2 a3@2 ~@5]/2", // E5
  B: "[~@2 [c3,g3,c4] ~@3 c2@2 [c3,g3,c4]@2 c2@4 ~@4 [d3,a3] ~ [d3,a3]@2 d2@2 ~@4 d3@2 f#3@2 ~@6 e3@4 ~@2 e3@2 ~@4 d4 ~ a3@2 d3@2 d4 ~@2 d4 a3 ~ d3 ~@7 c3@4 ~@2 c3@2 ~@2, ~@14 d2@7 ~@3 [d3,a3]@4 ~@2 e3@6 e2@5 ~ e2@4 d2@16 ~@6 c2@5 ~ c2@4 ~@2, ~@26 d2@4 ~@4 b3@4 ~@19 a3@2 ~@7 g3@4 ~@10, ~@29 d3 ~ c3@3 ~@6]/5", // C5 D5
  C: "[~@2 [d3,a3,d4] ~@3 d2@2 [d3,a3,d4]@2 d2@4 ~@4 [e3,b3] ~ [e3,b3]@2 e2@2 ~@4 e3@2 ~@4 d4 ~ a3@2 d3@2 d4 ~@2 d4 a3 ~@3, ~@14 e2@7 ~@3 [e3,b3]@4 ~@13 a3@2 ~@5, ~@13 e2@2 d2@8 ~, ~@21 d3 ~@2]/3", // D5 E5
  D: "[~@2 [c3,g3,c4] ~ [c3,g3,c4]@2 ~@2 [c3,g3,c4] ~ [c3,g3,c4] ~ [c3,g3,c4] ~@5 d4 ~ a3@2 d3@2 d4 ~@2 d4 a3 ~@7 b3@2 ~@4 e2@2 e3@2 ~@2, ~@6 c2@8 d2@16 e2@11 ~@7, ~@25 a3@2 ~@11 [b3,e4]@7 ~@3, ~@13 d3 ~@3 e3@2 ~@5]/3", // C5 E5
  E: "[~@2 [d3,a3,d4] ~ [d3,a3,d4]@2 ~@2 [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~@5 c4 ~ g3@2 c3@2 c4 ~@2 c4 g3 ~ e3@2 ~@6 d3@4 ~@2 d3@2 ~@4 [e3,b3] ~ [e3,b3]@2 e2@2 ~@4 e3@2 ~@4 [d3,a3] ~ [d3,a3]@2 d2@2 ~@4 d3@2 d3@2 ~@6 c3@4 ~@2 c3@2 e3@2 ~@6 d3@4 ~@2 d3@2 ~@2, ~@6 d2@8 c2@16 ~@6 d2@5 ~ d2@4 e2@7 ~@5 e2@4 d2@7 ~@5 d2@4 ~@6 c2@5 ~ c2@4 ~@6 d2@5 ~ d2@4 ~@2, ~@25 g3@2 ~@7 a3@4 ~@44 g3@4 ~@12 a3@4 ~@10, ~@13 c3 ~ d3@3 ~@10 [e3,b3]@2 ~@6 [d3,a3]@2 ~ c3@3 ~@5 d3@3 ~@6]/7", // D5 E5 D5 E5 D5
  F: "~ e3 ~@2 e3@3 ~, ~@3 a2@4 ~", G: "~ a3 ~@2 a3@3 ~, ~@3 a2@4 ~",
  H: "~@2 [a2,a3] ~@3 a2@2 ~@2 a2 ~ a2 ~@3, ~@2 a3 ~", I: "~@2 [e3,b3] ~@3 e2@2 ~@2 e2@2 e3@2 ~@2, ~@2 [e3,b3] ~",
  J: "~@2 [d3,a3] ~@3 d2@2 [d3,a3]@6 ~@2", K: "~ [c3,g3] ~@2 [c3,g3]@3 ~, ~@3 c2@4 ~",
  L: "~@2 [d3,a3] ~@3 d2@2 ~@2 d2@2 d3@2 ~@2, ~@2 [d3,a3] ~", M: "~@2 [a2,a3] ~@3 a2@2 a3@6 ~@2",
  N: "~ [d3,a3] ~@2 [d3,a3]@3 ~, ~@3 d2@4 ~", // D5
  O: "[~@2 [c3,g3]@2 ~@4 [c3,g3]@6 ~@4 [d3,a3] ~@5 d3@2 a3@2 d3@2 ~@2, ~@6 c2@8 d2@7 ~ d2@8 ~@2, ~@12 d4@3 ~]/2", // C5 D5
  P: "~@2 [a2,e3] ~@3 a2@2 e3@6 ~@2", // A5
  Q: "[~@2 a3@2 ~@4 a3@6 ~@4 [c3,g3] ~@5 c3@2 g3@2 c3@2 ~@2, ~@6 a2@8 c2@7 ~ c2@8 ~@2, ~@12 c4@3 ~]/2", // C5
  R: "~@2 [f#3,a3] ~@3 f#2@2 [f#3,a3]@6 [f#2,c#3,f#3]@2", // F#m F#5
  S: "[~@2 [e3,b3,e4]@5 ~ [e3,b3,e4]@6 [e3,b3,e4]@4 e2@2 [e3,b3,e4]@2 ~@2 [e3,b3,e4]@3 ~ [b2,f#3,b3]@3 ~, ~@7 d#4 ~@8]/2", // E5 B5
  T: "~@2 [e3,a3] ~@3 a2@2 [e3,a3]@2 a2 ~@3 [a2,e3,a3]@2", // A5
  U: "[a2,e3,a3] ~ a2@2 [e3,a3]@2 [a2,e3,a3] ~ f#3 c#3 f#2 ~ c#3 ~@3, ~@11 f#3@2 ~@3", // A5
  V: "~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 [e3,b3,e4]@2", // E5
  W: "[~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 ~@6 e3@2 ~@4 a2 ~ a2 ~ e3@2, ~@14 a2@8 [e3,a3]@7 ~@3]/2", // E5 A5
  X: "[a2,e3,g#3,a3]@2 ~@2 [a2,e3,a3]@2 ~@2 [a2,e3,a3]@3 ~ [f#2,c#3,f#3]@3 ~", // Amaj7 A5 F#5
  Y: "f#3 ~@5 e3@4 ~@2 e3@2 [b3,e4]@2, e3@4 e2@5 ~ e2@4 ~@2, ~ b3@2 ~@5", // E5
  Z: "~@2 e4 ~ b3@2 e3@2 e4 ~@2 e4 b3 ~ [b2,f#3,b3]@2, e2@7 ~, ~@9 b3@2 ~@5, ~@5 e3 ~@2", // B5
  AA: "~@2 [a2,e3,a3]@5 ~ a3 e3 a2 ~ e3 a2 a3 e3, ~@11 a3@2 ~@3", // A5
  AB: "~@2 [e3,a3] ~ [a2,e3,a3]@2 a2 ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  AC: "[~@2 [b2,f#3] ~ [b2,f#3]@2 b1@2 ~@4 b2@2 b2@2 ~@2 e3@4 a2@3 ~ a2 ~ a2@2 [e3,a3]@2, b1@5 ~@3 [b2,f#3]@4 ~@2 a2@6 ~@12, ~@5 b1@2 ~@9]/2", // B5 A5 B5
  AD: "[~@2 [b2,f#3,b3] ~ [b2,f#3,b3]@2 ~@2 [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ b2 ~@3 e3@4 a2@3 ~ a2 ~ a2@2 [e3,a3]@2, ~@3 b1@4 a2@3 ~@6]/2", // B5 A5
  AE: "[~@2 b3 ~ f#3@2 b2@2 b3 ~@2 b3 f#3 ~ [f#3,b3]@5 ~ [d3,a3,d4]@3 ~ [d3,a3,d4]@6 ~@6 b3@2 ~@4 e2@2 e3@2 ~@2, b1@14 ~@16 e2@11 ~@7, ~@9 f#3@2 ~@23 e3@4 [b3,e4]@7 ~@3, ~@10 b2@2 ~@2 b2 ~@33]/3", // B5 D5 E5
  AF: "~@2 [d3,a3,d4] ~ [d3,a3,d4]@2 ~@2 [d3,a3,d4] ~ [d3,a3,d4] ~ [d3,a3,d4] ~@3, ~@3 d2@4 ~", // D5
  AG: "[~@2 [c3,g3,c4] ~ [c3,g3,c4]@2 ~@2 [c3,g3,c4] ~ [c3,g3,c4] ~ [c3,g3,c4] ~@5 [d3,a3] ~ [d3,a3]@2 d2@2 ~@4 d3@2 ~@2, ~@6 c2@8 d2@7 ~@3 [d3,a3]@4 ~@4, ~@13 d2@2 ~]/2", // C5 D5
  AH: "~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 ~@2", // E5
  AI: "[~@2 [d3,a3,d4] ~@3 d2@2 [d3,a3,d4]@2 d2@4 ~@4 [c3,g3] ~ [c3,g3]@2 c2@2 ~@4 c3@2 ~@4 [d3,a3] ~ [d3,a3]@2 d2@2 ~@4 d3@2 ~@2, ~@14 c2@7 ~@3 [c3,g3]@4 ~@12 [d3,a3]@4 ~@4, ~@26 c2@4 d2@7 ~@5 d2@4 ~@2]/3", // D5 C5 D5 C5 D5
  AJ: "[~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 ~@4 [d3,a3] ~ [d3,a3]@2 d2@2 ~@4 d3@2 ~@2, ~@14 d2@7 ~@3 [d3,a3]@4 ~@4, ~@13 d2@2 ~]/2", // E5 D5
  AK: "[~@2 [c3,g3,c4] ~@3 c2@2 [c3,g3,c4]@2 c2@4 ~@6 a3@2 ~@4 d2@2 d3@2 ~@6 b3@2 ~@4 e2@2 e3@2 ~@4 d4 ~ a3@2 d3@2 d4 ~@2 d4 a3 ~ d3 ~@7 c3@4 ~@2 c3@2 ~@6 a3@2 ~@4 d2@2 d3@2 ~@2, ~@14 d2@11 ~@5 e2@11 ~@5 d2@16 ~@6 c2@5 ~ c2@4 d2@11 ~@7, ~@18 d3@4 [a3,d4]@7 ~@5 e3@4 [b3,e4]@7 ~@12 a3@2 ~@7 g3@4 ~@16 [a3,d4]@7 ~@3, ~@29 d3 ~ c3@3 ~@7 d3@2 ~@5]/6", // C5 D5 E5 D5
  AL: "[~@2 [a2,a3] ~@3 a2@2 a3@6 ~@4 [e3,b3] ~@5 e3@2 b3@2 e3@2 ~@2, ~@14 e2@7 ~ e2@8 ~@2, ~@12 e4@3 ~]/2", // A E5
  AM: "[~@2 [d3,a3] ~@3 d2@2 ~@2 d2@2 d3@2 a2@4 e3 ~@7 e3@2 a2@2 ~@2, ~@8 [d3,a3]@4 ~@10 a2@5 ~@5, ~@12 a3@3 ~]/2", // D5
  AN: "~@2 [e3,b3,e4]@5 ~ [e3,b3,e4]@6 e4@2", AO: "~ b3 e3 ~ b3 e3 e4 b3 [e3,b3,e4]@3 ~ [b2,f#3,b3]@3 ~, ~@3 e4@2 ~@11",
  AP: "b2 ~ e3@4 a2@3 ~ a2 ~ a2@2 [e3,a3]@2, a2 ~@3", // A5
  AQ: "[[a2,e3,a3]@6 ~@2 [f#2,c#3,f3,f#3]@2 ~@2 [f#2,c#3,f#3]@2 ~@4 [e3,b3] ~ [e3,b3]@2 e2@2 ~@4 e3@2 b3 ~, ~@14 e2@7 ~@3 [e3,b3]@4 ~@4, ~@13 e2@2 ~]/2", // A5 F#maj7 F#5 E5
  AR: "[~@2 e4 ~ b3@2 e3@2 e4 ~@2 e4 b3 ~ a2@4 e3 ~ e3@2 a2 ~ a2 ~ a2 ~ a2@2 e3 ~, e2@14 ~@6 a2 ~@11, ~@9 b3@2 ~@21, ~@5 e3 ~@6 e3@2 ~@2]/2",
  AS: "a3 e3 a2 ~ e3 a2 a3 e3 [a2,e3,a3]@3 ~ [f#2,c#3,f#3]@3 ~, ~@3 a3@2 ~@11", // A5 F#5
  AT: "~@2 b3 ~@2 e2 ~ b3, e2@9 ~@3 e3@4, ~@2 e3@4 [b3,e4]@7 ~@3", // E5
  AU: "[~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 [b2,f#3]@4 [a2,e3,a3]@5 ~ a3 e3 a2 ~ e3 a2 a3 e3, ~@14 b3 ~@12 a3@2 ~@3]/2", // E5 B5 A5
  AV: "a2@2 e3 ~ e3@2 a2 ~ a2 ~ a2 ~ a2@2 e3 ~, ~@4 a2 ~@3 e3@4 ~@4",
  AW: "[~@2 b3 ~ f#3@2 b2@2 b3 ~@2 b3 f#3 ~@7 e3@2 ~@4 a2 ~ a2 ~ e3@2, b1@7 ~@9, ~@9 f#3@2 ~@11 [e3,a3]@7 ~@3, ~@5 b2 ~ a2@4 ~@5]/2", // A5
  AX: "[~@2 [b2,f#3] ~ [b2,f#3]@2 b1@2 ~@4 b2@2 ~@4 a3 ~ e3@2 ~@2 a3 ~@2 a3 ~ a2 a3 e3, b1@5 ~@3 [b2,f#3]@4 ~@2 a2@11 e3@2 ~ e3@2 ~@2, ~@5 b1@2 ~@6 a2 ~@2]/2", // B5
  AY: "[~@4 f#3@2 ~@4 b1@2 b2@2 [b2,b3]@5 ~ [d3,a3,d4]@3 ~ [d3,a3,c#4,d4]@2 d2@2 [d3,a3,d4]@2 ~@6 b3@2 ~@4 e2@2 e3@2 ~@2, b1@9 ~@21 e2@11 ~@7, ~@2 b2@4 [f#3,b3]@7 ~ f#3 ~@19 e3@4 [b3,e4]@7 ~@3]/3", // B D5 Dmaj7 D5 B5 E5
  AZ: "[~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 ~@6 b3@2 ~@4 e2@2 e3@2 ~@4 e4 ~ b3@2 e3@2 e4 ~@2 e4 b3 ~@5 [d3,a3] ~ [d3,a3]@2 d2@2 ~@4 d3@2 ~@4 d4 ~ a3@2 d3@2 d4 ~@2 d4 a3 ~@7 b3@2 ~@4 e2@2 e3@2 ~@2, ~@14 e2@11 ~@5 e2@16 d2@7 ~@5 d2@4 d2@16 e2@11 ~@7, ~@18 e3@4 [b3,e4]@7 ~@12 b3@2 ~@30 a3@2 ~@11 [b3,e4]@7 ~@3, ~@21 e3 ~@6 [d3,a3]@2 ~@7 d3 ~@3 e3@2 ~@5]/6", // E5 D5 E5 D5
  BA: "[~@2 [e3,b3,e4] ~ [e3,b3,e4]@2 ~@2 [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~@7 b3@2 ~@4 e2@2 e3@2 ~@4 e4 ~ b3@2 e3@2 e4 ~@2 e4 b3 ~@3, ~@6 e2@8 e2@11 ~@5 e2@16 ~@2, ~@18 e3@4 [b3,e4]@7 ~@12 b3@2 ~@5, ~@21 e3 ~@2]/3", // E5
  BB: "~@2 [e3,b3,e4] ~ [e3,b3,e4]@2 ~@2 [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,f#3]@2, ~@3 e2@4 ~", // E5 Esus2
  BC: "~@3 e3@2 ~ e3 ~, ~ b3@2 ~@5, ~@4 e2@5 ~ e2@4 ~@2",
  BD: "[~@2 [d3,a3,d4] ~@3 d2@2 [d3,a3,d4]@2 d2@4 ~@4 d4 ~ a3@2 d3@2 d4 ~@2 d4 a3 ~@5 [e3,b3] ~ [e3,b3]@2 e2@2 ~@4 e3@2 ~@4 [e3,b3] ~ [e3,b3]@2 e2@2 ~@4 e3@2 ~@2, ~@14 d2@16 e2@7 ~@5 e2@4 e2@7 ~@5 e2@4 ~@2, ~@25 a3@2 ~@37, ~@13 d3 ~@6 [e3,b3]@2 ~@6 [e3,b3]@2 ~@2]/4", // D5 E5
  BE: "[~@2 [e3,b3,e4] ~ [e3,b3,e4]@2 ~@2 [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~@7 b3@2 ~@4 e2@2 e3@2 ~@2, ~@6 e2@8 e2@11 ~@7, ~@18 e3@4 [b3,e4]@7 ~@3]/2", // E5
  BF: "~@2 [e3,b3,e4] ~@3 e2@2 [e3,b3,e4]@2 e2@4 [e3,f#3]@2", BG: "~@2 [d3,a3,d4] ~@3 d2@2 [d3,a3,d4]@2 d2@4 ~@2",
  BH: "~@2 [d3,a3,d4] ~@2 [d3,a3,d4]@2 ~@2 [d3,a3,d4] ~@2 [d3,a3,d4] ~ [d3,a3,d4] ~, ~@7 d2@9", // D5
  BI: "~ [e3,b3,e4]@6 ~@9", // E5
})).s("gm_overdriven_guitar").gain(0.25)

// chords · overdriven guitar · "Guitar 2" · soft notes
const overdriven_guitar_soft = note(`<
  ~@2 A@2 ~ B ~ C@2 ~ D@2 ~ E@2 ~ F ~@2 G H@4 I J K@2 L@4 M N@3 ~ O@2 ~ P ~@2 Q R@2 S T ~ B ~@2 U ~ V W V ~@2 X@3 Y@3 ~
  R@2 Z@2 AA AB ~ G AC@2 AD@2 P AE AF@2 AG AH AI@2 P ~@2 V ~ AJ ~ AK ~ AB S ~ AK ~ T ~@2 AL ~ AM@2 AB ~@3 AN@2 AB AO@2
  AP@2 ~@2 AO@2 AM@2 AQ@3 ~@2
>`.pickRestart({
  A: "[~@7 a#3 ~@6 c2@5 ~@9 c3 ~@3]/2", B: "~@7 c4 ~@8", C: "[~@7 g#3 ~@6 d2@5 ~@9 d3 ~@3]/2", D: "[~@14 c2@7 ~@11]/2",
  E: "[~@6 e3@5 ~@3 d2@7 ~@11]/2", F: "~@7 a#3 ~@8", G: "~@7 g#3 ~@8",
  H: "[~@7 a#3 ~@6 a2@6 ~@10 a2@6 ~@10 a2@6 ~@10 a2@2]/4", I: "~@12 a3 ~ e2@2", J: "~@6 b3 ~",
  K: "[~@2 g#3 ~@11 c2@7 ~@9 d2@2]/2", L: "[~@6 a3 a2@3 ~@5 a2@3 ~@5 a2@3 ~@6]/4", M: "~@2 g#3 ~@11 e2@2",
  N: "[~@12 b3@2 d2@7 ~@9 c2@7 ~@11]/3", O: "[~@2 d#3 ~@11 a2@6 ~@12]/2", P: "~@2 g#3 ~@13", Q: "a2@3 ~@9 a2 ~@3",
  R: "[~@14 e2@5 ~@9 e3 ~@3]/2", S: "e2@3 ~@9 e3 ~@3", T: "~@6 a2@3 ~@7", U: "a2@3 ~@13", V: "~@7 f3 ~@8",
  W: "b1@5 ~@11", X: "[~@6 e3@5 ~@3 d2@7 ~@9 c2@7 ~@11]/3", Y: "[~@14 e2@5 ~@9 e3 ~ d2@5 ~@9 d3 ~@3]/3",
  Z: "[~@14 c2@5 ~@9 c3 ~@3]/2", AA: "~@6 d3@5 ~@5", AB: "~@6 e3@5 ~@5", AC: "[~@6 d3@5 ~@3 a2@6 ~@12]/2",
  AD: "[~@2 g#3 ~@11 a2@6 ~@12]/2", AE: "~@7 d2", AF: "[~@12 a3@2 c2@7 ~@9 d2@2]/2", AG: "~@6 a3 ~", AH: "~@7 a2",
  AI: "[~@12 a3 ~ c2@7 ~@11]/2", AJ: "~@13 b3 ~@2", AK: "~@13 e3 ~@2", AL: "~@6 b2@5 ~@5",
  AM: "[~@6 e3@5 ~@3 e2@5 ~@9 e3 ~@3]/2", AN: "[~@6 e3@5 ~@3 e2@7 ~@11]/2", AO: "[~@14 e2@7 ~@11]/2",
  AP: "[~@7 c4 ~@6 d2@5 ~@9 d3 ~@3]/2", AQ: "[~@7 c4 ~@6 d2@5 ~@9 d3 ~ d2@8 ~@10]/3",
})).s("gm_overdriven_guitar").gain(0.13)

// chords · electric guitar muted · "Guitar"
const electric_guitar_muted = note(`<
  ~ A@8 B@4 C@2 D@8 E@2 F G@5 H@5 I@7 J K@2 L@2 M N O@2 P Q@2 R@2 S T@8 U@3 V@6 W X@4 Y Z@3 Y AA@3 AB AC AD@2 AE@2 AF N
  AG@2 AH AI@2 AJ@2 S AK@8 AL@6 AM@5 AN@4 AO ~
>`.pickRestart({
  A: "[g#4 ~@5 b5@7 ~ [a4,d5,f#5,a5]@16 g4@3 ~@5 c6@7 ~ [d5,f#5]@12 ~@2 d5 ~ [g#4,b4,e5,g#5]@11 ~ [g#4,b4,e5,g#5] ~ e2 ~ [a4,d5,f#5]@11 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~ g4@3 ~@5 c6@7 ~ [a4,d5,f#5]@11 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~ [g#4,e5]@2, e5@13 ~@17 e5@15 ~@14 f#5@2 ~@33 e5@15 ~@19, ~ g#4@6 ~@10 g4@6 a4@8 ~@18 g4@6 ~@9, ~@4 g#5@9 ~@23 g5@9 ~ a5@11 ~ a5@2 ~@18 a5@12 ~@10 g5@9 ~ a5@12 ~@6]/8", // D E D C#m
  B: "[~@6 b5@7 ~ [d5,f#5]@12 ~@2 d5 ~ [g4,c5,e5]@11 ~ [g4,c5,e5] ~ [g4,c5,e5,g5] ~ [a4,d5,f#5,a5]@11 ~ [a4,d5,f#5,a5] ~ d3 ~ [g#4,e5]@2, ~ g#4@6 a4@8 ~@17, ~@4 g#5@9 ~ a5@11 ~ a5@2 ~@36, ~@27 f#5@2 ~ g5@12 ~@22]/4", // D C D C#m
  C: "[~@6 b5@7 ~ [d5,f#5]@12 ~@2 d5 ~ [g4,c5,e5,g5]@2, ~ g#4@6 a4@8 ~, ~@4 g#5@9 ~ a5@11 ~ a5@2 ~@4, ~@27 f#5@2 ~@3]/2", // D C
  D: "[~@10 [g4,c5,e5,g5] ~ c3 ~ [a4,d5,f#5,a5]@16 [g#4,b4,e5,g#5]@16 [a4,d5,f#5]@11 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~ [c5,e5]@12 ~@2 c5 ~ [a4,d5,f#5,a5]@16 [g4,a4,c5,e5]@12 a2@2 [g4,a4,c5,e5]@2 [a4,d5,f#5,a5]@12 a2@2 [a4,d5,f#5,a5]@2 ~@2, ~@23 a5@6 ~@2 g4@8 ~@25, ~@62 g5@11 ~ g5@2 ~@52, ~@75 e5@2 ~@51]/8", // C D E D C D Am7 D
  E: "[~@3 e5@4 [a4,d5,f#5,a5]@8 ~, ~ g4@6 ~@9, ~@2 a4@5 ~@9, ~@5 c5@9 ~@18]/2", // D
  F: "~@3 g#5@4 ~, ~ g#4@6 ~, ~@2 b4@5 ~, ~@5 e5@9 ~@2",
  G: "[~@6 a5@8 [c5,e5,g5,c6]@4 ~@4 [c5,e5,g5,c6]@8 [a4,d5,f#5,a5]@12 d3@2 [a4,d5,f#5,a5]@2 [a4,c5]@12 ~ c5 a4 ~ [a4,d5,f#5,a5]@12 a2@2 [a4,d5,f#5,a5]@2 ~@2, ~ a4@6 ~@16 g4@8 ~@9, ~@4 d5@10 ~@32 e5@11 ~ e5@2 ~@20, ~@5 f#5@9 ~@66]/5", // C D Am D
  H: "[~@6 e5@8 [d5,f#5]@12 ~ f#5 d5 ~ [g#4,b4,e5,g#5]@12 e2@2 [g#4,b4,e5,g#5]@2 [a4,d5,f#5,a5]@16 [g4,c5,e5,g5]@12 c3@2 [g4,c5,e5,g5]@2 ~@2, ~ g4@6 ~@33, ~@2 a4@5 a4@8 ~@25, ~@5 c5@9 a5@11 ~ a5@2 ~@52]/5", // D E D C
  I: "[~@6 a5@8 [a4,c5]@12 ~ c5 a4 ~ [d5,f#5]@12 ~ f#5 d5 ~ [c5,e5]@12 ~ e5 c5 ~ [d5,f#5,a5,d6]@4 ~@4 [d5,f#5,a5,d6]@8 [a4,f#5]@4 [g#4,e5]@6 [g#4,e5]@6 [g#4,e5,g#5]@9 ~ [g#4,e5]@4 [f#4,d#5]@4, ~ a4@6 g4@8 a4@8 g4@8 ~@25, ~@4 d5@10 e5@11 ~ e5@2 ~@84, ~@5 f#5@9 ~@16 a5@11 ~ a5@2 ~@2 g5@11 ~ g5@2 ~@52]/7", // Am D C D C#m D#m
  J: "[e4,a4,c#5,e5]", K: "[[e4,c#5]@4 [a4,f#5]@3 [g#4,b4,e5,g#5]@9]/2", L: "[[g#4,b4,e5,g#5]@7 [e4,a4,c#5,e5]@9]/2",
  M: "~@2 [a4,c#5]@2 ~@2 a3 ~ [e4,c#5]@4 [a4,f#5]@4", N: "g#4 ~@5 b5@7 ~@3, e5@13 ~@3, ~ g#4@6 ~, ~@4 g#5@9 ~@3",
  O: "[[g#4,b4,e5,g#5]@9 ~ [g#4,b4,e5,g#5] ~ e2 ~ [f#4,d#5]@4 [e4,c#5]@6 [e4,a4,c#5,e5]@8]/2", // E D#m C#m A
  P: "e4 ~@5 a5@7 ~@3, c#5@13 ~@3, ~ e4@6 ~, ~@4 e5@9 ~@3",
  Q: "[[f#4,b4,d#5]@9 ~ [f#4,b4,d#5] ~ [f#4,b4,d#5,f#5] ~ e4@3 ~@5 a5@7 ~@3, f#5@10 ~@4 c#5@15 ~@3, ~@9 e4@6 ~, ~@20 e5@9 ~@3]/2", // B
  R: "[f#4 ~@5 b5@7 ~ e4@3 ~@5 a5@7 ~@3, d#5@13 ~ c#5@15 ~@3, ~ f#4@6 ~@2 e4@6 ~, ~@4 f#5@9 ~@7 e5@9 ~@3]/2",
  S: "f#4 ~@5 b5@7 ~ [f#4,d#5]@2, d#5@13 ~@3, ~ f#4@6 ~, ~@4 f#5@9 ~@3", // D#m
  T: "[~@4 [a4,f#5]@4 ~@2 [d5,f#5]@2 ~@2 [g#4,b4,e5]@11 ~ [g#4,b4,e5] ~ [g#4,b4,e5,g#5] ~ [d5,f#5]@12 ~@2 d5 ~ [g4,c5,e5,g5]@11 ~ [g4,c5,e5,g5] ~ c3 ~ [d5,f#5]@12 ~@2 d5 ~ [g#4,b4,e5,g#5]@16 [a4,d5,f#5]@11 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~ [c5,e5]@12 ~@2 c5 ~ [a4,f#5]@2, ~@7 g#5@6 ~@2 a4@8 ~@8 a4@8 ~@16 g4@8 ~, ~@30 a5@11 ~ a5@2 ~@18 a5@11 ~ a5@2 ~@18 a5@12 ~@17 e5@2 ~@3, ~@43 f#5@2 ~@30 f#5@2 ~@33 g5@11 ~ g5@2 ~@4]/8", // D E D C D E D C …
  U: "[~@6 d6@7 ~ [b4,e5]@12 ~@2 b4 ~ [a4,d5,f#5,a5]@11 ~ [a4,d5,f#5,a5] ~ d3 ~ [g4,a4,d5]@2, ~ a4@6 g#4@8 ~@9, ~@4 a5@9 ~ g#5@11 ~ g#5@2 ~@20, ~@27 e5@2 ~@19]/3", // E5 D Gsus2
  V: "[~@4 [g4,d5,e5] ~@3 [g4,d5]@3 ~ [g4,d5,e5] ~ [a4,d5,f#5]@11 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~ [g#4,b4,e5,g#5]@16 [d5,f#5]@12 ~@2 d5 ~ [g4,c5,e5]@11 ~ [g4,c5,e5] ~ [g4,c5,e5,g5] ~ [a4,d5,f#5]@11 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~@3, ~@7 a5@6 ~@10 a4@8 ~@17, ~@46 a5@11 ~ a5@2 ~@18 a5@12 ~@6, ~@59 f#5@2 ~ g5@12 ~@22]/6", // Em7 G5 Em7 D E D C D
  W: "~@3 e5@4 ~, ~ g4@6 ~, ~@2 a4@5 ~, ~@5 c5@9 ~@2",
  X: "[~@6 a5@8 [a4,c5,e5,a5]@4 ~@4 [a4,c5,e5,a5]@8 [d5,f#5,a5,d6]@4 ~@4 [d5,f#5,a5,d6]@8 [b4,e5]@12 ~ e5 b4 ~@3, ~ a4@6 ~@16 g#4@8 ~, ~@2 d5@5 ~@25, ~@5 f#5@9 ~@32 g#5@11 ~ g#5@2 ~@4]/4", // Am D E5
  Y: "~@3 a5@4 ~, ~ a4@6 ~, ~@2 d5@5 ~, ~@5 f#5@9 ~@2",
  Z: "[~@3 g5@4 [a4,d5,f#5,a5]@8 [g4,a4,c5,e5]@8 ~, ~ g4@6 ~@17, ~@2 c5@5 ~@17, ~@5 e5@9 ~@34]/3", // D Am7
  AA: "[~@6 g5@8 [d5,f#5]@12 ~ f#5 d5 ~ [a4,f#5]@4 [g#4,e5]@6 [g#4,e5,g#5]@6 ~@2, ~ g4@6 a4@8 ~@9, ~@2 c5@5 ~@17, ~@5 e5@9 a5@11 ~ a5@2 ~@20]/3", // D C#m
  AB: "~@2 [b4,e5]@2 ~@2 b3 ~ [g#4,e5]@4 [f#4,d#5]@4", // E5 C#m D#m
  AC: "[e4,a4,c#5]@9 ~ [e4,a4,c#5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~, e5@5 ~@3", // A
  AD: "[[e4,a4,c#5,e5]@8 [a4,f#5,a5]@6 g#4@3 ~@5 b5@7 ~@3, ~@14 e5@15 ~@3, ~@9 g#4@6 ~, ~@20 g#5@9 ~@3]/2", // A D
  AE: "[[g#4,b4,e5]@9 ~ [g#4,b4,e5] ~ [g#4,b4,e5,g#5] ~ [e4,a4,c#5]@11 ~ [e4,a4,c#5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~, g#5@5 ~@2 e5@6 ~@3]/2", // E A
  AF: "[e4,a4,c#5,e5]@2 [e4,c#5] [a4,f#5]", AG: "[[g#4,b4,e5,g#5]@14 [f#4,d#5]@4 [e4,c#5]@6 ~@2 [a4,c#5]@2 ~@2 a3 ~]/2",
  AH: "[e4,a4,c#5,e5]@9 ~ [e4,a4,c#5,e5] ~ a2 [e4,a4,c#5,e5] ~@2", // A
  AI: "[[b4,d#5]@10 ~@2 b4 ~ [e4,a4,c#5]@11 ~ [e4,a4,c#5] ~ [e4,a4,c#5,e5] ~ [e4,a4,c#5,e5] ~, f#4@7 ~@9, f#5@9 ~ f#5@2 ~@20, ~@11 d#5@2 ~ e5@12 ~@6]/2", // B A
  AJ: "[[f#4,b4,d#5,f#5]@9 ~ [f#4,b4,d#5,f#5] ~ b2 ~ [a4,c#5]@12 ~@4 c#5 a4, ~@7 e4@9, ~@14 e5@11 ~ e5@2 a4@2 ~@2, ~@27 c#5@2 e5@2 ~]/2", // B A
  AK: "[~@4 [a4,f#5]@4 [a4,f#5]@6 [b4,e5]@12 ~@2 b4 ~ [g#4,b4,e5]@16 [g#4,b4,e5]@11 ~ [g#4,b4,e5] ~ [g#4,b4,e5,g#5] ~ [g#4,b4,e5,g#5]@11 ~ [g#4,b4,e5,g#5] ~ e2 ~ [a4,d5,f#5,a5]@16 [d5,f#5]@12 ~@2 d5 ~ [g#4,b4,e5,g#5]@11 ~ [g#4,b4,e5,g#5] ~ e2 ~ [g#4,e5]@2, ~@7 g#4@8 ~@32 a4@8 ~@9, ~@14 g#5@11 ~ g#5@2 ~@2 g#5 ~@15 g#5@12 ~@36 a5@11 ~ a5@2 ~@20, ~@27 e5@2 ~@78 f#5@2 ~@19]/8", // D E5 E D E C#m
  AL: "[~@6 b5@7 ~ [b4,e5]@12 ~@2 b4 ~ [g#4,b4,e5]@11 ~ [g#4,b4,e5,g#5] ~ e2 ~ [g#4,b4,e5]@11 ~ [g#4,b4,e5] ~ [g#4,b4,e5,g#5] ~ [g#4,b4,e5,g#5]@11 ~ [g#4,b4,e5,g#5] ~ e2 ~ [d5,f#5]@12 ~@2 d5 ~ [a4,f#5]@2, ~ g#4@6 g#4@8 ~@24 a4@8 ~, ~@4 g#5@9 ~ g#5@11 ~ g#5@2 ~@2 g#5 ~@15 g#5@12 ~@20 a5@11 ~ a5@2 ~@4, ~@27 e5@2 ~@62 f#5@2 ~@3]/6", // E5 E D
  AM: "[~@6 d6@7 ~ [b4,e5]@12 ~@2 b4 ~ [g#4,b4,e5]@16 [g#4,b4,e5,g#5]@16 g#4@3 ~@5 b5@7 ~ [g#4,e5]@2, ~ a4@6 g#4@8 ~@18 g#4@6 ~, ~@4 a5@9 ~ g#5@11 ~ g#5@2 ~@2 g#5 ~@37 g#5@9 ~@3, ~@27 e5@2 ~@33 e5@15 ~@3]/5", // E5 E C#m
  AN: "[~@6 b5@7 ~ [g#4,b4,e5]@11 ~ [g#4,b4,e5] ~ [g#4,b4,e5,g#5] ~ [a4,d5,f#5,a5]@11 ~ [a4,d5,f#5,a5] ~ d3 ~ [a4,d5,f#5]@13 ~ [a4,d5,f#5] ~ [a4,d5,f#5,a5] ~, ~ g#4@6 ~@25, ~@4 g#5@9 ~ g#5@12 ~@20 a5@14 ~@4]/4", // E D
  AO: "[g#4,e5] ~", // C#m
})).s("gm_electric_guitar_muted").gain(0.24)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@12 A ~@35 A ~@9 A ~@19 B ~@3 C ~@21 B ~@7 C ~@16>".pickRestart({
  A: "~@2 x!6", B: "~@12 x!4", C: "~@3 x",
})).gain(0.4)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@78 A ~@3 B ~@21 A ~@7 B ~@16>".pickRestart({
  A: "~@8 x!2 ~@6", B: "~@3 x ~@2 x ~",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
// … 47 more lines

More by The Tragically Hip