Strudelify

Ribbon in the Sky

Stevie Wonder

KeyA♭ majorTempo65 bpm
0:00/0:00
// Ribbon in the Sky — Wonder Stevie
// 65 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 59 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · "A.PIANO 2"
const piano = note(`<
  A@2 B C@2 D E F G H I J K L M N O P Q R S@2 T U@3 V W X Y Z AA AB@2 AC AD AE AF AG AH AI@2 AJ@4 AK@8 AL@3 ~@2
>`.pickRestart({
  A: "[~@45 db4@2 ~ eb3@16 ~@3 gb3@2 ~@3 gb3@12 ~@6 db4@4 eb2@2, ~@47 c4@2 ~@15 bb3@24 gb3@8, ~@48 [eb2,db4]@42 ab3 ~@5, ~@66 ab3@3 ~ eb3@24 ~@2, ~@84 bb2@11 ~]/2", // Eb7
  B: "~@8 c4@2 f3@2 c4@5 ~ [bb2,f3,ab3,c4,eb4]@30, f2@3 ~@5, ~@4 f3@5 ~ eb4@7 ~@31, ~@5 ab3@6 ~@37", // Fm7
  C: "[~@4 ab4@2 gb4@4 ~@2 [f2,bb3,f4]@3 ~ [gb2,bb3,eb4] ~@5 [ab2,gb3,ab3,bb3,db4]@12 ab2 ~ [gb3,ab3,bb3,db4] ~@3 b3@2 [b3,d4]@10 ~@5 d4@2 ~ [b3,e4]@4 ~@6 e2@2 a2@12 d4@4 ~@2 b3@2 ~@4, ~@4 [eb2,eb3,bb3]@7 ~@27 ab2@4 e2@25 ~@21 a2@7 ~, ~@42 g4@16 ~@9 b3@20 ~@9, ~@52 d4@4 b3@3 ~ d4 ~@3 d4@5 ~@3 [e4,g4]@19 ~@5, ~@54 e3@10 ~@2 e3@3 ~@3 d4@10 ~@14]/2", // Bb5 Ebm Gb Bm E5 Eb5 Em
  D: "[bb3,ab4]@12 [db4,d4] ~@3 eb3 ~ [ab2,gb3,ab3,bb3,db4]@20 ~ [gb3,bb3,db4] [ab2,ab3] ~@7, eb2@17 ~@31, db4@3 ~@13", // Bb7 Dmaj7 Gb Ab
  E: "ab3@4 ~ ab3 ~@2 gb3 ~@2 gb3 ~@8 gb3 bb2 gb3 eb2, db4@11 ~, bb3@12 eb2@5 bb3@5 ~@2, eb2@18 bb2@10 gb3@2 ab3@11 ~@7, eb3 ~@5 eb3@15 ~@3",
  F: "[f3,ab3]@5 ~@5 f3@2 eb4@2 ~@2 f2@2 [bb2,eb3,f3]@10 ~@12 eb3@5 ~ bb2 ~, [f2,c4,eb4]@13 ~@17 bb2@12 ~@6, ~@5 ab3@6 ~@7 c4@16 f3@10 ~@4, ~@6 c3@9 ~@3 ab3@9 ~ ab3@4 eb3@4 ab3@9 ~@3, ~@38 c4@7 ~@3", // Fm Bbsus4 F7
  G: "gb3 ~@3 bb3@6 ~@2 gb3@2 ab3@2 bb3@2 c4@6 bb3@4 ~@2 ab3@2 ~@2 gb3 ~ gb3@4 ~@2 gb3@4 eb2@2, eb2@43 ~@5, ~@10 eb3@18 bb2@17 ~@3, ~@18 gb3 ~@13 eb3@5 ~@3 eb3@7 ~",
  H: "[bb3,c4,eb4]@12 ab3@4 eb4@2 bb3@9 ~@15 eb4@4 bb2@2, f2@18 eb4@21 ~ bb3@4 ~@4, ab3@9 ~@9 c4@26 ~@4, ~@6 [bb2,ab3]@4 bb2@5 ~, ~@14 bb3@3 ab3@6 ~", // Cm7 Bb7
  I: "~@6 db4@4 ~@2 db4@4 ~@2 db4@4 ~@2 db4@4 f4@2 eb4@4 bb3 ~@5 bb3@2 ~@2 bb3 ~ eb2 ~, eb2@7 ~, ~@4 bb3@6 eb4@12 eb3@18 ~@2 eb3@5 ~, ~@12 [bb3,gb4]@11 ~ bb3@9 ~ db4@11 ~@3, ~@8 gb4 ~@7", // Ebm
  J: "[f2,c4]@10 ~@4 c4@2 f2@2 [eb4,f4,ab4]@16 ~@7 c4@6 ~, [f4,ab4]@16 ~@18 ab4@6 eb4@3 ~@5, eb4@8 ~@2 eb4@5 ~@3 c4@18 f4@7 ~@5, ~@12 f3@5 ~ bb2@29 ~", // F5 Fm7 Fm
  K: "[bb3,db4,ab4]@5 ~@3 db4@3 ~ [bb3,f4]@4 [gb2,eb4] ~@5 gb3@6 ab3@2 ~@2 gb3@2 ab3@2 gb3@4 [ab3,bb3] ~@4 db4@2 ~, eb2@11 ~ f2@3 ~@6 ab2@7 ~@2 ab2@11 ~ ab2@6, ~@6 [bb3,gb4]@5 ~@11 [bb3,db4]@12 ~@10 bb3@2 ~@2, ~@22 ab3@5 ~@21", // Bbm7 Bb5 Ebm Absus2 Ebm Bbm
  L: "[b2,bb3,eb4,gb4]@10 db4@2 bb3@2 ~@2 b2 ~ [ab2,bb3,db4]@10 ~@6 db4@2 eb4@3 ~@2 db4 ~@4 ab2@2, db4@4 ~@5 [eb4,gb4]@8 ~@7, a2 ~@27 db4@4 bb3@4 bb3 ~@3 [bb3,eb4,gb4]@8, ~@15 ab2@7 ~@2", // Bmaj7 Bbm7 Ebm
  M: "eb2@4 [bb3,db4,eb4,gb4] ~@7 [bb3,eb4,gb4]@9 ~ [bb3,db4,eb4,gb4] ~@5 bb3 ~ [bb3,db4,gb4]@6 ~@4 bb3 db4 eb2@2 bb3@2 [eb2,eb3]@2, ~@10 eb3@13 ~ eb2@9 ~@3 eb3@7 ~@5, ~@12 db4@4 ~@14 eb4@10 gb4@3 ~@5", // Ebm7 Ebm Ebm7 Gb Eb
  N: "[c4,eb4]@9 ~@3 f3@2 c3 ~ f2@2 [bb2,c4,eb4]@10 ~@5 eb4@3 f4@4 eb4@2 c4@4 bb2@2, [f2,f4,ab4]@15 ~@13 eb4@3 c4@4 ~ c4 ~@11, ~@9 eb4@5 ~@4 [f4,ab4]@16 ~@14, ~@15 bb2@7 ~@2", // Cm Cm7 Fm
  O: "~@4 gb3@2 ~@2 gb3@2 ab3@2 bb3@4 [gb3,c4]@6 bb3@6 ab3@2 ~ gb3@2 ~@3 gb3@4 ab3@2 gb3@4 bb2@2, eb2@30 ~@16 eb2 ~, ~@6 eb3@23 ~ bb2@4 eb3@13 ~, ~@12 ab3 ~@35", // Gbdim
  P: "[f3,ab3]@5 ~@2 f3 f2 [bb2,eb3,ab3]@5 ~@4 ab3@3 eb3@2 bb2, [f2,c4,eb4]@13 c3@3 ~@12 ab3@4 eb3@5 ~@11, ~@10 ab3@5 ~@3 [f3,c4]@16 f3@4 ~@10, ~@10 bb2@5 ~", // Fm Ebsus4 F7 F5
  Q: "gb3@10 ~@12 gb3@5 ab3@3 ~ gb3@2 ~@3 gb3@4 ~@2 [gb3,db4]@4 eb3@2, bb3@37 ~@3 ab3@8, eb2@29 ~@5 eb2@13 ~, db4@16 gb3@2 ab3@4 db4@15 ~@5 bb3@3 ~@3, ab3@4 ~ ab3 eb3@8 ~ eb3@2 ~@7", // Gb5
  R: "g3 ~@11 f3@3 ~ f2@2 ab3@8 ~@6 eb3@2 ~@2 eb3@4 f3@2 bb2@4 bb3 ~, [f2,f3,c4,eb4]@10 c3@7 ~ [bb2,eb3,f3]@12 bb2@10 ~@8, ~@6 ab3@7 ~@5 c4@24 ~@6, ~@14 ab3@7 ~@3, ~@17 f3@2 ~@5", // F7 Bbsus4
  S: "[[db4,ab4]@5 ~@2 db4@4 ~ [f2,bb3,f4]@4 [gb2,eb4] ~@5 [ab2,gb3]@6 ab3@2 ~@2 gb3@2 ab3@2 ~ ab3 ~@4 ab2@4 ~@2 db2@12 ~@4 db3 ~ ab2 ~@3 db2@6 ~@4 f3@2 ab2@2 [db2,db3,f3,ab3,bb3,db4] ~@3 gb3@6 db5 c5, [eb2,bb3]@11 ~@11 ab3@5 ~@3 ab2@10 ab3@5 ~@3 ab3@10 ~@2 ab3@14 ~@2 ab3@4 ~@16, ~@6 gb4@5 ~@11 [bb3,db4]@13 ~ [bb3,db4]@10 db4@36 ~@14, ~@36 gb3@5 ~@7 f3@29 ~ db3@4 ~@12 bb2@2]/2", // Db5 Bb5 Ebm Ab7 Bbm7 Eb5 Bbm
  T: "[gb3,ab3]@10 ~@6 eb3 ~ bb2 ~@3 db5 c5 db5 ~@2 gb3@2 ~@3 gb3@2 ab3@2 [gb3,ab3]@3 ~ [gb3,db4]@2 ~@2 c5 ~@3, [bb3,db4]@8 ~ bb3 ~@2, db5@10 ~ eb2@10 eb2@2 ~, eb2@12 gb3@13 c5@10 ~ db5@10 ~@2, ~@10 ab3@18 ~@2 eb3@17 ~", // Gbsus2 Gb5 Bbm
  U: "[[ab3,c4,eb4]@10 bb3 ~ ab3 ~@3 f3 ~ c5@9 db5@2 c5 ~@10 ab3@2 bb3@2 ~@2 bb2 ~ [bb3,db4,ab4]@5 ~ [bb3,db4,gb4,ab4]@4 bb4@2 [e2,f2,bb3,f4,c5]@4 [gb2,bb3,eb4,db5] ~ eb5@3 ~ gb5 ~ ab5@5 ~ [ab3,gb5]@5 ab2 [gb3,ab3,db4] ~@3 db5@2 [g3,a3]@10 ~@8 a2@3 ~ e2 ~@2 f5 g5 a5 [b5,c6] [d6,e6] [f6,g6,a6] b6@2 ~@3 f6 e6 ~@6 a4 g4 [a1,a2,g3,a3,b3,d4,f4] [d4,e4] c4 b3 a3 [f3,g3] e3 d3, [f2,eb5]@16 ~@2 [bb2,ab3,eb4]@18 bb2@8 ~@4 [eb2,eb3]@10 ~@12 [ab2,gb3,bb3,db4]@13 ~@7 a2@16 ~ a3@7 e5@2 ~@2 a3@4 ~ a6@2 g6 a2@8 ~@10, bb3@7 ~@11 c4@22 ~@50 [b3,d4]@27 ~ [b3,d4]@9 d6@2 [a5,b5]@2 [e5,f5]@2 [b4,c5]@2 ~@9, db5 ~@17 bb3@14 ~ bb3@7 ~@30 ab3@7 ~@13 eb5@4 ~@6 a3@2 g3@15 ~ [a2,g3]@6 a3@4 [g3,c6]@2 [a3,g5]@2 [g3,d5]@2 ~@10, ~@18 bb4 ~@11 bb4@22 ~@32 eb5@4 ~@2 e5@23 ~ a1@19 ~@11]/3", // Ab Bbm7 Gb Fsus4 Ebm7 Ab7 Gbsus2 Gsus2 …
  V: "e2@4 [b3,d4,e4,g4] ~@7 [b3,e4,g4]@9 ~ [b3,d4,e4,g4] ~@5 b3 ~ [b3,d4,g4]@6 ~@4 b3 d4 e2@2 b3@2 [e2,e3]@2, ~@10 e3@13 ~ e2@9 ~@3 e3@7 ~@5, ~@12 d4@4 ~@14 e4@10 g4@3 ~@5", // Em7 Em Em7 G E
  W: "[db4,e4]@9 ~@3 gb3@2 db3 ~ gb2@2 [b2,db4,e4]@10 ~@5 e4@3 gb4@4 e4@2 db4@4 b2@2, [gb2,gb4,a4]@15 ~@13 e4@3 db4@4 ~ db4 ~@11, ~@9 e4@5 ~@4 [gb4,a4]@16 ~@14, ~@15 b2@7 ~@2", // Dbm Dbm7 Gbm
  X: "~@4 g3@2 ~@2 g3@2 a3@2 b3@4 [g3,db4]@6 b3@6 a3@2 ~ g3@2 ~@3 g3@4 a3@2 g3@4 b2@2, e2@30 ~@16 e2 ~, ~@6 e3@23 ~ b2@4 e3@13 ~, ~@12 a3 ~@35", // Gdim
  Y: "[gb3,a3]@5 ~@2 gb3 gb2 [b2,e3,a3]@5 ~@4 a3@3 e3@2 b2, [gb2,db4,e4]@13 db3@3 ~@12 a3@4 e3@5 ~@11, ~@10 a3@5 ~@3 [gb3,db4]@16 gb3@4 ~@10, ~@10 b2@5 ~", // Gbm Esus4 Gb7 Gb5
  Z: "g3@10 ~@12 g3@5 a3@3 ~ g3@2 ~@3 g3@4 ~@2 [g3,d4]@4 e3@2, b3@37 ~@3 a3@8, e2@29 ~@5 e2@13 ~, d4@16 g3@2 a3@4 d4@15 ~@5 b3@3 ~@3, a3@4 ~ a3 e3@8 ~ e3@2 ~@7", // G5
  AA: "ab3 ~@11 gb3@3 ~ gb2@2 a3@8 ~@6 e3@2 ~@2 e3@4 gb3@2 b2@4 b3 ~, [gb2,gb3,db4,e4]@10 db3@7 ~ [b2,e3,gb3]@12 b2@10 ~@8, ~@6 a3@7 ~@5 db4@24 ~@6, ~@14 a3@7 ~@3, ~@17 gb3@2 ~@5", // Gb7 Bsus4
  AB: "[d4@5 ~ [b3,d4,g4]@5 ~ [f2,gb2,b3,gb4]@4 [g2,b3,e4] ~@5 a3@7 ~ a3@4 ~ a2 [g3,a3,d4] ~@5 [ab3,bb3]@10 ~@8 bb2@3 ~ f2 ~@5 [bb2,ab3]@6 ~@4 ab3@2 bb3@2 ab3@2 ~@2 [bb1,bb2,ab3,bb3,c4,eb4] ~@7, e2@10 ~@12 [a2,g3,b3,d4]@13 ~@7 [c4,eb4]@27 ~ [c4,eb4]@12 ~@14, ~@42 bb2@16 ~@8 bb1@19 ~@11, ~@52 bb3@4 ~@3 bb3@10 ~ bb3@4 ~@2 bb3@4 ~@16, ~@54 ab3@15 ~@9 bb2@8 ~@10]/2", // G B Em Gsus2 Absus2 Bb7 Ab G …
  AC: "f2@4 [c4,eb4,f4,ab4] ~@7 [c4,f4,ab4]@9 ~ [c4,eb4,f4,ab4] ~@5 c4 ~ [c4,eb4,ab4]@6 ~@4 c4 eb4 f2@2 c4@2 [f2,f3]@2, ~@10 f3@13 ~ f2@9 ~@3 f3@7 ~@5, ~@12 eb4@4 ~@14 f4@10 ab4@3 ~@5", // Fm7 Fm Fm7 Ab F
  AD: "[d4,f4]@9 ~@3 g3@2 d3 ~ g2@2 [c3,d4,f4]@10 ~@5 f4@3 g4@4 f4@2 d4@4 c3@2, [g2,g4,bb4]@15 ~@13 f4@3 d4@4 ~ d4 ~@11, ~@9 f4@5 ~@4 [g4,bb4]@16 ~@14, ~@15 c3@7 ~@2", // Dm Dm7 Gm
  AE: "~@4 ab3@2 ~@2 ab3@2 bb3@2 c4@4 [ab3,d4]@6 c4@6 bb3@2 ~ ab3@2 ~@3 ab3@4 bb3@2 ab3@4 c3@2, f2@30 ~@16 f2 ~, ~@6 f3@23 ~ c3@4 f3@13 ~, ~@12 bb3 ~@35", // Abdim
  AF: "[g3,bb3]@5 ~@2 g3 g2 [c3,f3,bb3]@5 ~@4 bb3@3 f3@2 c3, [g2,d4,f4]@13 d3@3 ~@12 bb3@4 f3@5 ~@11, ~@10 bb3@5 ~@3 [g3,d4]@16 g3@4 ~@10, ~@10 c3@5 ~", // Gm Fsus4 G7 G5
  AG: "ab3@10 ~@12 ab3@5 bb3@3 ~ ab3@2 ~@3 ab3@4 ~@2 [ab3,eb4]@4 f3@2, c4@37 ~@3 bb3@8, f2@29 ~@5 f2@13 ~, eb4@16 ab3@2 bb3@4 eb4@15 ~@5 c4@3 ~@3, bb3@4 ~ bb3 f3@8 ~ f3@2 ~@7", // Ab5
  AH: "a3 ~@11 g3@3 ~ g2@2 bb3@8 ~@6 f3@2 ~@2 f3@4 g3@2 c3@4 c4 ~, [g2,g3,d4,f4]@10 d3@7 ~ [c3,f3,g3]@12 c3@10 ~@8, ~@6 bb3@7 ~@5 d4@24 ~@6, ~@14 bb3@7 ~@3, ~@17 g3@2 ~@5", // G7 Csus4
  AI: "[eb4@5 ~ [c4,eb4,ab4]@5 ~ [gb2,g2,c4,g4]@4 [ab2,c4,f4] ~@5 bb3@7 ~ bb3@4 ~ bb2 [ab3,bb3,eb4] ~@5 f4@9 ~@9 f4@3 ~ d4@2 ~ d4@3 g2@2 [d4,f4,bb4]@9 ~@7 d4@2 [d4,f4]@3 ~ c3@2, f2@10 ~@12 [bb2,ab3,c4,eb4]@13 ~@7 [g2,bb4]@24 ~@16 d4@4 ~@10, ~@42 d4@12 g3@11 ~ d3@2 ~@4 c3@20 ~@4, ~@52 f4@6 d4@5 ~ [f4,bb4]@7 ~@11 [f4,bb4]@7 ~ bb4@4 ~@2, ~@84 c2@11 ~]/2", // Ab C Fm Absus2 Bb Dm Ab Gm …
  AJ: "[[c4,bb4]@6 [c4,ab4]@5 ~ [g2,c4,g4]@6 [ab2,c4,f4]@6 [bb2,c4]@9 ~@3 bb2 ~@3 c4@2 bb2 ~@5 c4@7 ~@5 bb2@2 ~@2 [bb2,c4,eb4] ~@7 f4@11 ~@7 ab4@4 db2@2 eb4@9 ~@3 eb4@4 c3 ~ db4@19 ~@9 eb2 ~@7 db4@4 ~@2 f4@4 [db4,f4,ab4]@6 bb2 ~ f4@10 ~@8 c4@4 db2@2, [f2,eb4]@11 ~@13 eb4@39 ~@9 eb4 ~@11 f4@28 ~@2 [f4,ab4]@39 ~@27 f4@12, ~@33 c4@5 ~@6 c4@2 ~@12 c4@4 ~@10 [db2,c4,ab4]@18 c4@3 ~@21 eb4@15 ~@4 eb4@18 ~@3 eb4@5 ~@9 c4@17 ~@7, ~@45 bb2@13 ~@14 db3@23 ~ [c2,c3,bb3,g4]@17 ~ eb2@26 ~@4 eb2@13 ~@11 [db2,db3,ab4]@23 ~, ~@68 db4@5 ~ eb3@9 ~@13]/4", // C7 Fm C5 Fm Bbsus2 Cm7 Db F7 …
  AK: "[eb4@10 ~@2 eb4@4 c3 ~ eb4@16 ~@12 bb2 ~ eb3@3 bb2@2 eb2@5 [db4,ab4] ~ [eb2,eb3] ~@3 [d2,d3,d4,ab4]@8 f4@11 ~@7 c4@3 ~ db2@2 [c3,bb3]@12 eb4@4 c3 ~ eb4@15 ~ gb2 ~@5 eb3 ~@10 eb4@3 db4@4 ~@2 bb2@4 [eb2,eb3,db4,eb4,f4,ab4] ~@5 eb2 ~ f4@10 ~@12 db2@2 [bb3,eb4,g4]@12 eb4@4 c3 ~ eb4@15 ~@13 [eb2,e2] ~ eb2 ~@9 [db4,ab4] ~ eb2 ~@3 [d2,d4,ab4]@8 f4@9 ~@9 c4@4 db2 ~ [c3,bb3]@12 eb4@4 c3 ~ eb4@15 ~@13 eb2 ~@4 db4@3 eb4@4 [db4,ab4] ~@5 [eb2,db4,eb4,f4,ab4] ~@4 eb2 ~ f4@10 ~@2 f4@11 ab4 ~, [c2,c3,bb3,g4]@16 ~@2 [f4,ab4]@39 ~@27 f4@28 ~@2 [f4,ab4]@34 ~@6 eb4@5 ~@21 f4@28 ~@20 eb4@21 ~@15 ab4@23 ~ eb4@9 ~@9 db4@32 ~@21 [c4,ab4]@20 ~@5, ~@18 db4@35 ~@19 c4@16 ~@6 db3 ~ ab4 ~@35 eb4@14 db4@3 ~@61 [db4,f4,ab4]@40 ~@24 f4@31 ~ [f4,ab4]@38 ~@40, ~@18 eb2@26 ~@28 [db2,ab4]@23 ~ [c2,g4]@18 eb2@22 ~@6 eb2@14 ~@12 db2@18 ~@6 [c2,c3]@17 ~ eb2@25 ~@29 [db2,c4]@15 ~@9 [c2,g4]@18 eb2@26 ~@4 eb2@12 ~@11 db2@24 ~, ~@36 eb4@16 ~@44 eb4@10 ~@8 db4@30 eb3@13 ~@11 [db3,c4,ab4]@23 ~@85 db3@11 ~@37 eb4@16 ~@44]/8", // Db5 Eb Ddim C7 Db Eb Emaj7 Db5 …
  AL: "[[c3,bb3]@12 eb4@4 c3 eb4@17 ~@12 eb2 ~@7 db4@15 ~@4 [ab1,c4]@45 ~@26, [c2,g4]@17 f4@53 ~@74, eb4@8 ~@9 ab4@101 ~@26, ~@17 db4@31 eb2@26 ~@70, ~@17 eb2@19 eb4@82 ~@26]/3", // C7 Ab C5
})).s("gm_piano").gain(0.36)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@6 A B C D E F G H I J K L M N O P Q R S@2 T U V W X Y Z@2 AA AB AC AD AE AF AG@2 AH AI AJ AK AL AM AN AO AP@2 AQ AR
  AS AT@3 ~
