Strudelify
Truly cover art

1992 · Back To Front

Truly

Lionel Richie

KeyD♭ majorTempo72 bpm
0:00/0:00
// Truly — RICHIE LIONEL
// 72 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 3, 4/4 at bar 4, 2/4 at bar 5, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 59 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/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@7 B@6 C D E F G@2 H I@2 J K@2 L@6 M@6 N@3 O@4 P@2 Q@6 R@6 ~>".pickRestart({
  A: "[~@37 ab5@6 ~ ab5@6 ab5@6 [db4,ab4,c5,eb5,ab5]@49 ~@6 ab5@6 ab5@6 ab5@5 ~@2 [db4,ab4,c5,eb5,ab5]@53 ~@42 eb5@4 f5@4 ~@40 eb5@4 ~ f5@4 ~@36 b4@7 eb5@5 ~ eb5@5, ~@37 [db4,ab4,db5,eb5]@19 ~@54 [db4,ab4,db5,eb5]@19 ~@56 db4@45 ~@4 c4@44 ~@4 b3@46 ~@2 bb3@6, ~@185 f5@30 ab4@4 f5@10 ~@5 f5@30 ab4@4 f5@10 ~@5 f5@44 ~@9, ~@191 ab4@12 ab4@7 gb5@19 ~@17 c5@31 ~@11 ab4@12 eb5@12 ab4@15 ~@9, ~@197 db5@32 ~@11 ab4@12 ab4@6 gb5@19 ~@17 b4@12 ab5@21 ~@9]/7", // Ab Dbsus2
  B: "[~@7 b4@6 f5@6 ~@6 ab5@18 ~@41 f5@5 gb5@4 ~@39 f5@5 gb5@4 ~@43 db5@5 ~@13 db5@6 gb5@6 ~@12 db5@6 ab4@6 ~@12 db5@7 ~@18 db5@11 ~@2, ~ ab4@14 ~@4 d5@24 ~@2 gb5@30 bb4@3 gb5@11 ~@4 gb5@30 bb4@15 ~@10 ab4@40 ~@8 ab4@15 ~@9 ab4@12 ~@12 ab4@12 ~ ab4@12 ab4@17 ~@2, ~@20 bb3@24 ~ eb4@44 ~@4 d4@46 ~@3 [db4,gb5]@46 ~@2 [ab3,f5]@23 ~ [ab3,eb5]@22 ~@2 ab3@48 ~@2, ~@51 bb4@12 bb4@6 ab5@20 ~@16 d5@33 ~@16 db5@12 eb5@22 ~@50 c5@21 ~@29, ~@57 eb5@32 ~@10 bb4@12 bb4@6 ab5@10 gb5@10 ~@23 f5@28 ~@74 eb5@24 ~@2]/6", // Gb5 Db Ab5
  C: "~@19 f4@5 bb4@13 ~@3 bb4@3 c5@5, gb2@15 ~, ~@3 bb3@7 ~@14, ~@12 db4@11 ~@25",
  D: "~@12 c4@6 ab3@4 ~@2 ab4@6 ab3@6 ~ eb4@6 ab3@5, f2, ~ f3@2 ~@5",
  E: "~@18 f4@6 bb4@6 f4@6 db4@3 ~@2 f4@3 gb4@3 ~, gb2 ~, ~ bb3@3 ~@4, ~@12 db4@11 ~@16 eb4@4 ~@5",
  F: "ab3@6 f3@6 c4@6 ab3@4 ~@14 c4@6 f3@5 ~, f2@47 ~, ~@24 ab4@13 ~@11, ~@5 eb4@2 ~",
  G: "[~@23 ab4@12 gb4@11 ~@8 f3@6 ab3@6 ~@12 ab3@6 c4@6 ~ ab3@5, gb2@45 ~@2 f2@48 ~, ~@6 f3@38 ~@22 f3@13 ~@17, ~@12 db4@33 ~@27 ab4@16 ~@8, ~@9 bb3@14 ~@25]/2",
  H: "~@7 eb3@5 [bb3,gb4]@6 ~ gb3@5 ~ db4@6 gb3@6 bb3@5 eb3@5 ~, gb3@7 ~@11 gb4@6 gb4@11 ~@13, ~ eb2@41 ~@6", // Ebm
  I: "[[eb3,ab3,db4]@12 ~ [eb3,ab3,c4]@11 ~@2 [eb3,ab3,bb3]@14 ~@2 [eb3,ab3]@11 ~@40 eb4@3, ab2@12 ~ ab2@11 ~@3 db3@17 f4@4, ~@9 f4@5 ab3@2, ~@60 ab3@12 ab3@7 gb4@17, ~@11 db4@5]/2", // Dbsus2 Ab Ebsus4 Ab5
  J: "~@2 f4@4 ~@35 f4@5 eb4@2, ~@7 c3@41, ~@7 f4@30 ab3@11, ~@13 ab3@12 ab3@6 gb4@17, ~@19 c4@29",
  K: "[~@3 f4@4 ~@37 b3@6 eb4@6 ~@12 b3@7 f4@5 ~@6 ab4@10, ~@7 [b2,f4]@47 ~@2 [bb2,eb4]@23 ~@2 bb2@15, ~@13 ab3@19 ab4@21 ~@43, ~@19 b3@19 ab3@15 ~@9 ab3@14 ~@20, ~@13 eb4@12 ~@15 d4@8]/2", // Bdim Eb5
  L: "[~@48 f4@5 gb4@4 ~@40 f4@4 gb4@3 ~@26 eb4@19 db4@5 ~@13 db4@6 gb4@6 ~@12 db4@6 ab3@6 ~@13 db4@6 ~@18 db4@10 ~@8 bb3@6 ~@18 bb3@6, ~@9 eb3@45 ~@3 d3@47 ~@2 [db3,gb4]@47 ~@2 [ab2,f4]@23 ~ [ab2,eb4]@22 ~@2 ab2@47 ~@2 [gb2,f4]@36, ~@9 gb4@30 bb3@3 gb4@11 ~@5 gb4@30 bb3@3 gb4@10 ~@17 db4@31 ~@54 c4@22 ~@27 db4@12 db4@24, ~@15 bb3@12 bb3@6 ab4@20 ~@17 d4@33 ~@9 ab3@41 ~@8 ab3@15 ~@9 ab3@12 ~@13 ab3@12 ab3@12 ab3@16 ~@20 bb3@11 ~@7, ~@21 eb4@32 ~@11 bb3@12 bb3@6 ab4@21 ~@21 f4@29 ~@75 eb4@22 ~@2 bb4@19 ~@5 bb4@12]/6", // Gb5 Db Ab5 Gbmaj7
  M: "[~@4 bb4@3 ~@2 c5@4 ~@12 c4@6 ab3@10 ~@8 c4@6 ab3@5 ~@8 bb3@6 ~@6 bb3@6 ~@15 eb4@3 f4@3 gb4@3 ~@12 c4@6 ab3@6 ~@13 c4@6 ab3@4 ~@8 bb3@6 ~@6 bb3@6 ~@6 bb3@6 ~@6 bb3@6 ~@13 c5@6 [ab3,ab4]@6 ~@18 ab3@5 ~@20 gb3@7 ~@4 gb3@2, ~ db4@6 bb3@5 ~ f2@48 ~ gb2@48 f2@48 ~ [gb2,f4]@48 ~ f2@48 [eb2,eb4]@32, ~@13 ab4@44 ~@4 bb4@24 ~ bb4@12 ~@12 ab4@24 [ab4,c5]@21 ~@4 bb4@20 ~@4 bb4@23 ~ [c4,ab4]@13 c4@18 ab3@6 c4@10 ~@2 bb3@12 bb3@16 ~@4, ~@19 ab3@10 ~@14 ab3@10 ~@8 db4@12 ~ db4@18 bb3@10 ~@2 bb3@5 ~@7 ab3@10 ~@15 ab3@8 ~@9 db4@13 db4@24 db4@11 ~ f4@46 ~@3 gb4@28 ~@4, ~@62 f4@35 ~ db4@6 ~@42 eb5@10 ~@58 ab3@10 ~@8 ab4@20 ~@10 gb3@10 ~@16]/6", // Ab Gbmaj7 Eb Ab Fm
  N: "[~@4 bb3@7 gb3@5 ~ [ab2,db4,eb4,gb4,ab4]@12 ~ [ab2,c4,eb4,ab4]@12 ~@2 [ab2,bb3,eb4,ab4]@13 ~ [ab2,c4,eb4,ab4]@13 ~@3 ab3@6 f3@6 ab3@6 f3@6 db4@6 ab3@7 db4@8 ~@4 [ab3,b3,eb4]@11 ~ [ab3,b3,f4]@9, ~@74 db3@47 ~@23]/3", // Absus4 Ab Absus2 Ab Abm Fdim
  O: "[~@4 [ab3,b3,eb4,gb4]@11 ~ [ab3,b3,db4,f4]@6 ~ [ab3,b3,db4,f4]@3 ~@3 [bb3,db4,f4,bb4]@17 ~ [bb3,db4,f4,bb4]@6 ~ [bb3,db4,f4,bb4]@23 ~ db4@12 db4@7 ~@6 db4@7 ab3@7 db4@4 ab3@4 ~ ab3@3 ~ db4@6 ~ ab3@6 db4@6 ab3@6 db4@6 ab3@7 db4@6 ab3@4 ~@2 [ab3,b3,eb4]@11 ~, ~@26 [gb4,bb4]@17 ~@21, ~@97 ab3@10 ~@23 [db3,f4]@49 ~@13]/4", // Abm7 Db7 Bbm Abm Gb Db
  P: "[[ab3,b3,f4]@10 ~@3 [ab3,b3,eb4,gb4]@11 ~ [ab3,b3,db4,f4]@12 db4@6 bb3@6 ~@7 bb3@5 ~@7 bb3@6 db4@7 bb3@2 ~@3 [ab2,bb3,db4,gb4]@10, ~@37 [gb2,f4]@46 ~@13, ~@37 bb3@5 ~@8 db4@11 ~ db4@10 ~@24]/2", // Fdim Abm7 Db7 Gb Gbmaj7
  Q: "[~@3 ab2@5 ~ ab2@11 ~@2 ab2@5 ~ ab2@5 ~ ab2@6 [db3,ab3,db4,f4]@18 ~@2 [db3,db4,f4]@5 ~ [db3,ab3,db4,f4]@20 ~@4 [ab3,b3,eb4]@11 ~ [ab3,b3,f4]@10 ~@3 [ab3,b3,eb4,gb4]@11 ~ [ab3,b3,db4,f4]@11 ~@2 [bb3,db4,f4,bb4]@17 ~ [bb3,db4,f4,bb4]@6 ~ [bb3,db4,f4,bb4]@23 ~ db4@12 db4@6 ab3@7 db4@6 ab3@6 db4@5 ab3@4 ab3@3 ~ db4@6 ~ ab3@6 db4@6 ab3@7 db4@6 ab3@7 db4@6 ab3@4, ~@3 [bb3,db4,gb4]@37 ~@19 ab3@5 ~@125 [gb4,bb4]@49 ~ [db3,f4]@49]/6", // Db Abm Fdim Abm7 Db7 Bbm Gb Db
  R: "[~@2 [ab3,b3,eb4]@11 ~@2 [ab3,b3,f4]@10 ~@3 [ab3,b3,eb4,gb4]@11 ~ [ab3,b3,db4,f4]@12 ~ [gb3,bb3,db4,gb4]@12 ~ [f3,ab3,db4,f4]@11 ~@2 gb3@13 db4@7 gb3@7 db4@6 gb3@7 db4@7 gb3@6 db4@7 ~@34 db4@13 ~@47 ab5@6 ~@2 db6@47, ~@79 [eb2,bb3]@52 ~ eb2@27 gb4@11 ~@36 eb4@13 db5@7 eb5@12 ~@50, ~@79 db4@11 ~@49 gb3@21 ~@6 gb3@19 ~@2 db3@26 ab4@25 ~@50, ~@145 a3@22 ~@27 ab3@45 [db3,db5,eb5]@48 ~, ~@152 db4@11 ~@38 db4@37 ~@2 [ab3,db4,ab5]@48]/6", // Abm Fdim Abm7 Db7 Gb Db Eb5 Dbsus2 …
})).s("gm_piano").gain(0.44)

