Strudelify

All the Things You Are

Jerome Kern

KeyC minorTempo196 bpm
0:00/0:00
// All the Things You Are — Jerome Kern
// 196 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 165 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(196/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@8 B C D@3 E F@3 G H I J K@5 L@2 M@2 N O P Q R@2 S T U V W X Y ~ Z AA AB@2 AC AD AE AF AG AH AI@2 AJ AK AL@2 AM AN
  AO AP AQ AR AS AT AU AV AW@3 AX AY AZ BA@2 BB BC BD BE BF BG BH BI BJ@2 BK BL BM BN BO BP BQ@2 BR BS BT@2 BU BV BW BX
  BY BZ CA@2 CB@2 CC CD CE CF CG@2 CH@5 CI CJ@4 CK CL CM CN@8 CO CP@3 CQ CR@2 CS@3 CT@5 CU@4 CV@8
>`.pickRestart({
  A: "[~@8 [f3,a3,b3,e4]@25 ~@7 [e3,ab3,bb3,eb4]@25 ~@7 [f3,a3,b3,e4]@26 ~@6 [e3,ab3,bb3,eb4]@22 ~@2]/8", // Fmaj7 Emaj7 Fmaj7 Emaj7
  B: "[g3,ab3,c4,eb4,ab4]", C: "~ ab3@15, [db4,db5]@15 ~",
  D: "[~@8 [b3,db4,g4]@8 ~@7 gb3@2 f3@7 ~ ab3@14 ~, ~@8 g3@15 ~@25, ~@16 c4@31 ~, ~@8 eb4@8 f4@7 ~]/3", // Dbm7b5
  E: "[ab3,c4,f4]@4 ~ [f3,b3,eb4,b4]@11", // Fm Fm7b5
  F: "[[a3,e4]@16 ~@3 e4@2 ~ f4@2 gb4@4 ~@5 a3@15, e3@32 g3@11 ~@5, ~ a3 [c4,eb4], ~@7 g4@5]/3", // A5 Cm
  G: "~@3 c5@2 ~ ab4@2 eb4@8, c4@5 ~@3, ~ [g3,ab3]@15", H: "[ab3,d4]", I: "~ [g3,c4,f4,bb4,eb5]@3",
  J: "~@9 g3@7, ~@8 [c4,f4,bb4,eb5]@7 ~", // Cm7
  K: "[~ g3@8 [gb3,eb4]@8 ~@6 d4 ~ e4@2 gb4 ~ g4@2 ~ bb4 ~ b4@2 c5@2 db5 ~ d5@2 db5@2 c5@2 ~@11 a3@8 eb4@8 e4@7, [eb4,g4,b4]@9 ~@8 a3@31 g3@16 ~ [gb3,c4]@15, ~ c4@16 b3@29 b4@4 ~@6 a4@17 ~@7]/5", // Ebm Ebaug Gbdim
  L: "[~@3 gb4@2 ~ e4@2 [gb4,a4]@4 [e4,g4]@2 ~@2 d4@4 g4@2 gb4@3 ~ d4@5 ~, b3@31 ~, a3@27 ~@5, ~@2 d4@2 ~@2 g4 ~@9 gb4@3 ~@13]/2", // Gbm Em
  M: "[~@6 a3@2 bb3 b3@7 ~@9 gb4@7, ~@8 b4@9 a3@15, ~ [c4,e4,ab4] eb4@2, ~@2 f4 ~, ~@17 eb3@11 ~@4]/2", // Caug
  N: "~@7 [e3,b3] ~ e4@2 ab4@2 b4@2 eb5, ~@7 eb4@2 ~@7", // E5
  O: "~@3 eb5 ~ d5 db5@2 c5 ~ bb4@2 a4@2 g4@2, e5 ~@7, ~ [bb3,e4]@15", // Bbdim
  P: "~@8 [g3,ab3,f4]@5 ~@3, ab4@13 ~@3, ~@8 c4@3 ~@5", Q: "~@2 [a3,db5]@6 ab3@7 ~, ~@2 [db4,f4]@13 ~",
  R: "[[g3,b3,d4,g4] ~ [ab3,c4]@2, ~ g4@3, ~ [db4,eb4] ~@2, ~@9 g3@23]/2", S: "~@9 f3@7, ~ [eb4,f4]",
  T: "~ [e3,bb3]@15, [eb4,ab4], [c5,eb5]@5 ~@3", U: "~ f3@13 ~@2, [bb3,eb4]",
  V: "~@6 f3 gb3 [g3,ab3,d4,g4]@8, ~@5 e3@2 ~ b3@4 ~@4", W: "[f3,ab3,db4]@2 ~@8 [ab3,db4] f3 ~@4", X: "~ [g3,b3]",
  Y: "[ab3,c4] ~@3", Z: "~ [ab3,c4]@3 ~@12, [eb4,ab4,c5]@3 ~@13",
  AA: "~@3 [c4,db4,f4] ~@3 ab3 [c4,db4,f4]@3 ~ [c4,db4]@2 ~@2, ~@12 f4 ~@3", // Dbmaj7
  AB: "[~@3 [g3,b3,d4,g4] ~@7 [db4,gb4]@4 ~ f4@12 ~@4, ~@11 [g3,bb4]@21, ~@15 c4@17]/2", // G Gb5 Gm
  AC: "~ f3@2 ~@13, [bb3,db4,f4]@3 ~@13", AD: "~@3 [f3,c4,f4] ~@7 [f3,b3,eb4,bb4]@4 ~", AE: "[a3,d4,b4]@3 ~, e3, g4 ~",
  AF: "d4 [a3,g4]@3 ~ [bb3,eb4,ab4,c5]@2 ~ [a3,b4]@2 ~@6, b4@3 ~@4 [d4,g4]@3 ~@6", // A7 Ab Asus2 G5
  AG: "~@7 eb3 [bb3,eb4]@4 ~@4, ~@4 f3 ~@3", AH: "~@6 [ab3,c4] ~ [ab4,c5,g5]@2 ~@2 [ab4,c5,g5]@2 ~@2",
  AI: "[~@11 [ab3,d4,c5,f5]@5 ~ g3@13 ~@2, ~@11 bb5@15 ~@6, ~@11 g4@3 ~@2 [c4,f4,eb5]@11 ~@5]/2", // Dm7b5 F7
  AJ: "[c4,f4,bb4,eb5]@2 ~@2 bb3 ~@2 c4@2 ~@7, ~@3 [f4,bb4,eb5] ~@4", // Cm7 Ebsus2
  AK: "~@3 [c4,g4] ~@7 [gb3,c4,eb4,ab4,c5]@3 ~@2, ~ [eb4,d5] ~@6, ~@3 b4@2 ~@11", // C5 Ab7 Ebmaj7
  AL: "[~@7 [a3,b3] ~ [e4,gb4]@23, ~@9 d4@20 ~@3]/2", AM: "[g3,a3,c4] ~@3", AN: "~@7 [gb3,c4] [eb4,ab4,c5]@3 ~@5",
  AO: "~@12 [a3,b3,d4] ~@2 e4, ~@6 [gb4,b4] ~", AP: "[gb4,b4]@3 ~@2 bb4 ~ e4 ~ b4@2 ~@5, ~@4 [gb4,b4]@2 ~@2 gb4@3 ~@5",
  AQ: "~@6 a3 bb3 [c4,e4,ab4,b4]@4 a3@2 ~@2, ~@8 b3@3 ~@5", AR: "~@7 [eb3,a3] [d4,g4,b4]@3 ~ [c4,f4,a4]@3 ~",
  AS: "~@7 [e3,b3] [eb4,ab4]@3 ~@5", AT: "~@3 [db4,g4,e5] ~@2 [db4,g4,e5]@2 [bb3,db5]@4 [db4,bb4]@2 ~@2, ~@4 e4 ~ g3@2",
  AU: "~ ab3@5 ~@10, [c4,f4]@5 ~@11", // F5
  AV: "~@2 [eb4,eb5]@2 ~@2 [db4,f4,db5] ~ [eb4,f4,ab4,eb5]@3 ~@5, ~@2 [f4,ab4] ~@13", // Eb Db Fm7 Fm
  AW: "[~@2 [g3,d4,g4,b4] ~@13 f4@15 ~ eb4@3 ~@13, ~@2 b4@2 bb4@5 ~@3, ~@4 [db4,gb4]@3 ~ c4@6 ~@10, ~@9 g3@23 ~@16]/3", // G Gb5
  AX: "[eb4,e4,ab4,eb5]@2 ~@9 db4@2 ~@3, ~@5 [e4,ab4,c5]@2 ~", AY: "~@7 g3 [bb3,eb4]@3 ~ [bb3,eb4]@2 ~@2",
  AZ: "~@7 f4 ~ [g4,ab4,b4]@3 ~@4, ~@7 gb4@2 ~@7, ~@8 [d5,g5]@3 ~@5", // G G5
  BA: "[~@3 [ab3,db4,ab4,db5,f5] ~@7 [ab3,ab4,db5,f5]@4 ~ [g3,g4,f5]@2 ~@9 [g3,db4,b4,e5]@5, ~@11 db4@7 ~@14]/2", // Db G7 Dbm7b5
  BB: "[f4,bb4,eb5]@11 ~@2 c4@2 ~, c4@13 ~@3", BC: "[g3,db4,f4]@3 ~@8 e3@5, ~@10 [bb3,db4,eb4]@5 ~",
  BD: "[g3,ab3,d4]@3 ~, c4@7 ~", BE: "~@3 [ab3,db4,f4]@2 ~ [bb3,eb4,g4]@2 [ab3,db4,f4]@4 ~@4",
  BF: "~@3 [g3,db4]@2 ~ [a3,eb4,ab4]@2 ~ g3@2 ~ [g3,db4]@2 ~@2, ~@2 gb4@2 ~@4 [db4,gb4]@2 ~@2 gb4 ~@3", // Gdim Ab Gdim Gb5
  BG: "~ g3@3 ~ ab3@2 [g3,c4,f4]@3 ~ [g3,f4] ~@2 [g3,c4,f4] ~, [c4,f4]@3 ~ [db4,gb4]@3 ~@4 c4@2 ~@3", // Csus4 G7 Csus4 F5 Gb5
  BH: "~ f3@13 ~@2, [ab3,bb3,eb4]@3 ~", BI: "[c4,f4] ~@3 [b3,eb4,g4,bb4]@9 ~@3, ab3@2 ~@2 f3@11 ~",
  BJ: "[~@3 [a3,d4,g4,bb4] ~@2 [d4,b4] e3 ~ [f3,b3,eb4,ab4,c5]@3 ~ [f3,b3,eb4,ab4] ~@2 eb3 ~@2 [eb3,ab3,db4,bb4] ~ [d4,g4,b4]@10 ~, ~@3 [e3,b4]@2 ~ [a3,g4]@2 ~@4 c5@2 ~ [ab3,db4,gb4,bb4]@2 ~@2 gb4@2 [e3,a3]@8 ~@3]/2", // Gm G Fm7 Fm7b5 Ebsus4 G E5 A7 …
  BK: "~ eb4@3 ~@11 [f3,ab3]", BL: "ab4@3 ~ g4@2 ~@2 f4@2 ~@2 ab4@2 ~ [a3,d4], ~@11 g4@2 ~@3",
  BM: "c4 gb4@2 g4@2 a4@2 [ab3,d4] ab4@2 ~ a4@2 b4@2 [g3,c4]", // Abdim C5
  BN: "~ bb4@2 c5 d5@3 [g3,c4,f4] ~ c5@2 ~ eb5@2 ~@2, ~@11 d5@2 ~@3", // Csus4
  BO: "[g3,c4,eb4]@4 ~@2 [g3,c4,eb4] ~ f4@2 bb4 ~ eb5 ~ g5@2", // Cm
  BP: "~@2 eb5@2 d5@2 ~ c5 d5@2 ~ a4 c5@2 ~ bb4, [c4,eb4] ~@3, f5 ~@7, ~ g3@3 ~@4 [gb3,c4]@6 ~@2", // Cm Gbdim
  BQ: "[[a3,b3,b4]@3 ~ b4@2 ~ [a4,c5]@2 ~ [a4,c5] ~ [b4,d5]@3 ~ [b4,d5]@2 ~ e5@2 ~ [c5,e5] ~ [d5,gb5]@2 ~@2 [e5,g5]@2 ~@2, d4@27 ~@5, ~@3 a3@10 ~@3, ~@19 c5 ~@12]/2", // Asus2 Am Bm C D Em
  BR: "[c4,eb4] g3 ~ d5 c5 ~@2 [g3,c4,eb4,eb5,g5]@2 ~@2 [g3,eb4]@2 d5 c5 ~, [eb5,g5]@2 ~@8 [eb5,g5]@3 ~@3, ~@11 c4 ~@4", // Cm Eb
  BS: "[c4,f4] gb3 ~ d5 ~ c5 ~ [eb5,a5]@2 ~ a5@2 ~ d5 ~ c5, [eb5,a5]@2 ~@5 [gb3,c4,f4]@5 eb5@2 ~@2", // F5 Ebdim F
  BT: "[~ gb5 ~@3 e5 ~ d5 ~ gb5 ~@3 e5 ~ d5 c6@2 a5 ~ a5@2 g5 e5 d6@2 b5 d6@2 b5 a5 g5, [b3,e4,a4]@7 ~, b5@2 ~ b5@2 ~@3 b5@2 ~ b5@2 ~@6 c6@2 ~@11, ~@2 gb5 ~@3 gb5 ~@9]/2", // Esus4
  BU: "~ e6@3 ~ eb6@2 d6@2 db6@2 c6 ~ bb5 ~ b5, ~ e4@11 ~@4, ~ [gb3,b3,c4]@8 ~@7", // B
  BV: "~ db6@2 b5 c6@2 ~@2 b5 ~ a5 ~ bb5@2 ~ g5, eb4, ~ a3@10 ~@5, ~@7 bb5@2 ~@7",
  BW: "ab5@2 ~@2 ab5@2 e5 ~ db5@2 ~@2 c5@3 ~, [ab3,e4], ~@3 b5@3 ~@10", // Dbm
  BX: "~@5 db5 ~ c5 [bb3,e4,bb4]@2 ab4@2 g4 ~ f4 ~, ~@3 e5@2 ~@11, ~@2 eb5 ~@5", // Bbdim
  BY: "ab4@6 [ab3,c4] ~ f4@2 g4 ~ ab4@2 bb4 ~, c4 ~@15", // Ab
  BZ: "c5@2 db5 ~ eb5 ~ f5@2 c5@2 db5@2 f5@2 gb5@2, [ab3,c4,db4,f4]@3 ~", // Dbmaj7
  CA: "[~@2 b4@2 d5 ~ gb5 ~@4 db5@2 e5 ~@5 bb5@2 ab5@2 g5 f5@3 ~@5, [g3,b3,d4,gb4]@6 ~@2 [db4,gb4]@5 ~@3 eb4@13 ~@3, ~@8 g5@2 ~@5 g5@2 [g3,ab3,c4]@12 ~@3, ~@9 g3@5 ~@2 ab5@2 ~@14]/2", // Gmaj7 Gb5 Abmaj7
  CB: "[~@3 [c6,eb6]@2 ~ [bb5,db6]@2 [ab5,c6]@2 ~@5 [c6,eb6]@2 ~ [bb5,db6] ~@3 [ab5,c6] ~ [ab5,c6]@2 ~@2 [g5,bb5]@2 ~@2, [f3,bb3,eb4]@8 ~@4 [bb3,eb4]@17 ~@3, ~@6 [db6,e6] ~@9, ~@13 e3@15 ~@4]/2", // Cm Bbm Ab Cm Bbm Ab Gm Ebsus2 …
  CC: "g3@3 ~@2 g5 ~@3 gb5 f5 ~@2 d5 c5 ~, [bb3,d4]@7 ~, eb3@3 ~, ~@3 f5@2 ~@3 g5@2 ~@2 eb5@2 ~@2, ~@4 gb5@2 ~ c6@2 ~@7", // Bb
  CD: "bb4 b4@2 ~@2 c5 b4@2 ~ ab4@2 g4 ~ g4@2 ab4, [b3,d4]@15 ~, ~@3 d5@2 ~@11, ~@2 db5 ~ bb4 ~ f4 ~", // Bm
  CE: "bb4@4 ~@2 [ab3,c4] ~ g4@2 f4@2 g4 ~ ab4@2, ~ ab4 ~@2", // Ab
  CF: "bb4@2 ~@2 db5 ~@2 e5@2 gb5 g5@2 ab5@2 a5@2, ~@3 b4@3 ~ [g3,db4,gb4]@6 ~@3", // Gb
  CG: "[~@5 c6@2 ~@2 bb5@2 ab5@2 g5 ~@2 g3@2 ~ g5@2 f5 ~ g5 [bb3,e4,a4,eb5,eb6]@3 ~@2 [e4,a4] ~@2, bb5@3 ~@12 g5@2 ~ ab5@2 ~@8 [db5,db6]@3 ~, ~ [g3,ab3]@12 ~@19, ~ [c4,eb4]@6 c4@4 ~@4 [c4,db4,f4]@4 ~@10 bb3@2 ~]/2", // A5 Db Abmaj7 Cm Dbmaj7
  CH: "[~ [d4,g4]@9 ~@9 ab4@3 bb4@2 ~@8 bb4@16 ~@3 c5@2 ~@2 bb4@2 ab4@4 g4@3 [f3,f4]@16, c5@13 ~@3 db4@16 c4@11 ~@5 c4@26 ~@6, [c4,c6]@9 ~@7 f4@26 ~@6 ab3@17 ~@15, ~ ab3@31 g3@18 ~@30, ~ g5@13 ~@2 c4@9 c5@9 ~@46]/5", // G5 F C
  CI: "[ab3,c4]@4 ~ [f3,b3]@10 ~, ~@4 [ab4,b4]@11 ~, ~@4 eb4@7 ~@5", // Ab Fdim Abm
  CJ: "[~@11 d4@3 db4@2 c4@7 ~ bb3@4 a3@4 [eb3,g3]@15 ~@4 [f3,ab3]@3 [g3,bb3]@3 [ab3,c4]@7, e4@25 ~@7, d4@7 ~@57, ~ e3@33 ~@30, ~ a3@22 ~@41]/4", // Eb Fm Gm Ab
  CK: "~ a3@7 ab3@8, d4@15 ~", CL: "~@3 g3@2 ~ f3@3 g3@4 f3@3, [bb3,eb4]", CM: "~ eb3@13 ~@2, c4@7 ~",
  CN: "[e3@8 f3@5 ~@12 g3@11 ~@4 b3@8 ~@12 d4@4 ~ gb3@15 ~@3 gb4@3 g4@2 ~ a4@7 d4@9 ~@7 c4@8 ~@2 b4@3 ~ c5@2, c4@10 ~@3 gb3@23 a3@71 ~@5 gb3@13 ~@3, ~@8 d4@9 b3@20 ~@11 [g3,c4]@14 ~@3 e4@19 ~@12 b4@25 ~@7, ~@40 b3@21 ~@3, ~@112 e4@5 ~@11]/8", // C5
  CO: "~ d5@7 c5@7 ~, d4, a3@3 ~, ~ [eb3,a4]@15, ~ ab4@2 ~@13", // Ebdim
  CP: "[~@8 b3@6 ~@18 [g3,ab3,ab4]@11 ~@5, b4@5 ~@2 c5@9 ~@8, ~ e3@14 [f4,g4]@17 eb4@9 ~@7, ~ db4 ~, ~@17 c4@26 ~@5]/3", // Abmaj7 Fsus2
  CQ: "~@4 [db5,f5]@3 ~ eb5@7 ~, [ab3,c4,db4,f4]@15 ~, ~@2 c5 ~", // Db Dbmaj7
  CR: "[[g3,d4,b4]@5 ~@4 a5@6 ~@3 c6@5 ~@9, g4@3 ~@2 g3@9 ~ [g3,ab3,c4]@17, ~@6 db4@9 ~@2 eb4@15, ~@7 [gb4,b4]@8 ~@2 g5@7 ~@8, ~@8 e5@7 ~ c5@16]/2", // G Abmaj7 B5
  CS: "[~ f3@9 ~@23 c4@14 ~, [bb3,eb4,f4,ab4]@10 ~@4 eb5@29 ~@5, ~@15 [ab4,c5]@17 bb4@10 ~@6, ~@16 e4@15 ~@2 g4@9 ~@6, ~@17 eb4@30 ~]/3", // Bbsus4 Ab
  CT: "[~@8 g4@3 ~@6 ab3@12 ~@32 f3@4 gb3@12 ~@3, ~@5 g5@11 ~@16 f5@7 ~@41, ~@3 d5@5 db5@8 ~@24, ~@7 b4@4 ~@5 [db4,f4]@25 ~@8 [c4,eb4,f4,ab4]@28 ~@3, ~@8 ab4@19 ~@6 g3@29 ~@18]/5", // Db Fm7
  CU: "[~@8 [f3,a3,b3,e4]@25 ~@7 [e3,ab3,bb3,eb4]@24]/4", // Fmaj7 Emaj7
  CV: "[~@8 [f3,a3,b3,e4]@26 ~@27 db5@6 ~@16 [gb5,db6]@32 ~@13, ~@41 c2@76 ~@11, ~@42 c3@73 ~@13, ~@43 e3@2 bb3@16 gb4@6 gb5@7 ab5@32 ~@22, ~@44 ab3@3 eb4@20 db5@8 eb5@32 ~@21]/8", // Fmaj7 Gb5
})).s("gm_piano").gain(0.4).pan(0.3)

// chords · piano
const piano_2 = note(`<
  ~@9 A B C D E F G@2 H A I J K L M@2 N O M@2 P Q R S T U V W X Y Z AA AB AC AD AE ~@120
