Strudelify

The Evolution of Music

Ritvik Sood

KeyB♭ majorTempo120 bpm
0:00/0:00
// The Evolution of Music — Ritvik Sood
// 120 bpm, 4/4, key Bb 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 (6/8 at bar 1, 12/8 at bar 86, 4/4 at bar 128) are rendered on a constant 4/4 grid of one bar per cycle
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5912091; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 314 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · piano
const piano = note(`<
  A@6 B@7 C@5 D@6 E@8 F@8 G@5 H@4 I@4 J@5 K@5 L@4 M@3 N@6 O@6 P@3 Q@3 R@3 S@3 T@3 U@3 V@5 W X Y Z S@3 AA@3 AB@3 AC@3
  AD@2 AE AF AG AH AI@2 AJ@2 AK@3 AL AM@2 AN@2 AM@2 AO AP AN AQ AN@4 AO@4 AK@3 AL AR@2 AS@2 AR@2 AT AU AS AV@3 AW AX AY
  AZ AW@2 AY BA BB@8 BC@8 ~@12 BD@3 BE@2 ~@46 BF BG@6 BH BI BJ BK@2 ~@46
>`.pickRestart({
  A: "[~@11 d5@3 f4@3 d5@3 eb5@3 f4@3 eb5@3 [f3,eb5]@3 [c3,c5]@3 [a2,a4]@3 f4 g4 f4@4 f4@3 f4@3 e4@3 f4@3 a4@3 f4@3 a4@3 [bb3,bb4]@3 [f3,f4]@3 [d3,d4]@3 c4 bb3 bb3@4 c4@3 a2@3 [c3,f3,a3]@3 [c3,f3,a3]@3 [a2,c5]@3 [c3,eb3,a3,a4]@3 [c3,eb3,a3,f4]@3 bb2@3 [d3,f3,bb3]@3 [d3,f3,bb3]@3 [bb2,c5]@3 [d3,f3,a3,bb4]@3 [d3,f3,a3,a4]@3 [a2,a4]@3 [c3,c5]@3 [f3,eb5]@3 [a3,a5]@3 [f3,eb5]@3 [a2,a4]@3 bb2@2 bb4 d3@2 bb4 [f3,c5], ~@11 bb2@9 eb3@9 ~@9 f2@9 f3@9 a3@9 ~@9 bb2@9 ~@61, ~@76 c4 ~@6 c5@9 ~@9 bb4@9 ~@27 c5 ~@2 c5 ~@3]/6", // F7 C A Bb F D F Am …
  B: "[~ bb4 bb3@2 bb4 f3@2 bb4 a3@2 a4 [c4,f4]@3 [f3,a4]@3 [eb3,c5]@3 [c3,eb5]@3 [c4,c5]@3 [a3,f4]@3 c5 bb4 a4 f3@3 d3@3 bb2@3 bb3 a3 ~ bb4@3 [c3,c5]@3 [eb3,a4]@3 [f3,f4]@3 [c3,c4]@3 [eb3,c5]@3 [f3,bb4]@3 [c3,c5]@3 [eb3,a4]@3 [f3,f4]@3 [c3,c4]@3 [eb3,c5]@3 [f3,d5]@3 [bb2,bb4]@3 [d3,f4]@3 [f3,d4]@3 [bb2,bb3]@3 [d3,bb4]@3 [f3,a4]@3 [bb2,bb4]@3 [d3,f4]@3 [f3,d4]@3 [bb2,bb3]@3 f3 g3 f3 [eb3,a4]@3 [c3,c5]@3 [eb3,a4]@3 [f3,eb4]@3 [c3,c4]@3 [eb3,c5]@3 [f3,bb4]@3 [c3,c5]@3 [eb3,a4]@3 [f3,f4]@3 [c3,c4]@3 [eb3,c5]@3 [f3,d5]@3 [bb2,bb4]@3 [d3,f4]@3 [f3,d4]@3 [bb2,bb3]@3 [d3,bb4], ~@2 c5 ~@2 c5 ~@2 bb4 ~@20 bb3@2 bb4@12 bb3@4 ~@66 bb4@3 ~@52]/7", // F5 F Cm C Dm C Ebdim F …
  C: "[~@2 [f3,a4]@3 [bb2,bb4]@3 [d3,f4]@3 [f3,d4]@3 [bb2,bb3]@3 [d3,bb4]@3 [f3,a4]@3 [bb2,d3,f3]@3 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3,a5] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 a4 bb4 ~ [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3,e5] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 [c3,eb3,f3] ~@2 f4 g4 ~ [a2,eb3,f3] ~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3,b4] ~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3], ~@23 bb4@9 ~@10 bb5@8 d5@3 c5@3 bb4@3 [c3,eb3,f3]@2 a4@16 ~ f5@8 a4@3 g4@3 a4@3 [a2,eb3,f3]@2 f4@16 ~ c5@6]/5", // F Bb Dm Bb Gm F Bb Bbmaj7 …
  D: "[~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3] ~@2 [a2,eb3,f3] ~@2 [bb2,d3,f3]@3 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 [bb2,d3,f3] ~@2 bb2@3 d3@3 f3@3 bb2@3 d3@3 f3@3 bb2@3 d3@3 f3@3 bb2@3 d3@3 f3@3 a3 bb3 ~ eb3@3 f3@3 c3@3 eb3@3 f3@3 c3@3 eb3@3 f3@3 bb3 a3 g3 eb3@3 f3@3 bb2@3 d3@3 f3@3 bb2@3 d3@3 f3@3 bb2@3 d3@3 f3, ~@2 a4@3 g4@3 f4@3 bb4@34 ~@2 bb3@26 ~ d4@9 c3@2 a3@24 ~ c3@2 a3@6 ~ bb4@25]/6", // F7 Bb
  E: "[~@2 bb2@3 d3@3 f3@3 a4 bb4 ~ eb3@3 f3@3 c3@3 eb3@3 f3@3 c3@3 eb3@3 f3@3 bb4 a4 g4 eb3@3 f3@3 bb2@3 d3@3 f3@3 bb3@3 f3@3 d3@3 bb2@14 ~ d5 ~@2 d5@3 f4@3 d5@3 eb5@3 f4@3 eb5@3 [f3,eb5]@3 [c3,c5]@3 [a2,a4]@3 f4 g4 f4@4 f4@3 f4@3 e4@3 f4@3 a4@3 f4@3 a4@3 [bb3,bb4]@3 [f3,f4]@3 [d3,d4]@3 c4 bb3 bb3@4 c4@3 a2@3 [c3,f3,a3]@3 [c3,f3,a3]@3 [a2,c5]@3 [c3,eb3,a3,a4]@3 [c3,eb3,a3,f4]@3 bb2@3 [d3,f3,bb3]@3 [d3,f3,bb3]@3 bb2@2 bb4 [d3,f3,a3,bb4]@3 [d3,f3,a3,a4]@3 [g2,g4], ~@2 d5@9 c3@2 a4@24 ~ c3@2 a4@6 ~ bb4@17 ~@19 bb2@9 eb3@9 ~@9 f2@9 f3@9 a3@9 ~@9 bb2@9 ~@37, ~@148 c4 ~@6 c5@9 ~@9 bb4@9 c5 ~@9]/8", // F7 C A Bb F D F Am …
  F: "[~@2 [bb2,bb4]@3 [d3,d5]@3 [bb2,g5]@3 [d3,d5]@3 [bb2,bb4]@3 g2@3 [bb2,d3,g3]@3 [bb2,d3,g3]@3 g2@3 [bb2,d3,g3]@3 [g2,g4]@3 [f2,f4]@3 a4@2 a2 [c3,c5]@3 [f3,f5]@3 [f2,c5]@3 [f3,a4]@3 f4 g4 ~ [c3,f3,a3]@3 [c3,f3,a3]@3 f2@3 [c3,f3,a3]@3 [c3,f4]@3 [eb2,eb4]@3 [g2,g4]@3 [bb2,bb4]@3 [eb3,eb5]@3 [bb2,eb4]@3 [eb3,eb5]@3 c5 d5 [d5,eb5] db5@3 d5@3 gb5@3 a5@3 gb6@3 a6@17 ~ [g2,d3,g3,g6]@34 ~@28 f3@5, ~@17 g4@14 ~@22 f2@2 f4@13 ~@21 [d3,gb3,a3,d4]@17 ~@55 bb2@15 ~ bb2@15, ~@166 d3@15 ~ d3@10, ~@57 f3@5 ~@2]/8", // Bb D Eb D Bb Gm G F …
  G: "[~@28 d5@3 ab4 ~@25 f3@5 ~@28 a4@3 ~@25 f3@2, bb2@15 bb2@15 ~ ab2@15 ab2@15 ~ ab2@15 ab2@15 ~ bb2@15 bb2@12, ~@5 d3@15 ~ d3@10 ~@5 c3@15 c3@10 ~@6 c3@15 [c3,ab4]@10 ~@6 d3@15 d3@7, ~@10 f3@15 ~ f3@5 ~@10 f3@15 ~@16 f3@15 f3@5 ~@11 f3@15 ~@2, ~@21 d5@7 ~@4 [ab4,bb4]@30 ~@31 bb4@27]/5", // Fm Absus2
  H: "[~@32 a4@2 ~@11 eb4@5 ~@10 [g3,db4]@5 ~@26 a3@5, ~@3 bb2@15 ~ bb2@15 [bb2,g4]@31 ~@5 gb3@15 ~ gb3@10, ~@9 d3@15 [d3,bb4]@10 ~@5 [eb3,f4]@26 d4@31, ~@14 f3@15 f3@5 ~@11 g3@10 [db3,d4]@10 d3@15 ~ d3@15, ~@50 [a2,eb4]@15 ~@10 a3@15 ~@6]/4", // Gdim Eb Gm Ebsus2 Dmaj7 Adim
  I: "[~@28 a4@3 g4 [g4,a4]!2 a4 [g4,a4] g4 [g4,a4] a4 [g4,a4] g4 [g4,a4]!2 a4 [g4,a4] g4 [g4,a4] a4 [g4,a4] g4 [g4,a4]!2 a4 [g4,a4] g4 [g4,a4] a4 [g4,a4] g4 [g4,a4]!2 a4 ~@28 b4@3 [c5,d5] c5 [c5,d5], d3@15 d3@15 ~ d3@5 ~@10 d3@5 ~@11 d3@15 d3@15 ~ d3@3, ~@5 gb3@15 ~ [gb3,bb4]@10 ~@5 g3@5 ~@10 g3@5 ~@11 g3@15 [g3,bb4]@10 ~@4, ~@10 a3@15 ~ a3@5 ~@10 bb3@5 ~@11 bb3@5 g4@31 ~@3, ~@72 bb3@15 bb3@5 ~@4]/4", // Gsus2 Csus2 Gb Gm
  J: "[[c5,d5] d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 [c5,d5]!2 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 [c5,d5]!2 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 ~@28 d5@2 ~@26 bb3@5 ~@28 b4@3, ~@2 a3@5 c4@5 d3@5 a3@5 c4@5 c5@31 d5@49 ~@13, ~@27 d3@15 ~ d3@15 d3@15 ~ d3@15 d3@15 ~ d3@15, ~@33 a3@15 a3@10 ~@5 g3@15 ~ g3@10 ~@5 g3@15 ~ [g3,bb4]@10, ~@38 c4@10 d5@5 c4@5 ~@11 bb3@15 ~@15 bb3@15 ~ bb3@5]/5", // Csus2 Gm
  K: "[~@26 c4@5 ~@28 a4@3 ~@28 a4@3 ~@25 [g3,bb3,g4]@2, c5@15 d3@6 a3@10 d3@15 d3@15 ~ [d3,bb4]@15 [d3,bb4]@15 ~ [d3,bb4]@15 [d3,bb4]@12, d3@10 gb4@21 ~@5 a3@15 [a3,bb4]@10 ~@6 [g3,bb3,g4]@5 [g3,bb3,g4]@10 [g3,bb3,g4]@5 [g3,bb3,g4]@5 ~@6 [g3,bb3,g4]@5 [g3,bb3,g4]@10 d5@7, ~@5 a4@26 ~@10 c4@15 ~ c4@5 ~@7 gb4@15 ~ gb4@8 ~@7 gb4@13 [g3,bb3,g4]@3 gb4@4, ~@5 a3@5 c4@5 d4@46 ~@3 a4@10 ~ a4@5 a4@10 ~@5 a4@10 a4@5 ~ a4@9]/5", // Gm Bbmaj7 Gm
  L: "[~ [a4,d5]@2 ~@29 a4@2 ~@29 [a4,d5]@2 ~@28 a4@3, ~@3 d5@31 ~@8 gb4@13 [a3,c4,g4]@2 gb4@8 ~@3 a4@7 [g3,b3,g4]@8 a4@8 [g3,b3,g4]@5, ~@3 [d3,c5]@13 a4@3 [d3,c5]@15 [d3,c5]@15 ~ [d3,c5]@15 [d3,b4]@13 a4@3 [d3,b4]@15, ~@6 a4@8 [a3,c4,g4]@7 a4@8 [a3,c4,g4]@5 ~@5 [a3,c4,g4]@5 ~ [a3,c4,g4]@10 d5@8 ~@2 d5@31, ~@9 [a3,c4,g4]@2 gb4@13 [a3,c4,g4]@3 gb4@8 ~@2 a4@10 a4@5 a4@8 [a3,c4,g4]@5 ~@5 [g3,b3,g4]@3 gb4@13 [g3,b3,g4]@2 gb4@8]/4", // D5 Am7 G D7 G Am7 G
  M: "[~@28 [a4,d5]@3 ~@28 a4@3 ~@7 e4@3, [d3,b4]@15 [d3,b4]@15 ~ [d3,c5]@13 a4@2 [d3,c5]@15 ~ [d3,c5]@10, ~@3 a4@10 a4@5 a4@8 [g3,b3,g4]@5 ~@5 [gb3,a3,c4,gb4]@3 e4@12 [gb3,a3,c4,gb4]@3 e4@8 ~@2 a4@8, ~@5 [g3,b3,g4]@5 [g3,b3,g4]@10 ~ d5@7 ~@3 d5@31 ~@10, ~@8 gb4@13 [g3,b3,g4]@2 gb4@8 ~@2 a4@8 [gb3,a3,c4,gb4]@8 a4@8 [gb3,a3,c4,gb4]@5 ~@5 [gb3,a3,c4,gb4]@5]/3", // D5 G D7 G Gbdim G Gbdim
  N: "[~@18 [a4,c5]@3 ~@5 [b3,d4]@5 ~@10 [a3,d4]@5 [a3,d4]@5 ~@6 c4@5 c4@5 d4@5 d4@8 d4@2 ~@5 [a3,e4]@5 ~@19 e4@2 d4 ~@27 a3@3, [gb3,a3,c4,gb4]@10 d5@10 ~@11 d4@10 ~@10 d4@15 ~ [d3,c4]@15 db4@21 e4@5 db3@5 d3@10 a2@11 b3@10, ~@3 a4@5 a4@2 [gb3,a3,c4,gb4]@3 e4@8 ~@10 b3@21 ~@10 [c3,e3,e4]@21 ~@4 d4@26 ~ [db4,d4]@30, ~@5 d3@15 ~@16 [gb3,gb4,a4]@15 [b2,g3,g4]@31 db3@21 [a3,gb4]@10 ~@5 gb3@26, ~@5 c5@10 [gb3,a3,c4,gb4]@5 ~ [g3,g4,b4]@31 ~@5 [a2,gb3,gb4]@26 ~@10 [a3,e4]@5 [a2,g4]@15 ~@5 a3@11 d3@15]/6", // Am Bm D5 A5 Gbdim D7 Gbdim C …
  O: "[ab3@2 ~ a3@2 b3@2 ~ d4@2 db4@2 ~ [ab2,ab3]@2 a2@5 ~ [db3,e3]@5 [db3,e3]@5 b3@2 db4@2 ~ d4@2 ~ gb4@2 e4@2 ~ [e2,ab4]@2 a2@5 [db3,e3]@5 ~ [db3,e3]@5 ~@5 [d3,e3,ab3]@5 ~@5 ab2@5 ab2@5 ~@3 db5@3 [a3,a4]@5 [e3,a3,db4]@5 ~@2 d4@2 ~ [db3,db4]@5 [db3,e3]@5 ~@3 ab4@2 [gb2,gb4]@5 ~ [gb4,a4,d5]@5 ~@2 ab2@2 ~ [a2,e4]@5, ab2@5 [b2,e3]@7 ~@3 a3@15 ~ b2@5 [e2,ab2]@7 ~@3 a4@15 ~ b4@13 gb4@18 ~@5 e4@7 ~@29 [gb4,a4,d5]@5 ~@5, ~@62 ab2@10 d3@5 e4@5 [d3,b4]@5 ab2@5 ~@26 a2@5 ~@21, ~@67 ab4@26 ~@20 a4@7 ~@24, ~@72 [e3,ab3]@21 ~@10 [e3,a3,db4]@5 ~@21 d3@7 ~@8]/6", // Ab Dbm E Dbm E7 A Db Dbm …
  P: "[[e4,a4,db5]@5 [e4,a4,db5]@5 [ab2,eb4]@5 [a2,e4]@7 ~ [b2,gb4]@2 ~ ab4@5 [ab4,b4,d5,f5]@5 [ab4,b4,d5,f5]@5 [db3,a4,db5,e5]@29 ~@2, [db3,e3,a3]@10 ~@16 d3@15 ~@31]/3", // A Ab5 A5 B5 Abdim A
  Q: "[~ [db3,a3] ~@2 [db3,a3]!2 ~ [a2,db3] ~@2 [a2,db3]!2, a2!2 gb2 gb2, ~ [db3,a3] ~@2 [a2,db3] ~]/3", // Gbm A Gbm A
  R: "[~ [d3,gb3] ~@2 [d3,gb3]!2 ~ [e3,a3] ~@2 [e3,ab3] [e3,ab3,e4], b2@3 b2@3 ~@2 a3@4, ~@2 [d3,gb3]@2 ~@2 db3@3 db3@3, ~@4 e3 ~]/3", // D A5 E D
  S: "[~@15 gb5@2 [e5,gb5] ~@15 d5@3 ~@6 [a2,db3]@6 ~@12 [a2,db3]@6 ~@3 db5@3, [a2,a4]@2 [db3,a3,e5] [a2,e5]@3 gb2@3 gb2@3, ~@3 b4@15 ~@6 b4@12 db5@2 db5@31 ~@3, ~@6 db5@12 ~@6 [db3,a3]@3 ab4@9 ~ d5@35, ~@2 [db3,a3] d5@3 ~ d5@3 [db3,a3,e4]@2 ~@4 [a2,db3]@4 ~@2 [a2,db3]@2]/3", // Esus2 A A5 Gbm A
  T: "[~@5 d5 ~@2 [d3,gb3]@2 ~ a4 ~@2 [e3,a3]@2 [e3,a3]@2 ~@2 [e3,ab3]@2 [e3,ab3]@2, [b1,b4]@18 b1@18 [db2,db5]@6 a5@12 ~@5 ab5 b5@12, ~@3 db5@15 db5@2 db5@16 ~@3 e5@15 [e2,b4]@18, ~@6 d5@6 [d3,gb3,e5]@6 ~@12 [d3,gb3]@6 ~@5 gb5@14 ~@2 e5@15, ~@6 [d3,gb3]@3 gb5@9 ~ d5@17 ~@2 d5@17 ~ d5@16]/3", // D A5 E B Db E5 D
  U: "[~@15 gb5@2 [e5,gb5] ~@15 d5@3 ~@6 [a2,db3]@6 ~@12 [a2,db3]@6 ~@3 db5@3, [a1,a4]@2 [db3,a3,e5] [a1,e5]@3 gb1@3 gb1@3, ~@3 b4@15 ~@6 b4@12 db5@2 db5@31 ~@3, ~@6 db5@12 ~@6 [db3,a3]@3 ab4@9 ~ d5@35, ~@2 [db3,a3] d5@3 ~ d5@3 [db3,a3,e4]@2 ~@4 [a2,db3]@4 ~@2 [a2,db3]@2]/3", // Esus2 A A5 Gbm A
  V: "[~@6 [d3,gb3,b3]@6 [d3,gb3,b3]@6 ~@6 [e3,ab3,db4]@6 [e3,ab3,db4]@6 ~@6 b5@2 ~@7 e5@2 ~@13 e5@5 ~ a1@2 ab5 [a2,a3]@2 gb5 [a2,a3]@2 e5 a1@2 d5 [a2,a3]@2 c5 [a2,a3]@2 bb4 a1@3 [a2,a3]@3 [a2,a3]@3 a1@3 [a2,a3]@3 [a2,a3]@3 b1@2 db6 [b2,b3]@2 a5 [b2,b3]@2 gb5 b1@2 d5, [b2,b4]@6 b5@12 ~@5 c6@14 ~@2 a5@3 e4@2 db6@10 [e4,b4]@18 ~@48, ~@2 d5@17 ~ e5@17 ~ gb5@7 b5@2 a5@8 ~@16 ab5@2 ~@2 g5 ~@2 f5 ~@35 ab5 ~@2 e5 ~@2, ~@3 gb5@15 [db3,db5]@6 db6@12 ~@5 db6 db4@6 [d4,e4,ab5]@2 gb5@5 ~@17 a5 ~@29 bb5@6 b5 ~@2 b5 ~@8, ~@5 bb5@14 ~@2 ab5@15 [b3,d5]@17 d5@2 ~@26 eb5 ~@2 db5 ~@2 b4 ~@2 a4@11 ~@19]/5", // Bm Dbm A B E5 Db E7 Bm
  W: "[b2,b3]@3 [b2,b3]@3 d5 e5 d5 [b2,b3,db5]@3 [b2,b3,b4]@3 [b1,a4]@3 [b2,b3,e4]@3 [b2,b3,a4]@3, d5@2 b1 ~@5", // B Bsus2 B B7 E5 B7
  X: "[e2,ab4]@3 [b2,b3,a4]@3 [b2,b3,b4]@3 [e2,gb5]@3 [b2,b3,e5]@3 [b2,b3,d5]@3 d5 db5 [db5,d5] [a2,a3,b4]@3, ~@6 a1 ~", // E B7 B Esus2 E5 Bm Dmaj7 Asus2
  Y: "[a2,a3,db5]@3 [a1,ab4]@3 [a2,a3,a4]@3 [a2,a3,gb4]@3 gb4 e4 [e4,gb4] [b2,b3,d4]@3 [b2,ab3,b3]@3 [ab1,gb4]@3, ~@4 ab1 ~@3", // A Amaj7 A D Esus2 Bm E Ab7
  Z: "[b2,b3,e4] [b2,ab3,b3] [a1,a3] [a2,a3] a2 ~ e4@2, ~@12 a3@5 ~@7, ~@5 a1@3", // E5 E A
  AA: "[~@5 c5 ~@2 [f3,ab3]@2 [f3,ab3]@2 ~@5 c6 ~@2 [f3,ab3]@2 [f3,ab3,ab4]@2, ab2@3 ~@3 [ab1,eb5]@2 [c3,gb3,ab5] [db3,db6]@3, c5@4 [c3,gb3,eb5]@2 [db3,db5]@6 ~@2 [c3,gb3] bb5@3 ~@6, ~ db5@5 ~@8 gb5@4 ~@6, ~@2 [c3,gb3,eb5] gb5@3 ~@7 f5@5 ~@6]/3", // Fm Ab5 Ab7 Db Cdim Db Cdim
  AB: "[~@15 bb5@2 [ab5,bb5] ~@15 gb5@3 ~ gb5 ~@4 [bb2,db3]@6 ~@12 [bb2,db3]@6 ~@3 f5@3, [db2,db5]@2 [f3,db4,ab5] [ab2,ab5]@3 bb1@3 bb1@3, ~ eb5@5 ~@2 eb5@4 f5@11 ~, ~@6 f5@12 ~@6 [c3,eb3]@3 c5@9 ~@2 gb5@34, ~@2 [f3,db4] gb5@3 ~ gb5@3 [c3,eb3,ab4]@2 ~@4 [bb2,db3]@4 ~@2 [bb2,db3]@2]/3", // Absus2 Bbm Db Ab Cm Db Ab Bbm
  AC: "[~@5 c6 ~@2 [f3,ab3]@2 [f3,ab3]@2 ~@5 c6 ~@4 db5@2, [ab2,eb5]@2 [c3,gb3,ab5] [db3,db6]@3 [ab2,eb5]@3 ~@3, ~ f5@5 ~@7 f5@5 ~@6, ~ gb5@2 ~@4 [gb3,gb5]@2 ~@3, ~@2 [c3,gb3] bb5@3 ~@8 c3 c6 [c3,ab5]@2 [db3,ab3,db6]@6]/3", // Fm Ab5 Ab7 Db Ab5 Gb Cdim Fm …
  AD: "[db2@2 c6 [db3,db4]@2 bb5 [db3,db4]@2 ab5 db2@2 gb5 [db3,db4]@2 e5 [db3,db4]@2 d5 db2@3 [db3,db4]@3 [db3,db4]@3 db2@3 [db3,db4]@3 [db3,db4]@3 eb2@2 f6 [eb3,eb4]@2 db6 [eb3,eb4]@2 bb5 eb2@2 gb5, db6 ~@2 b5 ~@2 a5 ~@2 g5 ~@2 f5 ~@2 eb5 ~@2 db5@11 ~ d6@6 eb6 ~@2 eb6 ~@2 c6 ~@2 ab5 ~@2]/2", // Db Eb
  AE: "[eb3,eb4]@3 [eb3,eb4]@3 gb5 ab5 gb5 [eb3,eb4,f5]@3 [eb3,eb4,eb5]@3 [eb2,db5]@3 [eb3,eb4,ab4]@3 [eb3,eb4,db5]@3, gb5@2 eb2 ~@5", // Eb Ebsus2 Eb Eb7 Ab5 Eb7
  AF: "[ab1,c5]@3 [eb2,eb3,db5]@3 [eb2,eb3,eb5]@3 [ab1,bb5]@3 [eb2,eb3,ab5]@3 [eb2,eb3,gb5]@3 gb5 f5 [f5,gb5] [db2,db3,eb5]@3, ~@6 db1 ~", // Ab Eb7 Eb Absus2 Ab5 Ebm Gbmaj7 Dbsus2
  AG: "[db2,db3,f5]@3 [db1,c5]@3 [db2,db3,db5]@3 [db2,db3,bb4]@3 bb4 ab4 [ab4,bb4] [eb2,eb3,gb4]@3 [eb2,eb3,c4]@3 [c1,bb4]@3, ~@4 c1 ~@3", // Db Dbmaj7 Db Gb Absus2 Ebm Cm C7
  AH: "[eb2,eb3,ab4] [eb2,eb3,c4] db1 [db2,db3] ab1 db2@3, ~@6 db4@17 ~", // Ab5 Cm Db
  AI: "[db4,ab4]!2 [ab2,db4,ab4] [db4,bb4]!2 [ab2,db4,bb4] [db4,b4]!2 [ab2,db4,b4] [db4,bb4]!2 [ab2,db4,ab4], db2@2 ~ db2@2 ~ db2@2 ~ db2@2 ~", // Db5 Gb Bbm7 Db7 Gb Db5
  AJ: "[db4,db5]!2 [db3,gb3,db4,db5] [db4,eb5]!2 [eb3,gb3,db4,eb5] [db4,e5]!2 [e3,gb3,db4,e5] [db4,eb5]!2 [db3,gb3,db4,db5], gb2@2 ~ eb3@2 ~ e3@2 ~ eb3@2 ~", // Db Gb5 Dbsus2 Ebm7 Dbm Gb7 Dbsus2 Gb5
  AK: "~@4 [db4,f4,ab4,db5]@5 ~@3 [db4,f4,ab4,db5]@3 ~@9", AL: "[db4,f4,ab4,db5] [d4,d5] [eb4,eb5] [f4,f5]",
  AM: "[gb3,gb4]!12", AN: "[db3,db4]!12", AO: "[ab3,ab4]!12", AP: "[ab3,ab4]@23 ~", AQ: "[db3,db4]@17 ~@7",
  AR: "[gb4,gb5]!12", AS: "[db4,db5]!12", AT: "[ab4,ab5]!12", AU: "[ab4,ab5]@23 ~",
  AV: "[[db4,db5]@17 ~@3 [db4,f4,ab4,b4]@50 ~@2]/3", // Db Db7
  AW: "~@5 [d4,f4,a4,c5,e5,g5]@7 [d4,f4,a4,c5,e5,g5]@9 ~@2 [d4,f4,a4,c5,e5,g5]", // Dm7
  AX: "~@5 [d4,f4,a4,c5,e5,g5]@7 [d4,f4,a4,c5,e5,g5]@4 ~ c4@4 ~@2 [d4,f4,a4,c5,e5,g5]", // Dm7
  AY: "~@5 [e4,g4,db5,e5,g5,c6]@7 [e4,g4,db5,e5,g5,c6]@9 ~@2 [e4,g4,db5,e5,g5,c6]", // C
  AZ: "~@5 [e4,g4,db5,e5,g5,c6]@7 [e4,g4,db5,e5,g5,c6]@4 ~ c4 ~@5 [e4,g4,db5,e5,g5,c6]", // C
  BA: "~@5 [e4,g4,db5,e5,g5,c6]@7 [e4,g4,db5,e5,g5,c6]@6 g4@6", // C
  BB: "[~@5 [g4,a4,c5,e5]@7 [g4,a4,c5,e5]@11 [g4,a4,c5,e5]@2 ~@4 [g4,a4,c5,e5]@7 [g4,a4,c5,e5]@11 [g4,a4,c5,e5]@2 ~@4 [gb4,a4,c5,d5]@7 [gb4,a4,c5,d5]@11 [gb4,a4,c5,d5]@2 ~@4 [gb4,a4,c5,d5]@7 [gb4,a4,c5,d5]@11 [gb4,a4,c5,d5]@2 ~@4 [g4,bb4,c5,e5]@7 [g4,bb4,c5,e5]@11 [g4,bb4,c5,e5]@2 ~@5 [g4,bb4,c5,e5]@6 [g4,bb4,c5,e5]@11 [g4,bb4,c5,e5]@2 ~@5 [g4,c5,eb5]@6 [g4,c5,eb5]@11 [g4,c5,eb5]@2 ~@4 [g4,c5,eb5]@7 [g4,c5,eb5]@6 [g4,c5,eb5]@6]/8", // Am7 D7 C7 Cm
  BC: "[~@5 [g4,bb4,c5,e5]@7 [g4,bb4,c5,e5]@11 [g4,bb4,c5,e5]@2 ~@4 [f4,b4,f5]@7 [f4,b4,f5]@11 [f4,b4,f5]@2 ~@4 [g4,c5,e5]@7 [g4,c5,e5]@11 [g4,c5,e5]@2 ~@4 [g4,d5,f5]@7 [g4,d5,f5]@11 [g4,d5,f5]@2 ~@4 [c4,e4,g4]@7 [c4,e4,g4]@11 [c4,e4,g4]@2 ~@4 [b3,d4,f4]@7 [b3,d4,f4]@11 [b3,d4,f4]@2 ~@4 [c4,e4,g4]@7 [c4,e4,g4]@11 ~ [g3,b3,d4]@23 ~, ~@167 [c4,e4,g4]@2 ~@23]/8", // C7 Fdim C G7 C Bdim C G …
  BD: "[[c4,e4,g4]@14 [f3,a3,c4]@14 ~ [g3,b3,d4]@27 ~@2 [c4,e4,g4]@14]/3", BE: "[[f3,a3,c4]@14 [g3,b3,d4]@27 ~@7]/2",
  BF: "~@5 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4]", // C
  BG: "~@2 [c4,c5]@3 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4] ~@2 [c3,c4]", // C
  BH: "~@2 [c4,c5]@3 [d3,d4] ~@2 [d3,d4] ~@2 [d3,d4] ~@2 [d3,d4] ~@2 [d3,d4] ~@2 [d3,d4] ~@2 [d3,d4]", // C D
  BI: "~@2 [d4,d5]@3 [eb3,eb4] ~@2 [eb3,eb4] ~@2 [eb3,eb4] ~@2 [eb3,eb4] ~@2 [eb3,eb4] ~@2 [eb3,eb4] ~@2 [eb3,eb4]", // D Eb
  BJ: "~@2 [eb4,eb5]@3 [e3,e4] ~@2 [e3,e4] ~@2 [e3,e4] ~@2 [e3,e4] ~@2 [e3,e4] ~@2 [e3,e4] ~@2 [e3,e4]", // Eb E
  BK: "[~@2 [e4,e5]@3 [eb4,eb5]@23 ~@20]/2", // E Eb
})).s("gm_piano").gain(0.48)

