Strudelify

Pressure Cooker

Sammy Nestico

KeyF majorTempo120 bpm
0:00/0:00
// Pressure Cooker — Sammy Nestico
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 250 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.

// bass · acoustic bass · "Bass ( BB"
const bass = note(`<
  A@3 B C D E C F G H I J K L M N@2 O A C P Q R S T U V W X Y Z AA AB AC AD N AE AF B P@2 E AG AH AI AJ AK AL AM AN AO
  AP AQ AR AS AT M AU AV AE A O B D C Q E AW AX AY V Y X Y AZ BA BB ~@2 A N A BC C P C@2 BD BE AR AS AT M BF BG N A@2 B
  C E Q C BH BI BJ BK BL BM BN BO A@2 AE BC P D C BP BQ BR AJ AK AL AM BF BG F G AR AS BS BT AN AO BU BV AJ AK BW BX BY
  BZ CA CB AJ AK J K L M AP AQ CC CD CE CF BY BZ ~@4 C D E CG CH CI CJ BI CK CL CM CN CO CP CQ CR CS AV CT CU CV CW CX
  CY D E@3 CJ CH BI CH CZ DA DB DC DD DE DF DE DF DG ~@9 DH@2 ~@7 DI DJ DK DL BN BO AF DM ~@8 DN DO DP DQ DR DS DT@3 DU
>`.pickRestart({
  A: "~@6 a2@4 f1 ~ c3@5 ~ f3@4 ~@2, f2@5 ~@7", B: "f2@6 eb2@6 d2@6 b1@5 ~", C: "bb1@4 bb0 ~ d2@6 eb2@5 ~ bb1@3 ~@3",
  D: "bb1@6 bb1@6 g1@6 b1@5 ~", E: "~@6 d2@4 bb0 ~ f2@5 ~ bb2@4 ~@2, bb1@5 ~@7", F: "a3@6 ab3@5 ~ g3@5 ~ gb3@4 f2 ~",
  G: "f3@2 c3 ~ a2@2 g2@6 f2@5 ~ g2@4 f2 ~", H: "gb2@4 gb1 ~ ab2@6 a2@5 ~ b2@4 gb1 ~",
  I: "c3@6 d3@5 gb1 f3@5 gb1 gb3@3 ~@3", J: "d3@6 db3@5 ~ c3@5 ~ b2@4 bb1 ~",
  K: "bb2@2 f2 ~ d2@2 c2@6 bb1@5 ~ b1@4 a1 ~", L: "bb1@6 db2@5 bb1 eb2@5 ~ e2@5 ~",
  M: "f2@5 bb1 a2@5 bb1 bb2@2 ~@2 f2 ~@2 bb1@3 ~@2", N: "f2@6 f2@6 d2@6 gb2@5 ~", O: "f2@6 e2@6 d2@6 gb2@5 ~",
  P: "bb1@6 c2@6 d2@5 ~ b1@4 ~@2", Q: "bb1@6 a1@6 g1@6 b1@5 ~", R: "bb1@6 c2@6 d2@5 ~ c2@4 ~@2",
  S: "~@6 d2@4 b0 ~ f2@5 ~ b2@4 ~@2, b1@5 ~@7", T: "~@6 ab2@4 e1 ~ b2@5 ~ e3@4 ~@2, e2@5 ~@7",
  U: "a1@6 g1@6 f1@6 eb2@5 ~", V: "d2@6 c2@6 b1@6 ab2@5 ~", W: "g2@6 f2@6 e2@6 e2@5 ~",
  X: "g2@6 g2@4 g1 ~ bb2@5 ~ g3@4 ~@2", Y: "g2@6 a2@6 bb2@5 ~ e2@4 ~@2", Z: "g2@6 f2@6 g2@5 ~ ab2@4 ~@2",
  AA: "c2@6 bb2@6 c3@5 ~ db3@6", AB: "d3@6 gb3@6 c3@5 ~ c2@4 ~@2", AC: "a3@5 ~ ab3@5 ~ g3@4 f1 ~ gb3@5 ~",
  AD: "f3@2 c3 ~ a2 ~ g2@6 f2@6 gb2@5 ~", AE: "f2@6 g2@6 a2@5 ~ gb2@4 ~@2", AF: "f2@4 f1 ~ a2@6 bb2@5 ~ f2@3 ~@3",
  AG: "bb1@6 c2@6 d2@5 ~ gb2@4 ~@2", AH: "f2@6 e2@6 d2@6 c2@5 ~", AI: "f2@5 ~ a2@5 ~ bb2@6 c3@4 ~@2",
  AJ: "gb2@6 e2@6 d2@6 c2@5 ~", AK: "gb2@5 ~ a2@5 ~ b2@6 c3@4 ~@2", AL: "bb1@6 a1@6 g1@6 f1@5 ~",
  AM: "bb1@5 ~ d2@5 ~ eb2@6 f2@4 ~@2", AN: "bb1@4 bb0 ~ db2@5 ~ eb2@5 ~ e2@5 ~",
  AO: "f2@3 ~ c2 ~ a1@6 ~ bb1@5 gb2@4 ~@2", AP: "f3@5 ~ c3@5 f2 d3@5 f2 a2@5 ~",
  AQ: "c3@3 ~ g2 ~ e2@5 ~ f2@4 ~ c2 f2@5 ~", AR: "a3@5 ~ a3@5 ~ ab3@4 gb1 ~ g3@5 ~",
  AS: "gb3@2 c3 ~ a2 ~ ab2@6 gb2@6 b1@5 ~", AT: "bb1@6 d2@5 bb1 eb2@5 ~ e2@5 ~",
  AU: "bb2@5 ~ f2@5 bb1 g2@5 bb1 db2@5 ~", AV: "f2@3 ~ c2 ~ a1@5 ~ bb1@4 ~ f1 bb1@5 ~", AW: "b1@6 c2@6 d2@5 ~ f2@4 ~@2",
  AX: "e2@4 e1 ~ ab2@6 a2@5 ~ e2@3 ~@3", AY: "a1@4 a0 ~ c2@6 d2@5 ~ a1@3 ~@3", AZ: "g2@4 g1 ~ g2@6 ab2@5 ~ g2@3 ~@3",
  BA: "~@6 bb2@4 c1 ~ d3@5 ~ c3@4 ~@2, c2@5 ~@7", BB: "c2@5 ~ c2@4 ~@2 c2@3 ~@2 f2@6 ~",
  BC: "f2@6 g2@6 a2@5 ~ b1@4 ~@2", BD: "a3@4 ~ f1 ab3@5 ~@2 g3@5 gb3@5 ~", BE: "f3@2 c3 ~ a2@2 g2@6 f2@5 ~@2 f2@3 ~@2",
  BF: "db3@4 ~ bb0 db3@5 ~@2 c3@5 b2@5 ~", BG: "bb2@2 f2 ~ db2@2 c2@6 bb1@5 ~@2 bb1@3 ~@2",
  BH: "a1@6 b1@6 db2@5 ~ e2@4 ~@2", BI: "eb2@4 eb1 ~ g2@6 ab2@5 ~ eb2@3 ~@3", BJ: "d2@6 e2@6 gb2@5 ~ a2@4 ~@2",
  BK: "ab2@4 ab1 ~ c3@6 db3@5 ~ ab2@3 ~@3", BL: "g2@6 f2@6 e2@6 d2@5 ~", BM: "db2@4 db1 ~ f2@6 gb2@5 ~ db2@3 ~@3",
  BN: "c2@4 c1 ~ e2@6 f2@5 ~ c2@3 ~@3", BO: "gb2@4 gb1 ~ bb2@6 b2@5 ~ gb2@3 ~@3", BP: "bb1@6 ab1@6 g1@6 gb2@5 ~",
  BQ: "f2@4 f1 ~ a2@5 ~ bb2@5 ~ b2@5 ~", BR: "c3@3 ~ g2 ~ e2@6 ~ f2@5 g2@4 ~@2", BS: "d3@5 ~ db3@5 ~ c3@4 bb0 ~ b2@5 ~",
  BT: "bb2@2 f2 ~ d2 ~ c2@6 bb1@6 b1@5 ~", BU: "f2@6 a2@5 f2 bb2@5 ~ b2@5 ~",
  BV: "c3@5 f2 e3@5 f2 f3@2 ~@2 c3 ~@2 f2@3 ~@2", BW: "bb1@6 d2@6 eb2@5 ~ e2@6", BX: "f2@6 a2@6 bb2@5 ~ bb1@4 ~@2",
  BY: "bb1@6 ab1@6 g1@6 f1@5 ~", BZ: "bb1@5 ~ db2@5 ~ eb2@6 f2@4 ~@2", CA: "f2@6 a2@6 bb2@5 ~ b2@6",
  CB: "c3@6 e3@6 f3@5 ~ f2@4 ~@2", CC: "a3@6 a3@5 ~ ab3@5 ~ g3@4 gb2 ~", CD: "gb3@2 c3 ~ a2@2 ab2@6 gb2@5 ~ b1@4 a1 ~",
  CE: "bb1@4 bb0 ~ c2@6 d2@5 ~ eb2@4 bb0 ~", CF: "f2@6 g2@5 bb0 a2@5 bb0 bb2@3 ~@3", CG: "bb1@6 ab1@6 g1@6 e2@5 ~",
  CH: "~@6 g2@4 eb1 ~ bb2@5 ~ eb3@4 ~@2, eb2@5 ~@7", CI: "eb2@6 eb2@6 c2@6 e2@5 ~", CJ: "eb2@6 f2@6 g2@5 ~ e2@4 ~@2",
  CK: "f2@4 f1 ~ d2@5 ~ eb2@5 ~ e2@5 ~", CL: "f2@3 ~ c2 ~ a1@6 ~ f2@5 c2@4 ~@2", CM: "d3@4 ~ b0 d3@5 ~@2 db3@5 c3@5 ~",
  CN: "b2@2 f2 ~ d2@2 db2@6 b1@5 ~@2 b1@3 ~@2", CO: "c3@5 ~ g2@5 c2 a2@5 c2 eb2@5 ~",
  CP: "g2@3 ~ d2 ~ b1@5 ~ c2@4 ~ g1 c2@5 ~", CQ: "eb2@6 f2@6 gb2@5 ~ e2@4 ~@2",
  CR: "~@6 gb2@4 f1 ~ bb2@5 ~ f3@4 ~@2, f2@5 ~@7", CS: "bb2@5 ~ f2@5 bb1 g2@5 bb1 d2@5 ~", CT: "b1@6 a1@6 g1@6 f1@5 ~",
  CU: "b1@5 ~ d2@5 ~ e2@6 f2@4 ~@2", CV: "eb3@4 ~ c1 eb3@5 ~@2 d3@5 db3@5 ~",
  CW: "c3@2 g2 ~ eb2@2 d2@6 c2@5 ~@2 c2@3 ~@2", CX: "eb2@4 eb1 ~ gb2@6 ab2@5 ~ eb2@3 ~@3", CY: "f2@6 db2@6 c2@6 b1@5 ~",
  CZ: "e2@6 d2@6 c2@6 bb1@5 ~", DA: "a1@6 e2@4 a1@2 a1@3 ~@2 a0 d2@3 ~@2 d1", DB: "d2@5 ~ d2@4 ~@2 ab2@6 eb2@4 ab2@2",
  DC: "ab2@3 ~@2 ab1 g2@3 ~@2 g1 g2@6 d2@4 g2@2", DD: "c2@6 d2@6 eb2@5 ~ a2@4 ~@2", DE: "c2@6 bb2@6 c3@5 ~ db2@4 ~@2",
  DF: "c2@4 c1 ~ eb2@6 f2@5 ~ c2@3 ~@3", DG: "f2@6 f2@6 gb2@5 ~ e2@4 ~@2", DH: "[~@12 f2@4 f2@3 ~@3 f2@26]/2",
  DI: "d2@4 d1 ~ gb2@6 g2@5 ~ d2@3 ~@3", DJ: "~@6 c3@4 ab1 ~ eb3@5 ~ ab3@4 ~@2, ab2@5 ~@7",
  DK: "~@6 b2@4 g1 ~ d3@5 ~ g3@4 ~@2, g2@5 ~@7", DL: "db2@6 eb2@6 f2@5 ~ db2@4 ~@2", DM: "b1@5 ~@19",
  DN: "f2@6 d2@6 eb2@5 ~ e2@6", DO: "f2@6 a2@6 f3@5 ~ f2@4 ~@2", DP: "f2@4 f1 ~ db2@5 ~ eb2@5 ~ eb2@5 ~",
  DQ: "e2@3 ~ c2 ~ a1@6 ~ f2@5 db2@4 ~@2", DR: "f2@4 f1 ~ eb2@5 ~ f2@5 ~ gb2@5 ~",
  DS: "g2@3 ~ d2 ~ b1@6 ~ f2@5 d2@4 ~@2", DT: "[db2 d2 eb2@2]/3", DU: "bb1 ~@7",
})).s("gm_acoustic_bass").gain(0.35).pan(0.4)

