Strudelify

It's My Turn

Ross

KeyE♭ majorTempo76 bpm
0:00/0:00
// It's My Turn — Ross
// 76 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(76/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@3 C@2 D@2 E@2 F@3 G@6 H@2 I@2 J K@3 L M N O P@6 Q R S R T U V@2 W X@6 Y@8 Z AA@4 AB AC@3 AD@3 AE@2
>`.pickRestart({
  A: "[~@40 g4@25 ~@9 g5@3 ab5@3 ~ [g4,bb4]@15 d5@5 [c5,eb5,g5,bb5]@10 [c5,eb5,f5,ab5]@10 ~ ab4@16 ab4@5 [ab4,c5,eb5]@11 ~ [g4,g5]@6 [ab4,ab5]@6 ~ [bb3,d4]@10 ~ bb3@5 bb3@5 [bb3,c4,eb4]@10 ~ [bb3,c4,eb4]@10 ~ eb4@8 f4@13 [ab3,c4,eb4]@12 g4@6 ~ ab4@6 [bb3,d4]@16 ~ d4@5 ~ [c4,eb4,g4,bb4]@8, ~@81 [g5,bb5]@20 ~@21 [c5,f5,ab5]@21 ~@25 [g4,bb4]@21 ~@22 [ab3,c4]@21 ~@12 [ab3,c4,eb4]@12 ~ [g4,bb4]@22 ~@9]/6", // Gm Cm7 Fm7 Ab G Ab Bb Cm7 …
  B: "[~@3 [c4,eb4,f4,ab4]@5 ~ g4@5 g4@5 ~ ab4@5 ~ [ab3,ab4]@11 ab3@11 ~ ab3@11 ~ [c4,eb4,g4]@12 ~@8 a3@7 [c4,eb4,g4]@16 ~ g4@7 eb4@7 ~ bb3@6 g3@6 ~ bb3@6 d4@5, ~@14 ab3@11 ~@12 [c4,eb4]@23 ~ a3@19 ~@8 ab3@31 ~@25, ~@37 [c4,eb4,g4]@7 ~@16 f4@12]/3", // Fm7 Ab Cm
  C: "[~@2 [c4,eb4]@12 ~ c4@7 eb4@7 ~ [ab4,bb4,db5]@12 gb4@12 ~ [bb4,eb5]@24 [b3,b4]@5 ~ [bb4,bb5]@5 ~ [ab4,ab5]@5, ~@2 g4@27 ~@67]/2", // Cm Bbm7 Eb5 B Bb Ab
  D: "[gb5@5 ~ [ab4,ab5]@22 ~ [bb3,bb4]@5 ~ [ab4,ab5]@5 [gb4,gb5]@5 ~ f5@5 ~ [gb4,gb5]@22 [ab3,ab4]@5 ~ [gb4,gb5]@5 ~ [f4,f5]@5 ~ [eb4,eb5]@4]/2", // Ab Bb Ab Gb Ab Gb F Eb
  E: "[~ [f4,f5]@6 ~ [eb4,eb5]@6 [db4,db5]@7 ~ b4@7 [bb4,f5]@24 ~ [bb4,eb5]@23 ~ [eb4,ab4]@5 ~ g5@5 ~ f5@5 ~]/2", // F Eb Db Bb5 Eb5 Ab5
  F: "[eb5@5 ~ c5@5 ~ bb4@5 ~ f4@5 c5@5 ~ [g4,bb4]@5 ~ f5@5 ~ eb5@5 ~ d5@5 ~ [bb4,c5,eb5]@5 g4@5 ~ eb5@5 ~ g4@5 ~ [f4,ab4]@6 eb5@6 d5@6 c5@6 ~ [bb4,d5]@6 c5@6 ~ f5@7 c6@7 [g4,bb4]@6 eb4@6 g4@4]/3", // Gm Cm7 Fm Bb Gm
  G: "[~@2 bb4@6 ~ [f4,bb4]@6 d4@6 f4@6 bb4@6 bb4@6 ab4@6 ~ eb5@6 ab4@6 g4@6 f4@6 g4@6 ab4@6 ~ bb4@5 ~ g4@2 ~ ab4@2 ~ bb4@5 ~ c5@5 ~ [g4,bb4]@5 ~ d4@5 ~ f4@5 ~ bb4@5 ~ bb4@5 ~ ab4@5 ~ eb5@5 ~ ab4@5 ~ g4@5 ~ f4@8 ~ eb4@2 ~ f4@5 ~ [c4,d4,g4]@11 ~ [c4,d4,g4]@11 ~ [b3,d4,g4]@23 ~ [eb4,g4]@12 [eb4,g4]@12 ~ bb3@6 ~ g3@6 ~ bb3@6 ~ g3@6 ~ [eb4,g4]@8]/6", // Bb5 Gm Csus2 G Eb
  H: "[~@4 [eb4,g4]@5 ~ bb3@5 ~ [d4,f4]@11 ~ [d4,f4]@11 ~ bb4@5 ~ ab4@5 ~ eb5@5 ~ ab4@5 ~ g4@5 ~ f4@5 ~ eb4@5 ~ f4@5 ~ [eb4,g4]@8]/2", // Eb Dm Eb
  I: "[~@4 [eb4,g4]@5 ~ bb3@5 ~ [d4,f4]@11 ~ [d4,f4]@5 ~ bb3@5 ~ [eb4,g4]@12 [eb4,g4]@12 ~ f4@12 ~ eb4@12 [gb4,bb4]@6]/2", // Eb Dm Eb Gb
  J: "db4@6 ~ [gb4,bb4]@6 db4@6 [gb4,bb4]@6 eb4@6 [gb4,bb4]@6 eb4@6 ~ [ab4,b4]@4", // Gb Abm
  K: "[~@2 eb4@6 [ab4,b4]@6 eb4@6 [ab4,b4]@6 eb4@6 ~ [f4,ab4]@6 db4@6 [gb4,bb4]@6 db4@6 [gb4,bb4]@6 db4@6 ~ [gb4,bb4]@6 eb4@6 [gb4,bb4]@6 eb4@6 [ab4,b4]@6 eb4@6 ~ [ab4,b4]@6 eb4@6 [f4,ab4]@6 db4@6 ~ [f4,ab4]@6 db4@6]/3", // Abm Fm Gb Abm Fm
  L: "[g4,bb4]@12 [g4,bb4]@5 ~ eb4@5 ~ [eb4,g4]@12 [eb4,g4]@5 ~ c4@5 ~", // Gm Eb
  M: "c4@5 ~ [eb4,g4]@5 ~ [d4,f4]@5 ~ [c4,eb4]@5 ~ [d4,f4]@5 ~ bb3@5 ~ d4@5 ~ f4@5 ~", // Eb Dm Cm Dm
  N: "g3@5 ~ [d4,f4]@5 ~ [c4,eb4]@5 ~ [bb3,d4]@5 ~ [c4,eb4]@5 ~ g3@6 c4@5 ~ eb4@5 ~", // Dm Cm Bb Cm
  O: "g3@5 ~ eb4@5 ~ d4@5 ~ c4@5 ~ d4@5 ~ bb3@5 ~ f3@5 ~ bb3@5 ~",
  P: "[[eb4,g4]@5 ~ bb3@5 ~ [eb4,g4]@5 ~ bb3@5 ~ [d4,f4]@5 ~ bb3@5 ~ [d4,f4]@5 bb3@5 ~ [eb4,g4]@5 ~ c4@5 ~ [eb4,g4]@5 ~ c4@5 ~ [eb4,ab4]@5 ~ c4@5 ~ [eb4,ab4]@5 ~ c4@5 ~ [eb4,g4]@5 ~ bb3@5 ~ [eb4,g4]@5 ~ bb3@5 [d4,g4]@5 ~ bb3@5 ~ [d4,g4]@5 ~ bb3@5 ~ [eb4,g4]@5 ~ c4@6 [eb4,g4]@5 ~ c4@5 ~ [eb4,ab4]@5 ~ c4@5 ~ [eb4,ab4]@5 ~ c4@5 ~ [c4,d4,g4]@18 c4@2 ~ d4@3 [b3,d4,g4]@18 b3@3 d4@3 [c4,eb4]@12 ~ [c4,eb4]@12 bb3@6 ~ g3@6 bb3@6 ~ eb4@5]/6", // Eb Dm Eb Ab5 Eb G5 Eb Ab5 …
  Q: "~ [g3,bb3,eb4]@11 ~ [bb3,eb4]@5 ~ g3@5 ~ [bb3,d4]@11 ~ [bb3,d4]@5 ~ g3@5", // Eb Eb5 Bb
  R: "~ [eb4,g4]@5 ~ c4@5 ~ [eb4,g4]@5 ~ c4@5 ~ [eb4,ab4]@5 ~ c4@5 ~ [eb4,ab4]@5 ~ c4@5", // Eb Ab5
  S: "~ [eb4,g4]@5 ~ bb3@5 ~ [eb4,g4]@5 ~ bb3@5 ~ [d4,f4]@5 ~ bb3@5 ~ [d4,f4]@5 ~ bb3@5", // Eb Dm
  T: "~ [gb4,bb4]@5 ~ db4@5 ~ gb4@5 ~ bb4@5 ~ [gb4,bb4]@5 ~ eb4@5 ~ gb4@5 ~ bb4@5", // Gb
  U: "~ [eb4,ab4]@5 b3@5 ~ eb4@5 ~ ab4@5 ~ [eb4,ab4]@5 ~ b3@5 ~ [db4,f4]@5 ~ db4@5 ~", // Ab5 Db
  V: "[[db4,gb4]@5 ~ bb3@5 ~ [db4,gb4]@5 ~ bb3@5 ~ [eb4,gb4]@5 ~ bb3@5 eb4@5 ~ gb4@5 ~ [b3,eb4,gb4]@6 b3@6 eb4@6 ~ gb4@6 [db4,f4]@12 [db4,f4]@6 ab3@6]/2", // Gb5 Ebm B Db
  W: "~ [eb4,g4]@11 [eb4,g4]@5 ~ bb3@5 ~ [eb4,g4]@11 ~ [eb4,g4]@5 ~ c4@5 ~", // Eb
  X: "[[f4,ab4]@11 ~ [f4,ab4]@5 ~ c4@5 ~ [f4,bb4]@5 ~@12 ab4@5 ~ [eb4,g4]@11 ~ [eb4,g4]@5 ~ bb3@5 ~ [c4,eb4]@11 ~ [c4,eb4]@5 ~ bb3@5 ~ [c4,f4]@11 ~ [c4,f4]@11 [d4,f4]@5 ~ bb3@5 ~ d4@5 ~ f4@5 ~ [gb4,bb4]@5 ~ db4@5 ~ gb4@5 ~ bb4@5 ~ [gb4,bb4]@5 ~ eb4@5 ~ gb4@5 ~ bb4@5 ~ [eb4,ab4]@5 b3@5 ~ eb4@5 ~ ab4@5 ~ [eb4,ab4]@5 ~ b3@5 ~ [db4,f4]@5 ~ db4@5 ~ [db4,gb4]@5 ~ bb3@5 ~ [db4,gb4]@5 ~ bb3@5 ~ [eb4,gb4]@5 bb3@5 ~ eb4@5 ~ gb4@5 ~ [b3,eb4,gb4]@4, ~@30 d4@17 ~@241, ~@36 f4@11 ~@241]/6", // Fm Bb5 Eb Cm F5 Dm Gb Ab5 …
  Y: "[~@2 b3@5 ~ eb4@5 ~ gb4@5 ~ [db4,f4]@11 ~ [db4,f4]@5 ~ ab3@5 ~ [eb4,g4]@11 [eb4,g4]@5 ~ bb3@5 ~ [eb4,g4]@11 ~ [eb4,g4]@5 ~ c4@5 ~ [f4,ab4]@11 ~ [f4,ab4]@5 ~ c4@5 ~ [f4,bb4]@5 ~@12 ab4@5 ~ [eb4,g4]@11 ~ [eb4,g4]@5 ~ bb3@5 ~ [c4,eb4]@11 ~ [c4,eb4]@5 ~ bb3@5 ~ [c4,f4]@11 ~ [c4,f4]@11 [d4,f4]@5 ~ bb3@5 ~ d4@5 ~ f4@5 ~ [gb4,bb4]@5 ~ db4@5 ~ gb4@5 ~ bb4@5 ~ [gb4,bb4]@5 eb4@5 ~ gb4@5 ~ bb4@5 ~ [eb4,ab4]@5 ~ b3@5 ~ eb4@5 ab4@5 ~ [eb4,ab4]@5 ~ b3@5 ~ [db4,f4]@5 ~ db4@5 ~ [db4,gb4]@5 ~ bb3@5 [db4,gb4]@5 ~ bb3@5 ~ [eb4,gb4]@5 ~ bb3@5 ~ eb4@5 ~ gb4@5 [b3,eb4,gb4]@5 ~ b3@5, ~@121 d4@17 ~@246, ~@127 f4@11 ~@246]/8", // Db Eb Fm Bb5 Eb Cm F5 Dm …
  Z: "~ eb4@5 ~ gb4@5 ~ [db4,f4]@11 ~ [db4,f4]@5 ab3@5 ~ [eb4,g4]@11 ~", // Db Eb
  AA: "[[eb4,g4]@5 ~ bb3@5 ~ [eb4,g4]@11 [eb4,g4]@5 ~ c4@5 ~ [f4,ab4]@11 ~ [f4,ab4]@5 ~ c4@5 [f4,bb4]@5 ~@13 ab4@5 ~ [eb4,g4]@11 [eb4,g4]@5 ~ bb3@5 ~ [c4,eb4]@11 ~ [c4,eb4]@5 ~ bb3@5 ~ [c4,f4]@11 [c4,f4]@11 ~ [d4,f4]@5 ~ bb3@5 ~ d4@5 f4@5 ~ [gb4,bb4]@5 ~ db4@5 ~ gb4@5, ~@64 d4@17 ~@111, ~@70 f4@11 ~@111]/4", // Eb Fm Bb5 Eb Cm F5 Dm Gb
  AB: "~ bb4@5 ~ [gb4,bb4]@5 ~ eb4@5 gb4@5 ~ bb4@5 ~ [eb4,ab4]@5 ~ b3@5 ~ eb4@5 ~", // Gb Ab5
  AC: "[ab4@5 [eb4,ab4]@5 ~ b3@5 ~ [db4,f4]@5 ~ db4@5 ~ [db4,gb4]@5 ~ bb3@5 ~ [db4,gb4]@5 bb3@5 ~ [eb4,gb4]@5 ~ bb3@5 ~ eb4@5 ~ gb4@5 ~ [b3,eb4,gb4]@5 b3@5 ~ eb4@5 ~ gb4@5 ~ [db4,f4]@11 [db4,f4]@5 ~ ab3@5 ~ [eb4,g4]@11 [eb4,g4]@5 ~ bb3@5]/3", // Ab5 Db Gb5 Ebm B Db Eb
  AD: "[~ [eb4,g4]@11 [eb4,g4]@5 ~ c4@5 ~ [f4,ab4]@11 ~ [f4,ab4]@5 c4@5 ~ [f4,bb4]@5 ~@12 ab4@5 ~ [eb4,g4]@11 ~ [eb4,g4]@5 bb3@5 ~ [c4,eb4]@11 ~ [c4,eb4]@5 ~ bb3@5 [c4,f4]@11 ~ [c4,f4]@11 [d4,f4]@5, ~@53 d4@17 ~@74, ~@59 f4@11 ~@74]/3", // Eb Fm Bb5 Eb Cm F5 Dm
  AE: "[~ bb3@5 ~ d4@5 ~ f4@5 [g4,bb4,d5,f5]@76 ~@2]/2", // Gm7
})).s("gm_piano").gain(0.35).pan(0.7)

// chords · piano
const piano_2 = note("<~ A B@7 C@4 D@4 E@5 F@6 G@8 H@8 I@6 J@8 K@3 L@5 M@8 N@5>".pickRestart({
  A: "~@43 g4@5, ~@11 g3@5, ~@19 d4@5",
  B: "[~@13 g2, ~@5 c4@20 ~ f3@21 bb2@24 ~ g2@42 ~ f2@16 ab3@29 ~@13 g3@32 ~@13 f3@17 f3@43 ~@58, ~@10 eb4@15 ~@6 c4@15 ~@7 f3@18 ~@22 c3@20 ~@7 c3@15 ~ bb2@24 ~ g2@21 ~@13 ab3@32 ~@109, ~@15 ab4@32 ~@12 ab3@34 ~@6 eb3@15 ~@11 f3@10 ~@7 f3@40 ~@8 eb3@15 ~@7 c3@15 ~@2 bb2@22 ~@2 a2@56 ~@27, ~@36 f4@35 ~@33 g3@31 ~@32 d3@15 ~@2 c3@21 ~ f2@21 ~@53 ab2@55 ~]/7",
  C: "[~@91 ab3@5, ~@2 ab2@25 ~@3 gb2@22 ~@3 eb2@22 ~@14 ab3@17 ab3@14 ~@14 gb3@31 ~@9 eb3@14 ~@2, ~@8 eb3@19 ~@9 db3@16 ~@9 bb2@16 ~@2 ab2@20 ~@26 gb2@20 ~@14 eb4@31 ~@2, ~@15 g3@37 ~@33 eb3@14 ~@3 db3@20 ~@9 db3@14 ~@3 eb3@20 ~@2 ab2@20 ~@2, ~@42 gb3@25 gb3@33 ~@13 db4@31 ~@9 bb3@14 ~@25]/4",
  D: "[~@23 f3, ~ db3@24 ~@4 eb2@21 ~@4 c2@20 ~@10 c3@14 ~@4 bb2@20 ~@9 bb2@14 ~@4 c3@19 ~@4 f2@20, ~@8 ab3@17 ~@11 bb2@15 ~@9 g2@14 ~@4 f2@20 ~@27 eb2@19 ~@16 c4@32, ~@14 db4@37 ~@39 f3@18 f3@14 ~@15 eb3@31 ~@10 c3@14, ~@42 eb3@24 eb3@32 ~@16 bb3@31 ~@9 g3@14 ~@24]/4",
  E: "[~@227 g2@12 g2, ~@5 bb2@22 ~@5 eb2@20 ~@17 g3@32 ~@42 eb3@31 ~@11 eb3@13 ~@11 eb3@13 ~@18, ~@11 f3@16 ~@11 bb2@14 ~@5 g2@20 ~@4 ab2@20 ~@5 bb2@20 ~@5 eb2@19 ~@17 g3@24 g3@31 ~@18, ~@18 bb3@34 ~@11 d3@14 ~@17 ab3@24 ab3@31 ~@12 d3@13 ~@41 ab3@25, ~@44 eb3@32 ~@11 eb3@14 ~@11 eb3@13 ~@12 bb2@13 ~@5 g2@19 ~@5 ab2@19 ~@5 bb2@19 ~@18]/5",
  F: "[~@35 c2@12 ~@13 f2@13 ~@209 gb2@6, ~@11 g2@44 ~@19 f2@32 ~@6 g2@18 ~@6 ab2@18 ~@6 bb2@18 ~@6 eb2@17 ~@19 g3@24 g3@31 ~@13, ~@47 c2@33 ~@8 eb2@18 ~@18 g3@24 g3@30 ~@18 eb3@29 ~@13 eb3@12 ~@13 eb3@12 ~@13, ~@94 bb2@12 ~@12 d3@12 ~@42 ab3@29 ~@13 d3@11 ~@45 ab3@18, ~@100 eb3@30 ~@12 eb3@12 ~@12 eb3@12 ~@12 bb2@11 ~@7 g2@17 ~@7 ab2@18 ~@7 bb2@18 ~@13]/6",
  G: "[~@49 bb2 ~@3 eb3 ~@3 c3 ~@3 d3 f3@2, db3@11 ~@8 eb2@17 ~@14 eb3@11 ~@7 db3@17 ~@14 db3@11 ~@8 eb3@17 ~@7 ab2@17 ~@33 eb2@16 ~@32 f2@16 ~@32 eb2@15 ~@33 f2@15 ~@33, ~@7 gb3@24 gb3@30 ~@20 db4@29 ~@14 bb3@11 ~@20 ab3@18 ab3@11 ~@20 eb3@18 eb3@10 ~@20 f3@24 f3@27 ~@21 g3@27 ~@33, ~@25 bb2@11 ~@8 ab2@17 ~@32 gb2@17 ~@20 eb4@29 ~@21 db4@28 ~@20 g3@28 ~@14 d3@10 ~@20 eb3@18 ~@30 f3@24 ~@12, ~@56 ab3@18 ab3@11 ~@20 gb3@29 ~@14 eb3@11 ~@8 db3@17 ~@14 bb2@10 ~@8 c3@16 ~@14 c3@10 ~@8 bb2@16 ~@32 c3@15 ~@33 bb2@15 ~@9]/8",
  H: "[~@6 bb2@6 ~@18 d3@6 ~@17 c3@6 ~@18 eb3@6 ~@18 bb2@6 ~@17 d3@6 ~@18 eb3@6 ~@18 eb3@6 ~@12 g2@24 ~@81 bb2@6 ~@18 d3@6 ~@18 eb3@6 ~@18 eb3@6 ab3@11, eb2@12 eb3@24 g3@23 ab3@24 ab3@24 eb3@23 g3@24 ab3@24 ab3@26 ~@34 c3@40 ~@23 eb3@25 ~@23 ab3@24 ~@11, ~@24 g2@15 ~@8 ab2@15 ~@9 bb2@14 ~@10 eb2@14 ~@9 g2@14 ~@10 ab2@14 ~@10 bb2@14 ~@34 g2@39 ~@4 g2@21 ~@11 eb2@13 ~@23 g3@25 ~@34, ~@263 f2@40 ~@10 g2@13 ~@11 ab2@13 ~@11 bb2@13 ~@10]/8",
  I: "[~@7 bb2@6 ~@18 d3@6 ~@12 ab2@18 ~@36 db3@6 ~@18 bb2@6 ~@17 eb3@6 ~@18 ab3@6 ~@18 db3@6 ~@18 bb3@5 ~@18 eb3@6 ~@19 ab3@6 db4@12, ~ eb2@12 eb3@24 g3@25 ~@11 bb2@36 gb3@24 gb3@23 ab3@18 ~@6 db4@24 gb3@23 eb4@24 ab3@18 ~@19, ~@25 g2@13 ~@29 ab2@19 ~@11 gb2@12 ~@12 eb2@12 ~@12 ab2@12 ~@11 db3@12 ~@12 gb2@12 ~@12 eb3@12 ~@11 ab2@12 ~@13 db3@12 ~@12]/6",
  J: "[~@7 bb2@5 ~@344 db3@6 ~@18 eb2@4, ~ eb2@11 eb3@23 ~ eb3@23 ~ f3@18 f3@29 eb3@23 ~ c4@22 ~@25 bb3@22 ~@20 bb2@28 ~@13 db3@10 ~@20 db3@28 ~@13 ab2@10 ~@42, ~@24 c2@11 ~@13 f2@11 ~@36 eb2@11 ~@13 c3@11 ~@19 c3@28 ~@19 db3@28 ~@14 ab2@10 ~@37 gb2@10 ~@14 eb3@10 ~@19 eb3@27 ~@19, ~@30 g2@29 ~@13 bb2@11 ~@18 bb2@28 ~@14 f2@11 ~@12 bb2@10 ~@14 gb2@10 ~@14 eb2@10 ~@19 eb3@28 ~@2 db4@22 ~@19 bb3@27 ~@3 ab3@18 ab3@22, ~@54 c3@29 ~ bb3@23 ~@18 g3@28 ~@2 f3@17 f3@28 ~@2 gb3@22 ~@2 gb3@22 ~ ab3@18 ab3@28 ~@2 gb3@22 ~ eb4@21 ~@27 db4@16]/8",
  K: "[~@19 c2@6 ~@18 f2@6 ~@18 bb2@6 ~@17 eb2@6 ~@18 c3@6 ~@18 f2@6, ~@2 bb2@27 ~@2 eb3@18 c3@27 ~@3 bb3@21 ~@20 g3@24, ~@7 eb3@18 g2@27 ~@3 f3@18 f3@27 ~@2 eb3@21 ~@3 c4@18, ~@32 bb2@9 ~@7]/3",
  L: "[~@17 bb2@6 ~@18 gb2@6 ~@41 ab2@6 ~@17 db3@6 ~@18 gb2@6 ~@17 eb3@6 ~@17 ab2@6 ~@18 db3@6 ~@17 eb2@6 bb2@6, c3@26 ~@3 bb3@18 db3@23 bb2@26 ~@45 db3@25 ~@21 eb3@25 ~@28, ~@6 f3@17 f3@26 ~@4 gb3@20 ~@3 gb3@20 ~@4 ab3@17 ab3@25 ~@4 gb3@19 ~@5 eb4@19 ~@28 db4@19 ~@4, ~@65 eb2@8 ~@21 eb3@25 ~@4 db4@19 ~@22 bb3@25 ~@4 ab3@18 ab3@25 ~@4]/5",
  M: "[~@12 c2@5 ~@18 f2@6 ~@17 bb2@6 ~@6 bb3@12 eb2@5 ~@18 c3@6 ~@18 f2@5 ~@18 bb2@6 ~@17 gb2@6 ~@18 eb2@6 ~@17 ab2@6 ~@17 db3@6 ~@18 gb2@6 ~@17 eb3@6 ~@18 ab2@5 ~@18 db3@5 ~@18 eb2@5 ~@6 eb3@11, eb3@17 g2@24 c3@24 ~@23 bb2@24 ~@5 c4@17 c3@24 ~@6 bb3@17 db3@24 bb2@24 ~@5 ab3@17 ab3@23 ~ db3@23 ~@6 eb4@17 ~@6 ab3@17 ab3@23 ~ bb2@16, ~@23 eb3@19 ~@5 f3@17 f3@18 ~@11 eb3@18 g3@24 ~@5 f3@18 f3@24 ~@5 gb3@18 ~@5 gb3@18 eb3@24 ~@5 db4@18 ~@6 gb3@17 bb3@23 eb3@23 ~@6 db4@17 ~@17]/8",
  N: "[~@151 bb3@11 eb2@77 ~, ~ c2@28 ~@18 bb2@28 ~ bb2@22 ~@7 c4@16 ~@18 bb2@22 ~@79, ~@7 g2@22 ~@7 f3@16 ~ f3@22 ~@7 eb3@16 ~ g3@22 ~@7 f3@16 ~ f3@16 ~@79, ~@12 eb3@17 ~ c3@22 ~@7 bb3@16 ~@18 c3@28 ~ c3@22 ~@96, ~@12 f2@14 ~@9 eb2@14 ~@9 f2@14 ~@48]/5",
})).s("gm_piano").gain(0.4).pan(0.3)

// bass · electric bass finger
const bass = note("<~@13 A@7 B@2 C D@3 E@6 F G F H I@6 J K J L M N O@2 P Q@6 R@4 S@7 T U V W@2 X Y@3 Z@2>".pickRestart({
  A: "[~@29 eb3@24 ~ c3@23 ~ f2@23 ~ bb2@23 eb2@23 ~ c2@23 f2@24 ~ bb1@27 eb2@24 ~ g2@24 ab2@24 ~ bb2@18 bb1@6 ~ eb2@13]/7",
  B: "[~@11 g2@23 ~ ab2@23 ~ bb2@17 ~ ab2@5 ~ g2@13]/2", C: "~@5 g3@2 ~ a3@2 ~ b3@23 ~ c2@13",
  D: "[~@6 c2@6 f2@27 ~ eb2@17 ~ eb2@5 ~ g1@17 ~ g1@5 ~ ab1@17 ~ ab1@5 ~ bb1@11 ~ c2@5 ~ d2@5 ~ eb2@8]/3",
  E: "[~@10 eb2@5 ~ g1@17 ~ g1@5 ~ ab1@18 ~ ab1@6 bb1@18 ~ ab1@6 gb1@18 ~ gb1@6 eb2@18 bb1@6 ~ ab1@18 eb2@6 db2@12 ~ bb1@6 ab1@6 gb1@18 gb1@6 ~ eb2@18 eb2@6 ab1@12 ~ ab2@6 gb2@3 eb2@3 db2@18 ~ db2@6]/6",
  F: "eb2@17 ~ d2@5 ~ c2@17 ~ g1@5 ~", G: "f1@17 ~ c2@5 ~ bb1@23 ~", H: "f1@17 ~ c2@5 ~ bb1@11 ~ c2@5 ~ d2@5 ~",
  I: "[eb2@17 ~ eb2@5 ~ g1@17 g1@5 ~ ab1@17 ~ ab1@5 ~ bb1@11 ~ c2@5 ~ d2@5 ~ eb2@17 ~ eb2@5 g1@17 ~ g1@5 ~ ab1@17 ~ ab1@5 ~ bb1@11 ~ bb1@5 ~ ab1@5 ~ g1@24 g1@24 c2@24 ~ f1@25]/6",
  J: "~ eb2@17 ~ eb2@5 ~ g1@17 ~ g1@5", K: "~ ab1@17 ~ ab1@5 ~ bb1@8 ~ f2@2 ~ bb2@5 ~ ab2@2 ~ g2@2",
  L: "~ ab1@17 ~ ab1@5 ~ bb1@17 ~ ab1@5", M: "~ gb1@23 ~ eb2@23", N: "~ ab2@23 db2@17 ~ ab2@5 ~",
  O: "[gb2@23 ~ eb2@23 ab2@24 ~ db2@24]/2", P: "~ eb2@17 d2@5 ~ c2@17 ~ g1@5 ~",
  Q: "[f1@23 ~ bb1@17 bb1@5 ~ eb2@17 ~ d2@5 ~ c2@17 ~ g1@5 ~ f1@17 ~ f1@5 bb1@11 ~ bb1@5 ~ ab1@5 ~ gb1@17 ~ gb1@5 ~ eb2@17 ~ bb1@5 ~ ab1@17 eb2@5 ~ db2@17 ~ bb1@2 ~ ab1@2 ~ gb1@17 ~ gb1@5 ~ eb2@11 bb2@5 ~ eb3@5 ~ ab2@4]/6",
  R: "[~@8 gb2@5 ~ eb2@5 ~ db2@17 ~ db2@5 ~ eb2@17 d2@5 ~ c2@11 ~ g2@5 ~ c3@2 ~ g2@2 ~ f2@17 ~ c2@5 ~ bb1@17 bb1@5 ~ eb2@17 ~ d2@5 ~ c2@17 ~ g1@5 ~ f1@6]/4",
  S: "[~@2 g1@7 ~ ab1@7 bb1@5 ~ c2@5 ~ db2@5 ~ bb1@2 ~ ab1@2 ~ gb1@17 ~ gb1@5 ~ eb2@17 bb1@5 ~ ab1@17 eb2@5 ~ db2@11 ~ db2@8 ~ ab1@2 ~ gb1@17 gb1@5 ~ eb2@11 ~ eb3@5 ~ db3@2 ~ bb2@2 ab2@7 ~ bb2@7 ~ b2@7 ~ db3@11 ~ db3@2 bb2@2 ~ ab2@2 ~ gb2@2 ~ eb2@17 ~ d2@5 ~ c2@11 c3@5 ~ bb2@2 ~ g2@2 ~ f2@17 ~ c2@5 bb1@11 ~ c2@5 ~ d2@5 ~ eb2@14]/7",
  T: "~@3 d2@5 ~ c2@17 ~ g1@5 ~ f1@7 g1@7 ~", U: "ab1@7 ~ bb1@5 ~ c2@5 ~ d2@5 bb1@2 ~ ab1@2 ~ gb1@11 ~ gb2@5",
  V: "~ f2@5 ~ eb2@17 bb1@2 ~ gb1@2 ~ ab1@11 ~ bb1@5 ~",
  W: "[b1@5 db2@8 ~ eb2@2 ~ e2@2 ~ db2@2 ~ bb1@2 ~ ab1@2 ~ gb1@17 gb1@5 ~ eb2@17 ~ bb1@5 ~ ab1@11 ab2@5 ~ gb2@2 ~]/2",
  X: "eb2@2 ~ db2@5 db3@5 ~ db2@5 ~ db2@5 ~ eb2@17 d2@5",
  Y: "[~ c2@11 c3@5 ~ bb2@2 ~ g2@2 ~ f2@17 c2@5 ~ bb1@11 ~ c2@5 d2@5 ~ eb2@17 d2@5 ~ c2@17 ~ g1@5 f1@7 ~ g1@7 ~ ab1@7 bb1@5]/3",
  Z: "[~ c2@5 ~ d2@5 ~ bb1@2 ~ ab1@2 eb1@77 ~]/2",
})).s("gm_electric_bass_finger").gain(0.4).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note("<~@17 A@8 B@7 C D@3 E@6 F@2 G H I J K@2 L M@8 N@4 O P Q R@3 S@5 T@3 U@2>".pickRestart({
  A: "[~@32 bb5@67 ~ ab5@6 g5@12 ab5@12 ~ bb5@47 ~ bb5@11 ~ g5@5 ~ eb6@5 ~ d6@17 ~ f6@5 ~ g6@23 ~ g5@23 ~ c5@12 eb5@12 ~ f5@27 ~ bb4@56]/8",
  B: "[~@4 c5@23 ~ d5@11 ~ eb5@35 ~ f5@11 ~ g5@25 f5@18 ~ f5@6 bb5@36 ~ gb5@6 bb5@6 ~ db6@12 b5@12 bb5@12 ~ ab5@12 db5@18 bb5@6 ~ gb5@24 bb5@12 ~ ab5@6 eb5@6 f5@6 eb5@6 ~ db5@6 b4@6]/7",
  C: "bb4@17 ~ bb5@5 ~ g5@17 ~ g6@5 ~",
  D: "[g6@11 ~ f6@5 ~ eb6@5 ~ f6@35 ~ eb6@5 ~ d6@5 ~ eb6@35 ~ d6@5 ~ c6@5 ~ d6@5 ~ c6@5 ~ bb5@5 ~ c6@5 ~]/3",
  E: "[bb5@17 ~ g5@5 ~ bb5@23 bb5@5 ~ ab5@5 ~ eb6@5 ~ ab5@5 ~ g5@5 ~ f5@5 ~ bb4@5 ~ c6@5 ~ bb5@17 ~ g5@5 bb5@23 ~ bb5@5 ~ ab5@5 ~ eb6@5 ~ ab5@5 ~ g5@5 ~ f5@5 ~ f5@11 ~ c5@24 b4@12 d6@12 c6@12 ~ eb5@12 f5@25]/6",
  F: "[~ bb4@71 ~ g4@11 ~ ab4@11]/2", G: "~ bb4@17 ~ bb4@5 ~ f5@11 ~ eb5@5 ~ d5@5", H: "~ eb5@47",
  I: "~ db5@23 ~ ab5@11 ~ gb5@11", J: "~ b4@23 f5@23 ~", K: "[db5@17 ~ bb5@5 ~ ab5@11 gb5@11 ~ b5@24 ~ f5@24]/2",
  L: "~ g5@17 ab5@2 ~ a5@2 ~ bb5@23 ~",
  M: "[g5@11 ~ f5@5 ~ eb5@5 ~ g5@11 ~ f5@11 g5@23 ~ bb5@23 ~ f5@23 f5@2 ~ g5@2 ~ ab5@2 ~ bb5@2 ~ c6@2 ~ d6@2 ~ eb6@2 ~ f6@2 ~ gb6@23 ~ bb6@11 ~ db6@11 ~ b5@11 bb6@11 ~ ab6@11 ~ b5@11 ~ bb5@11 ~ ab6@11 ~ gb6@11 ab5@5 ~ bb5@5 ~ b5@11 ~ bb5@5 ~ b5@5 ~ db6@23 ~ bb5@11 f6@11 ~ g6@11 ~ g5@11 ~ ab5@5]/8",
  N: "[~@7 eb6@11 ~ d6@11 ~ ab5@5 f5@5 ~ g5@11 ~ f6@11 ~ eb6@11 ~ eb5@5 ~ g5@5 ~ ab5@11 ~ g5@5 ~ ab5@5 f5@2 ~ g5@2 ~ ab5@2 ~ bb5@2 ~ c6@2 ~ d6@2 ~ eb6@2 ~ f6@2 ~ gb6@23 ~ bb6@11 db6@11 ~ b5@8]/4",
  O: "~@4 bb6@11 ab6@11 ~ b5@11 ~ bb5@9", P: "~@2 ab6@11 ~ gb6@11 ~ ab5@5 ~ bb5@5 b5@11",
  Q: "~ bb5@5 ~ b5@5 ~ db6@23 bb5@11 ~",
  R: "[f6@11 ~ g6@11 g5@11 ~ ab5@11 ~ g6@11 f6@11 ~ ab5@5 ~ f5@5 ~ g5@11 f6@11 ~ eb6@11 ~ eb5@5 ~ g5@5 ~ ab5@11 g5@4]/3",
  S: "[~@2 ab5@5 ~ f5@2 ~ g5@2 ~ ab5@2 ~ bb5@2 ~ c6@2 ~ d6@2 eb6@2 ~ f6@2 ~ gb6@23 ~ bb6@11 db6@11 ~ b5@11 ~ bb6@11 ab6@11 ~ b5@11 ~ bb5@11 ~ ab6@11 gb6@11 ~ ab5@5 ~ bb5@5 ~ b5@11 bb5@5 ~ b5@5 ~ db6@23 bb5@11 f6@11]/5",
  T: "[~ g6@11 g5@11 ~ ab5@11 ~ g6@11 f6@11 ~ ab5@5 f5@5 ~ g5@11 ~ f6@11 eb6@11 ~ eb5@5 ~ g5@5 ab5@11 ~ g5@5 ~ ab5@5 f5@2 ~ g5@2]/3",
  U: "[~ ab5@2 ~ bb5@2 ~ c6@2 ~ d6@2 ~ eb6@2 ~ f6@2 g6@77 ~]/2",
})).s("gm_string_ensemble_1").gain(0.25)

// chords · string ensemble 1
const string_ensemble_1_2 = note("<~@5 A@4 B ~@3 C@5 D@2 E@6 F@6 G H G I J@7 K@2 L M@4 N O@8 P@6 Q@8 R@6>".pickRestart({
  A: "[~@4 g4@6 ~ ab4@6 [g4,bb4]@45 [f4,ab4]@46 ~ [eb4,g4]@58 ~ [d4,f4]@24]/4", B: "~@2 [c4,eb4]@27 ~@19",
  C: "[~@29 bb3@24 ~@49 d4@23 ~@72 [bb3,d4]@27 [eb4,g4]@16, ~@29 eb4@72 ~@24 eb4@71 ~@44, ~@29 g4@48 ~ f4@46 ~ g4@46 ~ f4@51 ~@17, ~@54 c4@47 ~ bb3@46 ~ c4@48 ~@43]/5", // Bb Eb
  D: "[~@9 [d4,f4]@24 c4@49 ~ g4@13, ~@11 eb4@21]/2", // Dm
  E: "[~@11 [d4,f4]@23 ~ [c4,eb4]@47 ~ [d4,g4]@47 ~ c4@53 g4@23 ~ [d4,f4]@23 ~ c4@47 ~ g4@8, ~@131 eb4@83 ~@18 eb4@56]/6", // Dm Cm G5 Dm
  F: "[~@16 [d4,f4]@23 ~ [c4,eb4]@50 db4@24 ~@26 b3@36 ~ f4@12 ~@49 b3@24 ~ [db4,f4]@24 ~, ~@90 gb4@49 ~@50 gb4@49 ~@50, ~@115 eb4@61 ~ db4@36 ~ eb4@49 ~@25]/6", // Dm Cm Db
  G: "[eb4,g4]@47 ~", H: "ab4@23 ~ d4@23 ~, f4@47 ~", I: "ab4@23 ~ bb4@23 ~, f4@47 ~",
  J: "[[eb4,g4]@23 ~ [d4,f4]@23 c4@47 ~ g4@23 [d4,f4]@23 ~ [c4,eb4]@47 ~ d4@48 c4@51 eb4@23 ~ [d4,f4]@23, ~@47 eb4@71 ~@72 g4@123 ~@23]/7", // Eb Dm Cm Dm
  K: "[~ c4@47 ~ g4@23 ~ [d4,f4]@23, ~ eb4@71 ~@24]/2", L: "~ [c4,eb4]@47",
  M: "[~ db4@23 ~@25 b3@35 f4@17 ~@42 b3@24 ~ [db4,f4]@24, ~ gb4@47 ~@54 gb4@47 ~@43, ~@25 eb4@59 db4@35 ~ eb4@48 ~@24]/4", // Db
  N: "~ [eb4,g4]@47", // Eb
  O: "[ab4@23 ~ d4@23 [eb4,g4]@47 ~ ab4@23 bb4@23 ~ db4@23 ~@25 b3@35 f4@11 ~@48 b3@23 ~ [db4,f4]@23 ~ [eb4,g4]@47 [f4,ab4]@5, f4@47 ~@48 f4@47 gb4@47 ~@48 gb4@47 ~@100, ~@166 eb4@59 db4@35 ~ eb4@47 ~@76]/8", // Eb Db Eb Fm
  P: "[~@19 bb4@11 ~ ab4@11 [eb4,g4]@47 ~ ab4@23 bb4@23 ~ db4@23 ~@24 b3@35 f4@11 ~@47 b3@11, ~@19 d4@23 ~@48 f4@47 gb4@46 ~@48 gb4@46 ~@11, ~@161 eb4@58 db4@35 eb4@34]/6", // Eb
  Q: "[~@13 [db4,f4]@23 [eb4,g4]@46 ~ ab4@23 d4@23 ~ [eb4,g4]@46 ~ ab4@23 bb4@23 db4@23 ~ eb4@23 b3@35 f4@11 ~@48 b3@20, ~@83 f4@46 ~@48 f4@46 gb4@81 ~ db4@35 eb4@44, ~@317 gb4@46 ~@21]/8", // Db Eb
  R: "[~@3 [db4,f4]@23 [eb4,g4]@46 ab4@23 c5@11 ~ bb4@11 [eb4,g4]@46 ab4@23 d4@23 [eb4,g4]@77 ~, ~@36 f4@23 ~@23 f4@23 bb3@26 ~@13]/6", // Db Eb
})).s("gm_string_ensemble_1").gain(0.25)

// other · orchestral harp
const orchestral_harp = note("<~@27 A ~@7 B ~@17 C ~@3 D ~@3 E ~@3 F ~@7 G ~@5>".pickRestart({
  A: "~@26 ab3@2 ~@13 c7@2 ~@5, ~@14 c4!2 ab4 eb5!2 c6 ab6 ~@3, ~@29 eb4@2 eb4@2 c5@2 ab5@2 ab5@2 eb6@2 ~@7",
  B: "~@36 bb3 d4 f4 bb4 d5 bb4 d5 f5 bb5 d6 f6 bb6",
  C: "~@28 bb2 d3 f3 bb3 d4 f4 d4 f4 bb4 d5 f5 bb5 f5 bb5 d6 f6 bb6 d7 ~@2",
  D: "~@31 ab3 f3 ab3 db4 f4 ab4 db5 ab4 db5 f5 ab5 db6 f6 ~@4", E: "~@30 d4 f4 bb4 d5 bb4 d5 f5 bb5 d6 f6 bb6 ~@7",
  F: "~@24 ab3 f3 [ab3,db4] f4 ab4 db5 ab4 db5 f5 ab5 db6 f6 ~@12", // Db5
  G: "~@11 db3 f3 ab3 f3 ab3 db4 f4 ab4 db5 ab4 db5 f5 ab5 db6 f6 ~@22",
})).s("gm_orchestral_harp").gain(0.3).pan(0.6)

// other · orchestral harp · soft notes
const orchestral_harp_soft = note("<~@27 A ~@29 B ~@3 C ~@3 D ~@7 E ~@5>".pickRestart({
  A: "~@25 eb3@2 ~@21, ~@23 ab2@2 ~@23, ~@12 c3 ~@11", B: "~@26 db2 f2 ab2 db3 f3 ~@17", C: "~@29 bb3 ~@18",
  D: "~@19 db2 f2 ab2 db3 f3 ~@24", E: "~@8 db2 f2 ab2 ~@37",
})).s("gm_orchestral_harp").gain(0.15).pan(0.6)

// other · piccolo
const piccolo = note("<~ A@4 ~@8 B@5 ~@61>".pickRestart({
  A: "[~@33 bb4@41 ab4@46 bb4@32 ab4@5 g4@5 ~ eb4@10 f4@19]/4",
  B: "[~@29 f5@24 ~ eb5@23 ~ ab4@23 ~ f5@23 f5@23 ~ eb5@23 eb5@24 ~ d5@27 ~@16]/5",
})).s("gm_piccolo").gain(0.35).pan(0.3)

// other · oboe
const oboe = note("<~@9 A@2 B C D@2 ~@12 E@5 F ~@13 G H ~@2 I J@3 ~@25>".pickRestart({
  A: "[~@30 db5@49 b4@17]/2", B: "bb4@5 ~ ab4@22 ~ bb4@11 ab4@8", C: "~@4 gb4@22 ab4@17 ~ gb4@4",
  D: "[~ f4@28 g4@48 ~@19]/2",
  E: "[~@42 bb4@24 ~ db5@36 ~ b4@12 bb4@12 ~ ab4@12 db4@24 ~ eb4@24 b4@24 ~ db5@6 b4@6 ~ ab4@6 f4@6]/5", F: "eb4@47 ~",
  G: "~ db5@23 ~ bb4@23", H: "~ b4@23 db5@23 ~", I: "~ g4@17 ab4@2 ~ a4@2 ~ bb4@23 ~",
  J: "[g5@11 ~ f5@5 ~ eb5@5 ~ g5@11 ~ f5@11 g5@11 ~ eb5@5 ~ d5@5 ~ eb5@23 ~ f5@23 ~@26]/3",
})).s("gm_oboe").gain(0.3).pan(0.7)

// other · french horn
const french_horn = note("<~@53 A@4 B@2 C D E@4 F@4 G@2 H@3 ~@5>".pickRestart({
  A: "[~@46 db4@23 ~ gb4@23 ~ b3@5 bb4@5 ~ ab4@5 ~ gb4@5 ~ ab4@23 ~ bb3@5 ~ ab4@5 ~ gb4@5 ~ f4@5 ~ gb4@23 ab3@4]/4",
  B: "[~@2 gb4@5 ~ f4@5 ~ eb4@5 ~ f4@5 ~ eb4@5 ~ db4@5 ~ b3@5 ~ bb3@23 eb4@23 ~ ab3@5]/2",
  C: "~ g4@5 ~ f4@5 ~ eb4@5 ~ f4@11 ~ ab3@11 g3@5 ~", D: "f4@5 ~ eb4@5 ~ d4@5 ~ eb4@11 ~ g3@11 ~ f3@5 ~",
  E: "[eb4@5 ~ d4@5 ~ c4@5 d4@5 ~ c4@5 ~ bb3@5 ~ ab3@5 ~ db4@23 ~ gb4@23 b3@5 ~ bb4@5 ~ ab4@5 gb4@5 ~ ab4@23 ~ bb3@5 ~ ab4@5 gb4@5 ~ f4@5 ~ gb4@23 ab3@5 ~ gb4@5]/4",
  F: "[~ f4@5 ~ eb4@5 ~ f4@5 ~ eb4@5 ~ db4@5 b3@5 ~ bb3@23 ~ eb4@23 ab3@5 ~ g4@5 ~ f4@5 ~ eb4@5 f4@11 ~ ab3@11 ~ g3@5 ~ f4@5 eb4@5 ~ d4@5 ~ eb4@11 ~ g3@11 ~ f3@5 eb4@5 ~ d4@4]/4",
  G: "[~@2 c4@5 ~ d4@5 ~ c4@5 ~ bb3@5 ab3@5 ~ db4@23 ~ gb4@23 b3@5 ~ bb4@5 ~ ab4@5 ~]/2",
  H: "[gb4@5 ab4@23 ~ bb3@5 ~ ab4@5 ~ gb4@5 f4@5 ~ gb4@23 ~ ab3@5 gb4@5 ~ f4@5 ~ eb4@5 ~ f4@5 eb4@5 ~ db4@5 ~ b3@5 ~@23]/3",
})).s("gm_french_horn").gain(0.45)

// other · timpani
const timpani = note("<~@35 A B ~@16 C ~@7 D ~@7 E ~@9>".pickRestart({
  A: "~@24 bb2!24", B: "bb2 ~@47", C: "~@22 bb2!25 ~", D: "~@17 bb2!25 ~@6", E: "~@8 bb2!24 ~@16",
})).s("gm_timpani").gain(0.25)

// drums · kick
const kick = s("bd").struct(`<
  ~@23 A B C D E F G H I J@3 K L M N O P Q R@5 S L T S L M U O V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR ~