// other · french horn · "C Trumpet"
const french_horn = note("<~@131 A@3 B ~@4 C D E ~@9 F@2 A@3 B ~@4 C D E ~@21 G@2 H I J K L M ~@121>".pickRestart({
  A: "~@4 db4@8 db4@3 ~@9", B: "db4 d4 eb4 f4", C: "gb3@9 ~@2 bb3 db4@6 bb3@4 ~ db4",
  D: "db4@9 ~@2 bb3 db4@6 bb3@4 ~ db4", E: "c4 bb3 ab3@10", F: "db4!12", G: "[~@5 g4@7 g4@11 g4@2 ~@4 a4@7 a4@12]/2",
  H: "e5 c5 b4 c5 g4 gb4 g4@3 e5@3", I: "f5 d5 b4 a4 g4 gb4 g4@3 b4@3", J: "c5@4 ~ [g4,c5,e5]@6 [g4,c5,e5]@12 db5",
  K: "d5@4 ~ [b4,d5,f5]@6 [b4,d5,f5]@12 eb5", L: "e5@4 ~ [c5,e5,g5]@6 [c5,e5,g5]@12 ~", M: "[g3,b3,d4,f4]",
})).s("gm_french_horn").gain(0.4)

// other · distortion guitar · "Electric Guitar"
const distortion_guitar = note(`<
  ~@212 A@7 ~@5 B@15 C D@6 E@8 F@3 ~@3 G H I@8 J@6 K@3 ~@8 L@7 M N@6 O@8 P@5
>`.pickRestart({
  A: "[~@5 [c4,eb4,g4]@24 [c4,eb4,ab4]@24 [d4,g4,b4]@24 [g4,b4,d5]@24 c5@48 ~@19]/7", // Cm Ab G
  B: "~@2 [g2,c3]@3 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2", // C5
  C: "~@2 [g2,c3]@3 c2 ~@2 c2 ~@2 c2 ~@2 c2 ~@2 c2@3 ~@4", // C5
  D: "[~@5 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 gb2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 gb2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 ab2@21 g2@3 bb2 ab2 g2 bb2 ab2 g2 bb2 ab2 g2 bb2 ab2 g2 bb2 ab2 g2 bb2 ab2 g2 bb2]/6",
  E: "[ab2 g2 bb2 ab2 g2 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 gb2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb2@3 eb2@3 d2@3 eb2@3 f2@3 g2@3 b2@3 d3@3 eb3@18 d3@6 c3@12 b2@12 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2]/8",
  F: "[~@2 d3@3 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 eb3@3 ab2@3 f2@3 g2@3 bb2@3 g2@3 b2@3 d3@3 c3@12 ~@7]/3",
  G: "~@5 bb2 [b2,c3] db3 d3 [eb3,e3] f3 gb3 [gb3,g3] f3 ab3 [f3,g3] ab3 a3 [a3,bb3] ab3 a3 [bb3,db4] bb3 a3", // Cmaj7 Emaj7 Gmaj7 Fsus2 Bbmaj7 Bbm
  H: "[bb3,db4] d4 db4 c4 bb3 c4 [a3,bb3] a3!2 [g3,a3] f3!2 [f3,g3] g3 a3 [a3,bb3] g3 f3 [f3,gb3] eb3 d3 [bb2,c3] b2 d3", // Bbm Bbmaj7 Gsus2 Fsus2 Bbmaj7 Gbmaj7 Bbsus2
  I: "[[d3,eb3] f3 bb3 [f3,a3] d3 c3 [d3,eb3] f3 g3 [bb3,b3] c4!2 [b3,c4] bb3!2 [ab3,bb3] ab3 g3 [g3,ab3] f3 eb3 d3 eb3 [c3,eb3,g3,c4]@3 [c3,eb3,g3,c4]@3 c3 [d3,eb3] f3 a3 [c4,db4] d4!2 [db4,d4] c4!2 [bb3,c4] bb3 a3 [a3,bb3] g3 f3 e3 f3 [d3,f3,a3,d4]@3 [d3,f3,a3,d4]@3 db3 [eb3,e3] gb3 bb3 [db4,d4] eb4!2 [d4,eb4] db4!2 [b3,db4] b3 bb3 [bb3,b3] ab3 gb3 f3 gb3 [eb3,gb3,bb3,eb4]@3 [eb3,bb3,eb4]@3 d3 [e3,f3] g3 b3 [d4,eb4] e4!2 [eb4,e4] d4!2 [c4,d4] c4 b3 [b3,c4] a3 g3 gb3 g3 [e3,g3,b3,e4]@3 [e3,b3,e4]@3 eb4@30 d4@6 eb4 f4@11 eb4@6 bb3@6 a3@6 bb3@6 a3@6 bb3@6 gb3@7]/8", // Ebmaj7 F Ebmaj7 Bmaj7 Cmaj7 Absus2 Abmaj7 Cm …
  J: "[~@5 eb3@18 d3@6 eb3 [f3,gb3] f3@16 gb3@3 f3@3 eb3@18 d3@6 b2 b2@10 ~ bb2@6 d3@6 gb3@18 f3@6 ab3@18 gb3, ~@78 d3 ~@65]/6", // Gbmaj7
  K: "[~@2 f3@3 eb3@24 f3@24 ~@19]/3", L: "~@2 [bb2,eb3]@3 eb2 ~@2 eb2 ~@2 eb2 ~@2 eb2 ~@2 eb2 ~@2 eb2 ~@2 eb2",
  M: "~@2 [bb2,eb3]@3 eb2 ~@2 eb2 ~@2 eb2 ~@2 eb2 ~@2 eb2@3 ~@4", // Eb5
  N: "[~@5 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 a2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 a2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 b2@21 bb2@3 db3 b2 bb2 db3 b2 bb2 db3 b2 bb2 db3 b2 bb2 db3 b2 bb2 db3 b2 bb2 db3]/6",
  O: "[b2 bb2 db3 b2 bb2 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 a2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb2@3 gb2@3 f2@3 gb2@3 ab2@3 bb2@3 d3@3 f3@3 gb3@18 f3@6 eb3@12 d3@12 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3]/8",
  P: "[~@2 f3@3 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 gb3@3 b2@3 ab2@3 bb2@3 db3@3 bb2@3 d3@3 f3@3 eb3@48 ~@19]/5",
})).s("gm_distortion_guitar").gain(0.8)