>`.pickRestart({
  A: "[f3,eb4,ab4,c5]", B: "[bb3,f4,ab4,db5]", C: "[eb3,g4,bb4,db5]", D: "[ab3,eb4,g4,c5]", E: "[db3,f4,ab4,c5]",
  F: "[g3,d4,f4,b4]", G: "[c3,e4,g4,b4]/2", H: "[c3,eb4,g4,bb4]", I: "[bb2,d4,f4,ab4]", J: "[eb3,d4,g4,bb4]",
  K: "[ab3,c4,eb4,g4]", L: "[d3,c4,d4,gb4]", M: "[g2,b3,d4,gb4]/2", N: "[a2,g3,c4,e4]", O: "[d3,a3,c4,gb4]",
  P: "[gb3,a3,c4,e4]", Q: "[b2,a3,b3,eb4]", R: "[e3,ab3,b3,eb4]", S: "[c3,bb3,e4,ab4]", T: "[f3,c4,eb4,ab4]",
  U: "[bb2,db4,f4,ab4]", V: "[eb3,bb3,db4,g4]", W: "[ab2,c4,eb4,g4]", X: "[db3,ab3,c4,f4]", Y: "[db3,ab3,b3,e4]",
  Z: "[c3,g3,bb3,eb4]", AA: "[b2,f3,ab3,d4]", AB: "[bb2,f3,ab3,db4]", AC: "[eb3,g3,bb3,db4]", AD: "[ab2,g3,c4,eb4]",
  AE: "[g2,f3,b3,d4] [c3,g3,bb3,c4,e4]", // G7 C7
})).s("gm_piano").gain(0.4)

// bass · acoustic bass
const bass = note(`<
  A B@4 C D E@2 F G H I J K L@2 M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~ AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW AN AO AP AQ AR AS AT AU AV
  AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW F G H I J K L@2 M N BX P Q R S T U V
  W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM A BY BZ@3 C CA CB@5 ~
