Strudelify

Over My Shoulder

Mike + The Mechanics

KeyE♭ majorTempo93 bpm
0:00/0:00
// Over My Shoulder — Mike + The Mechanics
// 93.1 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 84 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93.1/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
const acoustic_guitar_steel = note(`<
  ~@2 A@2 B@2 C@2 D@2 E@2 F G F G F G F G F G H I H I H I J K L F G M G M G M G N@2 O@6 P Q@4 R@2 S@7 T@5 U@18
>`.pickRestart({
  A: "[~@6 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@11 ~ [d4,f4]@11 ~ [d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@5 ~ g4@2 ~ [eb4,g4]@10 ~@2, ~@47 bb3@12 bb3@10 ~@11 [bb3,eb4]@3 bb3@10 ~@3]/2", // Ab5 Dm Eb Eb5
  B: "[~@6 eb4@2 ~ eb4@2 ~ eb4@2 ~ eb4@5 ~ eb4@3 ~@3 eb4@5 ~ eb4@2 ~ eb4@11 ~ [d4,f4]@11 ~ f4@9 [bb3,eb4,g4]@4 ~@23, ~@5 ab3@3 ab3@3 ab3@3 ab3@6 ab3@3 ~@3 ab3@6 ab3@3 ab3@12 bb3@12 [bb3,d4]@11 ~@26]/2", // Dm Eb Bb
  C: "[~@6 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@11 ~ [d4,f4]@11 ~ f4@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb3,eb4,g4]@10 ~@2, ~@47 bb3@12 [bb3,d4]@11 ~@26]/2", // Ab5 Dm Eb Bb
  D: "[~@6 eb4@2 ~ eb4@2 ~ eb4@2 ~ eb4@5 ~ eb4@3 ~@3 eb4@5 ~ eb4@2 ~ eb4@11 ~ [d4,f4]@11 ~ f4@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb3,eb4,g4]@10 ~@2, ~@5 ab3@3 ab3@3 ab3@3 ab3@6 ab3@3 ~@3 ab3@6 ab3@3 ab3@12 bb3@12 [bb3,d4]@11 ~@26]/2", // Dm Eb Bb
  E: "[~@6 eb4@2 ~ eb4@2 ~ eb4@2 ~ eb4@5 ~ eb4@3 ~@3 eb4@5 ~ eb4@2 ~ eb4@11 ~ [d4,f4]@11 ~ [d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb3,eb4,g4]@10 ~@2, ~@5 ab3@3 ab3@3 ab3@3 ab3@6 ab3@3 ~@3 ab3@6 ab3@3 ab3@12 bb3@12 bb3@10 ~@27]/2", // Dm Eb
  F: "~@2 [ab3,eb4]!3 [ab3,eb4]@2 [ab3,eb4] ~ [ab3,eb4]@2 [ab3,eb4] [ab3,eb4]@4", // Ab5
  G: "[bb3,d4,f4]@12 [bb3,d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb3,eb4,g4]@10 ~@2", // Bb Eb
  H: "[ab3,db4]@7 [ab3,eb4,ab4] ~ [ab3,eb4,ab4]@2 [ab3,eb4,ab4] [ab3,eb4,ab4]@4", // Db5 Ab5
  I: "[ab3,db4]@12 [ab3,db4]@3 [ab3,db4]@6 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@10 ~@2", // Db5 Ab5
  J: "[bb3,db4,f4]@12 [bb3,db4,f4]@3 [bb3,db4,f4]@6 [bb3,db4,f4]@4 ~@2 [bb3,db4,f4]@6 [bb3,db4,f4]@3 [bb3,db4,f4]@12", // Bbm
  K: "[b3,eb4,gb4]@12 [b3,eb4,gb4]@3 [b3,eb4,gb4]@6 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@6 [b3,eb4,gb4]@3 [b3,eb4,gb4]@10 ~@2", // B
  L: "~@9 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4]@3 ~@21", // B
  M: "~@6 [ab3,eb4]@3 [ab3,eb4]@2 ~ eb4@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@12, ~@11 ab3@3 ~@34", // Ab5
  N: "[[ab3,db4]@21 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@11 ~ ab3@12 [ab3,db4]@3 [ab3,db4]@6 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4]@5 ~ [ab3,eb4]@3 [ab3,eb4,ab4]@10 ~@2, ~@26 ab4@6 ~@15 db4@12 ~@15 ab4@6 ab4@3 ~@13]/2", // Db5 Ab5 Db5 Ab5
  O: "[[ab3,db4]@21 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4]@5 ~ [ab3,eb4]@3 [ab3,eb4,ab4]@11 ~ ab3@12 [ab3,db4]@3 [ab3,db4]@6 [ab3,eb4,ab4]@3 ~@3 ab3@5 ~ eb4@2 ~ eb4@10 ~ [ab3,db4]@21 ~ eb4@3 ~@3 ab3@5 ~ eb4@2 ~ eb4@11 [ab3,db4]@12 ~ [ab3,db4]@3 ab3@5 ~ eb4@3 ~@3 ab3@5 ~ eb4@2 ~ eb4@10 ~@2 [db4,f4]@11 ~ [bb3,f4]@2 ~ [db4,f4]@6 [bb3,db4,f4]@4 ~@2 [bb3,db4,f4]@5 ~ f4@3 [bb3,db4,f4]@11 [b3,eb4,gb4]@12 ~ [b3,gb4]@3 [b3,eb4,gb4]@5 ~ [b3,gb4]@4 ~@2 b3@5 ~ [b3,gb4]@2 ~ eb4@10 ~@2, ~@26 ab4@6 ab4@3 ~@12 db4@12 ~@15 [eb4,ab4]@6 [ab3,ab4]@3 [ab3,ab4]@10 ~@23 [ab3,ab4]@3 ~@3 [eb4,ab4]@6 [ab3,ab4]@3 [ab3,ab4]@12 ~@16 db4@8 ~@3 [eb4,ab4]@6 ~@27 db4@3 ~@45 eb4@3 ~@6 eb4@4 ~@2 [eb4,gb4]@6 eb4@3 ~@13, ~@164 [ab3,ab4]@3 ~@9 [ab3,ab4]@3 [ab3,ab4]@10 ~@2 bb3@12 ~@3 bb3@6 ~@12 [bb3,db4]@3 ~@48 [b3,gb4]@10 ~@3]/6", // Db5 Ab5 Db5 Ab5 Db5 Db Bb5 Db …
  P: "~@9 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~ [b3,eb4] gb4 ~@2 eb4 ~ [b3,eb4,gb4]@3 ~@22, ~@10 [b3,gb4] ~@13", // B B5
  Q: "[~@5 [ab3,eb4]@3 ~ eb4@2 [ab3,eb4]@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@12 ~ [d4,f4]@11 [bb3,d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 ~ eb4@9 ~@3, ~@8 ab3@3 ~@36 bb3@12 ~@24 [bb3,g4]@10 ~@3]/2", // Ab5 Dm Bb Eb
  R: "[~@5 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@12 ~ [d4,f4]@11 [bb3,d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 ~ eb4@9 ~@3, ~@47 bb3@12 ~@24 [bb3,g4]@10 ~@3]/2", // Ab5 Dm Bb Eb
  S: "[~@5 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@12 ~ d4@11 [bb3,d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 ~ eb4@9 ~@2 [ab3,db4]@21 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@12 [ab3,db4]@12 ~ [ab3,db4]@3 ab3@5 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@10 ~@2 [ab3,db4]@21 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@12 [ab3,db4]@12 ~ ab3@2 ~ ab3@5 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@10 ~@2 [ab3,db4]@21 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@12 [ab3,db4], ~@47 [bb3,f4]@12 ~@24 [bb3,g4]@10 ~@66 db4@8 ~@84 db4@3 db4@8 ~@74]/7", // Ab5 Bb Eb Db5 Ab5 Db5 Ab5 Db5 …
  T: "[~@12 ab3@2 ~ ab3@5 [ab3,eb4,ab4]@3 ~@3 [ab3,eb4,ab4]@6 [ab3,eb4,ab4]@3 [ab3,eb4,ab4]@10 ~@2 [bb3,db4,f4]@12 [bb3,db4,f4]@3 [bb3,db4,f4]@6 [bb3,db4,f4]@4 ~@2 [bb3,db4,f4]@6 [bb3,db4,f4]@3 [bb3,db4,f4]@12 [b3,eb4,gb4]@12 [b3,eb4,gb4]@3 ~ [b3,eb4,gb4]@5 [b3,eb4,gb4]@4 ~@2 [b3,eb4,gb4]@6 [b3,eb4,gb4]@3 [b3,eb4,gb4]@9 ~ ab3@11 [ab3,db4,gb4]@11 ~ [ab3,db4,ab4]@11 ~@2 [ab3,db4,ab4]@12 ~ [db4,gb4,db5]@38 ~@12, ~@11 db4@3 db4@8 ~@118 [db4,f4]@11 ~@89]/5", // Ab5 Bbm B Dbsus4 Db5 Gb5 Db
  U: "[~@5 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@3 [ab3,eb4]@6 [ab3,eb4]@3 ~@3 [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@12 [bb3,d4,f4]@12 [bb3,d4,f4]@9 [bb3,eb4,g4]@4 ~@2 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb3,eb4,g4]@10 ~@3]/2", // Ab5 Bb Eb
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.8)

// bass · electric bass finger
const bass = note(`<
  ~@6 A B C D E F G H A B C D E F G H I J I J I K L M N A B C D E F G H I J I O@3 P@8 Q@2 R@8 S T@7 U@8 V@5
>`.pickRestart({
  A: "f1@21 ~@3 f1@5 ~ f1@15 ab1@3", B: "bb1@23 ~ eb1@6 eb1@11 ~ eb1@6", C: "f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 ab1@6",
  D: "bb1@23 ~ eb2@3 ~@3 eb2@9 c2@3 bb1@6", E: "f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@6 eb2@3 c2@3 bb1@3 ~@3",
  F: "bb1@10 ~@2 bb2@10 ~@2 eb2@3 ~@3 eb2@10 ~@2 f1@4 ~@2", G: "f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 g1@3 ab1@3",
  H: "bb1@10 ~@2 bb2@10 ~@2 eb2@3 ~@3 eb2@9 c2@3 bb1@4 ~@2", I: "db2@7 c2@9",
  J: "bb1@21 ab1@16 ~@2 ab1@2 ~ bb1@2 ~ c2@3", K: "bb1@7 ab1@9", L: "bb1@3 bb2@4 bb1@2 ~ bb1@6",
  M: "b1@19 ~@2 b1@25 ~@2", N: "b1@5 ~@3", O: "[bb1@21 ab1@16 ~ ab1@2 ~ bb1@2 ~ c2@3 db2@21 c2@27 bb1@21 ab1@27 bb1]/3",
  P: "[~@8 bb2@12 bb1@6 ~@3 bb1@18 b1@19 ~@2 b1@25 ~@2 b1@30 ~@18 f1@21 ~@3 f1@5 ~ f1@15 ab1@3 bb1@23 ~ eb1@6 eb1@11 ~ eb1@6 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 ab1@6 bb1@23 ~ eb2@3 ~@3 eb2@9 c2@3 bb1@6 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@6 eb2@3 c2@3 bb1@3 ~@3 bb1]/8",
  Q: "[~@11 bb2@10 ~@2 eb2@3 ~@3 eb2@10 ~@2 f1@4 ~@2 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 g1@3 ab1@3 bb1]/2",
  R: "[~@11 bb2@10 ~@2 eb2@3 ~@3 eb2@9 c2@3 bb1@4 ~@2 db2@21 c2@27 bb1@21 ab1@16 ~@2 ab1@2 ~ bb1@2 ~ c2@3 db2@21 c2@27 bb1@21 ab1@16 ~@2 ab1@2 ~ bb1@2 ~ c2@3 db2@21 c2@27 bb1@21 ab1@27 bb1@9 ~@12 bb1@6 ~@3 bb1@18 b1, ~@344 bb2@39 ~]/8",
  S: "~@5 b1@6 db2, ~@2 b2@9 ~",
  T: "[~@8 eb2@11 ~ f2@11 ~ gb2@12 ab2@47 ~@4 f1@21 ~@3 f1@5 ~ f1@15 ab1@3 bb1@23 ~ eb1@6 eb1@11 ~ eb1@6 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 ab1@6 bb1@23 ~ eb2@3 ~@3 eb2@9 c2@3 bb1@6 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@6 eb2@3 c2@3 bb1@3 ~@3 bb1]/7",
  U: "[~@11 bb2@10 ~@2 eb2@3 ~@3 eb2@10 ~@2 f1@4 ~@2 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 g1@3 ab1@3 bb1@10 ~@2 bb2@10 ~@2 eb2@3 ~@3 eb2@9 c2@3 bb1@4 ~@2 f1@21 ~@3 f1@5 ~ f1@15 ab1@3 bb1@23 ~ eb1@6 eb1@11 ~ eb1@6 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 ab1@6 bb1@23 ~ eb2@3 ~@3 eb2@9 c2@3 bb1@6 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@6 eb2@3 c2@3 bb1@3 ~@3 bb1]/8",
  V: "[~@11 bb2@10 ~@2 eb2@3 ~@3 eb2@10 ~@2 f1@4 ~@2 f1@18 ~@3 f1@2 ~ f1@4 ~@2 f1@12 g1@3 ab1@3 bb1@10 ~@2 bb2@10 ~@2 eb2@3 ~@3 eb2@9 c2@3 bb1@4 ~@2 f1@21 ~@3 f1@5 ~ f1@15 ab1@3 bb1@23 ~ eb1@6 eb1@11 ~ eb1@6 ~]/5",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@2 A B A C A D A D A E A E A E A E A E A E F G F G F G H I J A K A K A K A L M G M N@2 O@3 P@8 Q@2 R@2 S@2 T@3 U@7
  V@8 W@5
>`.pickRestart({
  A: "~@2 [eb3,ab3]!3 [eb3,ab3]@2 [eb3,ab3] ~ [eb3,ab3]@2 [eb3,ab3] [eb3,ab3]@2 [eb3,ab3]@2, f2", // Ab5
  B: "[bb2,d3,f3]@4 [bb2,d3,f3] [bb2,d3,f3]@2 [bb2,eb3,g3] ~ [bb2,eb3,g3]@2 [bb2,eb3,g3] [bb2,eb3,g3]@3 ~", // Bb Eb
  C: "~ f3@11 ~ f3@2 ~ f3@5 [bb2,eb3,g3]@3 ~@24, [bb2,d3]@12 [bb2,d3]@3 [bb2,d3]@8 ~@25", // Eb Bb
  D: "~ f3@11 ~ f3@2 ~ f3@5 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@2, [bb2,d3]@12 [bb2,d3]@3 [bb2,d3]@8 ~@25", // Eb Bb
  E: "[bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@2", // Bb Eb
  F: "[f3,db4]@12 [f3,db4]@3 ~ f3@5 [ab3,eb4]@4 ~@2 ab3@5 ~ ab3@2 ~ ab3@12, ~@15 db4@6 ~@5 eb4@6 eb4@3 eb4@13", // Db Ab5
  G: "[gb3,db4]@12 [gb3,db4]@3 [gb3,db4]@6 [ab3,eb4]@5 ~ [ab3,eb4]@6 [ab3,eb4]@3 [ab3,eb4]@10 ~@2", // Gb5 Ab5
  H: "[f3,db4]@4 [f3,db4] [f3,db4]@2 [f3,db4] ~ [f3,db4]@2 [f3,db4] [f3,db4]@4", // Db
  I: "[gb3,eb4]@4 [gb3,eb4] [gb3,eb4]@2 [gb3,eb4] ~ [gb3,eb4]@2 [gb3,eb4] [gb3,eb4]@3 ~", // Ebm
  J: "~@12 [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@3 ~@21", // B
  K: "[bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@2, ~@13 bb2@3 ~@8", // Bb Eb
  L: "[bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [eb3,g3]@6 [bb2,eb3,g3]@2 ~ [eb3,g3]@10 ~@2, ~@26 bb2@6 ~@3 bb2@10 ~@3", // Bb Eb
  M: "[f3,db4]@12 [f3,db4]@3 ~ f3@5 [ab3,eb4]@4 ~ [ab3,eb4]@6 ~ ab3@2 ~ ab3@12, ~@15 db4@6 ~@11 eb4@3 eb4@13", // Db Ab5
  N: "[[gb3,db4]@12 [gb3,db4]@3 [gb3,db4]@6 [ab3,eb4]@5 ~ [ab3,eb4]@6 [ab3,eb4]@2 ~ ab3@9 ~@3 f3@12 [f3,db4]@3 ~ f3@4 ~ ab3@4 ~ [ab3,eb4]@6 ~ ab3@2 [ab3,eb4]@13, ~@35 eb4@10 ~@2 db4@12 ~@4 db4@5 eb4@4 ~@8 eb4@3 ~@13]/2", // Gb5 Ab5 Db Ab5
  O: "[[gb3,db4]@12 [gb3,db4]@3 [gb3,db4]@6 [ab3,eb4]@5 ~ [ab3,eb4]@6 [ab3,eb4]@2 ~ ab3@9 ~@2 [f3,db4]@12 ~ db4@3 [f3,db4]@6 [f3,db4]@3 ~@3 db4@5 ~ db4@3 [f3,db4]@11 ~ gb3@11 ~ gb3@2 ~ gb3@5 ~ eb4@3 ~@2 [gb3,eb4]@6 ~ [gb3,eb4]@3 [gb3,eb4]@9 ~@3, ~@35 eb4@10 ~@14 f3@4 ~@11 f3@6 f3@3 ~@12 eb4@12 eb4@3 eb4@6 gb3@3 ~@25]/3", // Gb5 Ab5 Db Ebm
  P: "[~@12 [gb3,b3]@2 ~ [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@2 ~ [gb3,b3,eb4]@3 ~@27 ab3@3 [eb3,ab3]@2 [eb3,ab3]@3 ~ [eb3,ab3]@5 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 ~ [d3,f3]@11 ~ [d3,f3]@3 bb2@5 [bb2,eb3,g3]@3 ~@4 g3@5 [bb2,eb3,g3]@3 ~ eb3@9 ~@9 ab3@3 [eb3,ab3]@2 [eb3,ab3]@3 ~ [eb3,ab3]@5 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 ~ [d3,f3]@11 ~ f3@2 ~@6 [bb2,eb3,g3]@3 ~@4 g3@5 [bb2,eb3,g3]@3 ~ eb3@9 ~@9 ab3@2 ~ ab3@2 [eb3,ab3]@3 ~ ab3@5 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 ~ [d3,f3]@11 ~ f3@2 ~@6 [bb2,eb3,g3]@3 ~@4 g3@5 [bb2,eb3,g3]@3 ~ eb3@9 ~@9 ab3@2 ~ ab3@2 [eb3,ab3]@3 ~ ab3@5 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 bb2, ~@11 eb4@2 ~@34 f2@48 bb2@12 bb2@3 ~@12 [bb2,eb3]@6 ~@3 [bb2,g3]@10 ~@2 f2@48 bb2@12 [bb2,d3]@3 bb2@6 ~@6 [bb2,eb3]@6 ~@3 [bb2,g3]@10 ~@2 f2@48 bb2@12 [bb2,d3]@3 bb2@6 ~@6 [bb2,eb3]@6 ~@3 [bb2,g3]@10 ~@2 f2@48 ~, ~@53 eb3@3 ~@55 [d3,f3]@8 ~@30 eb3@3 ~@55 [d3,f3]@8 ~@30 eb3@3 eb3@3 ~@3 eb3@6 ~@43 [d3,f3]@8 ~@30 eb3@3 eb3@3 ~@3 eb3@6 ~@28]/8", // B5 B Ab5 Dm Eb Ab5 Dm Eb …
  Q: "[[d3,f3]@11 [bb2,d3,f3]@3 ~@6 [bb2,eb3,g3]@3 ~@4 g3@5 [bb2,eb3,g3]@3 ~ eb3@9 ~@2 [f3,db4]@12 ~ [f3,db4]@3 [f3,db4]@5 ~ ab3@4 ~ [ab3,eb4]@6 ~ ab3@2 [ab3,eb4]@13, ~@14 bb2@6 ~@6 [bb2,eb3]@6 ~@3 [bb2,g3]@10 ~@51, ~@15 [d3,f3]@8 ~@45 eb4@4 ~@8 eb4@3 ~@13]/2", // Dm Bb Eb Db Ab5 Eb5 Eb Dm
  R: "[[gb3,db4]@12 [gb3,db4]@3 [gb3,db4]@6 [ab3,eb4]@5 ~ [ab3,eb4]@5 ~ ab3@2 ~ ab3@9 ~@2 [f3,db4]@12 ~ [f3,db4]@3 [f3,db4]@5 ~ ab3@4 ~ [ab3,eb4]@6 ~ ab3@2 [ab3,eb4]@13, ~@32 eb4@3 eb4@10 ~@23 eb4@4 ~@8 eb4@3 ~@13]/2", // Gb5 Ab5 Db Ab5
  S: "[[gb3,db4]@11 ~ gb3@3 [gb3,db4]@6 [ab3,eb4]@5 ~ [ab3,eb4]@5 ~ ab3@2 ~ ab3@9 ~@2 [f3,db4]@12 ~ f3@3 [f3,db4]@5 ~ ab3@4 ~ [ab3,eb4]@6 ~ ab3@2 [ab3,eb4]@13, ~@11 db4@3 ~@18 eb4@3 eb4@10 ~@14 db4@3 ~@6 eb4@4 ~@8 eb4@3 ~@13]/2", // Gb5 Ab5 Db Ab5
  T: "[[gb3,db4]@11 ~ gb3@3 [gb3,db4]@6 [ab3,eb4]@5 ~ [ab3,eb4]@5 ~ ab3@2 ~ ab3@9 ~@2 [f3,db4]@12 [f3,db4]@4 [f3,db4]@6 [f3,db4]@3 ~@2 [f3,db4]@6 [f3,db4]@3 ~ [f3,db4]@11 [gb3,eb4]@12 [gb3,eb4]@3 [gb3,eb4]@6 ~ eb4@3 ~@2 [gb3,eb4]@6 ~ [gb3,eb4]@2 [gb3,eb4]@9 ~ [db3,db4,f4]@3, ~@11 db4@3 ~@18 eb4@3 eb4@10 ~@71 gb3@3 ~@25]/3", // Gb5 Ab5 Db Ebm Db
  U: "[~@8 [eb3,ab3,eb4]@11 ~ [f3,db4,f4]@12 ~ [gb3,db4]@11 [ab3,db4,gb4,ab4]@44 ~@13 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3], ~@32 ab4@11 ~@52 f2@48 ~@48 f2@48 ~@48 f2@48 ~]/7", // Ab5 Db Gb5 Dbsus4 Ab5 Bb Eb Ab5 …
  V: "[~@11 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3], ~@47 f2@48 ~@48 f2@48 ~@48 f2@48 ~@48 f2@48 ~]/8", // Bb Eb Ab5 Bb Eb Ab5 Bb Eb …
  W: "[~@11 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@8 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@3 ~@3 [eb3,ab3]@6 [eb3,ab3]@3 [eb3,ab3]@6 [eb3,ab3]@6 [bb2,d3,f3]@12 [bb2,d3,f3]@3 [bb2,d3,f3]@6 [bb2,eb3,g3]@3 ~@3 [bb2,eb3,g3]@6 [bb2,eb3,g3]@3 [bb2,eb3,g3]@10 ~@3, ~@47 f2@48 ~@48 f2@48 ~@49]/5", // Bb Eb Ab5 Bb Eb Ab5 Bb Eb
})).s("gm_acoustic_guitar_nylon").gain(0.4).pan(0.2)

// chords · percussive organ
const percussive_organ = note(`<
  ~@6 A B A B A B A B A B A B A B A B C D C D C D E F G A B A B A B A B C D C H@6 I J I J I J I K@5 L@6 I J I J I J I J
  I J I J I J I J I J
>`.pickRestart({
  A: "~@12 [ab4,c5,eb5]@8 ~ [ab4,c5] ~@14 [ab4,c5,eb5]@5 ~@7, ~@21 eb5@2 ~@25", // Ab
  B: "~@12 [bb4,d5,f5]@8 ~@16 [bb4,eb5,g5]@7 ~@5", C: "[f4,db5] [ab4,eb5]", D: "[gb4,db5] [ab4,eb5]", E: "[bb4,db5,f5]",
  F: "[b4,eb5,gb5]", // B
  G: "~@18 [e4,f4] ~@4 [b5,c6,d6] [gb5,b5,eb6]@5 ~@19, [eb5,gb5,b5] ~, ~@9 [g4,a4] [c5,d5] g5 ~@12, ~@19 b4@2 [e5,f5]@2 a5@2 ~@23", // Fmaj7 Bm B Gsus2 Csus2 Fmaj7
  H: "[[gb4,db5]@24 [ab4,eb5]@23 [f4,db5]@24 [ab4,eb5]@24 [gb4,db5]@24 [ab4,eb5]@24 [bb4,db5,f5]@48 [b4,eb5,gb5]@48 ~@19 [e4,f4] ~@4 [gb5,b5,eb6]@5 ~@20, ~@239 [eb5,gb5,b5]@24 ~@25, ~@129 [g4,a4] [c5,d5] [g5,a5] ~@12, ~@259 b4@2 [e5,f5]@2 [c6,d6] ~@24]/6", // Gb5 Ab5 Db Ab5 Gb5 Ab5 Bbm B …
  I: "~@11 [ab4,c5,eb5]@8 ~ [ab4,c5] ~@14 [ab4,c5,eb5]@5 ~@8, ~@10 eb5 ~@13", // Ab
  J: "~@11 [bb4,d5,f5]@8 ~@16 [bb4,eb5,g5]@7 ~@6", // Bb Eb
  K: "[~@11 [bb4,d5,f5]@8 ~@16 [bb4,eb5,g5]@7 ~@5 [f4,db5]@24 [ab4,eb5]@24 [gb4,db5]@24 [ab4,eb5]@24 [f4,db5]@24 [ab4,eb5]@24 [gb4,db5]@24 [ab4,eb5]@24 [f4,db5]]/5", // Bb Eb Db Ab5 Gb5 Ab5 Db Ab5 …
  L: "[~@23 [ab4,eb5]@24 [gb4,db5]@24 [ab4,eb5]@24 [bb4,db5,f5]@48 [b4,eb5,gb5]@43 ~@2 [f4,db5,f5]@10 ~@2 [gb4,db5,gb5]@11 ~ [ab4,db5,ab5]@10 ~@2 [ab4,db5,ab5]@12 [db5,gb5,db6]@44 ~@8]/6", // Ab5 Gb5 Ab5 Bbm B Db Gb5 Db5 …
})).s("gm_percussive_organ").gain(0.38).pan(0.3)

// chords · pad new age
const pad_new_age = note("<~@22 A B A B A B ~@11 A B A C@3 ~@10 D@7 ~@22>".pickRestart({
  A: "~ db5 ab4 eb5 db5 ab4 ~ db5 ~@2 db5 ~ eb5 db5 ~ eb5, f4@8 ab4@3 ab4@3 ab4@2, eb5@5 ~@13 eb5@6 ~@3 eb5@6 ~@15",
  B: "db5 ab4 eb5 db5 ~ eb5 db5 ab4 ~ db5 ~@2 db5 ~ eb5 db5, gb4@24 ~@9 eb5@5 ~@10, ~@12 ab4@5 ~@7 [ab4,eb5]@6 ab4@9 ab4@9", // Ab5
  C: "[db5@3 ab4@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 ~@2 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 db5@3 ab4@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@4, gb4@24 ~@8 eb5@5 ~@10 f4@24 ab4@9 ab4@9 ab4@6 gb4@24 ~@9 eb5@5 ~@11, ~@12 ab4@5 ~@7 [ab4,eb5]@5 ab4@9 ab4@9 eb5@5 ~@13 eb5@6 ~@3 eb5@6 ~@27 ab4@5 ~@7 [ab4,eb5]@6 ab4@9 ab4@10]/3", // Ab5
  D: "[~@50 db5@3 ab4@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 db5@3 ab4@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 db5@3 ab4@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 eb5@3 db5@3 ~@3 eb5@3 db5@3 ab4@3 ~@3 db5@3 ~@6 db5@3 ~@3 eb5@3 db5@4, ~@47 f4@24 ab4@9 ab4@9 ab4@6 gb4@24 ~@9 eb5@5 ~@10 f4@24 ab4@9 ab4@9 ab4@6 gb4@24 ~@9 eb5@5 ~@10 f4@24 ab4@9 ab4@9 ab4@6 gb4@24 ~@9 eb5@5 ~@11, ~@47 eb5@5 ~@13 eb5@6 ~@3 eb5@6 ~@27 ab4@5 ~@7 [ab4,eb5]@6 ab4@9 ab4@9 eb5@5 ~@13 eb5@6 ~@3 eb5@6 ~@27 ab4@5 ~@7 [ab4,eb5]@6 ab4@9 ab4@9 eb5@5 ~@13 eb5@6 ~@3 eb5@6 ~@27 ab4@5 ~@7 [ab4,eb5]@6 ab4@9 ab4@10]/7", // Ab5
})).s("gm_pad_new_age").gain(0.27).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@2 A B C@2 D B D B D B D B D B D B D B D B E F G F G F H I J D B D B D B D B K F K F L@4 M@8 N@5 O@5 P@8 Q@2 R@7 S@2
>`.pickRestart({
  A: "~@12 [ab3,eb4]@6 ~@3 [ab3,eb4]@2 ~@4 [ab3,eb4]@4 ~@5 [ab3,eb4]@7 ~@5, f2@47 ~, ~@11 f3@6 ~@3 f3@2 ~@4 f3@4 ~@5 f3@7 ~@6", // Ab5
  B: "[bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@5, bb2@11 ~ bb2@3 ~@3 bb2@6", // Bb Eb
  C: "[~@12 [ab3,eb4]@6 ~@3 [ab3,eb4]@2 ~@4 [ab3,eb4]@4 ~@5 [ab3,eb4]@7 ~@5 [d4,f4]@9 ~@3 [d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@24, f2@47 ~ bb2@18 ~@3 bb2@6 ~@21, ~@11 f3@6 ~@3 f3@2 ~@4 f3@4 ~@5 f3@7 ~@5 bb3@9 ~@3 bb3@7 ~@30]/2", // Ab5 Dm Eb
  D: "~@12 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5, f2@47 ~", // Fm7
  E: "~ db4@19 ~ eb4@25 ~@2, [f3,ab3]@18 ~@2 [ab3,c4]@25 ~@3", F: "~ db4@18 ~ [ab3,c4,eb4]@27 ~, [ab3,bb3]@19 ~@29",
  G: "~ db4@19 [ab3,c4,eb4]@25 ~@3, [f3,ab3]@3 ~@5", H: "[bb3,db4,f4]@34 ~@2 [bb3,db4,f4]@3 ~@3 [bb3,db4,f4]@3 ~@3",
  I: "[b3,eb4,gb4]@34 ~@2 [b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]@4 ~@2", // B
  J: "~@9 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4]@3 ~@6 [b3,eb4,gb4]@4 ~@20", // B
  K: "[f3,ab3,db4]@18 ~@2 [ab3,c4,eb4]@25 ~@3", // Db Ab
  L: "[[f3,ab3,db4]@18 ~@2 [ab3,c4,eb4]@25 ~@4 db4@18 ~ [ab3,c4,eb4]@27 [bb3,db4,f4]@34 ~@2 [bb3,db4,f4]@3 ~@3 [bb3,db4,f4]@3 ~@3 [b3,eb4,gb4]@34 ~@2 [b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]@4 ~@3, ~@47 ab3@19 ~@126, ~@48 bb3@19 ~@125]/4", // Db Ab Bbm B
  M: "[~@8 [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~@2 [b3,eb4,gb4]@3 ~@6 [b3,eb4,gb4]@4 ~@32 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb2,bb3,d4,f4], ~@47 f2@47 ~ bb2@22 ~@2 bb2@6 ~@6 bb2@12 f2@47 ~ bb2@22 ~@2 bb2@6 ~@6 bb2@12 f2@47 ~ bb2@22 ~@2 bb2@6 ~@6 bb2@12 f2@47 ~@2]/8", // B Fm7 Bb Eb Fm7 Bb Eb Fm7 …
  N: "[~@11 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@6 [ab3,db4]@19 ~ [ab3,c4,eb4]@25 ~@4 db4@18 ~ [ab3,c4,eb4]@27 ~ [ab3,db4]@19 ~ [ab3,c4,eb4]@25 ~@4 db4@18 ~ [ab3,c4,eb4]@27 f3, ~@23 bb2@6 ~@6 bb2@12 f3@18 ~@30 ab3@19 ~@29 f3@18 ~@31 bb3@19 ~@29, ~@96 bb3@19 ~@76 ab3@19 ~@30]/5", // Bb Eb Db5 Ab Db5 Ab
  O: "[[ab3,db4]@19 ~ [ab3,c4,eb4]@25 ~@4 db4@18 ~ [ab3,c4,eb4]@27 [bb3,db4,f4]@34 ~@2 [bb3,db4,f4]@3 ~@3 [bb3,db4,f4]@3 ~@3 [b3,eb4,gb4]@34 ~@2 [b3,eb4,gb4]@3 ~@3 [b3,eb4,gb4]@4 f3@9 ~ gb3@12 ab3@10 ~ ab3@16 ~@2, ~@47 ab3@19 ~@174, ~@48 bb3@19 ~@173]/5", // Db5 Ab Bbm B
  P: "[ab3@35 ~@24 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb3,d4,f4]@9 ~@3 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb2,bb3,d4,f4], ~@47 f2@47 ~ bb2@22 ~@2 bb2@6 ~@6 bb2@12 f2@47 ~ bb2@22 ~@2 bb2@6 ~@6 bb2@12 f2@47 ~ bb2@22 ~@2 bb2@6 ~@6 bb2@12 f2@47 ~@2]/8", // Fm7 Bb Eb Fm7 Bb Eb Fm7 Bb …
  Q: "[~@11 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@6 ~@3 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@4 ~@5 [f3,ab3,eb4]@7 ~@5 [bb2,bb3,d4,f4], ~@23 bb2@6 ~@6 bb2@12 f2@47 ~@2]/2", // Bb Eb Fm7 Bb
  R: "[~@11 [bb3,d4,f4]@7 ~@2 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@7 ~@17 [f3,ab3,eb4]@9 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@9 [f3,ab3,eb4]@12 [bb3,d4,f4]@12 [bb3,d4,f4]@9 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb2,bb3,eb4,g4]@12 ~@12 [f3,ab3,eb4]@9 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@9 [f3,ab3,eb4]@12 [bb3,d4,f4]@12 [bb3,d4,f4]@9 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb2,bb3,eb4,g4]@12 ~@12 [f3,ab3,eb4]@9 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@9 [f3,ab3,eb4]@12 [bb3,d4,f4]@12 [bb3,d4,f4]@9 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb2,bb3,eb4,g4]@12 f2, ~@23 bb2@6 ~@6 bb2@12 f2@48 bb2@23 ~ bb2@12 ~@12 f2@48 bb2@23 ~ bb2@12 ~@12 f2@48 bb2@23 ~ bb2@12 ~@13]/7", // Bb Eb Fm7 Bb Eb Fm7 Bb Eb …
  S: "[~@11 [f3,ab3,eb4]@9 [f3,ab3,eb4]@2 ~@4 [f3,ab3,eb4]@9 [f3,ab3,eb4]@12 [bb3,d4,f4]@12 [bb3,d4,f4]@9 [bb3,eb4,g4]@3 ~@3 [bb3,eb4,g4]@6 [bb3,eb4,g4]@3 [bb2,bb3,eb4,g4]@13, ~@47 bb2@23 ~ bb2@12 ~@13]/2", // Fm7 Bb Eb
})).s("gm_electric_guitar_clean").gain(0.34).pan(0.8)

// other · whistle
const whistle = note("<~@47 A@3 B@2 C@3 D ~@28>".pickRestart({
  A: "[~@35 c6@2 ~@4 c6@3 eb6@9 ~@42 d6@9 c6@9 bb5@3 g5@6 f5@2 ~ eb5@7 ~@12]/3",
  B: "[~@11 c6@5 ~ c6@4 ~@2 eb6@14 ~@4 eb6@4 ~@2 d6@12 c6@4 ~@2 bb5@3 g5@5 ~ f5@2 ~ g5@8 ~@11]/2",
  C: "[~@11 eb6@3 f6@2 ~ g6@2 ~ g6@15 ~@12 d6@8 ~ c6@6 ~@3 bb5@3 g5@3 ~@3 f5@2 ~ eb5@8 ~@10 g6@6 f6 ~@5 g6@2 ~ f6@2 ~@4 g6@2 ~@4 g6@8 ~ eb6@11 ~@2]/3",
  D: "~@5 bb5@3 ~@3 c6@2 ~ eb6@2 ~@4 eb6@16 ~@12",
})).s("gm_whistle").gain(0.59).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~ A@3 B A C@16 A@8 D C@8 A@3 E F@4 G H@8 F@8 I F H@17 J>".pickRestart({
  A: "x!4 ~@3 x!2 ~@7", B: "~@2 x!4 ~ x!2 ~@7", C: "x ~ x ~@4 x!2 ~@7", D: "x!4 ~@4 x ~@7",
  E: "x ~@2 x ~@2 x ~@2 x ~@11 x ~@2 x ~@22 x", F: "~@2 x ~@2 x ~@2 x ~@11 x ~@2 x ~@23 x",
  G: "~@2 x ~@2 x ~@2 x ~@14 x ~@23 x", H: "~@5 x ~@14 x ~@2 x ~@23 x",
  I: "~@8 x ~@2 x ~@8 x ~@2 x ~@8 x ~@2 x ~@8 x ~@2 x", J: "~@5 x ~@14 x ~@2 x ~@24",
})).gain(0.48)

// drums · rim
const rim = s("rim").struct("<[x!4] ~@83>").gain(0.27)

// drums · clap
const clap = s("cp").struct(`<
  ~@3 A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~ A B ~ A ~ A ~ A ~@3 A ~ C ~ C ~ C D ~ C ~ C ~ C ~@3 C ~ C ~ C ~ C
  ~@3 C ~ C ~ C ~@3 C ~ C ~ C ~@3 C
>`.pickRestart({
  A: "~@14 x!2", B: "~@3 x", C: "~@41 x ~@2 x ~@3", D: "~@35 x ~@2 x ~@9",
})).gain(0.54)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B@2 C B@8 A B@7 A B@8 D B@7 A B@3 E F@4 G F@7 H F@8 I J F@7 H F@7 H F@2
>`.pickRestart({
  A: "~@4 x!2 ~@6 x ~@3", B: "~@4 x!2 ~@6 x!2 ~@2", C: "~@4 x!2 ~@5 x!2 ~@3", D: "~@9 x ~@2 x ~@8 x ~ x!2 ~@23",
  E: "~@12 x ~@2 x ~@19 x ~@2 x ~@9", F: "~@11 x ~@2 x ~@20 x ~@2 x ~@9", G: "~@23 x ~@11 x ~@12",
  H: "~@11 x ~@2 x ~@20 x ~@12", I: "~@2 x ~@2 x ~@8 x ~@2 x ~@8 x ~@2 x ~@8 x ~@2 x ~@6",
  J: "~@11 x ~@2 x ~@8 x ~@2 x ~@5 x ~@2 x ~@12",
})).gain(0.54)

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

// drums · low tom
const low_tom = s("lt").struct("<~@65 [~@11 x] ~@18>").gain(0.54)

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@7 A ~@8 B ~@7 A ~@8 C ~@7 D ~@9 D ~@7 D ~@7 D ~@2>".pickRestart({
  A: "~@13 x!2 ~", B: "~@5 x!2 ~@9", C: "~@8 x ~@8 x ~@2 x ~@27", D: "~@38 x ~@2 x ~@6",
})).gain(0.54)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A ~@5 A ~ A ~ A ~@3 A ~ A ~ A ~@2 A@8 B ~ A ~ A ~ A ~@2 A@3 C@5 ~@2 C ~ C ~ C ~@2 C@8 ~ C ~ C ~ C ~ C ~@3 C ~ C ~ C
  ~@3 C
>`.pickRestart({
  A: "~@7 x", B: "x", C: "~@41 x ~@6",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~ [~@11 x ~@4] ~@44 [~@47 x] ~@37>").gain(0.54)

// … 32 more lines

More by Mike + The Mechanics