// chords · overdriven guitar · "Electric Guitar"
const overdriven_guitar = note(`<
  ~@228 A B C@2 D E@2 ~ F@5 G H G I@3 G H J@4 H G@2 ~@14 K@2 L@7 ~@12 M@5 N O N P@3 N O Q@4 O N@2 R@3
>`.pickRestart({
  A: "~@5 c4@18 bb3", B: "g3 ~ bb3 g3@19 ~ gb3", C: "[f3 ~ eb3@3 c3@24 ~@19]/2", D: "~@5 g4@12 g4 f4 ~ eb4 f4 ~ bb3",
  E: "[c4 ~ bb3 g3 ~ f3 gb3 ~ f3 eb3 ~ c3@18 ~@19]/2", F: "[~@3 bb3 c4 c5@96 [c3,eb3,g3]@6 ~@13]/5",
  G: "~@5 [c4,g4,c5]@3 [c4,g4,c5] [c4,d4,g4,a4,c5,d5] ~@14", H: "~@5 [c3,eb3,g3]@6 ~@13",
  I: "[~@5 [ab2,c3,eb3]@21 g2@3 [f2,g3]@12 bb2@6 g2@6 [c3,eb3,g3]@6 ~@13]/3", // Ab Fsus2 Cm
  J: "[~@5 [a3,d4,eb4] [f3,g3,bb3,b3,d4] [g3,b3,d4]@22 [ab2,c3,eb3]@21 g2@3 [g2,c3,eb3]@12 [g2,b2,d3]@12 [c3,eb3,g3]@6 ~@13]/4", // D G7 G Ab Cm G Cm
  K: "[~@5 [eb3,gb3,bb3,eb4]@18 d4@6 [d3,f3,bb3,d4]@18 gb4]/2", // Ebm Bb
  L: "[~@2 f4@3 [b2,eb3,gb3,b3]@18 d4@6 [b2,eb3,gb3,b3]@12 [bb2,d3,f3,bb3]@12 [bb3,eb4,gb4,bb4]@18 [bb3,d4,f4,bb4]@6 [d4,f4,ab4,bb4]@18 [bb3,d4,f4,ab4]@6 [b3,eb4,gb4,b4]@24 [bb3,d4,f4,bb4]@24 ~@19]/7", // B Bb Ebm Bb Bb7 B Bb
  M: "[~@5 eb4@96 [eb3,gb3,bb3]@6 ~@13]/5", N: "~@5 [eb4,bb4,eb5]@3 [eb4,bb4,eb5] [eb4,f4,bb4,c5,eb5,f5] ~@14",
  O: "~@5 [eb3,gb3,bb3]@6 ~@13", P: "[~@5 [b2,eb3,gb3]@21 bb2@3 [ab2,bb3]@12 db3@6 bb2@6 [eb3,gb3,bb3]@6 ~@13]/3",
  Q: "[~@5 [c4,eb4,g4] [a3,bb3,c4,d4,eb4,f4] [bb3,d4,f4]@22 [b2,eb3,gb3]@21 bb2@3 [bb2,eb3,gb3]@12 [bb2,d3,f3]@12 [eb3,gb3,bb3]@6 ~@13]/4", // Cm Dm7 Bb B Ebm Bb Ebm
  R: "[~@5 eb3@48 ~@19]/3",
})).s("gm_overdriven_guitar").gain(0.72)