>`.pickRestart({
  A: "~@7 a2",
  B: "[ab2 ~@2 db2@11 ~@2 ab2 ~@2 db2@2 ~ a2 ~ ab2@2 ~ db2@2 ~@2 ab2@2 g2@2 c2@11 ~ ab2@2 g2 ~ c2@2 ~@2 ab2 g2@2 ~ c2@2 ~@2 a2, ~@15 a2@2 ~@47]/4",
  C: "~ ab2@2 db2@11 a2@2", D: "ab2@2 db2@3 ~@2 a2@2 ab2@2 db2@2 ~@2 ab2",
  E: "[~ g2 ~ c2@12 ab2@2 g2@2 c2@3 ~ ab2 ~ g2@2 c2@2 ~@3]/2", F: "f1@5 ~@3 c2@8, ~@7 f1@2 ~@7",
  G: "bb1@5 ~@3 f2@8, ~@7 bb1@2 ~@7", H: "eb2@4 ~@4 bb1@2 ~@2 a1 ~@3, ~@7 eb2@2 ~@7",
  I: "ab1@4 ~@4 eb2@3 ~ ab1@2 ~@2, ~@7 ab1@2 ~@7", J: "db2@6 ~ eb2 f2@4 db2@2 ~@2", K: "d2 ab1 g1 b1",
  L: "[c2@4 ~@4 e1@5 ~@3 f1@3 ~ gb1@3 ~ g1@3 ~ b1@4, ~@7 c2@2 ~@6 e1@2 ~@15]/2", M: "c2@4 d2@4 eb2@4 c2@3 ~",
  N: "f1 ~ c2@2, ~@7 f1@2 ~@7", O: "b1@4 ~@4 e1@7 ~, ~@7 b1@2 ~@7", P: "eb1@8 g1@4 bb1@3 ~",
  Q: "ab1@6 ~@2 eb2@3 ~ ab1@3 ~, ~@7 c2@2 ~@7", R: "a1@4 eb2@3 ~ d2@3 ~ gb2@3 ~",
  S: "g2 ~@3 b1@4 c2@4 db2@4, ~@3 g2@2 ~@11", T: "d2@4 e2@4 gb2@4 g2@3 ~", U: "a2@6 ~@2 a2@3 ~ eb2@4, ~@7 ab2@2 ~@7",
  V: "d2@5 ~@3 a2@7 ~, ~@7 d2@2 ~@7", W: "g2@5 ~@3 b1@8, ~@7 g2@2 ~@7", X: "c2@4 db2@4 d2@3 ~ g1@3 ~",
  Y: "gb1@4 ~@3 gb1 c2@4 bb1@4", Z: "b1@4 db2@3 ~ d2@3 ~ eb2@3 ~", AA: "e2@5 ~@3 ab2@3 ~ e2@4, ~@7 e2@2 ~@7",
  AB: "c2 ~ e2 c2, ~@7 c2@2 ~@7", AC: "f2@3 ~ f2@2 b1@2, ~@7 e2@2 ~@7", AD: "bb1@10 ~@2 bb1@3 ~", AE: "e2 a1",
  AF: "ab1@4 bb1@4 c2@3 ~ ab1@3 ~", AG: "db2 ~ f2@2, ~@7 db2@2 ~@7", AH: "gb1@10 ~@2 gb1@3 ~",
  AI: "c2@4 d2@3 ~ eb2@4 c2@4", AJ: "b1@4 db2@4 d2@4 b1@3 ~", AK: "bb1@4 c2@2 ~@2 db2@2 ~ bb1 e2@4", AL: "eb2@8 g1@7 ~",
  AM: "ab1@3 ~@13", AN: "f1@4 g1@3 ~ ab1@2 ~@2 b1@4, ~@11 f1@2 ~@3", AO: "bb1 c2 db2 d2", AP: "eb2@4 f2@4 gb2@4 g2@3 ~",
  AQ: "ab2@4 eb2@4 c2@3 ~ d2@3 ~", AR: "db2@4 f2@4 ab2@4 db2@3 ~", AS: "d2@3 ~ gb2@3 ~ g2@4 b1@4",
  AT: "c2@3 ~ e1@4 f1@4 gb1@3 ~", AU: "g1 ~@3 a1@4 bb1@4 b1@4, ~@3 g1@2 ~@11", AV: "c2@4 d2@4 eb2@3 ~ c2@4",
  AW: "f2@3 ~ g2@3 ~ ab2@3 ~ f2@3 ~", AX: "b2@4 f2@4 e2@3 ~ bb2@4", AY: "eb2@4 f2@3 ~ g2@3 ~ eb2@4",
  AZ: "ab1@4 bb1@4 c2@3 ~ ab1@4", BA: "a1 db2 d2 gb2", BB: "g2 b1 c2 db2", BC: "d2@4 e2@3 ~ gb2@3 ~ g2@3 ~",
  BD: "a2@4 ab2@3 ~ a2@4 eb2 ~@3", BE: "~ a1@2 ~ d2@3 ~ e2@4 gb2@4, d2@2 ~ gb1@2 ~@11", BF: "g2@4 b1@4 c2@4 db2@3 ~",
  BG: "d2@4 db2@4 c2@3 ~ b1@4", BH: "gb1@4 ab1@4 a1@3 ~ gb1@4", BI: "b1@4 db2@3 ~ d2@3 ~ eb2@4", BJ: "e2 gb2 ab2 e2",
  BK: "c2@4 d2@4 eb2@4 e2@3 eb2", BL: "f2@4 e2@4 f2@3 ~ b1@4", BM: "bb1@4 c2@3 ~ db2@4 eb2@3 ~", BN: "e2 bb1 a1 eb2",
  BO: "ab1@4 bb1@4 c2@4 ab1@3 ~", BP: "db2 eb2 f2 db2", BQ: "gb2 db2 bb1 db2", BR: "c2 d2 eb2 c2",
  BS: "b1@4 db2@4 d2@3 ~ b1@4", BT: "bb1@4 c2@3 ~ db2@2 ~@2 e2@4, ~@11 bb1@2 ~@3", BU: "eb2@4 db2@4 c2@3 ~ bb1@4",
  BV: "ab1 bb1 c2 ab1", BW: "g1@4 db2@4 c2@3 ~ gb1@2 ~@2", BX: "b1@4 ~@2 b1@2 e1@7 ~", BY: "ab2 ~@2 db2@11 a2@2",
  BZ: "[ab2 ~ db2@2 ~@2 a2 ~ ab2@2 ~ db2@2 ~@2 ab2@2 g2@2 c2@11 ~ ab2@2 g2 ~ c2@2 ~ ab2 ~ g2@2 ~ c2@2 ~@2 a2]/3",
  CA: "ab2@2 db2@3 ~@3 ab2@2 ~ db2@2 db2@2 ab2, ~@7 a2@2 ~@7", CB: "[~ g2 ~ c2@66 ~@11]/5",
})).s("gm_acoustic_bass").gain(0.4)

// other · alto sax
const alto_sax = note("<~@9 A B C D E F G@2 H I J K L M N@2 O@2 P@2 Q@2 R@2 A B C D S T U V W X Y ~@121>".pickRestart({
  A: "ab4", B: "db5@3 ab4", C: "g4!4", D: "g4 c5@2 g4", E: "f4!4", F: "f4 b4@2 f4", G: "e4/2", H: "eb4", I: "ab4@3 eb4",
  J: "d4!4", K: "d4 g4@2 d4", L: "c4!4", M: "c4@3 d4@3 ~@2 d4@4 c4@4, ~@3 eb4@2 ~@3", N: "[b3@5 d4 g4 b4]/2",
  O: "[d5@2 c5@3 eb4 e4 c5]/2", P: "[b4@5 d4 g4 b4]/2", Q: "[b4@2 a4@3 bb3 b3 a4]/2", R: "ab4/2", S: "f4", T: "eb5 db5",
  U: "eb4@4 eb4@4 eb4@3 eb4 ~ eb4 ~@2", V: "g4@3 f4", W: "db4 f4 ab4 db5", X: "f5 g5", Y: "ab5",
})).s("gm_alto_sax").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@46 A ~ B A C A ~ D E B@2 ~@2 B@2 ~ A ~ B A C A ~ D E B@2 ~@2 B@2 ~@2 B@2 ~ A ~ B A C A ~ D E B@2 ~@2 B@2 ~ A ~ B A C
  A ~ D E B@2 ~@2 B@2 ~@2 B@2 ~@48
>`.pickRestart({
  A: "~@15 x", B: "~@11 x ~@4", C: "~@3 x!2 ~@11", D: "~@7 x ~@8", E: "~@7 x!2 ~@7",
})).gain(0.35)