>`.pickRestart({
  A: "~@5 x", B: "~@8 x ~@8 x ~@2 x ~@3", C: "~@2 x ~@2 x", D: "~@5 x ~@2 x ~@8 x ~@2 x ~@3",
  E: "~@17 x ~@18 x ~@5 x ~@5", F: "~@13 x ~@5 x ~@17 x ~@6 x ~@3", G: "~@14 x ~@5 x ~@18 x ~@5 x ~@2",
  H: "~@15 x ~@6 x ~@17 x ~@5 x ~", I: "~@17 x ~@5 x ~@12 x ~@11", J: "x ~@2 x!2 ~@2 x", K: "x!4",
  L: "x ~@17 x ~@5 x ~@16 x ~@5 x", M: "~@17 x ~@5 x ~@17 x ~@5 x", N: "~@17 x ~@4 x ~@17 x ~@5 x ~",
  O: "~@8 x ~@2 x ~@8 x ~@2 x", P: "~@11 x ~@11 x", Q: "~@23 x ~@24", R: "~ x ~@17 x ~@5 x ~@17 x ~@4",
  S: "~ x ~@16 x ~@5 x ~@17 x ~@5", T: "~@3 x!2 ~@2 x", U: "~@11 x ~@10 x ~@11 x ~@11 x ~", V: "~@5 x ~ x ~@5 x ~ x",
  W: "~@15 x ~@5 x ~@16 x ~@5 x ~@3", X: "~@7 x ~@2 x ~@5 x ~@5 x ~", Y: "~@13 x ~@5 x ~@17 x ~@5 x ~@4",
  Z: "~@13 x ~@5 x ~@16 x ~@5 x ~@5", AA: "~@2 x!2 ~@2 x!2", AB: "~@12 x ~@4 x ~@5 x ~@5 x ~@11 x ~@6",
  AC: "~@11 x ~@5 x ~@16 x ~@5 x ~@7", AD: "~@3 x ~ x ~@7 x ~@2", AE: "~@8 x ~@5 x ~@17 x ~@4 x ~@10",
  AF: "~@7 x ~@5 x ~@11 x ~@10 x ~@11", AG: "~@6 x ~@5 x ~@16 x ~@5 x ~@12", AH: "~@5 x ~@4 x ~@17 x ~@5 x ~@13",
  AI: "~@3 x ~@5 x ~@17 x ~@5 x ~@10 x ~@3", AJ: "~@8 x ~@11 x ~@10 x ~@16", AK: "~ x ~@5 x ~@16 x ~@5 x ~@17",
  AL: "x ~@4 x ~@11 x ~@11 x ~@16 x ~", AM: "~@4 x ~@17 x ~@5 x ~@10 x ~@8", AN: "~@3 x ~@10 x ~@11 x ~@16 x ~@4",
  AO: "~ x ~@16 x ~@5 x ~@16 x ~@5 x", AP: "~@16 x ~@5 x ~@16 x ~@5 x ~@2", AQ: "~@15 x ~@4 x ~@11 x ~@10 x ~@4",
  AR: "~@7 x ~@10 x ~@29",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<~@24 A@3 B C D E F ~@8 G F ~@4 H I J K I@2 L ~@26>".pickRestart({
  A: "~ x ~@5 x ~@4", B: "~ x ~@10", C: "~@7 x ~@23 x ~@16", D: "~@8 x ~@24 x ~@14", E: "~@9 x ~@24 x ~@13",
  F: "~@11 x ~@36", G: "~@5 x ~@11 x ~@6", H: "~@13 x ~@23 x ~@10", I: "~ x ~ x", J: "~@12 x ~@22 x ~@12",
  K: "~@11 x ~@24 x ~@11", L: "~@11 x ~@23 x ~@12",
// … 108 more lines

More by Ross