// bass · electric bass pick · "Bass Guitar"
const bass = note(`<
  ~@135 A B C D A B E F C G H@4 I J I J ~@4 A B C D A B E F C K@3 ~@16 L@8 M@3 N@3 O@3 P@3 M@3 Q@2 ~@10 R@8 S@8 T@4 U@8
  V@8 W@8 X@4 ~@2 Y@6 Z@8 AA@8 AB@3 AC@8 AD@8 AE@3
>`.pickRestart({
  A: "gb1!5 bb1 db2!3 bb1!2 db2", B: "db2 gb1!4 bb1 db2!3 bb1!2 db2", C: "db2!5 f2 ab2!3 f2!2 ab2",
  D: "ab2 db2!4 f2 ab2!3 f2!2 ab2", E: "ab1!12", F: "ab1!2 bb1 db2!2 bb1 db2!3 bb1!2 db2",
  G: "ab2!2 bb2 c3!2 db3@4 b2!3", H: "bb2 b2!2 bb2 b2!2 bb2 b2!2 bb2 b2!2", I: "db3!3 b2!2 ab2!4 b2 f3 b2",
  J: "db3@3 b2!2 ab2 ab2@2 ab2 b2@3", K: "[ab2@2 ab2@2 bb2@2 c3@2 c3@2 db3@8 ~@2 [db2,f2,ab2,b2]@51 ~]/3",
  L: "[~@5 [g1,e2]@7 [g1,e2]@11 [g1,e2]@2 ~@4 [g1,b1]@7 [g1,b1]@11 g1@2 ~@4 [g1,c2]@7 [g1,c2]@11 [g1,c2]@2 ~@4 [f1,d2]@7 [f1,d2]@11 [f1,d2]@2 ~@4 [c2,e2]@7 [c2,e2]@11 [c2,e2]@2 ~@4 [d2,f2]@7 [d2,f2]@11 [d2,f2]@2 ~@4 [e2,g2]@7 [e2,g2]@11 ~ [f1,d2]@24, ~@167 [e2,g2]@2 ~@23]/8", // C G C5 Dm C Dm Em Dm …
  M: "[c2@2 c2@2 c2 c2@2 c2@2 c2@2 c2@2 ~ f1@2 f1@2 f1@2 f1@2 f1 f1@2 f1@2 gb1@2 g1@2 g1 g1@2 g1@2 g1@2 g1@2 g1 g1@2 g1@2 b1@2 c2@2 ~ g1@2 a1@2 bb1@2 b1@2 c2 c2@2 c2@2 c2@2 c2@2 c2 c2@2 c2@2, ~@13 c2@2 ~@34 d2@2 ~@21]/3",
  N: "[f1@2 f1@2 f1 f1@2 f1@2 f1@2 f1@2 ~ g1@2 g1@2 g1@2 g1@2 g1 g1@2 g1@2 g1@2 g1@2 ~ c2@2 d2@2 g1@2 a1@2 ~ b1@2 c2@2 c2@2 c2@2 c2 c2@2 c2@2 c2@2 c2@2 f1 f1@2 f1@2 f1@2 f1@2 f1 f1@2 gb1@2, ~@13 gb1@2 ~@16 b1@2 ~@7 bb1@2 ~@30]/3",
  O: "[g1@2 g1@2 g1 g1@2 g1@2 g1@2 g1@2 g1 g1@2 b1@2 c2@2 d2@2 ~ a1@2 bb1@2 b1@2 c2@2 c2 c2@2 c2@2 c2@2 c2@2 c2 c2@2 f1@2 f1@2 f1@2 f1 f1@2 f1@2 f1@2 gb1@2 g1 g1@2 g1@2 g1@2 g1@2 g1 g1@2 g1@2, ~@11 g1 ~@24]/3",
  P: "[g1@2 b1@2 ~ d2@2 g1@2 a1@2 bb1@2 ~ c2@2 c2@2 c2@2 c2@2 c2 c2@2 c2@2 c2@2 f1@2 f1 f1@2 f1@2 f1@2 f1@2 ~ gb1@2 g1@2 g1@2 g1@2 g1 g1@2 g1@2 g1@2 g1@2 ~ b1@2 c2@2 d2@2 g1@2 ~ bb1@2 b1@2, ~@4 c2@2 ~@7 b1@2 ~@25 f1@2 ~@16 g1@2 ~@7 a1@2 ~@3]/3",
  Q: "[f1@2 f1@2 f1 f1@2 f1@2 f1@2 f1@2 ~ g1@2 g1@2 g1@2 g1@2 g1 g1@2 g1@2 g1@2 g1@2 ~ c2@2 d2@2 g1@2 a1@2 ~ b1@2 ~@5, ~@13 gb1@2 ~@16 b1@2 ~@7 bb1@2 ~@6]/2",
  R: "[~@5 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1]/8",
  S: "[~@2 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1]/8",
  T: "[~@2 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 ~@4]/4",
  U: "[~@5 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 ab1@3 ab1@3 ab1@3 ab1@3 ab1@3 g1@3 f1@24 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1]/8",
  V: "[~@2 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 eb1@3 eb1@3 d1@3 eb1@3 f1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 ab1@3 ab1@3 ab1@3 ab1@3 ab1@3 g1@3 g1@3 g1@3 g1@3 g1@3 b1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1@3 d2@3 ab1@3 ab1@3 gb1@3 g1@3 bb1@3 g1@3 b1]/8",
  W: "[~@2 d2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 c2@3 c2@3 c2@3 c2@3 c2@3 gb1 g1 ~ bb1@3 c2@3 d2@3 d2@3 d2@3 d2@3 d2@3 ab1 a1 ~ c2]/8",
  X: "[~@2 d2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 e2@3 e2@3 e2@3 e2@3 e2@3 bb1 b1 ~ d2@3 e2@3 eb2@24 ~@19]/4",
  Y: "[~@5 eb2@18 d2@6 eb2 [f2,gb2] f2@16 gb2@3 f2@3 eb2@18 d2@6 b1 b1@4 ~ d2@3 b1@3 bb1@6 d2@6 eb2@18 d2@6 eb2 [f2,gb2] f2@16 gb2, ~@78 d2 ~@65]/6", // Gbmaj7
  Z: "[~@2 f2@3 eb2@24 f2 gb2 ~ f2 eb2 ~ f2@42 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2]/8",
  AA: "[~@2 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2]/8",
  AB: "[~@2 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 a1 bb1 ~ db2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 eb2@3 ~@4]/3",
  AC: "[~@5 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 bb1@3 ab1@24 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2]/8",
  AD: "[~@2 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 gb1@3 gb1@3 f1@3 gb1@3 ab1@3 bb1@3 d2@3 f2@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 bb1@3 bb1@3 bb1@3 bb1@3 bb1@3 d2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2@3 f2@3 b1@3 b1@3 a1@3 bb1@3 db2@3 bb1@3 d2]/8",
  AE: "[~@2 f2@3 eb2@48 ~@19]/3",
})).s("gm_electric_bass_pick").gain(0.48)