// bass · fretless bass
const bass = note("<~@13 A B C@2 D E F G@2 H I J@2 K@4 L M@8 N O@2 P@4 Q@7 R@4 S@2>".pickRestart({
  A: "gb1@11 ~", B: "f1@23 ~", C: "[gb1@29 db2@8 ~@2 gb1@3 ~@5 f1@37 ~@6 ab1@5 ~]/2", D: "gb1@23 ~",
  E: "f1@38 ~@4 f2@3 bb1@3", F: "eb2@43 ~@5", G: "[ab1@25 ab1@15 ~ ab1@12 ~@2 db2@41]/2", H: "~@7 c2@40 ~",
  I: "~ ab1@3 c2@4 b1@40", J: "[~@2 ab1@5 bb1@29 ~@3 d2@17 ~ eb2@39]/2",
  K: "[~@3 bb1@6 d2@43 bb2@6 db2@43 bb1@3 a1@2 ~ ab1@24 ab2@24 ab3@28 ~@3 eb3@6]/4",
  L: "ab2@2 ~@2 eb2@2 ~@2 ab1@2 ~@3 gb1@35",
  M: "[~@4 c2@2 ~@2 db2@2 ~@3 f1@40 ~@2 ab1@5 ~ gb1@28 ~@3 db2@9 gb1@3 ~@6 f1@40 ~@3 f1@3 ~@3 gb1@37 ~@3 db2@2 ~@2 db2@2 ~@3 f1@37 ~@5 db2@2 ~ d2@2 ~ eb2@39 ~@4 f2@2 ~ gb2@2 ~ ab2@26 ab1@29 ~@2 db2@17 ~ db2@4]/8",
  N: "~@2 db2@14 ~@2 ab1@3 eb2@3 ab1@3 db2@21",
  O: "[~ ab1 ~@2 b1@8 ~ db2 ~@2 bb1@5 ~ ab1@6 gb1@18 ~ gb1@5 ~ gb1@17 ~@2 f1@3 gb1@3 ab1@18]/2",
  P: "[~ ab1@6 ab2@18 eb2@4 ab1@5 db2@18 ~ db2@6 db2@15 ~ ab1 ~@2 eb2@3 d2@3 db2@18 ~ db2@2 ab1 ~@3 b1@8 ~ db2 ~@2 bb1@3 ab1@9 gb1@18 ~ gb1@6 gb1@18 f1@4 gb1@3 ab1@9]/4",
  Q: "[~@6 eb2 ~@2 ab2 ~@3 eb2 ~ ab2@8 ~@2 eb2@3 ab1@11 ~@2 db2@18 db2@6 db2@13 ~@3 ab1@2 ~ eb2@3 ab1@3 db2@21 ~ ab1 ~@2 b1@8 ~ db2@2 ~ bb1@6 ab1@5 ~ gb1@18 ~ gb1@5 ~ gb1@15 ~@4 gb1@3 g1@3 ab1@17 ~ ab1@7 ab2@6 ab2@6 ~ ab2@4 eb2@4 ab1@4 db2@18 ~ db2@6 ~ db2@15 ~ ab1 ~@2 eb2@3 d2@3 ~ db2@18 ~ db2@6 bb1@12 ab1@8]/7",
  R: "[~@5 gb1@13 f1@13 eb2@53 ~ eb2@55 db2@50 ~@2]/4", S: "[db3@5 ~]/2",
})).s("gm_fretless_bass").gain(0.49)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@13 A B C D E F G H@3 I@3 J@6 K@8 L@5 M@6 N@4 ~ O@3>".pickRestart({
  A: "~@42 f3@5 ~, bb3@11 ~ bb3@18 ~@6 bb3@11 ~, ~@3 f3@11 ~ f3@6 ~@3, ~@18 db4@19 ~@11",
  B: "ab3@6 ~@36 c4@5 ~, ~@6 eb3@23 ~ eb3@17 ~, ~@12 ab3@10 ~@2 ab3@11 ~ ab3@12, ~@9 c4@11 ~@4",
  C: "~@42 bb3@5 ~, f3@31 ~@17, ~@6 bb3@23 ~ bb3@11 ~@7, ~@12 db4@21 ~@3 db4@11 ~, ~@9 f4@8 ~@7",
  D: "c4@6 ~@6 c4@6 [ab3,c4]@6 ~@18 f3@5 ~, ~@6 ab3@12 ~@12 eb4@17 ~, ~@12 eb4@12 ab4@23 ~, ~@36 c4@11 ~", // Ab
  E: "~@24 ab4@5 ~@13 bb3@6, gb3@11 ~@4 f4@9, ~@3 bb3@5 ~ bb3@11 ~@4, ~@12 db4@22 ~@2 db4@11 ~",
  F: "~@12 db4@6 ~@12 eb4@5 ~@7 ab3@5 ~, ab3@5 ~, ~@6 eb4@22 ~@8 [f4,ab4]@11 ~, ~@3 c4@5, ~@12 bb4@5 ~@7", // Fm
  G: "~@13 db5@3 ~@5 db4@3 eb4@7 ~@6 eb4@6 eb4@5, ~ eb3@3 ~@4, ~@2 bb4 ~@3, ~@19 gb4@5 gb4@5 ~@2 gb4@17",
  H: "[~ eb4@11 ~ eb4@12 ~ eb4@14 ~ [c4,eb4]@13 ~ f4@6 ~@12 db4@5 ~ f4@11 ~ f4@8 ~@17 gb4@2 ~@3 c4@5 ~ ab3@6 f3@5 ~ [ab3,c4,f4]@5, [ab3,db4]@12 [ab3,c4]@12 ~ [ab3,db4]@15 ab3@12 ~@2 [ab3,db4]@7 ab3@12 ~@5 [ab3,db4]@12 [f3,ab3,db4]@10 ~@2 f3@23 ~ f3@6 ~@12, ~@64 db4@8 ~@36 ab3@7 f4@2 ~ f4@8 ~@18, ~@67 f4@11 ~@34 c4@9 ~@6 [c4,f4]@12 ~@5]/3", // Cm Fm Db5 Ab Db5 Db F5
  I: "[~@2 ab3@2 ~@4 b3@7 ~@5 [b3,eb4]@6 [b3,eb4]@6 b3@5 ab3@6 ~ b3@6 b3@6 b3@6 b3@6 [b3,eb4,ab4]@6 ~ ab4@3 ~@3 [f3,bb3]@5 ~@12 bb3@4 ~@3 bb3@6 bb3@5 ~ [bb3,eb4,gb4]@6 [bb3,eb4,gb4]@6 [eb4,gb4]@6 [bb3,eb4,gb4]@6 [bb3,eb4,gb4]@3, ~ f3@3 ~@3 ab3@30 ~@6 ab3@6 ~ ab3@24 [ab3,b3,eb4]@4 ~@8 [f3,bb3]@12 ~@6 gb3@36 ~@4, ~@5 ab4@9 ~@22, ~@44 eb4@12 eb4@12 ~@19 [d4,g4]@16 ~@2 [eb4,gb4]@12 ~@27]/3", // B Abm Bb5 Ebm Abm Bb5 G5 Ebm
  J: "[~@3 [bb3,eb4]@6 [bb3,d4]@6 bb3@6 ~ gb4@5 ~ [d4,gb4]@6 ~@6 [bb3,d4]@5 ~ [bb3,d4]@6 bb3@6 db4 ~@5 bb3@5 ~ [bb3,db4]@6 [gb3,bb3,db4]@12 [bb3,db4]@6 ~ db4@6 [bb3,db4,gb4]@4 ~@2 f3@5 ~ ab3@5 ~ [ab3,db4]@6 [ab3,db4]@5 ~@2 c4@11 ~ db4@10 ~@2 c4@10 ~@20 eb3@4 ~@2 db4@11 ~@38 f4@11 ~@32 ab4@4, ~@3 gb4@18 gb3@24 gb3@18 ~ gb3@12 ~@18 gb3@11 ~@8 f3@17 ~ [eb3,ab3]@12 [eb3,ab3]@10 ~ eb3@12 eb3@6 ~@2 eb3@12 ~@5 [eb3,ab3]@11 ~@27 db4@22 ~@11 eb4@8 ~@2 eb4@16, ~@21 [bb3,d4]@6 bb3@12 ~@13 d4@3 ~@3 bb3@6 ~@30 bb3@6 ~@55 ab3@12 ab3@11 ~ ab3@12 ~@31 f4@17 ~@49, ~@59 db4@11 gb4@17 ~ gb4@12 ~@68 db4@10 ~@2 eb4@10 ~@26 bb4@18 bb4@18 ~@14 ab4@17 ~@5]/6", // Eb5 Bb D Bb Bbm Gb Bbm Gb …
  K: "[~@2 eb4@10 ~@44 db4@5 ~@44 c4@5 ~@43 db4@6 ~@43 c4@5 ~@44 bb3@4 ~@2 [ab3,db4]@12 ~ [ab3,c4]@14 [eb3,ab3,db4]@14 ~ c4@12 ~@2 [ab3,db4,f4]@7 [ab3,db4,f4]@6 [ab3,db4,f4]@6 ~ [ab3,db4,f4]@11 ~ [db4,f4]@6 [ab3,db4,f4]@6 [ab3,db4,f4]@6 [ab3,db4]@6 [ab3,db4]@6 [f3,ab3,db4,f4]@6 ~ f4@2, ~@20 db4@18 db4@17 ~@14 c4@17 ~ c4@16 ~@14 db4@17 ~ db4@16 ~@14 c4@17 ~@2 c4@17 ~@14 gb3@41 eb3@13 eb3@14 ~@15 [eb3,ab3]@13 ~@2 f3@20 f3@17 ~ f3@12 [f3,f4]@12 ~@9, ~@23 f4@9 f4@17 ~ f4@10 ~@12 eb4@8 ~ eb4@16 ~@2 eb4@11 ~@10 f4@8 ~ f4@17 ~ f4@12 ~@9 eb4@9 eb4@17 ~@2 eb4@12 ~@10 bb3@14 ~ bb3@16 ~@95 ab3@6 ~@34, ~@26 bb4@18 bb4@17 ~@14 ab4@17 ~ ab4@17 ~@13 bb4@18 bb4@18 ~@12 ab4@18 ~ ab4@18 ~@13 eb4@5 ~ eb4@16 ~@2 eb4@11 ~@125 db4@2 ~, ~@224 gb4@14 ~ gb4@16 ~@129]/8", // Db5 Ab Dbsus2 Db Db5 Db Ab5 F
  L: "[~@4 gb4@6 [b3,eb4,gb4]@4 ~@2 [ab3,db4,f4]@6 ~ [ab3,db4]@3 ~@3 f4@6 [bb3,db4]@6 [bb3,db4,f4]@6 ~@6 f4@6 ~ f4@5 [gb3,bb3,db4,f4]@7 [gb3,bb3,db4,f4]@3 ~@3 bb3@6 bb3@6 [bb3,db4,gb4]@6 ~ gb4@6 [bb3,db4,gb4]@6 ~ [db4,gb4]@6 [bb3,db4,gb4]@5 ~ [bb3,db4]@6 ~@3 [f3,ab3,f4]@6 [f3,ab3,f4]@6 [f3,ab3,db4,f4]@6 [ab3,db4]@5 ~ [ab3,db4]@6 [db4,f4]@6 [db4,f4]@6 ~ db4@6 [ab3,db4]@6 [ab3,db4]@6 [ab3,db4,f4]@6 [ab3,db4,f4]@2 ~@4 [b3,eb4,gb4]@6 ~ [b3,eb4]@3 ~@3 [f3,ab3,db4,f4]@6 [f3,ab3,db4,f4]@5 ~ [bb3,db4,f4]@6 [bb3,db4,f4]@5, ~@3 [gb3,b3]@10 ~@3 f3@10 ~@2 gb3@19 f4@6 ~@68 gb4@5 ~@47 f4@6 ~ f4@12 ~@18 gb4@3 ~@27, ~@3 eb4@6 ~@13 f4@4 ~@2 [bb3,db4]@6 ~@13 db4@12 ~@72 db4@12 ~@97, ~@48 gb3@17 ~@13 [gb3,db4,gb4]@12 gb3@13 gb3@13 gb3@10 ~@23 [f3,f4]@12 f3@24 ~ f3@14 ~@29 gb3@11, ~@48 bb3@11 [bb3,db4]@6 ~@31 [bb3,db4]@6 ~@7 bb3@7 ~@45 ab3@18 ~@61]/5", // B Db Db5 Bbm Gbmaj7 Gb Gb5 Gb …
  M: "[~ [db4,f4]@6 ~ [db4,f4]@12 [gb3,bb3,db4,f4]@6 [gb3,bb3,db4,f4]@6 ~ [bb3,db4]@2 ~@4 [bb3,db4]@6 [gb3,bb3,db4]@6 [gb3,bb3,db4,gb4]@6 [bb3,db4,gb4]@12 ~ gb4@6 [bb3,db4,gb4]@6 [db4,gb4]@2 ~@11 ab3@6 f4@6 ~@6 [ab3,db4,f4]@6 ~ f4@5 ~ [ab3,db4,f4]@6 [f3,db4,f4]@6 [db4,f4]@6 [ab3,db4,f4]@6 ~ [ab3,db4,f4]@6 [ab3,db4,f4]@2 ~@4 [gb3,b3,eb4]@6 [b3,eb4]@2 ~@4 [f3,ab3,db4,f4]@6 [db4,f4]@2 ~@4 [bb3,db4]@6 ~ [bb3,db4]@5 ~ [bb3,db4,f4]@6 [db4,f4]@6 ~ f4@5 [bb3,db4,f4]@6 ~ f4@5 ~ [bb3,db4]@3 ~@3 [gb3,bb3]@6 [gb3,bb3]@6 [gb3,db4,gb4]@6 ~ gb3@5 ~ [bb3,db4,gb4]@6 [gb3,bb3,db4,gb4]@6 [bb3,db4,gb4]@5 [bb3,db4,gb4]@5 ~@4, ~ [gb3,bb3]@19 ~@12 f4@2 ~@4 gb3@6 ~@13 gb3@27 ~@4 f3@19 ~ f3@17 f3@6 ~@7 f3@12 f3@8 ~@29 gb3@19 gb3@27 ~@28 gb3@6 ~@7 gb3@11 ~@3, ~@39 gb4@12 ~@18 [bb3,db4]@6 ~@13 db4@12 ~@112 db4@6 ~@19 [db4,gb4]@12 ~@6 [db4,gb4]@6 ~@27, ~@88 ab3@6 ~@7 [ab3,db4]@12 ~@6 [ab3,db4]@6 ~@7 ab3@12 ~@62 bb3@12 ~@6 [bb3,db4]@6 ~@19 bb3@13 ~@26, ~@89 f4@12 ~@6 f4@6 ~@74 f4@12 ~@31 f4@4 ~@54]/6", // Db Gbmaj7 Bbm Gb Gb5 Db B Db …
  N: "[[f3,ab3,db4]@6 [ab3,db4]@6 [ab3,db4,f4]@6 ~@7 db4@6 [ab3,db4,f4]@6 ~ [db4,f4]@6 [db4,f4]@6 [db4,f4]@6 ~ [db4,f4]@6 [f3,ab3,db4,f4]@6 [db4,f4]@3 ~@4 [gb3,b3,eb4]@6 [gb3,b3]@2 ~@5 f4@6 [db4,f4]@2 ~@4 [gb3,bb3,db4,gb4]@10 ~@3 [ab3,db4,f4]@9 ~@5 [eb4,gb4]@46 ~@18, f4@12 ~@6 db4@6 ~ f3@12 f3@25 ~@26 [f3,ab3,db4]@9 ~@16 f3@9 ~@5 [gb3,bb3]@47 ~@18, ~@6 f3@3 ~@9 ab3@12 ~@7 ab3@19 ab3@6 ~@130, ~@19 f4@12 ~@161]/4", // Db Db5 Db B B5 Db Gb Db …
  O: "[~@2 db3@7 ab3@6 ~@19 eb4@7 ab3@6 ~ ab4@50 ~@46, ~@15 db3@32 ~@97, ~@22 ab3@13 ~@109, ~@28 db4@18 ~ db4@51 ~@46]/3",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.8)