// drums · clap
const clap = s("cp").struct(`<
  ~@23 A ~@15 A ~@3 A ~@3 B C ~ D ~ E F G E C G@2 A C ~@2 B C ~ D ~ E F G E C G@2 A C G@2 A C ~@2 B C ~ D ~ E F G E C
  G@2 A C ~@2 B C ~ D ~ E F G E C G@2 A C G@2 A C ~@14 A ~@15 A ~@17
>`.pickRestart({
  A: "~@15 x", B: "~@7 x!2 ~@7", C: "~@12 x ~@2 x", D: "~@11 x!2 ~@2 x", E: "~@7 x ~@8", F: "~ x", G: "~@11 x ~@4",
})).gain(0.4)

// drums · pedal hat
const pedal_hat = s("hh").struct(`<
  ~@9 A@2 B A@3 C D A@3 E F G B H A@2 B A@3 C D A@3 E F G B I F G B I A@3 E F A@2 J A@3 K A@2 E L A@3 E F A@2 J A@3 K
  A@2 E L A@2 E L A@3 E F A@2 J A@3 K A@2 E L A@3 E F A@2 J A@3 K A@2 E L A@2 E L A@2 B A@3 C D A@3 M F G B N A@2 B A@3
  C D A@3 M F G B N A@2 O ~@13
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x!2 ~@3", C: "x!2 ~ x", D: "~ x!3", E: "~@4 x ~@7 x ~@2 x", F: "~@5 x ~@6 x ~@3",
  G: "~@3 x ~@8 x ~@3", H: "x ~ x ~ x!2 ~@2 x ~ x ~ x ~@3", I: "x ~ x ~ x!2 ~@2 x!2 ~@2 x ~@3",
  J: "~@3 x!2 ~@2 x!2 ~@2 x!2 ~@3", K: "~@3 x ~@3 x!2 ~@2 x!2 ~@2 x", L: "~@4 x ~@6 x ~@2 x!2", M: "~@2 x ~@3 x!2",
  N: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x ~@3", O: "~@13 x ~@2",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@16 A ~ B C ~@4 D ~@7 A ~ B C ~@4 D ~@3 D ~@79 A ~ D C ~@4 D ~@7 A ~ D C ~@4 D ~@2 E ~@13
>`.pickRestart({
  A: "~ x", B: "~@15 x", C: "~@3 x ~@4", D: "~@7 x", E: "x",
})).gain(0.35)

// drums · splash
const splash = s("cr").struct(`<
  ~ A ~ B ~ A ~ A ~@45 A ~@2 C D ~@11 A ~@2 C D ~@3 D ~@11 A ~@2 C D ~@11 A ~@2 C D ~@3 D ~@38 E A ~ A ~ A ~ F G ~@4
>`.pickRestart({
  A: "~ x", B: "~@9 x ~@6", C: "~@15 x", D: "~@11 x ~@4", E: "~ x ~@6", F: "~@7 x", G: "~@13 x ~@2",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct(`<
  A B C B C D C B E ~@36 F@3 G H I G F J G I K F K G L F@3 G H I G F J G I K F K G L F K G L F@3 G H I G F J G I K F K G
  L F@3 G H I G F J G I K F K G L F K G L ~@35 A M C B C B N O ~@5
>`.pickRestart({
// … 7 more lines