// chords · acoustic guitar steel · "Acoustic Guitar"
const acoustic_guitar_steel = note("<~@193 A@3 B@3 C@3 D@3 A@3 E@2 ~@104>".pickRestart({
  A: "[[c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 ~ [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2, ~@13 [c4,e4,g4]@2 ~@57]/3", // C F G C
  B: "[[f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2, ~@13 [f3,a3,c4]@2 ~@57]/3", // F G C F
  C: "[[g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2]/3", // G C F G
  D: "[[g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2, ~@13 [g3,b3,d4]@2 ~@57]/3", // G C F G
  E: "[[f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] [g3,b3,d4]@2 ~@5, ~@13 [f3,a3,c4]@2 ~@33]/2", // F G F
})).s("gm_acoustic_guitar_steel").gain(0.3)

// other · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note("<~@195 A B@3 C@3 D@3 E F@2 G@3 H@3 ~@100>".pickRestart({
  A: "~@5 c3@7",
  B: "[f2@11 ~@3 g2@14 ~@4 c3@2 d3@2 g2@2 a2@2 ~ b2@2 c3@14 ~ f2@11 ~ gb2@2, ~@13 gb2@2 ~@16 b2@2 ~@7 bb2@2 ~@30]/3",
  C: "[g2@14 ~@2 b2@2 c3@2 d3@2 ~ a2@2 bb2@2 b2@2 c3@14 f2@11 ~@2 gb2@2 g2@14, ~@11 g2 ~@24]/3",
  D: "[~@2 b2@2 ~ d3@2 g2@2 a2@2 bb2@2 ~ c3@14 ~ f2@11 ~ gb2@2 g2@14 ~@2 b2@2 c3@2 d3@2 g2@2 ~ bb2@2 b2@2, ~@4 c3@2 ~@7 b2@2 ~@52 a2@2 ~@3]/3",
  E: "c3@7 f2@5", F: "[~@3 gb2@2 g2@14 ~@2 b2@2 c3@2 ~ g2@2 a2@2 bb2@2 b2@2 c3@14, ~@25 d3@2 ~@21]/2",
  G: "[f2@11 ~@3 g2@14 ~@4 c3@2 d3@2 g2@2 a2@2 ~ b2@2 c3@14 ~ f2@10 f2@2 gb2@2, ~@13 gb2@2 ~@16 b2@2 ~@7 bb2@2 ~@30]/3",
  H: "[g2@14 ~@2 b2@2 c3@2 d3@2 ~ a2@2 bb2@2 b2@2 c3@24 ~@19, ~@11 g2 ~@24]/3",
})).s("gm_electric_guitar_clean").gain(0.4)