// other · french horn
const french_horn = note("<~@17 A B@2 C@2 ~@7 D E@2 F@7 G@3 H@2 I@7 J K@3 L@2 ~@2>".pickRestart({
  A: "~@11 bb3@6 ab3@5 ~ ab4@12 gb4@12 ~",
  B: "[eb4@11 ~ db4@6 c4@5 ~ bb4@17 ~ ab4@4 gb4@3 ab4@11 gb4@12 [bb3,db4,f4]@12 [c4,eb4]@12]/2", // Bbm Cm
  C: "[[bb3,db4]@12 [ab3,c4]@13 bb3@15 ab3@12 ~@44]/2", D: "~@11 c4@11 ~ db4@12 ~ c4@2 ~@2 db4@2 ~@2 eb4@2 ~@2",
  E: "[eb4@3 ~ ab4@3 ~ eb4@3 ~@2 f4@48 eb4@24 ab4@11]/2",
  F: "[~ eb4@12 f4@12 db4@12 ~ c4@6 bb3@18 ab3@48 ~ bb3@48 ab3@47 ~@2 bb3@25 db4@12 bb3@12 db4@13 c4@13 db4@15 c4@15 eb4@23]/7",
  G: "[~@2 f4@25 eb4@12 f4@12 gb4@12 ~ f4@13 bb4@59 ~@2 [bb4,db5]@4 ~@2]/3", // Bbm
  H: "[~ [ab4,c5]@3 ~@3 [gb4,bb4]@4 ~@3 [f4,ab4]@4 ~@2 [eb4,gb4]@4 ~ [db4,f4]@4 [c4,eb4]@4 ~ eb4@25 f4@24 ~ eb4@12]/2", // Ab Gb Fm Ebm Db Cm
  I: "[f4@12 gb4@13 ab4@11 ~ bb4@36 ~ ab4@3 ~@2 gb4@2 ~@2 f4@2 ~@2 ab4@2 ~@2 gb4@2 ~@2 f4@3 ~ ab4@16 gb4@2 ~@3 f4@3 ~ ab4@61 ~ eb4@12 f4@12 ~ gb4@12 ab4@12 bb4@50 db5@10 ~@2 [bb4,db5]@4 ~@2 [ab4,c5]@4 ~@3 [gb4,bb4]@4 ~@2 [f4,ab4]@3 ~@3 [eb4,gb4]@4 ~ f4@4 [c4,eb4]@3 ~@2, ~@163 db4@2 ~@3]/7", // Bbm Ab Gb Fm Ebm Cm
  J: "eb4@25 f4@23", K: "[~@2 eb4@13 f4@13 gb4@12 ab4@12 ~ bb4@13 ab4@13 gb4@40 ~@25]/3", L: "[~@2 gb4@41 f4@52 ~]/2",
})).s("gm_french_horn").gain(0.24).pan(0.7)

