Strudelify

Pat a Mat

Petr Skoumal

KeyF majorTempo130 bpm
0:00/0:00
// Pat a Mat — Petr Skoumal
// 130 bpm, 4/4, key F 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 (3/4 at bar 1, 4/4 at bar 1, 1/4 at bar 153) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 1 "Flute 1" named as a pipe, played on flute (its tuba patch is not one); ch 2 "Flute 2" named as a pipe, played on flute (its acoustic guitar steel patch is not one); ch 3 "B♭ Clarinet 1" named as a reed, played on clarinet (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5001708; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 153 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · flute · "Flute 1"
const flute = note(`<
  A B C D E F G H I B C D E J K L M N O N P Q R S T N U V W X Y Z AA N AB N AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ@2 AR@3 AS AT AU@4 AV AW AQ@2 AR@3 AS AT AU@4 AV AX AY@2 AZ BA BB BC@4 BD@2 BE@4 BF BG BH BI@8 BJ@2 BK BL BM BN@8 BO
  BP BQ BR BS BT@4 BU BV BW BX@2 BY BZ CA@2 CB CC CD@2 CE CF CG CH@2 CI CJ CK@2 CL CM CN@2 CO CP CQ
>`.pickRestart({
  A: "~ c2 d2 e2", B: "bb5 c6@5 a5@6 f5@2 g5@2 f5@2 e5@4 [e2,d5]@2, f2 ~ c2 ~", C: "[f2,c5]@3 c6@3 [c2,a5]@3 bb5@2 a5",
  D: "bb5 c6@5 a5@6 f5@2 g5@2 f5@2 e5@4 d5@2, f2 ~ c2 ~", E: "[g2,c5]@3 ~@2 bb1 bb5@2 f6 e6@2 f6, ~ c6 c2 ~",
  F: "a5@4 c6 ~ a5@4 ab5@2 [c2,g5]@6 a5@4 c6@2, g2 ~@3", G: "a5@4 ab5@2 g5 ~@5 g2@6 ~@6, bb2@3 ~@2 g5@3 ~@4",
  H: "c5 d5@3 f5@2 d5@4 [e2,db5]@2 [f2,c5]@6 d5@4 [db2,f5]@2, bb1 ~@3", // Dbm F5 Db
  I: "a5@2 ab5 g5@2 d6@3 [g2,db6] c2@3, c2@3 ~@2 g2 ~@3 c6@2 ~", // Gdim
  J: "a5 ~@3 c6 ~ a5@4 [bb1,ab5]@2 g5@4 d5@2 f5@4 [a2,d5]@2, g2 ~ c2 ~", // Bb7 D5
  K: "ab5@4 g5@2 f5 ~@3 [f2,f5]@6 f2@2 f2@6, bb2 ~@3", // F
  L: "c5@2 d5 f5@2 ~@3 g5 f5@2 c2, g2@6 ~@4 ab5@6 ~@6 d5 ~, ~@2 c2 ~", M: "[f2,f5] ~@2 [c3,c6]", N: "f2 ~@3 c2 ~@3",
  O: "f2@3 ~@9 [c2,g6]@4 f6@2 d6@4 [e2,c6]@2", P: "g2@3 ~@7 e2@2 [c2,c6]@4 d6@2 d6@4 [f2,e6]@2",
  Q: "g2@3 ~@9 [c2,e6]@4 d6@2 e6@4 [f2,c6]@2", R: "g2@3 ~@9 c2@3 ~@7 f2@2",
  S: "f5@3 ~@2 f5 a5@3 ~@2 [f2,a5], f2 ~@3 c2 ~@3", T: "bb5@6 ~@4 c2@5 ~ [d2,c6]@2 [e2,a5]@4 g5@2, g2@3 ~@7 bb5@2 ~@12",
  U: "f2@3 ~@9 [c2,bb5]@4 a5@2 bb5@4 [e2,c6]@2", V: "f2@3 ~@9 c2@3 ~@7 gb2@2", W: "g2@3 ~@9 [c2,e5]@4 f5@2 gb5@4 g5@2",
  X: "g2@3 ~@9 c2@3 ~@7 a2@2", Y: "bb2@6 ~@4 f2@5 ~ bb5@2 bb5@4 bb1@2",
  Z: "[b1,d5]@2 f5 g5@2 [g2,ab5]@3 g5 [d2,f5]@2 d5", AA: "f5@2 e2 ~ d2 ~ c2 ~, f2 ~@7", AB: "f2@3 ~@9 c2@3 ~@7 e2@2",
  AC: "g2@3 ~@9 c2@3 ~ a5@2 a5@4 f2@2", AD: "g2@3 ~@9 c2@3 ~@7 [f2,a5]@2", AE: "[g2,a5]@4 ~@8 c2@3 ~@7 e2@2",
  AF: "[f2,f5]@2 ~ f5@2 ~ [c2,d5]@2 f5 ~@2 [f2,f5]", AG: "a5@3 ~@2 [c2,c6]@3 [d2,c6] [e2,a5]@2 g5, g2 ~@7",
  AH: "bb5 c6@5 a5@6 f5@2 g5@2 f5@2 e5@4 d5@2, f2 ~ c2 d2", AI: "[f2,c5]@3 c6@3 [e2,a5]@3 bb5@2 a5, ~@3 d2",
  AJ: "bb5 c6@5 a5@6 f5@2 g5@2 f5@2 e5@4 d5@2, f2 ~ e2 f2", AK: "[g2,c5]@3 c6@3 bb5@2 f6 e6@2 [d2,f6], ~@2 c2 ~",
  AL: "a5 ~@3 c6 ~ a5@4 ab5@2 g5@4 d5@2 f5@4 d5@2, g2 ~ c2 ~",
  AM: "ab5@4 g5@2 f5 ~@3 g2@2 ~@4 ab5@2 g5@4 f5@2, bb2@3 ~@2 f5@3 ~@4, ~@2 f2 ~",
  AN: "c5@4 d5@2 f5@4 ~@6 g5@2 f5@4 d5 ~, g2 d2 c2 d2, ~@5 ab5@3 ~@4",
  AO: "f2@5 ~ c2@5 a5@2 e2@5 ~ [g2,g5]@5, a5@4 ~ c5@2 ~@17, ~@6 f5@4 ~@3 bb5@4 ~ a5@2 ~@4", // G
  AP: "f5@2 f2@6 ~@7 c2@6 f6@2 ~", AQ: "[~@4 f2@6 ~@7 c2@6 a5@2 ~@5 f2@6 ~@5 f2@2 f2@5]/2",
  AR: "[~@6 f2@2 f2@6 ~@7 c2@5 ~ g5@4 ~ a5@2 f2@6 ~@7 c2@6 f6@2 ~@5 f2@6 ~@6, ~@13 f5 ~@22]/3",
  AS: "~ c2@6 a5@2 ~@5 f2@6 ~@4", AT: "~ f2@2 f2@6 ~@5 f2@2 f2@6 ~@2",
  AU: "[~@5 c2@5 a5 a5@2 ~@5 bb5@12 ~ f5@12 ~ bb5@12 ~ f6@12 ~ bb5@11 bb2@2 d6@11 bb2@2, ~@18 bb2@6 ~@7 f2@6 ~@7 bb2@6 ~@7 f2@6 ~@7 bb2@6 ~@7 bb2@6 ~@7]/4",
  AV: "[bb2,f6]@6 [ab2,eb6]@6 ~ [g2,d6]@6 [c3,c6]@5", AW: "~@2 f2@6 ~@7 c2@6 f6@2 ~", AX: "~@2 f2@6 ~@7 c2@6 ~@3",
  AY: "[~@4 f2@6 ~@7 [a2,f5]@6 [c2,bb5]@6 ~ bb2@5 ~@4 f2@5 ~@4]/2", // Dm C7
  AZ: "~ bb5 ~@2 bb5 ~ g5 ~@2 g5 f2@4 f5 d5 ~@2 d5 ~ bb2@3 bb4, ~ bb2@5 ~@4 f5 ~@9 bb4 ~@3",
  BA: "~ g4 ~@2 g4 f2@4 d5 eb5 ~@2 e5 ~ f5@3 g5 f5@3 ~ d5, ~@5 f4 ~@9 bb2@5 ~@4",
  BB: "f2@5 g5@3 f5 ~@4 g5 f5 ~@3 [d2,d5] bb4@3 d5 ~, bb5@3 ~@7 bb1@5 ~@4 eb2@5", // D
  BC: "[eb5@3 e5 ~ f5@3 g5 f5@3 ~ d5 f2@5 g5@3 f5 bb1@4 g5 ~@2 f5 [f2,d5] ~ eb2@5 d5@3 ~ c2@4 c6 db6@3 d6 ~ [eb2,c6]@5 [c2,d5]@3 d2 bb1@4 c6 db6@3 d6 ~ [g2,bb5]@3 f2 [a2,d5]@3 ~ f2 ~@3 c6 ~ db6@3 d6 ~ [eb2,c6]@4 [c2,d5]@2, f2@5 bb2@5 ~@4 bb5@3 ~@16 bb4@3 ~@2 d2@5 ~@4 f2@5 ~@14 f2@5 ~@9 c2@5 f2@5 ~@6, ~@41 c5@5 ~@14 bb4@5 ~@14 c5@5 ~@12]/4", // Dm Cm Csus2 Gm D5 Cm Csus2
  BD: "[~@2 d2 ~@3 c6 ~ db6@3 d6 ~ f6@4 d2@5 f5@3 g5 ~ f5@3 d5 f2@5 g5@3 f5 ~@4 g5 ~ f5 ~, ~@2 bb4@5 ~@24 bb5@3 ~@14, ~@3 bb1@5 ~@14 bb2@5 ~@14 bb1@5 ~@2]/2",
  BE: "[~ [d2,d5] eb2@4 d5 eb5@3 e5 ~ f5@3 g5 ~ f5@3 d5 f2@5 g5@3 f5 ~@4 g5 ~@2 f5 ~ [f2,d5] eb2@5 d5@3 ~@5 c6 f2@4 d6 [eb2,c6]@5 [c2,d5]@3 d2 ~@4 c6 f2@4 d6 [g2,bb5]@3 f2 ~ [a2,d5]@3 f2 c2@4 c6 db6@3 d6, ~@2 bb4@3 ~@2 f2@5 bb2@5 ~@4 bb5@3 ~@7 bb1@5 ~@4 bb4@3 ~@2 d2@5 c2@5 ~@14 bb1@5 ~@22, ~@48 c5@5 ~ db6@3 ~@10 bb4@5 ~ db6@3 ~@10 c5@5 ~@5]/4", // D Dm Cm Csus2 Gm D5
  BF: "~ [c2,c6]@5 ~@4 c2@5 e2@5 a2@4", BG: "~ g2@4 c3@5 a2@5 g2@4 e2@5",
  BH: "e6@3 e6 ~@4 c6 ~@4 g5 g2@4 g5 [c2,e6]@3 [g2,e6] ~, c2@5 e2@5 a2@4 a5@3 ~@7", // C
  BI: "[~@3 c6 ~ g2@4 e2@5 eb6@3 eb6 ~@4 d6 c3@4 g5 a5@3 c6 ~ eb6@3 eb6 ~@4 d6 e2@5 d2@5 c2@5 e2@4 a2@5 g2@5 c3@4 a2@5 g2@5 e2@5 e6@3 e6 e2@4 c6 ~@3 g5 ~ a5@3 g5 ~ [c2,e6]@3 [g2,e6] a2@4 c6 g2@5 e2@4 f2@4 eb6 ~@3 d6 ~@4 g5 ~ a5@3 c6 g2@4 eb6 ~@3 d6 ~ e2@5 d2@4 c2@5 e2@5 a2@4 g2@5 c3@5 a2@3, a2@5 ~@9 f2@5 a2@5 ~@4 a2@5 g2@5 f2@5 ~@47 c2@5 ~@4 a2@5 g2@5 ~@18 eb6@3 ~@2 a2@5 c3@5 a2@4 eb6@3 ~@2 f2@5 ~@36]/8", // C
  BJ: "[~@2 g2@4 e2@5 e6@3 e6 ~ e2@5 a2@4 g2@5 c2@3 g2 ~ a2@4 g2@5 e2@4, ~@11 c2@5 ~@32]/2",
  BK: "~ f2@5 a2@4 c3@4 g5 a5@3 c6 ~ eb3@3 eb6, ~@15 a2@5 eb6 ~@3", BL: "~ c6 ~@2 a5 c3@5 a2@5 c2@4 e2@5, ~ d3@5 ~@18",
  BM: "~@3 g5 ~ [e2,a5]@3 [b2,c6] ~ e6 ~@2 e6 a2@4 a5 [g2,c6]@3 a2 ~, g2@5 ~@5 c3@4 c6 ~@9", // A5 Cmaj7 C5
  BN: "[g2@3 e2 ~ c2@4 e2@5 a2@5 g2@4 c3@5 a2@5 g2@5 e2@4 c2@4 e6 e2@5 a2@5 g2@4 c2@3 ~ g2 a2@5 g2@4 e2@5 f2@5 a2@5 c3@4 a2@5 eb3@5 d3@5 c3@4 a2@5 g2@5 f2@4 e2@4 g5 a5@3 c6 ~ e6 ~@2 e6 ~ c6 ~@2 a5 d2@4 e6 c6 ~@2 a5 ~ c2@5 e2@4 a2@5 g2@5 c3@4 a2@5 g2@5 e2@3, ~@42 e6@3 ~@87 g2@5 f2@5 eb2@4 e6 ~@4 f2@5 e6 ~@35]/8",
  BO: "~@2 c2@4 e2@5 a2@5 g2@5 c2@3", BP: "g2 a2@5 g2@5 e2@4 f2@5 a2@4",
  BQ: "~@4 g5 ~ a5@3 c6 eb3@4 eb6 c6 ~@2 a5 ~ [c3,e6]@4, ~ c3@5 a2@4 eb6 ~@4 d3@5 ~@4", // C
  BR: "~ a2@4 c2@5 e2@5 ~@3 a5 g2@4 eb6, ~@15 a2@4 c6@3 ~@2",
  BS: "c3@3 [g2,e6] ~ c6 ~@2 a5 ~ [g2,c6]@3 a2 g2@3 ~ e2 d2@5, e6 ~@4 a2@5 ~@14", // C C5
  BT: "[e2@5 f2@4 gb2@5 g2@5 f2@4 e2@5 g2@5 c3@5 a2@4 g2@5 e2@5 ab2@3 b2@5 ~ c3@5 c6 ~@2 c6 ~ f2@5 ~@5 c2@5 ~@6 f2@4, ~@91 e2@2 ~@3]/4",
  BU: "~@7 c2@5 ~@6 f2@5 ~", BV: "~@5 c2@5 ~@5 g2@5 ~ c6@3", BW: "[bb1,d6]@2 [c2,e6]@4 ~ c6@4 ~@2 g2@5 ~@6, ~@3 d6 ~@8",
  BX: "[c2@5 ~@5 g2@5 ~@6 c2@5 ~@6 g2@5 ~@6 c2@5]/2", BY: "~@5 f2@5 ~ c6@3 d6@2 [c2,e6]@4 ~ g6@3, ~@10 f6 ~",
  BZ: "~ [e2,a6]@2 f2@5 ~@6 c2@5 ~@5", CA: "[f2@5 ~@6 c2@5 ~@6 f2@5 ~@6 c2@5 ~@5 g2@5]/2",
  CB: "~ c6@4 ~ [c2,e6]@4 d6@2 c6@4 ~ g2@5 ~@2, ~@5 [bb1,d6]@2 ~@17", CC: "~@4 c2@5 ~@5 f2@5 ~@5",
  CD: "[~ c2@5 ~@6 g2@5 ~@6 c2@5 ~@5 f2@5 ~@6 c2@4, ~@16 c2 ~@7]/2", CE: "~@7 g2@5 ~@4 bb1@2 c2@5 ~",
  CF: "~@8 c6@2 d6@4 ~ [c2,eb6]@4 c6@2 d6@3, ~@5 g2@5 ~@4 c6@2 ~@8", CG: "c6@2 f2@5 ~@6 c2@5 ~@6",
  CH: "[~@3 e6@2 e6@4 ~ [c2,d6]@4 c6@2 d6@3 eb6@2 g2@5 ~@6 c2@5 ~@6 g2@5, f2@5 ~@4 eb6@2 ~@37]/2", // Csus2
  CI: "~@5 c2@5 ~@6 f2@5 a5@3, ~@16 a5@3 ~@5", CJ: "~@3 a5@4 ab5 g5@3 ~@6 db6@2 [bb2,c6]@5, ~@14 [c3,d6]@5 ~@5",
  CK: "[a2@5 ~ g2@5 f2@5 ~@6 c2@5 ~@6 f2@5 ~@5 c2@5]/2", CL: "~@6 f2@5 ~@6 c2@5 ~@2",
  CM: "~@4 g2@5 c6@4 ~ [c2,e6]@4 d6@2 c6@4, ~@13 [bb1,d6]@2 ~@9", CN: "[~ g2@5 ~@6 c2@5 ~@6 f2@5 ~@5 c2@5 ~@6 g2@4]/2",
  CO: "~@7 c2@5 ~@6 g2@4 c6!2, ~@18 c6 ~@5", CP: "~@3 bb5 ~ c2@5 g5@5 g2@4 c6 ~ c6 ~@2, ~@5 a5@3 ~@7 c6 ~@8",
  CQ: "bb5 ~ c2@5 ~@4 e6@2 [f2,f6]@3 ~@8, ~@2 d6@3 ~@19", // F
})).s("gm_flute").gain(0.33)

