Strudelify

memes

memes

KeyE♭ majorTempo120 bpm
0:00/0:00
// memes — memes
// 120 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: metre changes (4/4 at bar 1, 2/4 at bar 127, 4/4 at bar 128) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5544098; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 156 bars on a 32-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.

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C@6 D@2 E F G H I B ~@5 J@2 K L M N O P Q R S@4 T U@2 V W@2 X@2 Y Z AA@3 AB@3 AC@3 AD@3 AE AF AG AF AG AF AG AF AG
  AF AG AF AG AF AG AF AH@8 ~@5 AI@8 AJ AK@4 AL@4 ~@7 AM@8 AN@8 AO AP@3 AQ AR AS AT AU@6 AV@4 ~@2 AW AX@2 AY@4 AZ BA BB
>`.pickRestart({
  A: "~@11 f3 g3 ab3@3", B: "g3@3 f3@2 eb3@4 bb3@7",
  C: "[~@11 eb3@3 bb3 bb3@4 eb3@3 bb3 bb3@4 eb3@3 bb3 bb3@4 eb3@3 bb3 b3@4 c4@4 g3@4 a3@4 f3@4 bb3@4 f3@4 d3@4 bb2@4 eb3@3 eb3 bb3@4 g3@3 g3 eb3@4 ab3@3 b3 ~]/6",
  D: "[~ c4@5 g3 c3@4 f3@3 c4 c4@4 bb3@4 bb2@4 c4@3 bb3 ~]/2", E: "ab3@2 g3 ~@13", F: "~@12 f3 d3 f3 ~",
  G: "f3 d3 f3 c3!2 ~ bb2 ~ d3 bb2 c3 bb2@2 ~@3", H: "~@12 f3 g3 eb3 g3",
  I: "f3@2 g3@2 ab3@2 bb3@6 f3 [eb3,e3] [db3,d3] [b2,c3] bb2@4 ~@2 f3@2 g3@2 ab3@6", // Emaj7 Dmaj7 Cmaj7
  J: "[~@11 eb4@2 d4@3 eb4@3 bb3@2 a3@3 bb3@2 b3@3 db4@2 b3@3 bb3@2 ab3@3 gb3@2 f3@3 e3@2 f3@3 bb3@2 ab3@3 g3@2 f3@3 g3@2 bb2@3]/2",
  K: "g3@3 f3@2 g3@3 eb3@3 ~@4 bb3@3 ~@5 eb3@3 ~@4 bb2@2", L: "~@6 eb3@3 ~@4 bb2@3 ~@5 eb3@3 ~@5 bb2@3",
  M: "~@2 bb3@2 eb4@20 eb4 ~@2 d4@3 ~@2", N: "d4 ~@2 bb3@3 ~@2 bb3 ~ c4@3 ~@2 c4 ~@2 g3@4 ~@3 g3@7",
  O: "~ g3@3 ~@2 g3 ~ f3@3 ~@2 eb3 ~@2 eb3@16", P: "~@4 g3 ~@2 f3@3 ~@2 eb3 ~ eb3@15 eb3@3", Q: "~@10 bb3@3 eb4@19",
  R: "~ eb4 ~ d4@3 ~@2 d4 ~@2 bb3@3 ~@2 bb3 ~@2 c4@4 ~ c4 ~ g3@4 ~@2",
  S: "[~@2 g3@10 ~@2 g3 ~@2 f3@3 ~@2 eb3 ~ eb3@15 ~ eb3@3 ~@2 g3 ~ f3@4 ~ eb3 ~@2 eb3@19 ~@9 g3 ~ g3@15 g3@3 ~@2 g3 ~@2 a3@4 ~ a3 ~ g3@3 ~@2 g3 ~@2 a3@3 ~@2]/4",
  T: "a3 ~@2 g3@4 ~@3 d3@10 ~@3 d3 ~ d3@3 ~@2 d3 ~",
  U: "[~ d3@10 d4@5 d3@4 ~@9 bb3 ~ bb3@18 ~@2 bb3 ~@2 c4 ~ d4 ~@2 c4 ~ bb3@3]/2",
  V: "~@3 bb3 ~ c4 ~@2 d4 ~ c4 ~@2 bb3@4 ~@3 f3@10 ~@2",
  W: "[~ f3 ~ f3@3 ~@2 f3 ~@2 f3@15 f3@10 ~@5 d4@8 c4 ~@6 d4@8]/2",
  X: "[c4 ~@7 eb4@5 d4 ~ c4@5 eb4 ~@2 d4@15 d4@7 c4 ~@7 d4@8 c4 ~@2]/2",
  Y: "~@4 eb4@5 d4 ~@2 c4@5 eb4 ~ bb3@5 g3 ~@2 g3@5", Z: "g3 ~@2 g3@5 g3 ~ g3@5 g3 ~@2 g3@5 g3 ~ g3@5 g3 ~",
  AA: "[~ g3@5 g3 ~ g3@5 g3 ~@2 eb3@15 f3@5 eb3 ~@2 c3@5 eb3 ~ bb2@5 g2 ~@2 g2@5 ab2 ~ bb2@5 ~ ab2 ~ g2@5 f2 ~@2 eb2@10 b2@5 eb4@4]/3",
  AB: "[~ gb2@5 eb4@5 ~@5 eb4@5 gb2@5 eb4@5 g3@5 b3@5 d3@5 b3@5 g3@5 b3@5 d3@5 ~ b3@5 c3@5 ab3@5 f2@5 ab3@5 bb2@4]/3",
  AC: "[~ ab3@5 f2@5 ab3@5 c3@5 ab3@5 f2@5 ab3@5 bb2@5 ab3@5 bb2@5 c3@5 db3@5 ab3@5 ~ gb2@5 ab3@5 db3@5 ab3@5 gb2@5 ab3@4]/3",
  AD: "[~ b2@5 b3@5 gb2@5 b3@5 b2@5 gb3@5 ab3@5 a3@5 bb3@5 db4@5 db4@5 db4@5 ab3@5 ~ db4@5 bb3@5 db4@5 b2@5 ~@5 gb2@4]/3",
  AE: "~@6 b2@5 ~@13 eb2@8", AF: "~ a2 bb2@2 ~ c3 f2@2", AG: "~ g2 ab2@2 ~ bb2 eb2@2",
  AH: "[~ g2 ab2@2 d2@2 eb2@4 ab2@4 a2@4 ab2@4 eb2@4 ab2@4 a2@4 ab2@4 eb2@4 ab2@4 a2@4 ab2@4 bb2@4 ab2@4 a2@2]/8",
  AI: "[~@27 g2@10 g2@11 g2@11 eb2@8 bb2@2 g2@11 eb2@8 bb2@3 g2@21 d3@11 d3@10 d3@11 eb3@8 bb2@3 gb2@10 eb2@8 bb2@3 g2@21 g3@11 g2@8 g2@3 g3@10 gb3@8 f3@3 e3@3 eb3@2 e3@5 ~@6]/8",
  AJ: "ab2@5 db3@11 c3@8 b2@3 bb2@2 a2@3",
  AK: "[bb2@5 ~@6 eb2@5 gb2@11 eb2@8 g2@2 bb2@11 g2@8 bb2@3 d3@21 g3@11 g2@8 g2@2 g3@11 gb3@8 f3@3 e3@2 eb3@3]/4",
  AL: "[e3@5 ~@6 ab2@5 db3@11 c3@8 b2@2 bb2@3 a2@3 bb2@5 ~@5 eb2@5 ~ gb2@10 eb2@8 bb2@3 g2@11 eb2@8 bb2@2 g2@21 ~@6]/4",
  AM: "[~@27 f3@4 f3@4 f3@2 f3@2 ~@2 f3@4 f3@4 f3@2 f3@2 f3@2 f3@4 eb3@4 eb3@4 eb3@2 eb3@2 ~@2 eb3@4 eb3@4 eb3@2 eb3@2 eb3@2 eb3@4 d3@4 d3@4 d3@2 d3@2 ~@2 d3@4 d3@4 d3@2 d3@2 d3@2 d3@4 db3@4 db3@4 db3@2 db3@2 ~@2 eb3@4 eb3@4 eb3@2 eb3@2 eb3@2 eb3@4 f3@4 f3@4 f3@2 f3@2 ~@2 f3@4 f3@4 f3@2 f3@2 f3@2 f3@4 eb3@4 eb3@4 eb3@2 eb3@2 ~@2 eb3@4 eb3@4 eb3@2 eb3@2 eb3@2 eb3@4 d3@4 d3@4 d3@2 d3@2 ~@2 d3@4 d3@4 d3@2 d3@2 d3@2 d3@4 db3@4 db3]/8",
  AN: "[~@3 db3@2 db3@2 ~@2 eb3@4 eb3@4 eb3@2 eb3@2 eb3@2 eb3@4 f3@32 eb3@32 d3@32 db3@14 eb3@2 eb3@14 ~@2 f2@2 f2@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 eb2@2 eb2@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 d2@2 d2@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 db2@2 db2@2 f3]/8",
  AO: "~@3 c3@4 ~@2 b2@2 b2@2 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 ~@5",
  AP: "[~@22 f2@2 ab2@2 ~ bb2@2 bb2@7 ab2@5 ~@19 f2@2 ~ ab2@2 bb2@2 bb2@5 ab2@5 f2@5 eb2@2 f2@5 ~@7]/3",
  AQ: "bb2@2 ~ ab2@2 f2@2 eb2@2 ~ f2@2 ~@20", AR: "~@9 f2@2 ab2@2 ~ bb2@2 bb2@7 ab2@5 ~@4",
  AS: "~@15 f2@2 ~ ab2@2 bb2@2 ~ bb2@4 ab2@5", AT: "f2@5 eb2@2 f2@5 ~@7 bb2@2 ~ ab2@2 f2@2 ~ eb2@2 f2@2 ~",
  AU: "[~@19 c3@48 ~@29]/3", AV: "[~@31 ab2@36 c3@48 ~@13]/4", AW: "~@19 bb3@13",
  AX: "[ab3@14 g3@7 f3@7 eb3@7 d3@3 c3@10 d3@7 eb3@5 f3@3 ~]/2",
  AY: "[g3@2 ~ c4@2 c3@7 d3@7 eb3@5 f3@3 g3@2 a3@2 ~ c3@7 d3@7 eb3@5 f3@3 ~@2 a3@2 c4@2 c3@7 d3@7 eb3@5 f3@3 g3@2 a3@2 ~ c3@7 d3@7 eb3@5 f3@3 ~@2 a3@2 c4@2 c3@7 d3@6, ~@2 a3@2 ~@27 c4@2 ~@22 g3@2 ~@29 c4@2 ~@22 g3@2 ~@16]/4",
  AZ: "eb3@5 ~ f3@3 g3@2 ~ c4@2 c3@7 d3@7 eb3@4, ~@11 a3@2 ~@19", BA: "~ f3@3 g3@2 a3@2 c4@2 c3@6 d3@7 eb3@5 f3@3 ~",
  BB: "g3@2 ~ c4@2 ~@27, ~ a3 ~@14",
})).s("gm_baritone_sax").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C@2 D E F@2 G H I J@2 K@2 B L M@2 N O@2 ~@3 P Q R@2 S T U V W ~@6 X Y Z AA@2 AB@3 AC@2 AD AE@2 AF AG@3 AH AI AJ AI
  AJ AI AJ AI AJ AI AJ AI AJ AI AJ AI AK AL AM AL AN AO AP@3 AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE AX BF BG BH BI
  BJ ~@7 BK@8 BL@8 BM ~@7 BN@6 BO@4 ~@2 BP BQ@8 ~
>`.pickRestart({
  A: "~@11 f4 g4 ab4@3", B: "g4@3 f4@2 eb4@4 bb4@7", C: "[~ bb3@6 bb3 bb3@3 g4@8 f4@8 f4@3 g4@2]/2",
  D: "~ ab4@2 g4@4 f4@4 eb4@3 f4@2", E: "~ g4@2 f4@4 c4@2 eb4@2 eb4@3 d4@2", F: "[eb4@2 f4@9 g4@8 bb4@8 c5@3 d5 ~]/2",
  G: "~ eb5@6 eb4@4 ab4@3 g4@2", H: "f4@2 eb4@5 d4@4 eb4@3 eb4 ~", I: "f4@2 bb3 ~@10 bb3@2 eb4",
  J: "[f4@2 ab4@3 g4@2 eb4@2 bb3@18 ~@2 bb3@2 eb4]/2", K: "[f4@2 ab4@3 g4@2 eb4@2 bb4@18 f4 g4 ab4@3]/2",
  L: "~@27 g4@5", M: "[~ eb4@3 bb3@6 eb4@3 g4@6 eb4@3 bb4@6 g4@3 eb5@3 d5@3 eb5@3 f5@3 eb5@3 d5@3 eb5@6 bb4@3 g4@6]/2",
  N: "eb4@3 d4@6 c4@3 d4@6 eb4@3 f4@6 g4@3 ab4@2", O: "[~ g4@3 f4@3 bb4@6 a4@3 bb4@6 c5@3 d5@6 bb4@3 ab4@3 ~@27]/2",
  P: "~@4 eb4@3 ~@5 bb3@3 ~@4 eb4@3 ~@5 bb3@3 ~@2", Q: "~@3 eb4@3 ~@4 bb3@3 ~@5 eb4@3 ~@4 bb3@3 ~@4",
  R: "[~ eb4@3 ~@4 bb3@3 ~@5 eb4@3 ~@5 bb3@3 ~@4 eb4@3 ~@5 bb3@3 ~@4 eb4@3 ~@5 bb3@3 ~@4 eb4@3]/2",
  S: "~@5 bb3@3 c4@2 d4@3 eb4@3 ~@4 bb3@3 ~@5 eb4@3 ~", T: "~@3 bb3@3 ~@5 eb4@3 ~@5 bb3@3 ~@4 eb4@3 ~@3",
  U: "~@2 bb3@3 ~@4 eb4@3 ~@5 bb3@3 ~@4 eb4@3 ~@5", V: "bb3@3 ~@5 eb4@3 ~@4 bb3@3 ~@5 eb4@3 ~@4 bb3@2",
  W: "~ c4@2 d4@3 eb4@3 ~@4 eb4@3 ~@5 g4@3 ~@8", X: "~@9 bb3@8 f4@3 ~@4 bb3@8", Y: "f4@3 ~@5 bb3@7 f4@3 ~@5 bb3@7 f4@2",
  Z: "~ g4@2 f4@3 bb3@7 f4@3 ~@5 bb3@8 f4@3", AA: "[~@4 bb3@8 f4@3 ~@4 eb4@8 eb4@8 d4@7 d4@8 ~@5 c5@2 c5@5 c5 ~]/2",
  AB: "[~ b4@5 b4 ~ g4@5 g4 ~@2 c5@8 g4@7 ab4@8 a4@7 bb4@8 c5@7 bb4@8 bb4@3 c5@2 d5@3 eb5@10 gb4@5 ab4@4]/3",
  AC: "[~ bb4@5 b4@10 db5@5 eb5@10 g4@5 ~@28]/2", AD: "~@8 c5@5 ab4@5 c5@5 bb4@9",
  AE: "[~@13 b4@3 c5@5 ab4@5 ab4@5 c5@3 bb4@10 ~ a4 bb4@4 a4 bb4@4 a4 bb4@8]/2",
  AF: "~@3 bb4@10 ~@8 a4 ~ bb4@4 a4 bb4@4",
  AG: "[~ b4@10 b4@10 ~@3 gb4@2 gb4@5 ab4@5 a4@5 bb4@10 db5@10 ab4@10 ~ bb4@10 b4@5 gb4@2 gb4@3 ~@4]/3",
  AH: "~ gb4@3 ~@7 gb4@3 ~@18", AI: "eb4 ~@2 d4!2 ~@3", AJ: "c4 ~@2 c4 ~ c4 ~@2", AK: "c4 ~@2 c4 ~ c4 eb4 ~",
  AL: "bb3 f4@2 ~ bb3 gb4@2 ~", AM: "c4 f4@2 ~ bb3 eb4@2 ~", AN: "c4 f4@2 ~ bb3 eb4@3", AO: "~ f4@3 ~@2 gb4@2",
  AP: "[~@4 f4@12 ~@8 eb4@16 f4@16 f4@16 eb4@8 g4@5 ~@6 g4@3 ~@2]/3",
  AQ: "g4@2 g4@2 g4 g4@3 ~@3 g4 g4@2 g4@2 eb5@2 eb5@2 eb5 eb5@3 ~@3 g4@5",
  AR: "~@5 g4@3 ~@3 g4 g4@2 g4@2 g4@3 ~@2 g4@2 g4@2 g4@2 eb5 eb5@2 eb5@2",
  AS: "eb5@3 ~@2 g4@5 ~@6 g4@3 ~@2 g4@2 g4@2 g4@2 g4@3 ~@2",
  AT: "g4@2 g4@2 ~ gb5@2 gb5@2 gb5@2 gb5@3 ~@2 g4@5 ~@6 g4@3 ~@2, ~@2 g4 ~@13",
  AU: "g4@2 g4@2 g4 g4@3 ~@3 g4 g4@2 g4@2 gb5@2 gb5@2 gb5 gb5@3 ~@3 g4@5",
  AV: "~@5 g4@3 ~@3 g4 g4@2 g4@2 g4@3 ~@2 g4@2 g4@2 g4@2 g4 g4@2 g4@2",
  AW: "g4@3 ~@2 g4@5 ~@6 g4@3 ~@2 g4@2 g4@2 g4@2 g4@3 ~@2",
  AX: "g4@2 g4@2 g4 g4@2 g4@2 g4@2 g4@3 ~@2 g4@5 ~@6 g4@3 ~@2",
  AY: "g4@2 g4@2 g4 g4@3 ~@3 g4 g4@2 g4@2 g4@2 g4@2 g4 g4@3 ~@3 gb4@5",
  AZ: "~@5 eb4@3 ~@3 eb4 eb4@2 eb4@2 d4@3 ~@2 d4@2 d4@2 d4@2 eb4 eb4@2 eb4@2",
  BA: "f4@3 ~@2 g4@5 ~@6 g4@3 ~@2 g4@2 g4@2 g4@2 g4@3 ~@2",
  BB: "g4@2 g4@2 g4 g4@2 g4@2 g4@2 g4@3 ~@2 ab4@5 ~@6 ab4@3 ~@2",
  BC: "ab4@2 ab4@2 ab4 ab4@3 ~@3 ab4 ab4@2 ab4@2 ab4@2 ab4@2 ab4 ab4@3 ~@3 bb4@5",
  BD: "~@5 bb4@3 ~@3 bb4 bb4@2 bb4@2 bb4@3 ~@2 bb4@2 bb4@2 bb4@2 bb4 bb4@2 bb4@2",
  BE: "bb4@3 ~@2 g4@5 ~@6 g4@3 ~@2 g4@2 g4@2 g4@2 g4@3 ~@2",
  BF: "g4@2 g4@2 g4 g4@3 ~@3 g4 g4@2 g4@2 g4@2 g4@2 g4 g4@3 ~@3 ab4@5",
  BG: "~@5 ab4@3 ~@3 ab4 ab4@2 ab4@2 ab4@3 ~@2 ab4@2 ab4@2 ab4@2 ab4 ab4@2 ab4@2",
  BH: "ab4@3 ~@2 bb4@5 ~@6 bb4@3 ~@2 bb4@2 bb4@2 bb4@2 bb4@3 ~@2",
  BI: "bb4@2 bb4@2 bb4 bb4@2 bb4@2 bb4@2 bb4@3 ~@2 g4@5 ~@6 g4@3 ~@2",
  BJ: "g4@2 g4@2 g4 g4@3 ~@3 g4 g4@2 g4@2 g4@2 g4@2 g4 g4@3 ~@8",
  BK: "[~@27 f5@4 f5@4 f5@2 f5@2 ~@2 f5@4 f5@4 f5@2 f5@2 f5@2 f5@4 eb5@4 eb5@4 eb5@2 eb5@2 ~@2 eb5@4 eb5@4 eb5@2 eb5@2 eb5@2 eb5@4 d5@4 d5@4 d5@2 d5@2 ~@2 d5@4 d5@4 d5@2 d5@2 d5@2 d5@4 db5@4 db5@4 db5@2 db5@2 ~@2 eb5@4 eb5@4 eb5@2 eb5@2 eb5@2 eb5@4 f5@4 f5@4 f5@2 f5@2 ~@2 f5@4 f5@4 f5@2 f5@2 f5@2 f5@4 eb5@4 eb5@4 eb5@2 eb5@2 ~@2 eb5@4 eb5@4 eb5@2 eb5@2 eb5@2 eb5@4 d5@4 d5@4 d5@2 d5@2 ~@2 d5@4 d5@4 d5@2 d5@2 d5@2 d5@4 db5@4 db5]/8",
  BL: "[~@3 db5@2 db5@2 ~@2 eb5@4 eb5@4 eb5@2 eb5@2 eb5@2 eb5@4 f5@32 eb5@32 d5@32 db5@14 eb5@2 eb5@14 ~@2 f4@2 f4@2 f5@4 c5@4 ~@2 b4@4 bb4@4 ab4@4 f4@2 ab4@2 bb4@2 eb4@2 eb4@2 f5@4 c5@4 ~@2 b4@4 bb4@4 ab4@4 f4@2 ab4@2 bb4@2 d4@2 d4@2 f5@4 c5@4 ~@2 b4@4 bb4@4 ab4@4 f4@2 ab4@2 bb4@2 db4@2 db4@2 f5]/8",
  BM: "~@3 c5@4 ~@2 b4@2 b4@2 bb4@4 ab4@4 f4@2 ab4@2 bb4@2 ~@5", BN: "[~@19 c4@48 ~@29]/3",
  BO: "[~@31 ab4@36 c5@48 ~@13]/4", BP: "~@19 d5@7 eb5@3 d5 c5 bb4",
  BQ: "[c5@3 ~ bb4@3 ab4@3 ~ g4@3 bb4@3 ~ g4@3 ab4@3 f4@3 ~ g4@3 eb4@3 ~ f4@3 c5@7 c5@3 d5@7 eb5@7 d5@7 eb5@7 d5@3 c5@14 c5@7 c5@3 d5@7 eb5@7 d5@3 c5@17 ~@11 c5@7 c5@3 d5@7 eb5@7 d5@7 eb5@7 d5@3 c5@14 c5@7 c5@3 d5@7 eb5@7 d5@3 c5@3 ~ c5@14 ~@8]/8",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note(`<
  A B C@6 D@2 E F G@2 H B ~@5 I@2 J K L M N@2 O P Q R S T U V@2 W X Y Z AA AB@2 AC@3 AD@2 AE AF@2 ~@5 AG AH AI AH AI AH
  AI AH AI AH AI AJ AK AH AG AL AM AN AM AN AM AO@3 AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD AW BE BF BG BH BI ~@7
  BJ@8 BK@8 BL BM@2 BN BO@2 BP BQ BR@3 ~@9 BS BT@2 BU@4 BV BW BX
>`.pickRestart({
  A: "~@11 f3 g3 ab3@3", B: "g3@3 f3@2 eb3@4 bb3@7",
  C: "[~ bb2@6 bb2 bb2@3 eb3@3 bb3 bb3@4 eb3@3 bb3 bb3@4 eb3@3 bb3 bb3@4 eb3@3 bb3 b3@4 c4@4 g3@4 a3@4 f3@4 bb3@4 f3@4 d3@4 bb2@4 eb3@3 eb3 bb3@4 g3@3 g3 eb3@4 ab3@3 b3 ~]/6",
  D: "[~ c4@5 g3 c3@4 f3@3 c4 c4@4 bb3@4 bb2@4 c4@3 bb3 ~]/2", E: "ab3@2 g3 ~@8 c4@3 c3@2",
  F: "~ c3@2 c4@2 c3@2 ~ c3@3 bb2@3 bb2@2",
  G: "[~ bb2@2 bb3 bb2@3 f3@4 ab2@3 ab2 ab3@2 ab2@2 ~ ab2@3 eb3@4 g2@3 eb3@2]/2",
  H: "~ g2@2 ~@4 g3 eb3 bb2@2 f3 g3 ab3@3",
  I: "[~@11 eb4@2 d4@3 eb4@3 bb3@2 a3@3 bb3@2 b3@3 db4@2 b3@3 bb3@2 ab3@3 gb3@2 f3@3 e3@2 f3@3 bb3@2 ab3@3 g3@2 f3@3 g3@2 bb2@3]/2",
  J: "g3@3 f3@2 g3@3 eb3@3 ~@4 bb3@3 ~@5 eb3@3 ~@4 bb2@2", K: "~@6 eb3@3 ~@4 bb2@3 ~@5 eb3@3 ~@5 bb2@3",
  L: "~@4 eb3@3 ~@5 bb2@3 ~@4 eb3@3 ~@5 bb2@3 ~@2", M: "~@3 eb3@3 ~@4 bb2@3 ~@5 eb3@3 ~@4 bb2@3 ~@4",
  N: "[~ eb3@3 ~@4 bb2@3 ~@5 eb3@3 ~@5 bb2@3 ~@4 eb3@3 ~@5 bb2@3 ~@4 eb3@3 ~@5 bb2@3 ~@4 eb3@3]/2",
  O: "~@5 bb2@3 c3@2 d3@3 eb3@3 ~@4 bb2@3 ~@5 eb3@3 ~", P: "~@3 bb2@3 ~@5 eb3@3 ~@5 bb2@3 ~@4 eb3@3 ~@3",
  Q: "~@2 bb2@3 ~@4 eb3@3 ~@5 bb2@3 ~@4 eb3@3 ~@5", R: "bb2@3 ~@5 eb3@3 ~@4 bb2@3 ~@5 eb3@3 ~@4 bb2@2",
  S: "~ c3@2 d3@3 eb3@3 ~@4 eb3@3 ~@5 g3@3 ~@5 d3@3", T: "~@4 g3@3 ~@5 d3@3 ~@4 g3@3 ~@5 d3@3 ~@2",
  U: "~@3 g3@3 ~@4 d3@3 ~@5 g3@3 ~@4 d3@3 ~@4",
  V: "[~ g3@3 ~@4 d3@3 ~@5 g3@3 ~@5 d3@3 ~@4 bb2@3 ~@5 f3@3 ~@4 bb2@3 ~@5 f3@3 ~@4 bb2@3]/2",
  W: "~@5 f3@3 ~@5 bb2@3 ~@4 f3@3 ~@5 bb2@3 ~", X: "~@3 f3@3 ~@5 bb2@3 ~@5 f3@3 ~@4 bb2@3 ~@3",
  Y: "~@2 f3@3 ~@4 bb2@8 f3@3 ~@4 bb2@8", Z: "f3@3 ~@5 bb2@7 f3@3 ~@5 bb2@7 f3@2",
  AA: "~ g3@2 f3@3 bb2@7 f3@3 ~@5 bb2@8 f3@3", AB: "[~@4 bb2@8 f3@3 ~@4 eb3@8 eb3@8 d3@7 d3@8 ~@5 c3@2 c3@5 c3 ~]/2",
  AC: "[~ b2@5 b2 ~ g2@5 g2 ~@2 c3@8 g2@7 ab2@8 a2@7 bb2@8 c3@7 bb2@8 bb2@3 c3@2 d3@3 eb3@15 ab3@4]/3",
  AD: "[~ bb3@5 b3@10 db4@5 eb4@10 g3@5 ~@28]/2", AE: "~@8 c3@5 ab3@5 f3@5 ab3@5 bb2@4",
  AF: "[~ ab3@5 f3@5 ab3@5 c3@5 ab3@5 f3@5 ab3@5 bb2@5 ab3@5 bb2@5 c3@5 ~@8]/2", AG: "g3 ~@2 bb2!2 ~@3",
  AH: "ab2 ~@2 ab2 ~ ab2 ~@2", AI: "eb3 ~@2 bb2!2 ~@3", AJ: "ab2 ~@2 ab2 ~@4", AK: "d3 ~@2 bb2!2 ~@3",
  AL: "ab2 ~@2 ab2 ~ ab2 g3 bb2", AM: "eb3 c3 ab2 c3 eb3 c3!2 eb3", AN: "f3 eb3 c3 eb3 f3 eb3 g3 bb2",
  AO: "[f3@4 eb3@4 c3@4 eb3@4 f3@4 eb3@4 g3@16 db3@16 eb3@16 c3@8 g2@5 ~@6 g2@3 ~@2]/3",
  AP: "g2@2 g2@2 g2 g2@3 ~@3 g2 g2@2 g2@2 eb3@2 eb3@2 eb3 eb3@3 ~@3 g2@5",
  AQ: "~@5 g2@3 ~@3 g2 g2@2 g2@2 g2@3 ~@2 g2@2 g2@2 g2@2 eb3 eb3@2 eb3@2",
  AR: "eb3@3 ~@2 g2@5 ~@6 g2@3 ~@2 g2@2 g2@2 g2@2 g2@3 ~@2",
  AS: "g2@2 g2@2 ~ gb3@2 gb3@2 gb3@2 gb3@3 ~@2 g2@5 ~@6 g2@3 ~@2, ~@2 g2 ~@13",
  AT: "g2@2 g2@2 g2 g2@3 ~@3 g2 g2@2 g2@2 gb3@2 gb3@2 gb3 gb3@3 ~@3 g3@5",
  AU: "~@5 g3@3 ~@3 g3 g3@2 g3@2 g3@3 ~@2 g3@2 g3@2 g3@2 g3 g3@2 g3@2",
  AV: "g3@3 ~@2 g3@5 ~@6 g3@3 ~@2 g3@2 g3@2 g3@2 g3@3 ~@2",
  AW: "g3@2 g3@2 g3 g3@2 g3@2 g3@2 g3@3 ~@2 g3@5 ~@6 g3@3 ~@2",
  AX: "g3@2 g3@2 g3 g3@3 ~@3 g3 g3@2 g3@2 g3@2 g3@2 g3 g3@3 ~@3 gb3@5",
  AY: "~@5 eb3@3 ~@3 eb3 eb3@2 eb3@2 d3@3 ~@2 d3@2 d3@2 d3@2 eb3 eb3@2 eb3@2",
  AZ: "f3@3 ~@2 g3@5 ~@6 g3@3 ~@2 g3@2 g3@2 g3@2 g3@3 ~@2",
  BA: "g3@2 g3@2 g3 g3@2 g3@2 g3@2 g3@3 ~@2 ab3@5 ~@6 ab3@3 ~@2",
  BB: "ab3@2 ab3@2 ab3 ab3@3 ~@3 ab3 ab3@2 ab3@2 ab3@2 ab3@2 ab3 ab3@3 ~@3 bb3@5",
  BC: "~@5 bb3@3 ~@3 bb3 bb3@2 bb3@2 bb3@3 ~@2 bb3@2 bb3@2 bb3@2 bb3 bb3@2 bb3@2",
  BD: "bb3@3 ~@2 g3@5 ~@6 g3@3 ~@2 g3@2 g3@2 g3@2 g3@3 ~@2",
  BE: "g3@2 g3@2 g3 g3@3 ~@3 g3 g3@2 g3@2 g3@2 g3@2 g3 g3@3 ~@3 ab3@5",
  BF: "~@5 ab3@3 ~@3 ab3 ab3@2 ab3@2 ab3@3 ~@2 ab3@2 ab3@2 ab3@2 ab3 ab3@2 ab3@2",
  BG: "ab3@3 ~@2 bb3@5 ~@6 bb3@3 ~@2 bb3@2 bb3@2 bb3@2 bb3@3 ~@2",
  BH: "bb3@2 bb3@2 bb3 bb3@2 bb3@2 bb3@2 bb3@3 ~@2 g3@5 ~@6 g3@3 ~@2",
  BI: "g3@2 g3@2 g3 g3@3 ~@3 g3 g3@2 g3@2 g3@2 g3@2 g3 g3@3 ~@8",
  BJ: "[~@27 f2@2 f2@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 eb3@2 eb3@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 d3@2 d3@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 db3@2 db3@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 f2@2 f2@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 eb3@2 eb3@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 d3@2 d3@2 f3@4 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ab2@2 bb2@2 db3@2 db3@2 f3]/8",
  BK: "[~@3 c3@4 ~@2 b2@4 bb2@4 ab2@4 f2@2 ~@4 f3@32 eb3@32 d3@32 db3@14 ~@2 eb3@16 d3@32 eb3@32 d3@32 db3@5]/8",
  BL: "~@9 c3@18 ~@5", BM: "[~@12 f3@7 f3@7 ~ f3@9 f3@5 ~@10 f3@7 f3@6]/2", BN: "~ f3@5 ~@5 f3@3 ~@11 f3@7",
  BO: "[bb3@2 ~ ab3@2 f3@2 eb3@2 ~ f3@2 ~@19 f3@7 ~ f3@7 f3@9 f3@5 ~@4]/2", BP: "~@6 f3@7 f3@7 f3@5 ~@5 f3@2",
  BQ: "~@12 f3@7 bb3@2 ~ ab3@2 f3@2 ~ eb3@2 f3@2 ~", BR: "[~@19 c3@48 ~@29]/3", BS: "~@19 bb3@13",
  BT: "[ab3@14 g3@7 f3@7 eb3@7 d3@3 c3@10 d3@7 eb3@5 f3@3 ~]/2",
  BU: "[g3@2 ~ c4@2 c3@7 d3@7 eb3@5 f3@3 g3@2 a3@2 ~ c3@7 d3@7 eb3@5 f3@3 ~@2 a3@2 c4@2 c3@7 d3@7 eb3@5 f3@3 g3@2 a3@2 ~ c3@7 d3@7 eb3@5 f3@3 ~@2 a3@2 c4@2 c3@7 d3@6, ~@2 a3@2 ~@27 c4@2 ~@22 g3@2 ~@29 c4@2 ~@22 g3@2 ~@16]/4",
  BV: "eb3@5 ~ f3@3 g3@2 ~ c4@2 c3@7 d3@7 eb3@4, ~@11 a3@2 ~@19", BW: "~ f3@3 g3@2 a3@2 c4@2 c3@6 d3@7 eb3@5 f3@3 ~",
  BX: "g3@2 ~ c4@2 ~@27, ~ a3 ~@14",
})).s("gm_trombone").gain(0.4)

// chords · piano
const piano = note(`<
  A B C@6 D@2 E F@4 G H I@2 J K@3 L M ~@8 N O P Q ~@2 R S T@2 U V W@2 X Y@2 Z AA@2 AB AC@3 AD AE AF AG@2 AH AI AJ@2 AK
  AL AM AN AO@2 AP AQ@5 AR@4 AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM ~@3 BN@4 BO@8 BP@8 BQ ~@8
  BR@3 BS@3 ~ BT@3 BU@2 BV@8 BW
>`.pickRestart({
  A: "~@11 f4 g4 ab4@3", B: "g4@3 f4@2 eb4@4 bb4@7",
  C: "[~@11 eb3@3 bb3 bb3@4 eb3@3 bb3 bb3@4 [eb3,f4]@3 bb3 ~@2 ab4@2 [eb3,g4]@3 bb3 [b3,f4]@4 [c4,eb4]@3 ~@3 g4@2 [a3,f4]@4 c4@2 eb4@2 [bb3,eb4]@3 ~@2 eb4@2 ~ d3@4 bb2@4 eb3@3 eb3 bb3@4 g3@3 g3 eb3@4 [ab3,c5]@3 [b3,d5] ~, ~@22 g4@15 ~ f4@15 ~@7 g4@6 ~@26 f4@6 ~@26 d4@4 ~@4 f4@17 ~ g4@15 ~ bb4@15 ~@11, ~@31 bb3@4 ~@12 g3@4 ~@4 f3@4 ~@4 f3@4 ~@29]/6", // Ebsus2 Eb Bdim Cm Dm Eb5 Ab Bm
  D: "[~ [c4,eb5]@5 g3 [c3,eb4]@4 [f3,ab4]@3 c4 ~ f4@2 ~ bb3@4 [bb2,d4]@4 [c4,eb4]@3 [bb3,eb4] ~, ~@28 g4@4 ~@4 eb4@9 ~@19, ~@15 c4@4 ~@13]/2", // Cm Fm Bb Cm Eb5
  E: "[ab3,f4]@2 [g3,bb3] ~@8 c4@2 ~@2 eb5, ~@13 bb4@2 ~, ~@7 c3", // Db Gm
  F: "[~@3 c4@2 [c3,g5]@2 ~@4 bb2@3 bb2@3 bb2@2 bb3 bb2@3 f3@4 ab2@2 ~ ab2 eb5 ~@2 ab5@2 ~ g5@2 eb5@2 ~@2 g2@3 eb3@3 g2@2 ~@4 g3 eb3 bb2@2 f5 g5 [eb2,bb2,eb3,ab5]@3, f5@2 ab5@3 ~@2 eb5@2 bb4@17 ~@3 bb4@2 ~ f5@2 ~@7 bb5@17 ~@6, ~ c3@2 ~@5 c3@3 ~@20 ab3@2 ab2@2 ~ ab2@3 eb3@4 ~@16 [eb2,bb2,eb3]@2 ~@3]/4", // C5 Ebsus4 Eb5
  G: "[eb2,bb2,eb3,g5]@3 f5@2 eb5@4 bb5@7, ~@3 [eb2,bb2,eb3]@13", H: "~@27 [g2,g4]@5",
  I: "[~ [eb2,eb4]@3 [bb1,bb3]@6 [eb2,eb4]@3 [g2,g4]@6 [eb2,eb4]@3 [bb2,bb4]@6 [g2,g4]@3 [eb3,eb5]@3 [d3,d5]@3 [eb3,eb5]@3 [f3,f5]@3 [eb3,eb5]@3 [d3,d5]@3 [eb3,eb5]@6 [bb2,bb4]@3 [g2,g4]@6]/2", // Eb Bb Eb G Eb Bb G Eb …
  J: "[eb2,eb4]@3 [d2,d4]@6 [c2,c4]@3 [d2,d4]@6 [eb2,eb4]@3 [f2,f4]@6 [g2,g4]@3 [ab2,ab4]@2", // Eb D C D Eb F G Ab
  K: "[~ [g2,g4]@3 [f2,f4]@3 [bb2,bb4]@6 [a2,a4]@3 [bb2,bb4]@6 [c3,c5]@3 [d3,d5]@6 [bb2,bb4]@3 [ab2,ab4]@6 f4@3 eb5@2 d5@2 ~ eb5@2 ~ bb4@2 a4@2 ~ bb4@2 b4@2 ~ db5@2 b4@2 ~ bb4@2 ab4@2 ~ gb4@2 f4@2 ~ e4@2 f4@2 ~ bb4@2 ab4@2 ~ g4@2 f4@2 ~ g4@2 ab4@2 ~]/3", // G F Bb A Bb C D Bb …
  L: "g4@2 ~ f4@2 g4@2 ~ [g4,bb4,eb5]@3 ~@2 [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~@2 [g4,bb4,eb5] ~@2 [g4,bb4,eb5]@3 ~@2 [g4,bb4,eb5] ~ [g4,bb4,eb5]@2", // Eb
  M: "~@3 [g4,bb4,eb5] ~@2 [g4,bb4,eb5]@3 ~@23", N: "~@21 [g4,bb4,eb5]@3 ~@2 bb4 ~@2 c5@3",
  O: "~@2 c5 ~ bb4@3 ~@2 bb4 ~@2 c5@4 ~ c5 ~ bb4@3 ~@2 bb4 ~@2 c5@3 ~@2",
  P: "c5 ~@2 bb4@3 ~@2 bb4 ~ a4@3 ~@2 a4 ~@2 bb4@3 ~@2 bb4 ~ a4@3 ~@2 a4 ~", Q: "~ bb4@3 ~@28", R: "~@26 d5@3 ~@2 d5",
  S: "~@2 c5@4 ~ c5 ~ d5@7 ~ c5 ~@6 d5@7 ~",
  T: "[c5 ~@7 eb5@5 d5 ~ c5@5 eb5 ~@2 d5@14 ~ f5@7 eb5 ~@7 f5@7 ~ eb5 ~@2]/2",
  U: "~@4 g5@5 f5 ~@2 eb5@5 g5 ~ eb5@3 ~@2 eb5 ~@2 eb5@4 ~",
  V: "eb5 ~@2 d5@3 ~@2 d5 ~ d5@3 ~@2 d5 ~@2 eb5@3 ~@2 eb5 ~ eb5@3 ~@2 eb5 ~",
  W: "[~ d5@3 ~@2 d5 ~ d5@3 ~@2 d5 ~@2 g4@14 ~ ab4@3 ~@2 ab4 ~@2 a4@3 ~@2 a4 ~ bb4@3 ~@2 bb4 ~@2 c5@3 ~@2 c5 ~ bb4@3]/2",
  X: "~@3 bb4 ~ bb4@3 ~@2 bb4 ~@2 bb4@3 ~@2 bb4 ~ bb4 ~@2 gb4@5 ab4@4", Y: "[~ bb4@5 b4@10 db5@5 eb5@10 g5@5 ~@28]/2",
  Z: "~@8 c5@5 ab4@5 c5@5 bb4@9", AA: "[~@13 b4@2 ~ c5@5 ab4@5 ab4@5 c5@2 ~ bb4@10 ~ a4 bb4@4 a4 bb4@4 a4 bb4@8]/2",
  AB: "~@3 bb4@10 ~@8 a4 ~ bb4@4 a4 bb4@4",
  AC: "[~ b4@10 b4@10 ~@3 gb4@2 gb4@5 ab4@5 a4@5 bb4@10 db5@10 ab4@10 ~ bb4@10 b4@5 gb4@2 gb4@2 ~@5]/3",
  AD: "~ gb4@2 ~@8 gb4@2 ~@3 eb4@8 bb4@4 g4@4", AE: "g4@2 f4 eb4!2 ab4@2 g4", AF: "g4 f4!2 eb4 ~ eb4 bb4 g4",
// … 58 more lines