// other · pad new age
const pad_new_age = note("<~@13 A@2 B C D E ~@10 F G@3 H I@4 ~@19 J@2>".pickRestart({
  A: "[~@12 db6@6 f5@4 ~@2 f5@13 ~@4 gb5@6 eb5@36 ~@13]/2", B: "~@6 db6 ~ bb5@2 f5@4 f5@2, ~@21 c6@5 ~@22",
  C: "~@4 ab4@3 ~@9, ab3@5 ~@19, ~@6 eb4@13 ~@29", D: "~@12 db6@6 bb5@11 ab5@6 gb5@12 ~", E: "f5@43 ~@5",
  F: "~@12 c5@10 ~ db5@12 ~ eb5@12", G: "[db5@8 ~@5 f5@12 db6@12 f5@18 gb5@6 eb5@46 ~@2 f5@13 f6@6 db6@6 c6@6 bb5@4]/3",
  H: "~ f5@6 eb5@17", I: "[~@3 eb5@4 ~@2 eb5@6 f5@12 db6@12 f5@18 gb5@6 ~ eb5@48 ~ eb5@46 ~@33]/4",
  J: "[ab4@53 ~@43]/2",
})).s("gm_pad_new_age").gain(0.22).pan(0.4)

// other · string ensemble 1
const string_ensemble_1 = note("<~@20 A@4 B C@3 D@8 E F G@4 H@2 I@2 J@5 K@4 ~@4>".pickRestart({
  A: "[[db4,f4,db5]@12 ~ [c4,eb4]@12 ~ [bb3,db4,bb4]@15 [ab3,c4,ab4]@13 f5@11 ~ db5@12 ab5@43 c5@6 ab5@48 b5@9 bb5@8, ~ c5 ~@14]/4", // Db Cm Bbm Ab
  B: "~ ab5@6 ~ eb6@24 d6@6 b5@6 bb5@4", C: "[~@2 ab5@6 gb5@19 eb5@6 bb5@42 eb5@6 bb5@43 ab5@6 db6@14]/3",
  D: "[~@5 f5@5 ab5@19 db5@6 eb5@72 ~@19 db6@6 c6@19 bb5@5 bb5@4 c6@3 ab5@43 ~@18 db6@6 c6@18 bb5@6 bb6@13 ab6@33 ~@3 db6@3 c6@9 bb5@12 c6@18 db6@6 eb6@19 db6@6 c6@8]/8",
  E: "~ db6@9 eb6@6 f6@18 eb6@7 db6@7", F: "~@2 eb6@8 f6@6 ~ f6@17 gb6@5 eb6@4 ~ f6@4",
  G: "[~ gb6@5 eb6@5 f6@5 gb6@5 eb6@5 ~ ab6@41 db6@3 f6@3 ~ bb6@12 ab6@12 gb6@13 f6@3 gb6@10 ab6@60 ~ f6@3 ~ gb6@2]/4",
  H: "[~@3 eb6@3 ~ f6@4 gb6@4 ~ eb6@4 ~ f6@4 gb6@4 ~ eb6@3 ~ bb6@12 ~ ab6@28 db6@3 f6@3 ab6@3 bb6@12]/2",
  I: "[ab6@12 gb6@13 f6@3 gb6@6 g6@3 ab6@50 ~@9]/2",
  J: "[~@41 gb6@11 f6@13 eb6@19 db6@6 bb6@12 ab6@12 gb6@13 f6@12 ab6@62 f6@3 ~ gb6@3 ~@2 eb6@3 ~ f6@2 ~@2 gb6@3 ~ eb6@3 ~@2 f6@3 ~ gb6@3 ~ eb6@4 ~]/5",
  K: "[bb6@12 ab6@31 ~ c6@3 db6@4 bb6@12 ab6@13 eb7@12 db7@12 ~ bb6@12 ab6@15 gb6@54 ~@10]/4",
})).s("gm_string_ensemble_1").gain(0.33).pan(0.4)