// other · flute · "Flute 2"
const flute_2 = note(`<
  ~ A B A C D E F G A B A C H I J K ~ L ~ M N ~ O P ~ Q ~ R ~ S T U ~@3 V W X Y Z AA AB AA AC AD AE J AF AG AH@2 ~ AI AJ
  AK ~ AL@4 AM AN AH@2 ~ AI AJ AK ~ AL@4 AM ~@3 AO AP AQ AR AS@3 AT AU AV AW AX AY ~@2 AZ BA BB ~ BC BD BE BF ~ BG ~ BH
  BI BJ ~ BK ~@3 BL BM ~@3 BN BO BP ~@2 BQ ~@2 BR BS ~@2 BT BU ~@2 BV ~@4 BW BX BY ~ BZ CA ~@3 CB ~@2 CC CD CE
>`.pickRestart({
  A: "bb5 c6@5 a5@6 f5@2 g5@2 f5@2 e5@4 d5@2", B: "c5@3 c6@3 a5@3 g5@2 f5", C: "c5@3 c6@3 bb5@2 f6 e6@2 f6",
  D: "a5@4 c6 ~ a5@4 ab5@2 g5@6 a5@4 c6@2", E: "a5@4 ab5@2 g5 ~@3 g5@6 ~@8",
  F: "c5 d5@3 f5@2 d5@4 db5@2 c5@6 d5@4 f5@2", G: "a5@2 ab5 g5@2 d6@3 db6 c6@2 ~",
  H: "a5 ~@3 c6 ~ a5@4 ab5@2 g5@4 d5@2 f5@4 d5@2", I: "a5@4 g5@2 f5 ~@3 f5@6 ~@8",
  J: "c5@4 d5@2 f5@4 ab5@6 g5@2 f5@4 d5 ~", K: "f5 ~@2 c6", L: "~@6 g5@2 f5 d5@2 c5", M: "~@6 c5@2 d5 d5@2 e5",
  N: "~@6 e5@2 d5 e5@2 c5", O: "f5@3 ~@2 f5 a5@3 ~@2 a5", P: "bb5@3 ~@2 bb5 ~@2 c6 a5@2 g5", Q: "~@6 bb5@2 a5 bb5@2 c6",
  R: "~@6 e5@2 f5 gb5@2 g5", S: "~@8 bb5 bb5@2 ~", T: "d5@2 f5 g5@2 ab5@3 g5 f5@2 d5", U: "f5 ~@3", V: "~@8 a5 a5@2 ~",
  W: "~@11 a5", X: "a5 ~@5", Y: "c6 ~ a5 ~", Z: "g5@3 ~@2 bb5@3 c6 a5@2 g5",
  AA: "g5 a5@5 f5@6 c5@2 d5@2 c5@2 bb4@4 a4@2", AB: "a4@3 a5@3 f5@3 g5@2 f5", AC: "g4@3 a5@3 g5@2 c6 bb5@2 c6",
  AD: "f5@4 a5 ~ f5@4 e5@2 d5@6 f5@4 a5@2", AE: "f5@4 e5@2 d5 ~@3 d5@6 f5@2 e5@4 d5 ~",
  AF: "f5@4 ~@2 c5@4 ~ f5@2 g5@4 ~@2 e5@4 ~, ~@5 a4@2 ~@11 f5@2 ~@4", AG: "c5@2 ~@19 c6@2 ~", AH: "[~@23 f5@2 ~@23]/2",
  AI: "~@3 g5@4 ~ a5@2 ~@14, ~ f5 ~@10", AJ: "~@5 c6@2 ~@17", AK: "~@7 f5@2 ~@15",
  AL: "[~@10 f5 f5@2 ~@5 bb5@12 ~ f5@12 ~ bb5@12 ~ f6@12 ~ bb5@12 ~ d6@12 ~]/4", AM: "f6@6 eb6@6 ~ d6@6 c6@5",
  AN: "~@21 c6@2 ~", AO: "~ d5 ~@2 d5 ~ d5 ~@2 d5!2 ~@3 d5 bb4 ~@2 bb4 ~ f4 ~@2 f4",
  AP: "~ d4 ~@2 d4!2 ~@3 bb4 c5 ~@2 db5 ~ d5@3 eb5 d5@3 ~ bb4", AQ: "d5@3 ~@2 eb5@3 d5 ~@4 eb5 d5 ~@3 bb4 d5@3 d5 ~",
  AR: "eb5@3 e5 ~ d5@3 eb5 d5@3 ~ bb4 d5@3 ~@2 eb5@3 d5 ~",
  AS: "[~@3 eb5 ~@2 d5 bb4 ~ d5@3 ~@2 d5@3 c5@5 c5 db5@3 d5 ~ c5@4 ~@9 c5 db5@3 d5 ~ bb4@4 ~@8 c5 ~ db5@3 d5 ~ c5@4 ~@2]/3",
  AT: "~@6 c5 ~ db5@3 d5 ~ f5@4 eb5 ~@3 e5 d5@2", AU: "~ eb5 ~ d5@3 bb4 d5@3 ~@2 eb5@3 d5 ~@4 eb5 ~ d5 ~",
  AV: "~ bb4 d5@3 ~ d5 eb5@3 e5 ~ d5@3 eb5 ~ d5@3 bb4 d5@3", AW: "~@2 eb5@3 d5 ~@4 eb5 ~@2 d5 ~ bb4 d5@3 ~@2 d5@3",
  AX: "c5@5 c5 db5@3 ~ d5 c5@4 ~@9", AY: "c5 db5@3 ~ d5 bb4@4 ~@5 c5@9",
  AZ: "e6@3 e6 ~@4 c6 ~@4 g5 a5@3 ~ g5 e6@3 e6 ~", BA: "~@3 c6 ~@10 gb5@3 gb5 ~@4 f5 ~",
  BB: "~@3 g5 a5@3 c6 ~ eb6@3 eb6 ~@4 d6 ~@6", BC: "~@18 e6@3 e6 ~@2",
  BD: "~@2 c6 ~@3 g5 ~ a5@3 g5 ~ e6@3 e6 ~@4 c6 ~@2", BE: "~@7 gb5@3 ~ gb5 ~@3 f5 ~@4 g5 ~ a5@2",
  BF: "~ c6 eb6@3 ~ eb6 ~@3 d6 ~@13", BG: "~@11 g5@3 g5 ~@9", BH: "~@14 g4 a4@3 c5 ~ eb5 ~@2 eb5",
  BI: "~ c5 ~@2 a4 ~@19", BJ: "~@3 g4 ~ a4@3 c5 ~ e5 ~@2 e5 c5 ~@3 a4 c5@3 ~@2", BK: "~@18 g5@3 ~ g5 ~",
  BL: "~@11 g4 a4@3 c5 ~ e5 ~@2 e5 ~ c5 ~", BM: "~ a4 e5 ~@3 e5 c5 ~@2 a4 ~@13",
  BN: "~@4 g5 ~ a5@3 eb5 a5 ~@3 a5 f5 ~@2 eb5 ~ c6@3 ~", BO: "~@18 f5 a5@3 ~ gb5",
  BP: "g5 ~@2 g5 ~ e5 ~@2 f5 ~ e5@3 ~@11", BQ: "~@18 e5 ~@2 e5 ~@2", BR: "~@7 e5",
  BS: "f5@2 g5@4 ~ e5@4 ~@13, ~@3 f5 ~@8", BT: "~@11 c5@3 d5@2 e5@4 ~ g5@3, ~@10 f5 ~", BU: "~ a5@2 ~@21",
  BV: "~ e5@4 ~ g5@4 f5@2 e5@4 ~@8, ~@5 f5@2 ~@17", BW: "~@8 e5@2 f5@4 ~ gb5@4 e5@2 f5@3, ~@7 e5 ~@4", BX: "e5 ~@11",
  BY: "~@3 g5@2 g5@4 ~ f5@4 e5@2 f5@3 gb5@2 ~@3, ~@9 gb5@2 ~@13", BZ: "~@16 c5@3 ~@2 c5@3",
  CA: "~@3 c5@4 b4 bb4@3 ~@3 bb5@3 a5@2 a5@5", CB: "~@9 e5@4 ~ g5@4 f5@2 e5@4, ~@13 f5@2 ~@9", CC: "~@18 c6 ~@3 c6!2",
  CD: "~@3 bb5 ~ a5@3 ~@2 g5@5 c6 ~@3 c6 ~ c6 ~@2", CE: "bb5 ~ d6@3 ~@6 e6@2 f6@3 ~@8",
})).s("gm_flute").gain(0.3)