// other · banjo
const banjo = note("<~@200 A@5 B C@2 D@2 ~@104>".pickRestart({
  A: "[~@5 c4@14 f3@11 f3@2 e3@2 ~ e3@27 c4@14 ~ f3@11 ~ e3@2 f3@2 e3@27, ~@17 f3 ~@26 f3 ~@15]/5", B: "c4@7 f3@5",
  C: "[~ f3@2 e3@2 f3@2 e3@27 c4@14]/2", D: "[f3@11 f3@2 ~ f3@2 e3@27 ~@5, ~@13 e3@2 ~@33]/2",
})).s("gm_banjo").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@131 A@3 ~ B@6 C ~ B C B@7 D E@4 B@6 C ~ B F ~@2 C G ~ H C G ~ H I G ~ H I ~@2 H@8 ~@24 J@23 ~ K@4 ~ L K@9 ~ J@10 ~@4
  M@3 N M@3 N H ~@4 J@11 ~ K@4 ~ L K@9 ~ H ~@2
>`.pickRestart({
  A: "~ x ~ x ~@2", B: "x ~@5 x ~@4 x", C: "x", D: "x!12", E: "x!4", F: "x ~@4 x", G: "~@17 x ~@6", H: "~@5 x ~@18",
  I: "x ~@16 x ~@6", J: "~@5 x ~@5 x ~@5 x ~@5 x", K: "~@5 x ~@8 x ~@2 x ~@6", L: "~ x ~@10", M: "~@5 x ~@17 x",
  N: "~@5 x ~@11 x ~@5 x",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@192 A B C D B C D B C D B C D B C D B E ~@104>".pickRestart({
  A: "x", B: "x ~@6 x ~@6 x ~@7 x ~", C: "~@5 x ~@6 x ~@6 x ~@4", D: "~@2 x ~@7 x ~@6 x ~@6", E: "~@5 x ~@6 x ~@11",
})).gain(0.32)

// drums · rim
const rim = s("rim").struct("<~@169 [~ x ~ x]!3 [~ x ~@2] [~ x ~ x]!3 [~ x ~@2] [~ x ~ x]!15 ~@122>").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~@131 A@3 B C@6 ~ D C ~ C@7 E F@4 C@6 ~ D C ~@6 G ~@3 G ~@15 H I J K L J K L J K L J K L J K L M ~@29 N O P@3 Q R S
  P@4 T O P@2 U V ~@11 W@2 X@8 Y ~@15 N O P@3 Q R S P@4 T O P@2 U V ~@2
// … 76 more lines