// other · orchestral harp
const orchestral_harp = note(`<
  ~@11 A@2 B@3 C D@2 E F@2 G H I J K L ~@2 M N O P Q R S T U V ~ W X Y Z AA AB AC@2 AD AE AF ~@5 AG ~
>`.pickRestart({
  A: "[~@46 c4@8 ~@4 db4@8 ~@4 eb4@9 ~@4 db4@5 ~@8]/2",
  B: "[~@30 bb4@13 ~@5 c5@12 eb4@6 c4@6 eb4@6 c4@14 ~@4 bb4@14 ~@16 bb4@10 ~@2 db4@6, ~@18 db4@22 ~@7 eb4@12 ~@36 db4@15 ~@4 db4@22 ~@8, ~@24 f4@19 ~@77 f4@14 ~@10]/3",
  C: "c5@6 c5@6 ab4@6 c4@6 c5@6 ab4@12 ab4@5 ~, eb4 ~@3",
  D: "[[bb3,db4]@18 db4@6 ab4@17 ~@7 c5@13 ~@5 c4@6 ab4@17 ~@7, ~@47 eb4@14 ~@35]/2", E: "ab4@8 ~ bb3@3 gb4@10 ~@2",
  F: "[[f4,db5]@8 ~@5 [eb4,c5]@9 ~@3 [db4,bb4]@12 ~@4 [c4,ab4]@11 ~@2 f5@3 ab4@3 db5@6 ~ ab4@5 f4@19 ~@5]/2", // Db Cm Gb Fm
  G: "~@7 f5@3 ab4@3 c5@2 ~ c5@7 ~@5 f4@15 ~@5, ~@25 c4@5 ~@18",
  H: "~@10 ab4@3 ~@12 b3@11 ~@2 b3@10, ~@8 f5@4 ~ b4@20 ~@15", I: "~@2 eb4@6 eb4@6 ab4@12 eb4@6 d4@11 ~@5",
  J: "~@9 gb4@6 bb3@22 ~@11", K: "~@8 gb4@7 bb3@20 ~@13", L: "~@10 gb4@6 ab3@7 ~@5 f4@6 eb4@14",
  M: "~@6 ab3 bb3 c4 [db4,eb4] [f4,gb4] bb4@13 db4@7 f4@6 bb4@9 ~@2, ~@11 ab4 ~@36", N: "~@13 ab4@8 ~@27, ~@3 c4 ~@8",
  O: "~@25 db4@7 f4@6 bb4@8 ~@2", P: "~@13 c4@2 ab4@10 ~@23", Q: "~@9 db4@2 f4@2 bb4@3", R: "~@14 c4@2 ab4@11 ~@21",
  S: "~@28 bb3@7 eb4@6 gb4@7", T: "~@17 gb4@3 ~@10 eb4 ~@13 gb4@2 ~@2",
  U: "~@13 gb3 [ab3,bb3] [c4,db4] [eb4,f4] [gb4,ab4] [bb4,c5] [db5,eb5] [f5,gb5] [ab5,bb5] [c6,db6] [eb6,f6] [gb6,ab6] bb6 [c7,db7] ~@21", // Absus2 Dbmaj7 Ebsus2 Gbsus2 Bbsus2 Dbsus2 Gbmaj7 Absus2 …
  V: "~@17 ab4@2 ~ db5@3 ~@25", W: "~@9 f5@3 bb5@3 db6@2 ~@31",
  X: "~@16 c7 bb6 ab6 [f6,gb6] eb6 [c6,db6] bb5 [gb5,ab5] f5 [db5,eb5] c5 [ab4,bb4] [f4,gb4] eb4 [c4,db4] bb3 [gb3,ab3] f3 eb3 db3 ~@12", // Gbmaj7 Dbmaj7 Gbsus2 Dbsus2 Absus2 Gbmaj7 Dbmaj7 Gbsus2
  Y: "~@20 ab4@3 db5@3 ~@22", Z: "~@37 f5@2 ~@9, ~@18 db5 ~@5",
  AA: "~@4 db4@3 ~ f4@2 ~ bb4@3 db5@3 f5@3 bb5 ~@2 db6 ~@15 gb5 ~@8",
  AB: "~@26 gb3 ab3 bb3 c4 [db4,eb4] f4 gb4 [ab4,bb4] c5 [db5,eb5] f5 [gb5,ab5] [bb5,c6] [db6,eb6] [f6,gb6] [ab6,bb6,c7] db7 ~@5", // Dbsus2 Absus2 Dbsus2 Gbsus2 Bbsus2 Dbsus2 Gbmaj7 Ab
  AC: "[~@17 [db5,f5]@20 ~@5 eb5@10 ~@2 f5@7 ~@5 gb5@10 ~@3 f5@4 ~@8 [db5,f5]@5, ~@16 ab4@20 ~@54 bb4@5 ~]/2", // Db
  AD: "~@11 db4@4 ~@2 bb4@4 f5@8 ~@19, ~@5 f4@2 ~@9",
  AE: "~@35 c7 bb6 [gb6,ab6] f6 eb6 db6 c6 [ab5,bb5] gb5 [eb5,f5] db5 [bb4,c5] [gb4,ab4]", AF: "f4 [db4,eb4] ~@46",
  AG: "~@2 ab5@35 ~@11, db6@11 ~@5",
})).s("gm_orchestral_harp").gain(0.14).pan(0.2)