// other · clarinet · "B♭ Clarinet 1"
const clarinet = note(`<
  ~ A B A C D E F G A B A C H I J K L@3 M@3 L N O P Q R S T U V ~@6 W X Y Z Y AA H AB J AC AD AE@2 ~ AF AG AH ~ AI ~@4
  AJ AE@2 ~ AF AG AH ~ AI ~@5 AK@2 AL AM AN AO AP@2 AQ AR AS AT AU AV@2 AW AX AY AZ ~ BA BB BC BD BE@2 BF BG BH BI ~ BJ
  BK BL@2 BM BN BO BP BQ BR BS BT BU BV@3 BW BX@2 BY BZ CA CB CC CD CE CF CG CH CI CJ@2 CK@3 CL CM CN CO CP CQ CR BW CS
  CT CU
>`.pickRestart({
  A: "bb4 c5@5 a4@6 f4@2 g4@2 f4@2 e4@4 d4@2", B: "c4 c5 a4 ~", C: "c4@3 c5@3 bb4@2 ~@4",
  D: "a4@4 c5 ~ a4@4 ab4@2 g4@6 a4@4 c5@2", E: "a4@4 ab4@2 g4 ~@3 g4@6 ~@8",
  F: "c4 d4@3 f4@2 d4@4 db4@2 c4@6 d4@4 f4@2", G: "a4@2 ab4 g4@2 d5@3 db5 c5@2 ~",
  H: "a5 ~@3 c6 ~ a5@4 ab5@2 g5@4 d5@2 f5@4 d5@2", I: "ab5@4 g5@2 f5 ~@3 f5@6 ~@8",
  J: "b4 c5@3 d5@2 f5@4 ab5@6 g5@2 f5@4 d5 ~", K: "f5 ~@3", L: "~@2 a4 ~@3 a4 ~", M: "~@2 g4 ~@3 g4 ~",
  N: "~@6 g4@3 ~@13 e5@2", O: "f5@3 ~@3 d5@3 ~@3 c5@6 ab4@4 a4@2", P: "d4 ~@3 c4 ~ d4 ~@3 f4@6 ~@2 g4@4 ab4@2",
  Q: "a4 ~@3 c5 ~ a4@4 ab4@2 g4 ~@3 e4 ~ d4@4 db4@2", R: "c4 ~@3 d4 ~ eb4@4 e4@2 ~@10 c5@2",
  S: "a4 ~@3 c5 ~ a4@4 ab4@2 g4@4 d4@2 f4@4 d4@2", T: "ab4@4 g4@2 f4 ~@3 f4@6 ~@8", U: "d4@2 f4 g4@2 ab4@3 g4 f4@2 d4",
  V: "f4 ~@3", W: "f4@2 ~ f4@2 ~ d4@2 f4 ~@2 f4", X: "a4@3 ~@2 c5@3 c5 a4@2 g4",
  Y: "bb5 c6@5 a5@6 f5@2 g5@2 f5@2 e5@4 d5@2", Z: "c5 c6 a5 ~", AA: "c5@3 c6@3 bb5@2 f5 e5@2 f5",
  AB: "ab5@4 g5@2 f5 ~@3 f5@6 ab5@2 g5@4 f5@2", AC: "a5@5 ~ f5@5 a5@2 bb5@5 ~ g5@5, ~@5 c5@2 ~@11 a5@2 ~@4",
  AD: "f5@2 ~@19 f5@2 ~", AE: "[~@23 a4@2 ~@23]/2", AF: "~@3 g5@5 a5@2 ~@14, ~ f5 ~@10", AG: "~@5 f5@2 ~@17",
  AH: "~@7 a4@2 ~@15", AI: "~@10 a5 a5@2 ~@11", AJ: "~@21 f5@2 ~", AK: "[~@17 a5@6 g5@6 ~@19]/2",
  AL: "~ bb5 ~@2 bb5 ~ g5 ~@2 g5 f5 ~@3 f5 d5 ~@2 d5 ~ bb4 ~@2 bb4",
  AM: "~ g4 ~@2 g4 f4 ~@3 d5 eb5 ~@2 e5 ~ f5@3 g5 f5@3 ~ d5", AN: "bb5@3 ~@2 g5@3 f5 ~@4 g5 f5 ~@3 d5 bb4@3 d5 ~",
  AO: "eb5@3 e5 ~ f5@3 g5 f5@3 ~ d5 bb5@3 ~@2 g5@3 f5 ~",
  AP: "[~@3 g5 ~@3 d5@2 bb4@3 ~@2 d5@3 c5@11 ~@5 d5@3 bb4@11 ~, ~@3 f5 ~@20]/2", AQ: "~@3 d5@3 ~ c5@11 ~@4 d5@2",
  AR: "~@2 bb4@11 ~@3 d5 eb5 ~@3 e5 f5@2", AS: "~ g5 ~ f5@3 d5 bb5@3 ~@2 g5@3 f5 ~@4 g5 ~ f5 ~",
  AT: "~ d5 bb4@3 ~ d5 eb5@3 e5 ~ f5@3 g5 ~ f5@3 d5 bb5@3",
  AU: "~@2 g5@3 f5 ~@4 g5 ~@2 f5@2 ~ bb4@3 ~@2 d5@3, ~@15 d5@2 ~@7", AV: "[c5@11 ~@5 d5@3 bb4@11 ~@5 d5@3 c5 c5@9]/2",
  AW: "~@6 d4@2 ~@2 g4@5 a4@3 e4 ~ g4@3 a4", AX: "~ e4@3 g4 ~@4 g4 a4@3 e4 ~ g4@3 a4 c5@3 ~@2",
  AY: "e5@3 e5 ~@4 c5 ~@15", AZ: "~@3 a4 ~ g4@3 a4 c5@3 ~ a4 eb5@3 eb5 ~@4 d5 ~",
  BA: "~@4 g4@5 a4@3 e4 g4@3 ~ a4 e4@3 g4 ~@2", BB: "~@2 g4 a4@3 ~ e4 g4@3 a4 ~ c5@3 ~@2 e5@3 e5 ~@2",
  BC: "~@2 c5 ~@18 a4 g4@2", BD: "~ a4 ~ c5@3 a4 eb5@3 ~ eb5 ~@3 d5 ~@8",
  BE: "[~@21 g4@5 a4@3 e4 ~ g4@3 a4 e4@3 ~ g4 ~@3 g4 ~ a4@3]/2", BF: "e4 ~ g4@3 a4 c5@3 ~@2 e5@3 e5 ~@4 e5 ~ c5@3",
  BG: "b4 a4@3 ~ g4 ~@8 a4 g4@3 ~ a4 c5@3 a4", BH: "~ eb5@3 eb5 ~@4 c5 ~@14",
  BI: "~@4 a4 g4@3 ~ a4 c5@3 a4 ~ e5@3 e5 ~@4 c5", BJ: "~@5 g4@4 a4@3 ~ e4 g4@3 a4 ~ e4@3 g4 ~",
  BK: "~@3 g4 a4@3 e4 ~ g4@3 a4 ~ c5@3 ~ e5@3 ~ e5 ~",
  BL: "[~@2 e5 ~ c5@3 b4 ~ a4@3 g4 ~@8 a4 ~ g4@3 a4 c5@3 ~ a4 eb5@3 eb5 ~@4 d5 ~@5 c5@2]/2",
  BM: "~@11 a4 ~ g4@3 a4 c5@3 ~ a4 eb5@2", BN: "~ eb5 ~@4 d5 ~@17", BO: "~@12 g4@5 a4@3 e4 g4@3",
  BP: "~ a4 e4@3 g4 ~@4 g4 a4@3 ~ e4 g4@3 a4 ~ c5@3", BQ: "~@2 e5@3 e5 ~@4 e5 c5@3 b4 ~ a4@3 g4 ~@4",
  BR: "~@5 a4 g4@3 a4 ~ c5@3 a4 eb5@3 ~ eb5 ~@3 c5", BS: "~@18 a4 ~ g4@3 a4", BT: "~ c5@3 a4 eb5@3 ~ eb5 ~@3 d5 ~@10",
  BU: "~@19 g4@5",
  BV: "[a4@3 e4 ~ g4@3 a4 c5@3 ~ eb5 ~@3 eb5 ~@4 eb5 d5@3 ~ c5 a4@3 c5 ~@4 a4 ~ b4@3 c5 a4@3 ~ g4 eb4@3 c4 ~ eb4 ~@2 d4@5 ~ c4@5 c5 ~@2 c5 ~@2]/3",
  BW: "~@4 c5@3 ~@8 c5@3 ~@6", BX: "[~@2 c5@3 ~@7 c5@3 ~@8 c5@3 ~@8 c5@3 ~@8 c5@3]/2",
  BY: "d5@2 e5@4 ~ c5@4 ~@7 c5@3 ~@3, ~@3 d5 ~@8", BZ: "~@5 c5@3 ~@8 c5@3 ~@5", CA: "~@2 c5@3 ~@8 c5@3 ~@8",
  CB: "c5@3 ~@8 c5@3 d5@2 e5@4 ~ g5@3, ~@10 f5 ~", CC: "~ a5@2 ~@5 c5@3 ~@8 c5@3 ~@2", CD: "~@6 c5@3 ~@8 c5@3 ~@4",
  CE: "~@3 c5@3 ~@8 c5@3 ~@7", CF: "~ c5@4 ~ e5@4 d5@2 c5@4 ~@6 c5@2, ~@5 d5@2 ~@17", CG: "~@9 c5@3 ~@8 c5@3 ~",
  CH: "~@7 c5@3 ~@7 bb4@3 ~@4", CI: "~@4 bb4@3 ~@8 c5@3 ~@6", CJ: "[~@2 c5@3 ~@7 c5@3 ~@8 c5@3 ~@8 c5@3 ~@8 d4@3]/2",
  CK: "[e4@2 f4@5 d5@5 ~ d5 ~@3 db5 ~@4 c5@5 ~@13 d4@3 eb4@2 e4@5 e5@5 ~ e5@4 eb5@2 ~@3 d5@5 ~@2]/3",
  CL: "c5@5 b4@5 ~ bb4@5 a4@3 ~@2 a4@3", CM: "~@3 a4@4 ab4 g4@3 ~@3 d5@3 db5@2 c5@5", CN: "~@17 c5@3 ~@4",
  CO: "~@3 c5 ~@3 c5 ~@6 c5@3 ~@7", CP: "~ c5@3 ~@8 c5@3 ~@7 c5 ~", CQ: "~@2 c5 ~@6 c5@3 ~@8 c5@3 ~",
  CR: "~@7 c5@3 ~@7 c5@3 ~@4", CS: "~@2 bb4@3 ~@7 bb4@3 ~@3 c5 ~@3 c5!2",
  CT: "~@3 bb4 ~ a4@3 ~@2 g4@5 a5 ~@3 a5 ~ a5 ~@2", CU: "g5 ~ bb5@3 ~@6 c6@2 c6@3 ~@8",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet 2/3"
const clarinet_2 = note(`<
  ~ A B A C D E F G A B A C H I J K L@3 M@3 L N O P Q R S T U V ~@6 W X Y Z Y AA S T AB AC AD AE@2 ~ AF AG AH ~ AI ~@4
  AJ AE@2 ~ AF AG AH ~ AI ~@5 AK@2 AL AM AN AO@2 AP@2 AQ AR AS AT AU AV AW AX AY AZ ~ BA BB BC BD BE@2 BF BG BH BI ~ BJ
  BK BL@2 BM BN BO BP BQ BR BS BT BU BV@3 BW BX@2 BY BZ CA CB CC CD CE CF@2 CG CH CI@2 CJ@3 CK CL CM CN CO@2 CP BW CQ CR
  CS
>`.pickRestart({
  A: "g4 a4@5 f4@6 c4@2 d4@2 c4@2 bb3@4 a3@2", B: "a3 a4 f4 ~", C: "a3@3 a4@3 g4@2 ~@4",
  D: "f4@4 a4 ~ f4@4 e4@2 d4@6 f4@4 a4@2", E: "f4@4 e4@2 d4 ~@3 d4@6 ~@8",
  F: "a3 bb3@3 d4@2 bb3@4 bb3@2 a3@6 bb3@4 d4@2", G: "e4@2 e4 e4@2 bb4@3 bb4 g4@2 ~",
  H: "c5@4 [f5,a5] ~ [c5,f5]@4 [b4,f5]@2 [c5,e5]@4 [f4,bb4]@2 [bb4,d5]@4 [f4,bb4]@2, f5 ~@23", // F F5 Bdim C Bb5 Bb Bb5
  I: "[d5,f5]@4 [d5,e5]@2 [bb4,d5] ~@3 [bb4,d5]@6 ~@8", // Dm Dsus2 Bb
  J: "[e4,ab4] [f4,a4]@3 [f4,bb4]@2 [bb4,d5]@4 [c5,e5]@6 [bb4,e5]@2 [bb4,d5]@4 bb4@2", K: "[a4,c5] ~@3",
  L: "~@2 f4 ~@3 f4 ~", M: "~@2 e4 ~@3 e4 ~", N: "~@6 e4@3 ~@13 e5@2", O: "f5@3 ~@3 d5@3 ~@3 c5@6 ab4@4 a4@2",
  P: "d4 ~@3 c4 ~ d4 ~@3 f4@6 ~@2 g4@4 ab4@2", Q: "a4 ~@3 c5 ~ a4@4 ab4@2 g4 ~@3 e4 ~ d4@4 db4@2",
  R: "c4 ~@3 d4 ~ eb4@4 e4@2 ~@10 c5@2", S: "a4 ~@3 c5 ~ a4@4 ab4@2 g4@4 d4@2 f4@4 d4@2",
  T: "ab4@4 g4@2 f4 ~@3 f4@6 ~@8", U: "d4@2 f4 g4@2 ab4@3 g4 f4@2 d4", V: "f4 ~@3", W: "f4@2 ~ f4@2 ~ d4@2 f4 ~@2 f4",
  X: "a4@3 ~@2 c5@3 ~@4", Y: "bb4 c5@5 a4@6 f4@2 g4@2 f4@2 e4@4 d4@2", Z: "c4 c5 a4 ~", AA: "c4@3 c5@3 bb4@2 ~@4",
  AB: "b3 c4@3 d4@2 f4@4 ab4@6 g4@2 f4@4 d4 ~", AC: "a4@5 ~ f4@5 a4@2 bb4@5 ~ g4@5, ~@5 c4@2 ~@11 a4@2 ~@4",
  AD: "f4@2 ~@19 [a4,c5]@2 ~", AE: "[~@23 [c4,f4]@2 ~@23]/2", AF: "~@3 g5@5 a5@2 ~@14, ~ f5 ~@10",
  AG: "~@5 [a4,c5]@2 ~@17", AH: "~@7 [c4,f4]@2 ~@15", AI: "~@10 f5 f5@2 ~@11", AJ: "~@21 [a4,c5]@2 ~",
  AK: "[~@17 [c4,f4]@6 [bb3,eb4]@6 ~@19]/2", AL: "~ bb4@5 g4@4 f4@5 d4@5 bb3@4",
  AM: "~ g3@4 f3@5 ~@5 [d4,f4]@3 ~@5 [bb3,d4]", // Dm Bb
  AN: "[d4,f4]@3 ~@7 d4@3 [eb4,g4] d4@3 ~ [bb3,d4] [d4,f4]@3 ~@2, ~@10 f4 ~@3 f4 ~@9", // Dm Eb Bb Dm
  AO: "[~@5 [d4,f4]@3 ~@6 [d4,f4]@3 ~@6 d4@3 ~ [eb4,g4] ~@2 d4 [bb3,d4]@2 bb3@3 ~@10 [eb4,c5] ~, ~@23 f4 ~@6 f4@2 ~@16]/2", // Dm Eb Bb Cm
  AP: "[~@4 [eb4,c5]@3 ~@10 [d4,bb4] ~@5 [d4,bb4]@3 ~@9 [eb4,c5] ~@6 [eb4,c5]@3 ~@3]/2", // Cm Gm Cm
  AQ: "~@6 [d4,bb4] ~@6 [d4,bb4]@3 ~@6 [d4,f4]@2", // Gm Dm
// … 481 more lines