>`.pickRestart({
  A: "eb2@2 ~@20 bb1 ~ eb2 ~@15 eb2 ~ bb1 eb2 ~@2 bb1@2", B: "f2@2 ~@16 bb1@26 ~@2 bb1 ~",
  C: "eb2@2 ~@20 bb1 ~ eb2@2 ~@14 eb2 ~ bb1 ~ eb2 bb1 ~@2", D: "f2@3 ~@13 f2 ~ bb1@21 bb2 ~@6 bb1 ~",
  E: "eb2@2 ~@19 bb1 ~ eb2 ~@16 eb2 ~ bb1 ~ eb2 ~ bb1@2", F: "f2@2 ~@14 f2 ~ bb1@29 ~",
  G: "eb2@2 ~@8 bb1@2 eb2@3 ~ gb2 ~ ab2@3 ~@3 bb2@11 ~ ab2@10 ~@2, ~@18 gb2 ~@29",
  H: "b2@10 f2@2 b1@4 b2 ~ ab1@21 ~ ab2@2 eb2@2 ab1 ~ ab1@2", I: "eb2@2 ~@20 bb1 ~ eb2@2 ~@14 eb2 ~ bb1 ~ eb2 ~ bb1@2",
  J: "f2@2 ~@14 f2 ~ ab1@12 bb1@10 ~ bb1 ~@2 ab1@2 b1 ~, ~@20 ab1 ~@3",
  K: "eb2@2 ~@20 bb1 ~ eb2@2 ~@14 eb2 ~ bb1 ~ eb2 ~ bb1 ~", L: "f2@2 ~@14 f2 ~ ab1@21 ~ ab2@2 bb1@4 bb2 ~",
  M: "eb2@2 ~@20 bb1 ~ eb2 ~@14 eb2 ~@2 bb1 eb2 ~@2 bb1 ~", N: "f2@2 ~@14 bb1 ~ bb2@30",
  O: "eb2@6 bb1@4 eb2 ~ gb2@3 ~ eb2@2 ab2@4 bb2 ~ bb2@12 ab2@10 bb2 ~",
  P: "db2@28 ab2 ~ db3 ~ ab2 db2 ~@2 db2@5 ~@5 bb1 ~", Q: "eb2@2 ~@20 bb1 ~ eb2@2 ~@20 bb1 ~",
  R: "f2@2 ~@16 bb1@21 ~ bb2@2 gb2@4 bb1@2",
  S: "[eb2@8 ~@2 eb2@2 f2@5 ~ gb2@5 ~ ab2@12 ~@6 a2@16 ~ e2 ~ a2@3 e2 ~ a1@2 ~@2 a1@17 ~ a2 ~@7, ~@42 b2 ~@53]/2",
  T: "e2@2 ~@20 b1 ~ e2@2 ~@14 e2 ~ b1 ~ e2 ~ b1@2", U: "gb2@2 ~@14 gb2 ~ a1@12 b1@10 ~ b1 ~@2 a1@2 c2 ~, ~@20 a1 ~@3",
  V: "e2@2 ~@20 b1 ~ e2@2 ~@14 e2 ~ b1 ~ e2 ~ b1 ~", W: "gb2@2 ~@14 gb2 ~ a1@21 ~ a2@2 b1@4 b2 ~",
  X: "e2@2 ~@20 b1 ~ e2 ~@14 e2 ~@2 b1 e2 ~@2 b1 ~", Y: "gb2@2 ~@14 b1 ~ b2@30",
  Z: "[~@10 e2@2 gb2@5 ~ g2@5 ~ a2@12 ~@6 bb2@16 ~ f2 ~ bb2@3 f2 ~ bb1@2 ~@2 bb1@17 ~ bb2 ~@7, ~@42 c3 ~@53]/2",
  AA: "f2@2 ~@20 c2 ~ f2@2 ~@14 f2 ~ c2 ~ f2 ~ c2@2",
  AB: "g2@2 ~@14 g2 ~ bb1@12 c2@10 ~ c2 ~@2 bb1@2 db2 ~, ~@20 bb1 ~@3",
  AC: "f2@2 ~@20 c2 ~ f2@2 ~@14 f2 ~ c2 ~ f2 ~ c2 ~", AD: "g2@2 ~@14 g2 ~ bb1@21 ~ bb2@2 c2@4 c3 ~",
  AE: "f2@2 ~@20 c2 ~ f2 ~@14 f2 ~@2 c2 f2 ~@2 c2 ~", AF: "g2@2 ~@14 c2 ~ c3@30",
  AG: "[~@10 f2@2 g2@5 ~ ab2@5 ~ bb2@12 ~@6 g2@16 d2@2 g1@4 g2@6 d2 ~ c2@16 c3 ~ g2@3 ~ c2 ~]/2",
  AH: "f2@4 ~@2 c2@4 ~@2 f2@3 ~ g2@2 ab2@4 ~@2 bb2@18 f2@4 bb2 ~", AI: "bb1@21 ~ bb1 ~@2 d2 ~@20 db2 ~, ~@12 db2 ~@11",
  AJ: "c2@2 ~@16 eb2@27 ~ c2 ~", AK: "eb2@2 ~@20 c2 ~ db2@2 ~@17 db2 ~@2 db2@2", AL: "c2@3 ~@13 c2 ~ eb2@26 ~@2 eb2@2",
  AM: "f2@2 eb2@2 f2@2 eb2@7 ~@3 d2@8 db2@2 ~@20 db2@2", AN: "c2@2 ~@14 c2 ~ eb2@26 ~ eb2@2 ~",
  AO: "f2 eb2@2 f2@2 ~ g2@5 ~ bb2@5 ~ c3@4 bb2 ~ db2@3 ~@19 db2 ~",
  AP: "[c2@2 ~@14 c2 ~ eb2@20 ~@2 eb2 db2@3 ~ bb1 ~ ab1@6 ~ bb1@5 ~ db2@3 d2@8 ~ db2@2 ~@20 db2 ~]/2",
  AQ: "c2@2 ~@14 c2 ~ eb2@27 ~ c2 ~", AR: "eb2@2 ~@14 eb2@2 c2@4 eb2 ~ db2@2 ~@19 db2 ~@2",
  AS: "c2@2 ~@16 eb2@27 ~ c2@2", AT: "[eb2@2 ~@22 ab1@85 ~@35]/3",
})).s("gm_fretless_bass").gain(0.41)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@14 A B C D E F@2 G H I J@2 K L M N O P@3 Q R S T U V@3 W@2 X Y@2 Z@6 AA@2 AB@2 ~@2
>`.pickRestart({
  A: "gb3@4 ~@2 bb3@6 gb3@4 ~@2 ab3@3 ~@3 ab3@4 bb3@2 ~@12 ab3@4 db4@2, ~ ab3@2 db4@4 ~@2 bb3@3, ~@16 bb3@6 gb3@7 ~ [gb3,db4]@13 ~@5", // Gb5
  B: "~@7 c4@5 eb4@5 ~ [c4,eb4]@21 ~@2 c4@4 ab3@2 ~, f3@17 ~ f3@28 ~@2, ~@4 ab3@36 eb4@7 ~", // Cm
  C: "gb3@4 ~@2 bb3@5 ~ [gb3,c4]@4 ~@2 ab3@3 ~@3 ab3@4 bb3@2 [gb3,db4]@10 bb3@2 gb3@2 ~ bb3@3, ~@4 ab3@5 ~@7 bb3@6 gb3@6 ~@16 ab3@3 ~", // Gbdim Gb5
  D: "~@6 c4@5 ~ eb4@2 ~@4 [f3,ab3,c4,eb4]@19 ~@5 db4@4 eb4@2, f3@7 ~@41, ~@4 ab3@8 ~@28 bb3@5 ~@3", // Fm7
  E: "~@12 db4@4 ~@14 db4@9 ~ bb3@2 ~@2 eb4@2 gb4@2, gb4@9 db4@4 ~@8 db4@2 ~, ~@3 eb4@5 bb3@6 ~@10, ~@22 eb4@19 ~@7",
  F: "[~@6 eb4@4 f4@2 ab4@3 ~@4 c4@20 ~@3 eb4@4 ~@2 db4@6 gb4@5 ~ [bb3,f4]@4 eb4 ~@4 db4@21 bb3@4 ~@2, c4@10 ~@8 [f4,ab4]@27 ~ ab4@7 ~@43, ~@18 eb4@20 ~@2 c4@4 ~@4 bb3@11 ~@10 bb3@14 ~@13]/2", // Bb5 Fm
  G: "[f3,ab3,db4]@18 f3@3 ab3@2 bb3", // Db
  H: "gb3@4 ~@2 bb3@6 ~@6 ab3@4 ~@2 ab3@4 gb3 ~ c4@6 bb3@4 ab3@2 gb3@5 ~, ~@4 ab3@8 db4@13 ~@23, ~@12 gb3@5 ~@5 gb3@4 ~@4 gb3@10 ~@8, ~@15 bb3@7 ~@26",
  I: "[ab3,c4,eb4]@10 ~@4 c4@2 ~@2 ab3@20 ~@2 ab3@2 eb4@5 ~, f3@8 ~@2 f3@5 ~@3 [f3,c4]@26 ~@4, ~@12 ab3@4 eb4@25 ~@7", // Ab F5
  J: "[~@6 gb4@5 ~ ab4@3 ~ gb4@2 f4@6 eb4@6 db4@6 bb3 ~@5 [d4,g4]@16 ~@2 d4@4 ~@6 b3@5 d4@3 b3@4 d4@2 g4@3 [b3,d4,g4] ~@8, bb3@7 ~@5 bb3@21 ~@9 b3@15 ~ b3@8 d4@8 ~@22, ~@2 db4@6 ~@24 g4@9 ~@7]/2", // G5 G
  K: "g3@4 ~@2 b3@6 g3@4 ~@2 a3@3 ~@3 a3@4 b3@2 ~@12 a3@4 d4@2, ~ a3@2 d4@4 ~@2 b3@3, ~@16 b3@6 g3@7 ~ [g3,d4]@13 ~@5", // G5
  L: "~@7 db4@5 e4@5 ~ [db4,e4]@21 ~@2 db4@4 a3@2 ~, gb3@17 ~ gb3@28 ~@2, ~@4 a3@36 e4@7 ~", // Dbm
  M: "g3@4 ~@2 b3@5 ~ [g3,db4]@4 ~@2 a3@3 ~@3 a3@4 b3@2 [g3,d4]@10 b3@2 g3@2 ~ b3@3, ~@4 a3@5 ~@7 b3@6 g3@6 ~@16 a3@3 ~", // Gdim G5
  N: "~@6 db4@5 ~ e4@2 ~@4 [gb3,a3,db4,e4]@19 ~@5 d4@4 e4@2, gb3@7 ~@41, ~@4 a3@8 ~@28 b3@5 ~@3", // Gbm7
  O: "~@12 d4@4 ~@14 d4@9 ~ b3@2 ~@2 e4@2 g4@2, g4@9 d4@4 ~@8 d4@2 ~, ~@3 e4@5 b3@6 ~@10, ~@22 e4@19 ~@7",
  P: "[~@6 e4@4 gb4@2 a4@3 ~@4 db4@20 ~@3 e4@4 a4@6 ~@2 g4@5 ~ a4@3 ~ g4@2 gb4@6 e4@6 d4@6 b3 ~@5 [eb4,ab4]@16 ~@2 eb4@4 ~@6 c4@5 eb4@3 c4@4 eb4@2 ab4@3 [c4,eb4,ab4] ~@8, db4@10 ~@8 [gb4,a4]@27 ~@15 b3@21 ~@9 c4@15 ~ c4@8 eb4@8 ~@22, ~@9 e4@10 ~ db4@2 ~@4 d4@6 ~@24 ab4@9 ~@7]/3", // Ab5 Ab Gbm
  Q: "ab3@4 ~@2 c4@6 ab3@4 ~@2 bb3@3 ~@3 bb3@4 c4@2 ~@12 bb3@4 eb4@2, ~ bb3@2 eb4@4 ~@2 c4@3, ~@16 c4@6 ab3@7 ~ [ab3,eb4]@13 ~@5", // Ab5
  R: "~@7 d4@5 f4@5 ~ [d4,f4]@21 ~@2 d4@4 bb3@2 ~, g3@17 ~ g3@28 ~@2, ~@4 bb3@36 f4@7 ~", // Dm
  S: "ab3@4 ~@2 c4@5 ~ [ab3,d4]@4 ~@2 bb3@3 ~@3 bb3@4 c4@2 [ab3,eb4]@10 c4@2 ab3@2 ~ c4@3, ~@4 bb3@5 ~@7 c4@6 ab3@6 ~@16 bb3@3 ~", // Abdim Ab5
  T: "~@6 d4@5 ~ f4@2 ~@4 [g3,bb3,d4,f4]@19 ~@5 eb4@4 f4@2, g3@7 ~@41, ~@4 bb3@8 ~@28 c4@5 ~@3", // Gm7
  U: "~@12 eb4@4 ~@14 eb4@9 ~ c4@2 ~@2 f4@2 ab4@2, ab4@9 eb4@4 ~@8 eb4@2 ~, ~@3 f4@5 c4@6 ~@10, ~@22 f4@19 ~@7",
  V: "[~@6 f4@4 g4@2 bb4@3 ~@4 d4@20 ~@3 f4@4 bb4@6 ~@2 ab4@5 ~ bb4@3 ~ ab4@2 g4@6 f4@6 eb4@6 c4 ~@6 f4@15 ~@3 ab4@2 ~ bb4@2 ab4@5 ~ ab4@5 ~ g4@5 ~ f4@6 d4@5 ~, d4@10 ~@8 [g4,bb4]@27 ~@15 c4@21 ~@25 d4@12 ~@2 d4@11 ~@13, ~@18 f4@20 ~@2 d4@4 ~@8 eb4@12 ~@26 [d4,bb4]@17 ~ f4@2 ~@34]/3", // Gm
  W: "[bb4@5 ~ ab4@5 ~ c4@4 f4@2 eb4@5 ~ f4@6 eb4@6 c4@37 ~@3 [c4,f4,ab4] ~@5 c4 ~ [f4,ab4]@4 ~@2 f4@4 ab4@2, [c4,eb4]@11 ~ g4@3 ~@9 eb4@2 ~@58 c4@3 ~ c4@6 ~@2]/2", // Fm Cm
  X: "bb3@4 ~ bb3@5 eb4 ~ [bb3,eb4,g4] ~@5 [db4,eb4,f4,ab4]@9 ~ [db4,eb4,f4,ab4] ~@5 db4 ~ [db4,f4,ab4]@6 eb4@2 ~ [db4,f4] ~@2, ~@4 eb4@2 ~@30 eb4@3 ~@9", // Eb Db
  Y: "[~@4 db4 ~ [db4,f4,ab4]@9 ~ [db4,eb4]@7 ~ c4@4 ~@2 [c4,ab4] ~@5 [f4,ab4]@4 ~@6 ab4@2 [bb3,g4]@4 ~ bb3 g4 ~@3 bb3 ~ [bb3,eb4,g4] ~@3 db4 ~ [db4,eb4,f4,ab4]@9 ab4 [db4,f4] ~@5 db4 ~ [db4,eb4]@4 eb4@2 db4@4 eb4@2, ~@28 f4@4 ~@4 c4@2 ~@2 c4@5 ~@7 eb4@2 ~@42, ~@42 f4@11 ~@31 [f4,ab4]@8 ~@4]/2", // Db Dbsus2 Fm Eb Db Dbsus2 Fm
  Z: "[f4@4 eb4@2 db4@3 ~ eb4@5 ~@2 d4 d4@5 ~ c4@4 [f4,ab4] ~@5 c4 ~ c4@2 ~@8 ab4@2 [bb3,g4]@4 eb4 ~ bb3 ~@3 bb3 ~ [bb3,eb4,g4] ~@3 db4 ~ [db4,eb4,f4,ab4]@9 ~ [db4,eb4,f4,ab4] ~@5 db4 ~@5 eb4@2 db4@3 ~ f4@6 eb4@2 db4@4 eb4 ~ f4@6 eb4@4 c4 ~ c4@4 [f4,ab4] ~@7 [f4,ab4]@4 ~@6 ab4@2 ~ eb4@3 eb4 ~@5 bb3 ~ [bb3,eb4,g4] ~@6 f4@8 [db4,eb4] ~@6 db4 ~ db4@4 eb4@2 db4@4 f4@6 eb4@2 db4@4 eb4@2 ab4@2 ~@2 d4@8 c4@4 [f4,ab4] ~@5 c4 ~ c4@2 ~@8 ab4@2 ~ g4@3 eb4 ~ bb3 ~@3 bb3 ~ [bb3,g4] eb4 ~@2 db4 ~@2 [eb4,f4]@9 [db4,eb4,ab4] ~@5 db4 ~@2 eb4@2 ~ eb4@2 db4 ~@3 [db4,eb4,ab4] ~, db4 ~@15 [db4,eb4]@2 ~@18 [f4,ab4]@6 f4@11 ~@31 ab4@7 ~@143 f4@10 ~@33 f4@5 ~@6, ~@40 c4@6 ~@2 eb4@2 ~@34 [db4,eb4]@4 ~@6 eb4@2 ~@12 eb4@2 ~@22 c4@2 ~@2 c4@6 ~@2 [bb3,g4]@4 ~@14 [db4,eb4,ab4]@9 ~@9 eb4@2 ~@8 eb4@2 ~@40 c4@5 ~@3 bb3@5 ~@13 [db4,ab4]@9 ~@9 [db4,ab4]@5 ~@7, ~@85 f4@7 ~@46 f4@10 ~@32 [f4,ab4]@8 ~@40 [f4,ab4]@7 ~@53]/6", // Fm Eb Db Fm Eb Dbsus2 Fm Eb …
  AA: "[~@4 db4@2 eb4@4 ~ ab4@2 ~@2 f4@2 eb4@4 db4 ~@2 c4@3 [f4,ab4] ~@5 c4 ~ [f4,ab4]@4 ~@6 ab4 ~@2 eb4@2 ~@2 eb4 bb3 ~@4 bb3 ~ [bb3,eb4,g4] ~@5 [db4,eb4,f4,ab4]@9 [db4,ab4] ~@6 db4 ~ [db4,eb4,f4,ab4]@9 ~ [db4,eb4,f4,ab4] ~, ~@10 f4@2 ~@23 c4@2 ~@2 c4@5 ~@3 [bb3,g4]@5 ~@44, ~@21 f4@5 ~@22]/2", // Fm Eb Db Db5 Db Eb
  AB: "[[db4,ab4] ~@11 eb4@4 ~ ab4@7 ~@3 ab4@3 ~ bb4@3 ~ c4@3 ~@8 bb4@5 ab4@4 ~ bb4@4 ~@2 c5@6 bb4@2 c5@16 ~@10, ~@10 db4@4 ~@2 f4@2 ~@6 c4@5 ~@5 ab4@13 ~@15 bb4@2 ~@32, ~@26 eb4@10 ~@2 eb4@11 ~@47, ~@7 c4@7 ~@2]/2", // Db5
})).s("gm_acoustic_guitar_nylon").gain(0.31)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@33 A B C@2 D E F G@2 H@2 I@2 J K@2 L@6 M@4>".pickRestart({
  A: "~@3 eb4", B: "g4", C: "[f4@47 g4@48 ~]/2", D: "f4@18 bb4@29 ~", E: "[eb4,g4]@47 ~", F: "f4@3 g4, d4",
  G: "[eb4@41 ~ f4@42 g4@12]/2", H: "[~@2 eb5 ab5, eb4@13 ~@3]/2", I: "[g5@3 [f5,ab5]@9 ab5@4]/2", J: "g5@3 [f5,ab5]@5",
  K: "[~@24 ab5@24 g5@17 ~ [f5,ab5]@30, ~ c6@7]/2", // Fm
  L: "[~@24 ab5@24 g5@17 ~ [f5,ab5]@54 ab5@24 g5@18 f5@53 ab5@24 ~ g5@17 f5@31, ~ c6@23]/6", // Fm
  M: "[~@67 ab2@17 ~@12, ~@23 ab5@145 ~@24, ~@10 eb5@11 ~@3]/4",
})).s("gm_string_ensemble_2").gain(0.36)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@56 A B@2>".pickRestart({
  A: "~@23 eb5@7 ~@18", B: "[~@7 ab2@29 ~@60, ~ eb2@35 ~@12, ~@3 eb3@70 ~@23]/2",
})).s("gm_string_ensemble_2").gain(0.15)