// other · flute
const flute = note("<~@8 A@5 ~@17 B@7 ~@22>".pickRestart({
  A: "[~@10 gb5@11 ab5@8 gb5@7 ~ f5@2 gb5@4 ~@2 d5@12 bb5@36 ~ bb5@17 ab5@6 db6@19 f5@6 ab5@95 ~@3]/5",
  B: "[~@12 f5@49 eb5@45 ~@3 f5@48 ~ eb5@43 ~@6 f5@48 eb5@44 ~@37]/7",
})).s("gm_flute").gain(0.16).pan(0.3)

// chords · electric guitar jazz
const electric_guitar_jazz = note("<~@30 A B@8 ~ C@2 D E ~@5 F G H ~@3 I@2 ~@2>".pickRestart({
  A: "~@13 bb4@35, ~ [db4,f4]@3", // Db
  B: "[~@13 [c4,eb4,ab4]@42 ~@7 [f4,bb4]@39 ~@10 ab4@17 ~ ab4@3 bb4@3 ab4@23 ~@3 bb4@40 ~@8 ab4@16 ~ [eb4,ab4]@3 [f4,bb4]@3 [e4,a4] [eb4,ab4]@21 ~@3 [db4,gb4]@18 [db4,gb4]@6 [bb3,db4,gb4]@12 ~ gb4@11 bb3@13 ~ ab3@13 bb3@14 ~ ab3@14 ~@23, ~@61 db4@40 ~@9 [c4,eb4]@47 ~@2 [db4,f4]@42 ~@6 c4@16 ~@33 bb3@12 ~@25 [bb3,db4]@12 ~@79, ~@208 eb4@17 ~@4 [e4,a4] ~@154]/8", // Ab Bb5 Ab5 Bb5 A5 Ab5 Gb5 Gb …
  C: "[~@24 ab4 [gb4,bb4]@2 [f4,ab4]@6 ~@12 db5@3, ~@47 f4@3 ~@46]/2", // Gb Fm
  D: "~ c5@6 bb4@5 ~@2 ab4@6 gb4@4 ~ f4@5 eb4@5 ~@13", E: "~@5 ab3@3 bb3@3 a3 ab3@20 ~@16, ~@8 a3 ~@39",
  F: "~@26 [f5,ab5]@6 ~ [db5,f5]@6 [bb4,db5]@9", G: "~@9 db5@6 c5@6 ~ bb4@5 ~ ab4@6 gb4@4 ~ f4@4 eb4@5",
  H: "~@19 ab3@3 [a3,bb3]@2 ~ ab3@23, ~@25 a3 ~@22", I: "[~@50 db4@19 ~@27, ~@47 ab4@22 ~@27]/2",
})).s("gm_electric_guitar_jazz").gain(0.15).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@13 A ~@2 B A B A@2 C D@2 E F G H I J K@2 L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG ~@5
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~ x ~@6", D: "~@7 x ~@40", E: "~ x ~@2 x ~@14 x ~@4", F: "~@3 x ~@12", G: "~ x ~ x ~@12",
  H: "~@2 x ~@2 x ~@18", I: "~@11 x ~@23 x ~@12", J: "~ x ~@2", K: "~@13 x ~@34", L: "~@7 x ~@6 x ~@33",
  M: "~@7 x ~@16", N: "~@3 x ~ x ~@10", O: "~@5 x ~@10", P: "~@5 x ~@2 x ~@15", Q: "~@17 x ~@30",
  R: "~@3 x ~@6 x ~@15 x ~@17 x ~@3", S: "~@2 x ~@18 x ~@5 x ~@20", T: "~@7 x ~@4", U: "~@4 x!2 ~@2",
  V: "~@7 x ~@26 x ~@13", W: "~@11 x ~@18 x ~@5 x ~@11", X: "~@13 x ~@23 x ~@10", Y: "~@8 x ~@5 x ~@17 x ~@6 x ~@8",
  Z: "~@28 x ~@12 x ~@6", AA: "~@11 x ~@5 x ~@24 x ~@5", AB: "~@13 x ~@5 x ~@24 x ~@3",
  AC: "~@14 x ~@5 x ~@18 x ~@5 x ~@2", AD: "~@15 x ~@6 x ~@25", AE: "x ~@24 x ~@18 x ~@3", AF: "~ x ~@12 x ~@9",
  AG: "~@5 x ~@12 x ~@12 x ~@16",
})).gain(0.44)