// chords · piano · "Piano ( B"
const piano = note(`<
  A@2 B@2 C@2 D@2 E F G@2 H@2 I J K@4 L@2 M@2 N O P Q R S@3 T@2 U V W X Y Z AA AB AC AD AE AF AG@2 AE AF 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 ~@2 AQ BI BJ BK BL AV BM BN ~ BO BP@2 BQ BR BS BT
  AQ BU BV BW AU BX AW BY BZ CA CB CC CD CE CF CG CH CI Y AT CJ AV CK CL CM CN ~ CO CP CQ CR CS ~ CT CU CV CW CX CY CZ
  DA DB ~ CO DC DD ~ DE DF@2 ~ CO BQ BR ~ DG ~ AJ DH DI DJ DK DL DM ~@4 CJ BX DN DO BD DP DQ DR ~ DS DT DU DV DW DX@2 DY
  DZ EA EB EC ED EE EF AU AV CK AD BD EG EH EI EJ EK EL EM EN EO EP EQ ER ES ~@9 ET@6 ~@3 EU EV EW EX EY EZ EP FA ~@8 FB
  FC FD FE EC ED FF@3 FG
>`.pickRestart({
  A: "[c5@4 a4@2 c5@3 ~ a4@2 ~ g4@2 ~@2 f4@2 ~@15 a4@2 ~ g4@2 ~@2 f4@2 ~@3 d5@2, f2, c3@23 db5@2 ~@23, ~ db3]/2",
  B: "[~@10 a4@2 g4@2 ~@3 f4@2 ~@11 f5@4 eb5@2 c5@3 ~ f4@2 db5@4 d5@2, f2, d3 eb3]/2",
  C: "[bb4@4 f4@2 d4@4 c4@2 db4@3 ~@3 d4@3 ~@3 d5@6 bb4@4 gb4@2 d4@3 ~ gb4@2 bb4@3 ~@3, bb2@47 ~, f3 gb3]/2",
  D: "[g4@3 ~@14 c5@2 ~@5 f4@4 bb4@20, bb2, g3 ab3]/2", E: "[f2,c3,a3]@3 ~@3 g5@4 e5@2 f5@4 g5@2 a5@4 f5@2",
  F: "d5@4 c5@2 a4@4 f4@2 c5@4 f4@2 d5@4 f4 ~",
  G: "[eb5@9 ~ d5@2 db5@3 ~@2 d5@2 ~@3 bb5@2 ~@4 a5@19 ~, [gb2,eb3,a3]@23 ~]/2", // Ebdim
  H: "[~@4 a5@2 f5@3 ~ d5@2 f5@6 d5@4 a4@2 d5@6 a4@4 f4@2 a4@6 f4@4 d4@2, [bb2,f3,a3]]/2", // Bbmaj7
  I: "[bb2,ab3,db4,ab4]@3 ~@9 f4@4 db4@2 ab3@4 f3@2", J: "ab3@3 f3@2 ab3 db4@2 f4 ab4@2 db5",
  K: "[c5@4 a4@2 c5@3 ~ a4@2 g4@2 ~@3 f4@2 ~@3 db5@2 ~@5 db5@2 ~@3 a4@2 ~ g4@3 f4@2 ~@16 a4@2 g4@4 ~ f4@2 ~@11 f5@4 eb5@2 c5@4 f4@2 db5@4 d5@2, f2@47 d5@3 ~@46, c3 db3 f2@2, ~@2 d3 eb3]/4",
  L: "[bb4@4 f4@2 d4@4 c4@2 db4@4 ~ d4@2 ~@11 bb4@4 gb4@2 d4@4 gb4@2 bb4@4 f4@2, bb2, f3 gb3, ~@22 d5@7 ~@19]/2",
  M: "[g4@2 ~@15 c5@2 ~@3 c5@2 f4@4 bb4@19 ~, bb2, g3 ab3]/2", N: "~@4 d6@2 a5@3 ~ f5@2 d5@3 ~ f5 ~ a5@4 f5@2, [b2,a3]",
  O: "d6@9 ~ e6@8 d6@4 c6@2, [e2,ab3]", P: "~@17 g5@2 ~@3 c5@2, [a2,g3]", Q: "gb5@9 ~ d6@6 a5@2 c6@4 a5@2, [d2,gb3]",
  R: "[g3,d4]@11 bb4, bb5 ~@5, f3 ~@23", // G5
  S: "[bb5@2 ~@4 eb5@2 bb4 eb5@2 bb5 e4@12 ~@6 eb5@2 bb4 eb5@2 bb5, g3, eb4@8 d5 ~@7 eb4@8]/3",
  T: "[d5@6 bb4@4 g4@2 bb4@4 d5@2 bb4@3 ~@3 f5@6 d5@4 bb4@2 d5@4 f5@2 d5@3 ~@3, [c3,c4]]/2", U: "f5 ~@2 f5@9",
  V: "d5@2 ab4 g4@2 f4 d4@3 f4 ~@2", W: "~@18 c4@4 a4 ~, [a4,f5]@19 ~@5, ~@8 f3@3 ~",
  X: "~@18 db4@4 a4 ~, [a4,f5]@19 ~@5, ~@8 f3@3 ~", Y: "~@18 a3@4 f4 ~, [f4,c5]@19 ~@5, ~@8 d3@3 ~",
  Z: "~@18 a3@4 f4 ~, [f4,c5]@19 ~@5, ~@8 eb3@3 ~", AA: "~@5 d4 f4@4 ~ bb4@5 ~@2 [f3,d4,f4,bb4]@3 ~@3, f3@2 ~",
  AB: "~@4 [bb3,d4,gb4] ~@7 [bb3,d4,gb4]@11 ~, ~@2 c-1@3 ~ c-1@3 ~@3", // Bbaug
  AC: "g3@15 ~@5 d4@2 f4 ~, [d4,f4,bb4]@18 g3@5 ~, d3@12 ~@4 d3@7 ~", AD: "~@4 [ab3,c4,d4,g4] ~@7 [ab3,c4,d4,g4]@11 ~",
  AE: "[a3,d4,f4,c5]@3 ~@3 [a3,d4,f4,c5]@14 ~@3 [bb3,eb4,gb4,db5]", // Dm7 Ebm7
  AF: "~ [a3,d4,f4,c5]@3 ~ [a3,d4,f4,c5] ~@5 [a3,d4,f4,c5]@9 ~@4", // Dm7
  AG: "[~@12 [a3,eb4,gb4,c5]@3 ~@2 [a3,eb4,gb4,c5]@2 ~@3 [a3,eb4,gb4,c5]@13 ~ [a3,eb4,gb4,c5]@4 ~ gb2 [a3,eb4,gb4,c5]@2 ~@4]/2", // Adim
  AH: "~@4 [ab3,db4,f4,c5] ~@6 bb2 [ab3,db4,f4,c5]@11 bb2", // Dbmaj7
  AI: "~ [ab3,db4,f4,c5]@4 [ab3,db4,f4,c5] ~@5 [ab3,db4,f4,c5]@6 bb2 [ab3,db4,f4,c5]@2 ~@4", // Dbmaj7
  AJ: "~@5 [a3,d4,f4,c5] ~@7 [a3,d4,f4,c5]@3 ~ f3 ~ [a3,d4,f4,c5]@2 ~@3", // Dm7
  AK: "~@4 [a3,eb4,gb4,c5] ~@6 gb2 [a3,eb4,gb4,c5]@11 gb2", // Adim
  AL: "~ [a3,eb4,gb4,c5]@4 [a3,eb4,gb4,c5] ~@5 [a3,eb4,gb4,c5]@6 gb2 [a3,eb4,gb4,c5]@2 ~@4", AM: "[a3,d4,f4,c5]",
  AN: "~@5 [a3,d4,f4,c5]@5 ~@3 [a3,d4,f4,c5]@10 ~", // Dm7
  AO: "[ab3,ab4,c5,f5]@3 ~@2 bb2 [ab4,c5,f5]@10 ~@2 ab4@2 c5@2 f5 ~, ~@8 db4@3 ~", // Fm
  AP: "[ab3,db4,ab4,f5]@4 [ab3,db4,ab4,c5] ~@5 [db4,ab4,f5]@6 bb2 ~ [ab3,db4,ab4,c5]@3 ~@3, ~@10 ab3@5 ~@9", // Db Dbmaj7 Db Dbmaj7
  AQ: "~@12 [a3,f4,c5]@3 ~@2 [a3,f4,c5]@2 ~@5", AR: "~@4 [a3,db4,f4] ~@7 [a3,db4,f4]@11 ~",
  AS: "~@4 [a3,c4,d4,f4] ~@7 [a3,c4,d4,f4]@11 ~", AT: "a3@15 ~@5 eb4@2 f4 ~, [eb4,f4,c5]@18 a3@5 ~, eb3@12 ~@4 eb3@7 ~",
  AU: "~@12 [d4,f4,bb4]@3 ~@2 [d4,f4,bb4]@2 ~@5", AV: "~@4 [d4,gb4,bb4] ~@7 [d4,gb4,bb4]@11 ~",
  AW: "~@12 [g3,d4,f4,bb4]@3 ~@2 [g3,d4,f4,bb4]@2 ~@5", AX: "~@12 [ab3,d4,g4,c5]@3 ~@2 [ab3,d4,g4,c5]@2 ~@5",
  AY: "~@4 [a3,d4,f4,b4] ~@7 [a3,d4,f4,b4]@11 ~", AZ: "~@12 [ab3,d4,f4,c5]@3 ~@2 [ab3,d4,f4,c5]@2 ~@5",
  BA: "~@4 [g3,c4,e4,a4] ~@7 [g3,c4,e4,a4]@11 ~", BB: "~@4 [gb3,c4,eb4,ab4] ~@7 [gb3,c4,eb4,ab4]@11 ~",
  BC: "~@4 [bb3,d4,g4] ~@7 [bb3,d4,g4]@11 ~", BD: "~@18 bb3@4 g4 ~, [g4,eb5]@19 ~@5, ~@8 eb3@3 ~",
  BE: "~@5 e4 g4@4 ~ d5@5 ~@2 [bb3,e4,g4,d5]@3 ~@3, bb3@2 ~", // Em7b5
  BF: "bb3@15 ~@5 eb4@2 g4 ~, [eb4,g4,eb5]@18 bb3@5 ~, eb3@12 ~@4 eb3@7 ~", // Eb
  BG: "~@4 [f3,g3,bb3,d4] ~@7 [f3,g3,bb3,d4]@11 ~", BH: "~ c3@4 [g3,bb3,db4,f4]@2 ~@5 [g3,db4,f4,bb4]@3 ~@9",
  BI: "~@5 f4 a4@4 ~ db5@5 ~@2 [a3,f4,a4,db5]@3 ~@3, a3@2 ~", BJ: "~@12 [a3,c4,d4,f4]@3 ~@2 [a3,c4,d4,f4]@2 ~@5",
  BK: "~@4 [a3,b3,eb4,g4,d5] ~@7 [a3,b3,eb4,g4,d5]@11 ~", BL: "~@4 [d4,f4,bb4] ~@7 [d4,f4,bb4]@11 ~",
  BM: "~@18 g3@4 f4 ~, [f4,bb4]@19 ~@5, ~@8 d3@3 ~", BN: "~@12 [ab3,c4,d4,g4]@3 ~@2 [ab3,c4,d4,g4]@2 ~@5",
  BO: "~@5 [a3,f4,c5] ~@7 [a3,f4,c5]@3 ~ f3 ~ [a3,f4,c5]@2 ~@3", // F
  BP: "[~@44 eb4@2 gb4 ~, eb3@23 ~, [eb4,gb4,c5]@21 a3@2 ~, ~@20 gb2@3 ~]/2", // Cdim
  BQ: "~@4 [a3,d4,f4,c5] ~@6 bb2 [a3,d4,f4,c5]@11 bb2", // Dm7
  BR: "~ [a3,d4,f4,c5]@4 [a3,d4,f4,c5] ~@5 [a3,d4,f4,c5]@6 bb2 [a3,d4,f4,c5]@2 ~@4", // Dm7
  BS: "~@13 [g3,db4,g4,bb4]@3 ~@8, ~@3 f5 ~@2", // Gdim
  BT: "[g3,db4,g4,bb4,f5]@7 ~@4 [g3,db4,g4,f5]@6 bb2 [g3,db4,g4,bb4,f5]@3 ~@3, ~@5 bb4@3 ~@4", // Gm7b5
  BU: "db4@15 ~@5 f4@2 a4 ~, [f4,a4,f5]@18 db4@5 ~, f3@12 ~@4 f3@7 ~", // F
  BV: "a3@15 ~@5 d4@2 f4 ~, [d4,f4,c5]@18 a3@5 ~, d3@12 ~@4 d3@7 ~", // Dm7
  BW: "~@12 [a3,b3,d4,eb4,g4]@3 ~@2 [a3,b3,d4,eb4,g4]@2 ~@5", BX: "~@12 [d4,gb4,bb4]@3 ~@2 [d4,gb4,bb4]@2 ~@5",
  BY: "~@4 [ab3,bb3,d4,f4] ~@7 [ab3,bb3,d4,f4]@11 ~", BZ: "~@4 [g3,db4,gb4,b4] ~@7 [g3,db4,gb4,b4]@11 ~",
  CA: "g3@15 ~@5 db4@2 f4 ~, [db4,f4,bb4]@18 g3@5 ~, db3@12 ~@4 db3@7 ~", // Bbm
  CB: "~@4 [gb3,c4,e4,b4] ~@7 [gb3,c4,e4,b4]@11 ~", CC: "~@18 c4@4 a4 ~, [a4,e5]@19 ~@5, ~@8 gb3@3 ~",
  CD: "~@18 b3@4 a4 ~, [a4,d5]@19 ~@5, ~@8 f3@3 ~", // D5
  CE: "b3@15 ~@5 f4@2 ab4 ~, [f4,ab4,db5]@18 b3@5 ~, f3@12 ~@4 f3@7 ~", // Db
  CF: "~@4 [e3,bb3,d4,a4] ~@7 [e3,bb3,d4,a4]@11 ~", CG: "~@12 [e3,bb3,d4,g4]@3 ~@2 [e3,bb3,d4,g4]@2 ~@5",
  CH: "~@12 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@2 ~@5", CI: "~@12 [a3,db4,f4]@3 ~@2 [a3,db4,f4]@2 ~@5",
  CJ: "~@4 [bb3,d4,f4] ~@7 [bb3,d4,f4]@11 ~", CK: "~@4 [g3,d4,f4,bb4] ~@7 [g3,d4,f4,bb4]@11 ~",
  CL: "~@4 [ab3,d4,g4,c5] ~@7 [ab3,d4,g4,c5]@11 ~", // Abmaj7
  CM: "[f3,f4,a4,f5]@3 ~@2 f2 [f4,a4,f5]@10 ~@2 f4@2 a4@2 f5 ~, ~@8 c4@3 ~", // F
  CN: "[f3,c4,f4,f5]@4 [f3,c4,f4,a4] ~@5 [c4,f4,f5]@6 f2 ~ [f3,c4,f4,a4]@3 ~@3, ~@10 f3@5 ~@9", // F5 F F5 F
  CO: "~@5 [a3,eb4,gb4,c5] ~@7 [a3,eb4,gb4,c5]@3 ~ gb2 ~ [a3,eb4,gb4,c5]@2 ~@3", // Adim
  CP: "[a3,a4,c5,f5]@3 ~@2 bb2 [a4,c5,f5]@10 ~@2 a4@2 c5@2 f5 ~, ~@8 d4@3 ~", // F
  CQ: "[a3,d4,a4,f5]@4 [a3,d4,a4,c5] ~@5 [d4,a4,f5]@6 bb2 ~ [a3,d4,a4,c5]@3 ~@3, ~@10 a3@5 ~@9", // Dm D7 Dm D7
  CR: "~@13 [ab3,db4,ab4,c5]@3 ~@8, ~@3 f5 ~@2", // Dbmaj7
  CS: "[ab3,db4,ab4,c5,f5]@7 ~@4 [ab3,db4,ab4,f5]@6 bb2 [ab3,db4,ab4,bb4,f5]@3 ~@3, ~@5 bb4@3 ~@4", // Dbmaj7 Db Bbm7
  CT: "~@5 [a3,c4,f4] ~@7 [a3,c4,f4]@3 ~ f3 ~ [a3,c4,f4]@2 ~@3", CU: "[a3,c4,eb4,gb4]",
  CV: "~@5 [a3,c4,eb4,gb4]@5 ~@3 [a3,c4,eb4,gb4]@10 ~", CW: "~@13 [a3,d4,a4,c5]@3 ~@8, ~@3 f5 ~@2",
  CX: "[a3,d4,a4,c5,f5]@7 ~@4 [a3,d4,a4,f5]@6 bb2 [a3,d4,a4,c5,f5]@3 ~@3, ~@5 c5@3 ~@4", // Dm7 Dm Dm7
  CY: "~@4 [ab3,db4,f4,bb4] ~@6 bb2 [ab3,db4,f4,bb4]@11 bb2", // Bbm7
  CZ: "~ [ab3,db4,f4,bb4]@4 [ab3,db4,f4,bb4] ~@5 [ab3,db4,f4,bb4]@6 bb2 [ab3,db4,f4,bb4]@2 ~@4", // Bbm7
  DA: "~@13 [f3,c4,f4,a4]@3 ~@8, ~@3 f5 ~@2", // F
  DB: "[f3,c4,f4,a4,f5]@7 ~@4 [f3,c4,f4,f5]@6 f2 [f3,c4,f4,a4,f5]@3 ~@3, ~@5 a4@3 ~@4", DC: "[a3,d4,f4,c5]@23 ~",
  DD: "[a3,d4,f4,c5]@3 ~@2 [a3,d4,f4,c5]@2 ~@4 [a3,d4,f4,c5]@5 bb1 ~ [a3,d4,f4,c5]@3 ~@3", // Dm7
  DE: "~@5 [ab3,bb3,db4,f4] ~@7 [ab3,bb3,db4,f4]@3 ~ bb2 ~ [ab3,bb3,db4,f4]@2 ~@3", // Bbm7
  DF: "[~@12 [a3,f4,c5]@3 ~@2 [a3,f4,c5]@2 ~@3 [a3,f4,c5]@13 ~ [a3,f4,c5]@4 ~ f3 [a3,f4,c5]@2 ~@4]/2", // F
  DG: "~@5 [ab3,db4,f4,bb4] ~@7 [ab3,db4,f4,bb4]@3 ~ bb2 ~ [ab3,db4,f4,bb4]@2 ~@3", // Bbm7
  DH: "[eb3,eb4,gb4,c5]@3 ~@2 gb2 [eb4,gb4,c5]@10 ~@2 eb4@2 gb4@2 c5 ~, ~@8 a3@3 ~", // Cdim
  DI: "[eb3,a3,eb4,c5]@4 [eb3,a3,eb4,gb4] ~@5 [a3,eb4,c5]@6 gb2 ~ [eb3,a3,eb4,gb4]@3 ~@3, ~@10 eb3@5 ~@9", // Adim Ebdim Adim Ebdim
  DJ: "~@5 [bb2,d3,a3,c5,f5,c6] ~@5 f5 ~ [bb2,d3,a3,c6]@9 f5 ~, ~@6 c5@5 ~", // Bbmaj7
  DK: "[bb2,d3,a3,c5,c6]@5 f5 ~@4 [bb2,d3,a3,c5,c6]@6 ~@2 [d3,a3,c5,f5]@3 ~@3, ~@17 bb2@2 ~@5", // Bbmaj7 Dm7
  DL: "[ab3,c4,db4,f4]@3 ~@3 [ab3,c4,db4,f4]@14 ~@3 [a3,db4,d4,gb4]", // Dbmaj7 Dmaj7
  DM: "~ [ab3,c4,db4,f4]@3 ~ [ab3,c4,db4,f4] ~@5 [ab3,c4,db4,f4]@9 ~@4", // Dbmaj7
  DN: "~@5 d4 f4@4 ~ bb4@5 ~@2 [g3,d4,f4,bb4]@3 ~@3, g3@2 ~", DO: "~@4 [ab3,c4,d4,f4] ~@7 [ab3,c4,d4,f4]@11 ~",
  DP: "~@4 [g3,b3,eb4] ~@7 [g3,b3,eb4]@11 ~", DQ: "g3@15 ~@5 c4@2 eb4 ~, [c4,eb4,bb4]@18 g3@5 ~, c3@12 ~@4 c3@7 ~",
  DR: "~@4 [g3,db4,eb4,bb4] ~@7 [g3,db4,eb4,bb4]@11 ~", // Eb7
  DS: "~@5 [bb3,d4,f4] ~@7 [bb3,d4,f4]@3 ~ f3 ~ [bb3,d4,f4]@2 ~@3", // Bb
  DT: "~@4 [ab3,d4,f4,b4] ~@6 b2 [ab3,d4,f4,b4]@11 b2", // Abdim
  DU: "~ [ab3,d4,f4,b4]@4 [ab3,d4,f4,b4] ~@5 [ab3,d4,f4,b4]@6 b2 [ab3,d4,f4,b4]@2 ~@4", // Abdim
  DV: "[eb3,eb4,g4,c5]@3 ~@2 c3 [eb4,g4,c5]@10 ~@2 eb4@2 g4@2 c5 ~, ~@8 bb3@3 ~", // Cm
  DW: "[eb3,bb3,eb4,c5]@4 [eb3,bb3,eb4,g4] ~@5 [bb3,eb4,c5]@6 c3 ~ [eb3,bb3,eb4,g4]@3 ~@3, ~@10 eb3@5 ~@9", // Cm7 Eb Cm7 Eb
  DX: "~@4 [c4,gb4,bb4,eb5] ~@7 [c4,gb4,bb4,eb5]@11 ~", DY: "[d4,g4,bb4,f5]@23 ~",
  DZ: "[d4,g4,bb4,f5]@3 ~@2 [d4,g4,bb4,f5]@2 ~@4 [d4,g4,bb4,f5]@5 bb1 ~ [d4,g4,bb4,f5]@3 ~@3", // Gm7
  EA: "[d4,ab4,b4,f5]@3 ~@3 [d4,ab4,b4,f5]@14 ~@3 [eb4,a4,c5,gb5]", // Ddim Ebdim
  EB: "~ [d4,ab4,b4,f5]@3 ~ [d4,ab4,b4,f5] ~@5 [d4,ab4,b4,f5]@9 ~@4", // Ddim
  EC: "[bb3,eb4,g4,d5]@3 ~@3 [bb3,eb4,g4,d5]@14 ~@3 [b3,e4,ab4,eb5]", // Ebmaj7 Emaj7
  ED: "~ [bb3,eb4,g4,d5]@3 ~ [bb3,eb4,g4,d5] ~@5 [bb3,eb4,g4,d5]@9 ~@4", // Ebmaj7
  EE: "~@18 gb3@4 eb4 ~, [eb4,bb4]@19 ~@5, ~@8 c3@3 ~", EF: "~@12 [gb3,c4,eb4,bb4]@3 ~@2 [gb3,c4,eb4,bb4]@2 ~@5",
  EG: "~@5 eb4 g4@4 ~ b4@5 ~@2 [g3,eb4,g4,b4]@3 ~@3, g3@2 ~", EH: "~@18 g3@4 eb4 ~, [eb4,bb4]@19 ~@5, ~@8 c3@3 ~",
  EI: "~@5 db4 f4@4 ~ c5@5 ~@2 [g3,db4,f4,c5]@3 ~@3, g3@2 ~", EJ: "~@4 [g3,bb3,d4,e4] ~@7 [g3,bb3,d4,e4]@11 ~",
  EK: "~@2 [g3,db4,gb4,bb4] ~@3 [g3,bb3,db4,gb4]@2 ~ [gb3,c4,eb4,bb4]@2 ~", // Gb Cm7b5
  EL: "~ [c4,gb4,bb4,gb5,eb6]@4 ~@11 [gb3,c4,f4,bb4]@2 ~@6, bb5 ~@5", // Cm7b5 Gbmaj7
  EM: "[gb3,c4,f4,bb4]@4 ~@5 [f3,b3,e4,a4]@2 ~ [f3,f4,a4,d5]@11 ~", EN: "~@12 [eb3,c4,g4]@3 ~@2 [eb3,c4,g4]@2 ~@5",
  EO: "~@18 eb4@4 c5 ~, [c5,ab5]@19 ~@5, ~@8 ab3@3 ~", EP: "~@18 a3@4 g4 ~, [g4,c5]@19 ~@5, ~@8 eb3@3 ~",
  EQ: "~@4 [c4,eb4,ab4] ~@7 [c4,eb4,ab4]@11 ~", ER: "~@4 [bb3,eb4,g4,d5] ~@7 [bb3,eb4,g4,d5]@11 ~",
  ES: "~@12 [c4,gb4,bb4,eb5]@3 ~@2 [c4,gb4,bb4,eb5]@2 ~@5", ET: "[~@12 [f2,f3]@3 ~ [f2,f3]@2 ~@4 [f2,f3]@101 ~@21]/6",
  EU: "c4@15 ~@5 gb4@2 a4 ~, [gb4,a4,e5]@18 c4@5 ~, gb3@12 ~@4 gb3@7 ~", // Gbm7
  EV: "~@18 c4@4 bb4 ~, [bb4,f5]@19 ~@5, ~@8 gb3@3 ~", EW: "~@12 [b3,f4,a4,e5]@3 ~@2 [b3,f4,a4,e5]@2 ~@5",
  EX: "~@4 [b3,d4,f4,a4] ~@7 [b3,d4,f4,a4]@11 ~", EY: "~@18 bb3@4 g4 ~, [g4,d5]@19 ~@5, ~@8 e3@3 ~",
  EZ: "~@4 [bb3,e4,ab4,eb5] ~@7 [bb3,e4,ab4,eb5]@11 ~", FA: "[a3,eb4,g4,c5] ~@5",
  FB: "[g3,g4,bb4,f5]@3 ~@2 f3 [g4,bb4,f5]@10 ~@2 g4@2 bb4@2 f5 ~, ~@8 d4@3 ~", // Gm7
  FC: "[g3,d4,g4,f5]@4 [g3,d4,g4,bb4] ~@5 [d4,g4,f5]@6 f3 ~ [g3,d4,g4,bb4]@3 ~@3, ~@10 g3@5 ~@9", // G7 Gm G7 Gm
  FD: "~@13 [g3,db4,g4,bb4]@3 ~@8, ~@3 e5 ~@2", // Gdim
  FE: "[g3,db4,g4,bb4,e5]@7 ~@4 [g3,db4,g4,e5]@6 f3 [g3,db4,g4,bb4,e5]@3 ~@3, ~@5 bb4@3 ~@4", // Gdim Dbdim Gdim
  FF: "[[db2,ab2,f3,b3,eb4] [d2,a2,gb3,db4,e4] [eb2,bb2,g3,d4,f4]@2]/3", FG: "[bb1,bb2] ~@7",
})).s("gm_piano").gain(0.31).pan(0.6)

// chords · piano · "Piano ( B" · soft notes
const piano_soft = note(`<
  ~@36 A B C D E ~@17 F ~@14 G H ~@6 I ~@4 J ~@3 K@2 ~@15 L M ~@5 C ~@5 N ~@3 O ~@29 P ~@11 E ~ G ~@7 Q ~@9 R ~@5 G S T
  S ~@3 U ~ V D ~@22 L ~@2 W ~ D ~@9 X ~@9
// … 488 more lines