// other · brass section · "BRASS 1"
const brass_section = note("<~@5 A ~@39 B@3 ~ C@3 ~ D@3 ~@3>".pickRestart({
  A: "~@39 [ab3,bb4,db5,ab5]@2 ~@7, ~@39 [ab2,eb5] ~@8", // Bbm7 Ab5
  B: "[ab4@2 ~@4 ab4@2 ~@8 bb4 ~ [c4,c5]@3 ~ [eb4,eb5]@85 ~@4 [d4,d5]@8 ~@25, ab3 ~@5 ab3 ~@5 [ab3,ab4]@5 ~@127, ~@15 bb3@2 ~@127]/3", // C Eb D Ab
  C: "[[ab3,ab4]@2 ~@4 ab3@2 ~@4 ab3@3 ~ bb4 ~ c4@3 [eb4,eb5]@85 ~@6 d4@8 ~@24, ~@5 ab4@2 ~@5 ab4@5 c5@3 ~@91 d6@8 ~@25, ~@15 bb3@2 ~@127]/3", // Ab Eb
  D: "[[ab3,ab4]@2 ~@4 [ab3,ab4]@2 ~@4 [ab3,ab4]@3 ~ [bb3,ab4,bb4] ~ c4@2 ~ [eb4,eb5]@88 ~@35, ~@17 c5@3 ~@124]/3", // Ab Bb7 Eb
})).s("gm_brass_section").gain(0.46)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note("<~@26 A@2 B C B D@3 E F@2 G H I@3 J K L M N@2 O M P@2 Q R@2 S@4>".pickRestart({
  A: "[d4@47 ~ e4@17 ~ d4@18 e4@9 ~@3, g4@47 ~]/2", B: "[d4,g4]@47 ~", C: "[e4,a4]@15 ~@3 [e4,a4]@29 ~",
  D: "[e4@71 ~ e4@18 bb4@44 ~@10, a4@25 ~@47, f4 ~@143]/3", E: "ab4@23 ~ ab4@10 ~@2 ab4@4 bb4@2 c5@5 ~, [eb4,c5]@3 ~",
  F: "[bb4@47 ~ [eb4,ab4]@35 ~ ab4@3 ~ bb4@2 c5@6, ~@47 c5@36 ~@13]/2", G: "bb4@47 ~",
  H: "[eb4,ab4,c5]@18 ab4@2 bb4 c5@3", I: "[bb4@62 ~@46 d5@11 ~ c5@11 ~ d5@11 ~, ~@5 g4@3]/3", J: "~@12 bb4@35 ~",
  K: "bb4 ~@35 g4@4 ab4@2 g4@4 ab4@2", L: "g4 ~@5 eb4@2 ~@4 c4 ~@5 f4@15 g4@2 ~ eb4@10 c4@2, ~@18 eb4 ~@16 f4@2 ~@11",
  M: "~ f4 ~@34 g4@4 ab4@2 g4@4 ab4@2, eb4 ~@23",
  N: "[g4@2 ~@4 eb4@2 ~@4 c4 ~@5 bb3@14 ~ bb3 ~@2 ab3@27 d4@9 eb4@12 g4@4 ab4@2 g4@4 ab4@2, ~@18 ab3 ~@15 c4@2 ~@60, ~@35 bb3@2 ~@59]/2",
  O: "g4 ~@2 eb4 ~@2 c4 ~@2 f4@8 ~ eb4@5 c4, ~@18 eb4 ~@15 g4@2 ~@12, ~@35 f4@2 ~@11",
  P: "[g4@2 ~@4 eb4@2 ~@4 c4@2 ~@4 [a3,bb3] b3 ~@13 bb3 ab3@2 bb3@10 ~ bb3@7 c4@10 d4@8 eb4@12 g4@4 ab4@2 g4@4 ab4@2, ~@9 c4@8 ~@6 ab3 ~@24]/2", // Bbmaj7
  Q: "g4 ~@5 eb4@2 ~@4 c4@2 ~@4 f4@15 g4@2 ~ eb4@10 c4@2, ~@18 eb4 ~@16 f4@2 ~@11",
  R: "[~ f4@2 ~@33 g4@3 ab4@2 g4@4 ab4@2 g4@2 ~@5 eb4@2 ~@4 c4@2 ~@4 c4@15 ~ ab3@2 bb3@10 ab3@2, eb4@2 ~@64 bb3 ~@14 bb3@2 ~@13]/2",
  S: "[bb3@2 ~@2 db4 ~ eb4@4 ~@2 f4@6 eb4@6 ab3@121 ~@47, ~@12 eb4 ~@179]/4",
})).s("gm_lead_2_sawtooth").gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C D E F G F G F G F G F G F G F G F H F G I J F G F G F G I J F G F G F G I K F K L M N O N K L P N Q N ~@4
>`.pickRestart({
  A: "~ x", B: "~@3 x ~@4", C: "~@11 x!2 ~@11", D: "~@6 x ~@10 x!2 ~@5", E: "x ~@38 x ~@6 x ~", F: "x ~@10 x!2 ~@11",
  G: "x ~@8 x ~@13 x", H: "x ~@22 x", I: "x ~@10 x!2 ~@8 x ~@2", J: "~@3 x ~@5 x ~@13 x", K: "x ~@10 x!2 ~@10 x",
  L: "x ~@2 x ~ x ~@2", M: "x ~@10 x ~@11 x", N: "x ~@8 x ~@7 x ~@6", O: "x ~@7 x ~@3 x ~@4 x ~@5 x",
  P: "x ~@7 x ~@3 x ~@10 x", Q: "x ~@11 x ~@10 x",
})).gain(0.51)

// drums · rim
const rim = s("rim").struct("<A B C D E F G ~ G ~ G ~ G ~ G ~ G ~ G ~ G H G ~ G ~@34>".pickRestart({
  A: "~@15 x ~ x ~@6", B: "~@3 x ~@11 x ~ x ~@6", C: "~@6 x ~@2 x ~@36 x ~", D: "~@2 x!2 ~@3 x", E: "~@3 x ~@3 x",
  F: "~@11 x ~@12", G: "~ x ~ x", H: "~ x ~@2",
})).gain(0.51)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~ [~@5 x ~@18] [~@7 x] [~@21 x ~@24 x ~] [~@22 x ~@22 x ~@2] [~@3 x ~@4] ~@53>")
  .gain(0.31)

// drums · snare
const snare = s("sd").struct(`<
  ~@5 A ~@19 A B ~ B ~ B ~ C D B ~ B ~ B ~ E ~ B F B F B F B F B F B G B ~@4
>`.pickRestart({
  A: "~@13 x ~@2", B: "~ x ~ x", C: "~@2 x ~@2 x!2 ~", D: "~@4 x ~@8 x ~@2", E: "~@6 x ~@3 x ~@6 x!2 ~@5", F: "~@3 x",
  G: "~@5 x ~@6 x ~@3",
})).gain(0.36)

// drums · clap
const clap = s("cp").struct(`<
  ~@2 A ~@4 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~@5
>`.pickRestart({
  A: "~ x ~@2",
})).gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@43 [~ x ~@2] ~@15>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
// … 49 more lines

More by Stevie Wonder