// drums · rim
const rim = s("rim").struct("<~@21 A B C@2 D E@2 F G@2 H I J K L M N ~@21>".pickRestart({
  A: "~@3 x ~@4", B: "~@19 x ~@28", C: "~@5 x ~@6", D: "~@7 x ~@8", E: "~@11 x ~@12", F: "~@23 x ~@24", G: "~ x",
  H: "~ x ~@23 x ~@22", I: "~ x ~@24 x ~@21", J: "~ x ~@11 x ~@10", K: "~ x ~@7 x ~@6", L: "~@3 x ~@24 x ~@19",
  M: "~@4 x ~@24 x ~@18", N: "~@5 x ~@42",
})).gain(0.27)

// drums · snare
const snare = s("sd").struct("<~@38 A B C D E F G H I J K L M N O ~@6>".pickRestart({
  A: "~@19 x ~@4", B: "~@5 x ~@7 x ~@2", C: "~@16 x ~@24 x ~@6", D: "~@3 x ~@3 x", E: "~@47 x", F: "~@23 x ~@24",
  G: "x ~@24 x ~@22", H: "~ x ~@24 x ~@21", I: "~ x ~@14", J: "~@5 x ~@24 x ~@17", K: "~@6 x ~@24 x ~@16",
  L: "~@8 x ~@24 x ~@14", M: "~@3 x ~@12", N: "~@6 x ~@12 x ~@4", O: "~@5 x ~@10",
})).gain(0.49)

// drums · low tom
const low_tom = s("lt").struct("<~@30 A ~@7 B ~@3 C ~@7 D ~ E ~@6>".pickRestart({
  A: "~ x ~@4", B: "~@14 x ~@4 x ~@28", C: "~@13 x ~ x ~@8", D: "~@39 x ~@4 x ~@3", E: "~@47 x",
})).gain(0.49)

// drums · hihat
const hihat = s("hh").struct("<~@13 A@7 ~ B C D E F G H I J ~@8 K L M N O P Q R S T U V W X Y ~@6>".pickRestart({
  A: "~ x ~@2", B: "~ x ~ x ~ x ~ x", C: "~ x ~@5 x ~@11 x ~@11 x ~@11 x ~@4", D: "~ x ~@5 x ~@12 x ~@11 x ~@11 x ~@3",
  E: "~@2 x ~@5 x ~@11 x ~@11 x ~@12 x ~@2", F: "~ x ~ x ~@3 x ~@3 x ~@3 x", G: "~@3 x ~@5 x ~@12 x ~@11 x ~@11 x ~",
  H: "~@4 x ~@5 x ~@11 x ~@11 x ~@12 x", I: "~@5 x ~@5 x ~@11 x ~@17 x ~@5 x", J: "~@5 x ~@12 x ~@29",
  K: "~@16 x ~@2 x ~@2 x ~", L: "~@2 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~",
  M: "~@4 x ~@5 x ~@5 x ~@24 x ~@5 x", N: "~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5", O: "~@7 x ~@33 x ~@5 x",
  P: "~@5 x ~@5 x ~@5 x ~@5 x ~@6 x ~@5 x ~@5 x ~@5", Q: "x ~@5 x ~@6 x ~@5 x ~@5 x ~@22",
  R: "~@2 x ~@11 x ~@11 x ~@12 x ~@8", S: "~ x ~ x ~@12", T: "~@5 x ~@11 x ~@12 x ~@11 x ~@5",
  U: "x ~@5 x ~@6 x ~@5 x ~@11 x ~@12 x ~@3", V: "~@4 x ~@2 x ~@2 x ~@2 x ~@2 x ~@7", W: "~@3 x ~ x ~@10",
  X: "~@6 x ~@5 x ~@6 x ~@5 x ~@5 x ~@6 x ~@5 x ~@3", Y: "~@2 x ~@6 x ~@5 x ~@5 x ~@6 x ~@5 x ~@13",
})).gain(0.27)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@7 B ~@3 C ~@3 D ~@3 E ~ F ~@6>".pickRestart({
  A: "x!2 ~@10", B: "~@3 x ~@4", C: "~@7 x ~@8", D: "~@4 x!2 ~ x ~@8", E: "~@22 x ~@5 x ~@6 x ~@12", F: "~@41 x ~@6",
})).gain(0.44)

// drums · open hat
const open_hat = s("oh").struct("<~@21 A ~@7 B ~@10 C ~ D ~ E ~@2 F G H ~@9>".pickRestart({
// … 26 more lines

More by Lionel Richie