Strudelify

Die Zauberflöte K.620

Wolfgang Amadeus Mozazrt

KeyE♭ majorTempo200 bpm
0:00/0:00
// Die Zauberflöte K.620 — Wolfgang Amadeus Mozazrt
// 200 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 1 "Flute" named as a pipe, played on flute (its pizzicato strings patch is not one); ch 2 "Oboe" named as a reed, played on oboe (its tremolo strings patch is not one); ch 3 "Bb Clarinet" named as a reed, played on clarinet (its viola patch is not one); ch 4 "Bassoon" named as a reed, played on bassoon (its pizzicato strings patch is not one); ch 5 "Eb Alto Horn" named as a brass, played on brass section (its tremolo strings patch is not one); ch 9 "Trombone" named as a brass, played on trombone (its contrabass patch is not one); ch 11 "Trombone" named as a brass, played on trombone (its acoustic bass patch is not one); ch 12 "Bass Trombone" named as a bass, played on electric bass finger (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5892365; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 275 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(200/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
const flute = note(`<
  A@3 B@3 ~ C@2 ~@4 D@4 ~@3 E@3 ~@50 F G H@2 I@8 J@3 K@4 ~@10 L@5 M ~ N@2 O@6 M ~@4 P@5 Q R@4 ~@7 S@4 ~@2 T U@4 ~@11 V@2
  W@2 X Y@2 Z@2 AA@2 AB@2 AC ~@27 AD AE AF@2 AG AH AI AJ AK@3 AL AM@2 AN@2 AO@2 AP AQ AR AS AR AT AU ~@10 AV AW AX AY AZ
  ~@4 AV AW AX AY AZ ~@4 BA@2 BB BC BD BE BF BG BH BE BF BG BI AE BJ BK BL BM BN BO
>`.pickRestart({
  A: "[~@9 eb5@26 ~@13]/3", B: "[~@11 [eb5,g5]@3 [eb5,g5]@26 ~@8]/3", C: "[[eb5,bb5]@3 [eb5,bb5]@26 ~@3]/2",
  D: "[~@13 [eb5,f5]@40 ~@11]/4", E: "[~@7 [db5,g5]@40 ~]/3", F: "~@3 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 f5",
  G: "eb5 d5 eb5 bb5@2 bb5@2 bb5@2 bb5@2 bb5@2 bb5@2 c6", H: "[bb5 a5 bb5 g5@4 ~@4 eb6@12 d6@2 c6@2 bb5@2 ab5@2 g5]/2",
  I: "[~ f5@2 [eb5,g5]@4 ~@8 d6@4 bb5@4 c6@4 a5@4 bb5@4 g5@4 ab5@4 f5@4 g5@4 eb5@8 f5@8 [eb5,g5]@4 g6@4 ~@36 g5@4 eb5@8 d5@5, ~@7 c6@8 ~@20 c6@8 bb5@8 ab5@16 ~@8 f6@8 eb6@8 d6@8 c6@8 bb5@8 ~@13, ~@11 f6@8 eb6@8 d6@8 ~@36 eb6@8 d6@8 c6@8 bb5@8 ab5@8 ~@4 f5@13]/8", // Eb
  J: "[~@3 [a5,eb6]@20 [bb5,d6]@4 [g5,c6]@4 [g5,bb5]@4 [f5,a5]@4 ~@9]/3", K: "[~@3 [db6,e6]@16 [c6,f6]@4 ~@9]/2",
  L: "[~@3 d6@12 eb6 d6 c6 d6 [gb5,eb6]@2 ~@2 [eb6,gb6]@8 [d6,g6]@2 ~@6 [db6,e6]@8 [c6,f6]@2 ~@6 [bb5,d6]@8 [bb5,eb6]@2 ~@2 [eb6,g6]@4 ~@4 [d6,f6]@4 ~, ~@3 f5@16 ~@61]/5", // Ebm G5 Dbm F5 Bb Eb5 Eb Dm
  M: "~@3 [c6,eb6]@4 ~@4 [a5,c6]@4 ~", N: "[~@5 eb6@2 c6@2 a5@2 f5@2 eb5@2 c6@2 eb5@2 d5@4 ~@9]/2",
  O: "[~@5 eb6@2 c6@2 a5@2 f5@2 eb5@2 c6@2 eb5@2 d6@12 eb6 d6 c6 d6 [gb5,eb6]@2 ~@2 [eb6,gb6]@8 [d6,g6]@2 ~@6 [db6,e6]@8 [c6,f6]@2 ~@6 [bb5,d6]@8 [bb5,eb6]@2 ~@2 [eb6,g6]@4 ~@4 [d6,f6]@4 ~, ~@19 f5@16 ~@61]/6", // Ebm G5 Dbm F5 Bb Eb5 Eb Dm
  P: "[~@3 bb5@4 b5@4 c6@4 a5@4 bb5@4 b5@4 c6@4 a5@4 [d6,f6]@8 [c6,eb6]@8 [bb5,d6]@8 [a5,c6]@8 bb5@4 ~@4 bb5@4 ~, ~@3 f6@32 ~@45]/5", // Dm Cm Bb Am
  Q: "~@3 bb5@4 ~@4 bb5@4 ~", R: "[~@3 bb5@4 bb5@4 f5@4 d5@4 bb4@4 ~@4 bb5@4 bb5@4 bb5@16 ~@13]/4",
  S: "[~@4 d6@3 d6@26 d6@26 ~@5]/4", T: "~@13 [d6,f6]@3", U: "[~ [d6,f6]@26 [d6,f6]@26 ~@11]/4",
  V: "[~@4 eb6@6 d6 c6 bb5 ab5 g5 f5]/2", W: "[g5@4 g6@6 gb6 eb6 d6 c6 bb5 a5]/2", X: "g5@2 ~@2 g5!4",
  Y: "[g5@2 g5@2 a5 g5 gb5 g5 eb6@4 c6@8 a5@4 f5@2 f5@2 f5@2 f5@2]/2",
  Z: "[f5@2 f5@2 g5 f5 e5 f5 d6@4 bb5@8 g5@4 eb5@2 eb5@2 eb5@2 eb5@2]/2",
  AA: "[eb5@2 eb5@2 f5 eb5 d5 eb5 c6@4 a5@8 gb5@4 d5@2 d5@2 d5@2 d5@2]/2",
  AB: "[d5@2 d5@2 eb5 d5 db5 d5 bb5@4 g5@8 eb5@4 [a5,c6]@4 ~@4]/2", AC: "[g5,bb5] ~ [gb5,a5] ~",
  AD: "eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 f5 eb5 d5 eb5", AE: "bb5@2 bb5@2 bb5@2 bb5@2 bb5@2 bb5@2 c6 bb5 a5 bb5",
  AF: "[g5@2 ~@2 g5@4 ~@2 d6 [eb5,c6] [d5,bb5] [f5,ab5] [eb5,g5] [d5,f5], ~@2 eb6@3 ~@3, ~@8 f5@3 ~@5]/2", // Cm Gm Fm Eb Dm
  AG: "[eb5,g5] ~@2 d6, ~ c6@2 ~, ~ f6", AH: "bb5 c6 a5 bb5, eb6 d6", AI: "g5 ab5 f5 g5, c6 bb5", AJ: "eb5 f5, ab5",
  AK: "[[eb5,g5] g6 ~@9 g5, ~ eb6@2 d6@2 c6@2 bb5@2 ab5@2 ~, ~ f6 eb6 d6 c6 bb5]/3", AL: "eb5 d5, f5",
  AM: "[[a5,eb6]@5 ~@3]/2", AN: "[[ab5,d6]@5 ~@3]/2", AO: "[[bb5,db6]@5 ~@3]/2", AP: "c6@3 bb5",
  AQ: "ab5 [g5,g6] [f5,f6] [c6,eb6]", AR: "[bb5,d6] ~@3", AS: "[a5,eb6]", AT: "[eb6,gb6]", AU: "[d6,f6] ~@3",
  AV: "g5@2 ~@2 [g5,bb5]@8 a5 bb5 c6 bb5, ~@3 f5", AW: "[g5,eb6]@2 ~@2 [eb5,g5]@8 gb5 g5 ab5 g5, ~@3 d5",
  AX: "[eb5,c6]@2 ~@2 [c6,eb6]@8 d6 eb6 f6 eb6, ~@3 bb5", AY: "[ab5,d6] ~ [g5,eb6] ~", AZ: "[ab5,f6] ~ [f5,d6] ~",
  BA: "[eb6 e6 f6 d6 eb6 e6 f6 d6, bb5]/2", BB: "[bb5,g6] [ab5,f6]", BC: "[g5,eb6] [f5,d6]", BD: "[g5,eb6] ~@3",
  BE: "db6 b5", BF: "c6@2 ~ c6", BG: "[bb5,eb6]!2 [bb5,d6]!2", BH: "[bb5,eb6] ~",
  BI: "eb6@2 eb6@2 eb6@2 eb6@2 eb6@2 eb6@2 f6 eb6 d6 eb6", BJ: "g5@2 g5@2 g5@2 g5@2 g5@2 g5@2 ab5 g5 f5 g5",
  BK: "eb5 bb4 eb5 bb4 eb5 bb4 eb5 bb4", BL: "eb5 [bb5,d6] [bb5,eb6] [bb5,d6] [bb5,eb6] [bb5,d6] [bb5,eb6] [bb5,d6]",
  BM: "[bb5,eb6] [d6,f6] [eb6,g6] [d6,f6] [eb6,g6] [d6,f6] [eb6,g6] [d6,f6]", BN: "[eb6,g6] ~ [bb5,eb6]!2",
  BO: "[bb5,eb6]", // Eb5
})).s("gm_flute").gain(0.4)

// chords · flute · soft notes
const flute_soft = note(`<
  ~@71 A@3 ~@18 B@7 C@2 D@2 ~@75 E F G ~ H I J ~ K L M ~@2 N O ~@5 P ~ Q N ~@29 R@2 S@4 ~@5 T@2 S@2 ~@7 U V ~@20
>`.pickRestart({
  A: "[~@7 g5@8 f5@8 eb5@8 d5@4 ~@13]/3",
  B: "[~@3 g5@18 a5@2 bb5@2 b5@2 c6@2 db6@2 d6@2 eb6@2 f5@18 g5@2 ab5@2 a5@2 bb5@2 c6@2 db6@2 d6@2 eb5@18 f5@2 g5@2 a5@2 bb5@2 b5@2 c6@2 eb5@2 d5@4 ~@9]/7",
  C: "[~@5 eb6@2 c6@2 a5@2 f5@2 eb5@2 c6@2 eb5@2 d5@4 ~@9]/2", D: "[~@5 eb6@2 c6@2 a5@2 f5@2 eb5@2 c6@2 eb5@2 ~@13]/2",
  E: "~ b5 d6 c6 b5 d6 f6 eb6", F: "d6 c6 b5 ab5 g5 f5 eb5 d5", G: "c5 ~@3", H: "~ g5 bb5 ab5 g5 bb5 db6 c6",
  I: "bb5 ab5 g5 f5 e5 db6 c6 bb5", J: "a5 ~@3", K: "~ a5 c6 bb5 a5 c6 eb6 db6", L: "c6 bb5 a5 gb5 f5 eb5 d5 eb5",
  M: "f5 ~@3", N: "~ [c6,eb6] [bb5,d6] [ab5,c6] [g5,bb5] [f5,ab5] [eb5,g5] [d5,f5]", O: "eb5 ~@3",
  P: "~@2 a5 g5 f5 e5 d5@2", Q: "~@2 c6 bb5 ab5 g5 f5@2", R: "[ab5@9 a5 bb5 d6 f6 f5 bb5 ab5]/2",
  S: "[g5@2 ~@2 bb5@5 d6 f6 d6 bb5 f5 bb5 ab5]/2", T: "[~@4 bb5@5 d6 f6 d6 bb5 f5 bb5 ab5]/2", U: "eb5 e5 f5 d5, bb4",
  V: "eb5 e5 f5 d5, bb5",
})).s("gm_flute").gain(0.2)

// chords · oboe
const oboe = note(`<
  A@3 B@3 ~ C@2 ~@4 D@4 ~@3 E@3 ~@50 F G@3 H@8 I@3 J@4 ~@10 K@5 L M@3 N@6 L ~@4 O@5 P Q@4 R@5 ~@2 S@4 ~@2 T U@4 ~@10 V@2
  W@2 X Y Z@2 AA@2 AB@2 AC AD AE ~@27 AF AG AH@2 AI AJ AK AL AM@2 AN AO AP@2 AQ@2 AR@2 AS AT AU AV AW AV AW ~@10 AX AY
  AZ BA BB ~@4 AX AY AZ BA BB ~@4 BC BD@2 BE BF BG BH BI BJ BG BH BI BK BL BM BN BO BP BQ BR
>`.pickRestart({
  A: "[~@9 eb5@26 ~@13]/3", B: "[~@11 [eb5,g5]@3 [eb5,g5]@26 ~@8]/3", C: "[[eb5,bb5]@3 [eb5,bb5]@26 ~@3]/2",
  D: "[~@13 [eb5,f5]@40 ~@11]/4", E: "[~@7 [db5,g5]@40 ~]/3", F: "~@3 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 f5",
  G: "[eb5 d5 eb5 f5@16 [eb5,g5]@4 ~@4 g5@8 ~@4 d5@2 [c5,eb5]@2 [bb4,d5]@2 [ab4,f5]@2 [g4,eb5], ~@9 eb5@4 ~@3, ~@35 f5@6 ~@7]/3", // Eb Cm Bb Db Cm
  H: "[~ [f4,d5]@2 [g4,eb5]@4 [eb5,g5]@4 a5@4 bb5@4 g5@4 ab5@4 gb5@4 g5@4 eb5@4 f5@4 d5@4 eb5@4 c5@8 d5@8 [eb5,g5]@4 g5@4 ~@12 ab5@4 a5@4 g5@4 g5@4 ~@8 eb5@4 eb5@8 d5@5, ~@11 f5@8 eb5@8 d5@8 c5@8 bb4@8 ab5@16 ~@4 c6@8 bb5@8 ~@16 f5@8 ~@4 f5@13, ~@75 f5@8 eb5@8 d5@8 c5@8 bb4@8 ~@13]/8", // Dm Cm Eb
  I: "[~@3 [eb5,a5]@20 [d5,bb5]@4 [c5,eb5]@4 [bb4,d5]@4 [a4,c5]@4 ~@9]/3", J: "[~@3 [g5,bb5]@16 [f5,a5]@4 ~@9]/2",
  K: "[~@3 d5@12 eb5 d5 c5 d5 [eb5,gb5]@2 ~@2 [gb5,a5]@8 [g5,bb5]@2 ~@6 [e5,g5]@8 [f5,a5]@2 ~@6 [d5,f5]@8 [eb5,g5]@2 ~@2 [eb5,g5]@4 ~@4 [d5,f5]@4 ~, ~@3 f5@16 ~@61]/5", // Ebm Gbm Gm Em F Dm Eb Dm
  L: "~@3 [c5,eb5]@4 ~@4 [a4,c5]@4 ~", // Cm Am
  M: "[~@3 f5@2 bb5@2 a5@2 g5@2 f5@2 e5@2 g5@2 f5@2 f5@18 bb5@2 a5@2 g5@2 f5@2 e5@2 g5]/3",
  N: "[~ f5@2 f5@16 d5@12 eb5 d5 c5 d5 [eb5,gb5]@2 ~@2 [gb5,a5]@8 [g5,bb5]@2 ~@6 [e5,g5]@8 [f5,a5]@2 ~@6 [d5,f5]@8 [eb5,g5]@2 ~@2 [eb5,g5]@4 ~@4 [d5,f5]@4 ~, ~@19 f5@16 ~@61]/6", // Ebm Gbm Gm Em F Dm Eb Dm
  O: "[~@3 bb5@4 b5@4 c6@4 a5@4 bb5@4 b5@4 c6@4 a5@4 [f5,bb5]@8 [g5,c6]@8 [d5,bb5]@8 [c5,a5]@8 [bb4,bb5]@4 ~@4 [bb4,bb5]@4 ~, ~@3 f5@32 ~@45]/5", // Bb5 C5 Gm F Bb
  P: "~@3 [bb4,bb5]@4 ~@4 [bb4,bb5]@4 ~", // Bb
  Q: "[~@3 [bb4,bb5]@4 bb5@4 f5@4 d5@4 bb4@4 ~@4 [bb4,bb5]@4 [bb4,bb5]@4 [bb4,bb5]@16 ~@13]/4", // Bb
  R: "[~@10 [f5,bb5]@3 [f5,bb5]@26 ~ [f5,bb5]@26 ~@14]/5", S: "[~@4 [f5,bb5]@3 [f5,bb5]@26 [f5,bb5]@26 ~@5]/4",
  T: "~@13 [f5,bb5]@3", U: "[~ [f5,bb5]@26 [f5,bb5]@26 ~@11]/4", V: "[~@4 d5@6 c5 bb4 ab4 g4 f4 eb4]/2",
  W: "[f4@4 f5@6 eb5 d5 c5 bb4 a4 g4]/2", X: "a4 [d5,gb5]", Y: "[g4,g5] ~ [bb4,d5]@2", Z: "[[c5,eb5]@3 [a4,c5]]/2",
  AA: "[[bb4,d5]@3 [g4,bb4]]/2", AB: "[[a4,c5]@3 [gb4,a4]]/2", AC: "[g4,bb4]", AD: "[g4,eb5] ~ [c5,a5] ~",
  AE: "[bb4,g5] ~ [a4,gb5] ~", AF: "eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 f5 eb5 d5 eb5", AG: "f5",
  AH: "[[eb5,g5]@2 ~@2 g5@4 ~@2 d5 [c5,eb5] [bb4,d5] [ab4,f5] [g4,eb5] [f4,d5], ~@2 eb5@3 ~@3, ~@8 f5@3 ~@5]/2", // Eb Cm Bb Db Cm Dm
  AI: "[g4,eb5] [eb5,g5] a5 bb5, ~ f5", AJ: "g5 ab5 gb5 g5, eb5 d5", AK: "eb5 f5 d5 eb5, c5 bb4", AL: "c5 d5, ab5",
  AM: "[[eb5,g5] g5 ~@3 ab5 a5 g5, ~ c6@2 bb5@2 ~@3, ~ f5 eb5 d5]/2", AN: "g5 ~@2 eb5, c5 bb4, ~ f5@2 ~",
  AO: "eb5 d5, f5", AP: "[[eb5,a5]@5 ~@3]/2", AQ: "[[d5,f5]@5 ~@3]/2", AR: "[[db5,g5]@5 ~@3]/2", AS: "c5@3 bb4",
  AT: "ab4 [d5,g5] [c5,f5] [c5,eb5]", AU: "[bb4,d5] ~@3", AV: "[gb5,a5]", AW: "[f5,bb5] ~@3",
  AX: "~ [g5,bb5]@2 [f5,bb5]", AY: "[eb5,g5] ~ [eb5,g5]@4 [d5,g5]@2", AZ: "[c5,eb5] ~ [c5,eb5]@4 [bb4,eb5]@2",
  BA: "[d5,ab5] ~ [eb5,g5] ~", BB: "[f5,ab5] ~ [d5,f5] ~", BC: "eb5 e5 f5 d5",
  BD: "[eb5 e5 f5 d5 g5@2 [f5,ab5]@2, bb5@3 ~]/2", BE: "[eb5,g5] [d5,f5]", BF: "eb5 ~@3", BG: "db5 b4",
  BH: "c5@2 ~ [c5,ab5]", BI: "[eb5,g5]!2 [d5,f5]!2", BJ: "[eb5,g5] ~", BK: "eb5@12 f5 eb5 d5 eb5",
  BL: "bb5@12 c6 bb5 a5 bb5", BM: "g5@12 ab5 g5 f5 g5", BN: "eb5 bb4 eb5 bb4 eb5 bb4 eb5 bb4",
  BO: "eb5 [d5,f5] [eb5,g5] [d5,f5] [eb5,g5] [d5,f5] [eb5,g5] [d5,f5]", // Dm Eb Dm Eb Dm Eb Dm
  BP: "[eb5,g5] [f5,bb5] [g5,bb5] [f5,bb5] [g5,bb5] [f5,bb5] [g5,bb5] [f5,bb5]", BQ: "[g5,bb5] ~ [eb5,g5]!2",
  BR: "[eb5,g5]", // Eb
})).s("gm_oboe").gain(0.4)

// chords · oboe · soft notes
const oboe_soft = note(`<
  ~@45 A@6 ~@46 B@6 ~@73 C@3 ~ D@3 ~ E@3 ~ F@3 ~@3 G@2 H I ~ J ~@33 K L K L ~@5 K L K L ~@8 M@2 ~@19
>`.pickRestart({
  A: "[~@3 gb5@26 ~@27 d5@26 ~ eb5@4 ~@9, ~@3 eb5@53 ~@40, ~@30 f5@53 ~@13]/6",
  B: "[~@3 f5@18 bb5@2 a5@2 g5@2 f5@2 e5@2 g5@2 f5@2 f5@18 bb5@2 a5@2 g5@2 f5@2 e5@2 g5@2 f5@2 f5@16 ~@13]/6",
  C: "[f5@3 ~]/3", D: "[bb5@3 ~]/3", E: "[eb5@3 ~]/3", F: "[ab5@3 ~]/3",
  G: "[~@4 [d5,bb5]@6 [c5,ab5] [bb4,g5] [a4,f5] [c5,eb5] [bb4,d5] [a4,c5]]/2", H: "[bb4,d5] ~@3",
  I: "~@2 g5 f5 eb5 d5 c5@2", J: "~@2 bb5 ab5 g5 f5 eb5@2",
  K: "[eb5,g5]@2 [eb5,g5]@2 [eb5,g5]@2 [eb5,g5]@2 [eb5,g5]@2 [eb5,g5]@2 [f5,ab5] [eb5,g5] [d5,f5] [eb5,g5]", // Eb Fm Eb Dm Eb
  L: "[f5,ab5] ~@3", M: "[eb5 e5 f5 d5 ~@4, bb4]/2",
})).s("gm_oboe").gain(0.2)

// chords · clarinet · "Bb Clarinet"
const clarinet = note(`<
  A@3 B@3 ~ C@2 ~@4 D@4 ~@3 E@3 ~@18 F@2 ~ G@2 ~@27 H@4 I@7 J@4 K@2 L@2 ~@10 M@5 N ~ O P O Q@5 N ~@2 R@7 S T@4 U@5 ~@2
  V@4 ~@2 W X@4 ~@15 Y Z@2 AA@2 AB@2 AC AD AE ~@27 AF@2 AG@2 AH AI AJ AK AL AM AN AO AP@2 AQ@2 AR@2 AS AT AU AV AU AW AX
  ~@10 AY AZ BA BB BC ~@4 AY AZ BA BB BC ~@4 BD@2 BE BF BG BH BI BJ BK BH BI BJ BL BM BN BO BP BQ BR BS
>`.pickRestart({
  A: "[~@9 [eb3,g4,bb4]@26 ~@13]/3", B: "[~@11 [g4,c5,eb5]@3 [g4,c5,eb5]@26 ~@8]/3",
  C: "[[g4,bb4,eb5]@3 [g4,bb4,eb5]@26 ~@3]/2", D: "[~@13 ab3@13 ~@6, ~@13 c5@40 ~@11]/4",
  E: "[~@10 bb3@13 ~, ~@7 bb4@40 ~]/3", F: "[~ bb4@26 ~@5]/2", G: "[~@3 c5@13]/2",
  H: "[~@3 g4@8 ~@12 d4@2 c4@2 bb3@2 ab3@2 g3@2 f3@2 [eb3,eb4]@2 eb4@2 eb4@2 eb4@2 eb4@2 eb4@2 f4 eb4 d4 eb4 bb4@2 bb4@2 [bb4,d5]@2 [eb4,bb4,c5]@2 [d4,bb4]@2 [f4,ab4,bb4]@2 [eb4,g4,c5], ~@3 bb3@4 ~@4 eb4@12 ~@20 g4@8 f4@6 ~@7, ~@19 [f4,bb4]@16 g4@4 ~@4 eb5@12 ~@9]/4", // Eb Bb Cm7 Gm Bb7 Cm Bb5
  I: "[bb4 a4 bb4 [eb4,g4]@4 [c5,eb5]@4 [a4,c5]@4 [bb4,d5]@4 [g4,bb4]@4 [ab4,c5]@4 [gb4,a4]@4 [g4,bb4]@4 [eb4,g4]@4 [f4,ab4]@4 [d4,f4]@4 [eb4,g4]@4 f4@2 f4@2 f4@2 f4@2 bb4@2 bb4@2 bb4@2 bb4@2 eb4@2 eb4@2 c5@2 c5@2 a4@2 a4@2 bb4@2 bb4@2 eb4@2 eb4@2 ab4@2 ab4@2 gb4@2 gb4@2 g4@2 g4@2 c4@2 c4@2 f4@2 f4@2 d4@2 d4@2 [eb4,g4], ~ [d4,f4]@2 eb5@2 ~@2 eb4@8 d4@2 ~@6 c4@8 bb3@2 ~@6 ab3@8 g3@2 ~@2 [c5,eb5]@8 [d5,f5]@8 [eb5,g5]@4 eb5@8 d5@4 [bb4,d5]@4 c5@8 ~@17, ~@91 a4@4 bb4@4 [g4,bb4]@4 ab4@8 ~]/7", // Eb Cm Am Bb Gm Ab Gbm Gm …
  J: "[~ eb4@2 [c5,eb5]@8 [bb4,d5]@8 [c3,c4]@2 [c3,c4]@2 [c3,c4]@2 [c3,c4]@2 [c3,c4]@2 [c3,c4]@2 [c3,c4]@2 [c3,c4]@2 [c3,c4]@4 [d4,f4,bb4]@4 [eb4,c5,eb5]@4 [g4,bb4,d5]@4 [c4,a4,c5]@4 ~@9, ~@19 [eb4,a4]@20 ~@25]/4", // Cm Bb C Bb Cm Gm F Ebdim
  K: "[~@3 bb4@2 bb4@4 bb4@4 bb4@4 db5@2 [c5,f5]@4 ~@9, ~@3 e5@16 ~@13, ~@3 db5@14 ~@15]/2", // F5
  L: "[~@3 bb4@2 bb4@4 bb4@4 bb4@4 bb4@2 [c5,f5]@4 ~@9, ~@3 [db5,e5]@16 ~@13]/2", // F5 Dbm
  M: "[~@3 bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 [c5,eb5] [bb4,d5] [a4,c5] [bb4,d5] [gb4,a4,eb5]@2 ~@2 [c5,eb5,gb5]@8 [bb4,d5,g5]@2 ~@2 g4@2 ~@2 [bb4,db5,e5]@8 [a4,c5,f5]@2 ~@2 f4@2 ~@2 [f4,ab4,d5]@8 [g4,eb5]@2 ~@2 [eb4,eb5,g5]@4 ~@4 [bb4,d5,f5]@4 ~, ~@3 f4@16 ~@61, ~@3 d5@12 ~@65]/5", // Cm Bb Am Bb Ebdim Cdim Gm Bbdim …
  N: "~@3 [eb4,c5,eb5]@4 ~@4 [f4,a4,c5]@4 ~", // Cm F
  O: "~@3 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [bb4,d5]", // Am Bb
  P: "[a4,c5] [g4,bb4] [a4,c5] [bb4,d5]@4 ~@9", // Am Gm Am Bb
  Q: "[[a4,c5] [g4,bb4] [a4,c5] bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 [c5,eb5] [bb4,d5] [a4,c5] [bb4,d5] [gb4,a4,eb5]@2 ~@2 [c5,eb5,gb5]@8 [bb4,d5,g5]@2 ~@2 g4@2 ~@2 [bb4,db5,e5]@8 [a4,c5,f5]@2 ~@2 f4@2 ~@2 [f4,ab4,d5]@8 [g4,eb5]@2 ~@2 [eb4,eb5,g5]@4 ~@4 [bb4,d5,f5]@4 ~, ~@3 f4@16 ~@61, ~@3 d5@12 ~@65]/5", // Am Gm Am Cm Bb Am Bb Ebdim …
  R: "[~@3 bb4@4 b4@4 c5@4 a4@4 bb4@4 b4@4 c5@4 a4@4 bb4!4 b4!4 c5!4 a4 a4!3 bb4!4 b4!4 c5!4 a4 a4!3 bb4@2 d4@2 d4@2 d4@2 eb4@2 eb4@2 eb4@2 eb4@2 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 bb4@4 ~@4 [bb3,bb4]@4 ~, ~@3 f5@64 [d5,f5]@8 [c5,eb5]@8 [bb4,d5]@8 [a4,c5]@8 ~@13]/7", // Bb Dm Cm Bb Am
  S: "~@3 [bb3,bb4]@4 ~@4 [bb3,bb4]@4 ~", // Bb
  T: "[~@3 [bb3,bb4]@4 bb4@4 f4@4 d4@4 bb3@4 bb4@4 [bb3,bb4]@4 [bb3,bb4]@4 [bb3,bb4]@16 ~@13]/4", // Bb
  U: "[~@10 [bb4,d5]@3 [bb4,d5]@26 ~ [bb4,d5]@26 ~@14]/5", V: "[~@4 [bb4,d5]@3 [bb4,d5]@26 [bb4,d5]@26 ~@5]/4",
  W: "~@13 [bb4,d5]@3", X: "[~ [bb4,d5]@26 [bb4,d5]@26 ~@11]/4",
  Y: "g3@2 g4@2 g4@2 g4@2 g4@2 g4@2 a4 g4 gb4 g4, ~ [bb4,d5]", // Bb
  Z: "[c5@4 c5@8 a4@4 f4@2 f4@2 f4@2 f4@2 f4@2 f4@2 g4 f4 e4 f4, eb5@3 [a4,c5]]/2", // Am
  AA: "[bb4@4 bb4@8 g4@4 eb4@2 eb4@2 eb4@2 eb4@2 eb4@2 eb4@2 f4 eb4 d4 eb4, d5@3 [g4,bb4]]/2", // Gm
  AB: "[a4@4 a4@8 gb4@4 d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 eb4 d4 db4 d4, c5@3 [gb4,a4]]/2", AC: "g4 g4@2 eb4, bb4",
  AD: "[c4,g4,eb5] ~ [a4,c5] ~", AE: "[g4,bb4,d5] ~ [d4,gb4,a4] ~",
  AF: "[g4@4 ~@6 d4 c4 bb3 ab3 g3 f3, bb3 ~ eb4@3 ~@3, ~ [f4,bb4]]/2", // Bb5
  AG: "[[eb3,eb4]@2 eb4@2 eb4@2 eb4@2 eb4@2 eb4@2 f4 eb4 d4 eb4 bb4@2 bb4@2 [bb4,d5]@2 [eb4,bb4,c5]@2 [d4,bb4]@2 [f4,ab4,bb4]@2 c5 bb4 a4 bb4, g4 ~ eb5@3 ~@3, ~@4 g4@4 f4@3 ~@3 [eb4,g4] [d4,f4]]/2", // Eb Bb Cm7 Gm Bb7 Eb Dm
  AH: "[eb4,g4] [c5,eb5] [a4,c5] [bb4,d5], eb5 ~ eb4@4 d4 ~", AI: "[g4,bb4] [ab4,c5] [gb4,a4] [g4,bb4], ~@2 c4@4 bb3 ~",
  AJ: "[eb4,g4] [f4,ab4] [d4,f4] [eb4,g4], ~@2 ab3@4 g3 ~", AK: "f4!4 bb4!4, [c5,eb5] [d5,f5]",
  AL: "eb4!2 c5!2 a4!2 bb4!2, [eb5,g5] eb5@2 d5", AM: "eb4!2 ab4!2 gb4!2 g4!2, [bb4,d5] c5@2 ~, ~@2 a4 bb4",
  AN: "c4!2 f4!2 d4!2 eb4!2, [g4,bb4] ab4@2 g4", AO: "[c5,eb5] [bb4,d5]", AP: "[[c3,c4]!8 c4!8, [eb4,a4]@5 ~@3]/2",
  AQ: "[bb3 bb4@2 bb4@2 bb4@2 bb4@2 d3!5 f3!2, [ab4,d5]@5 ~@3]/2", // Abdim
  AR: "[eb3 eb5@2 eb5@2 eb5@2 eb5@2 g3!7, [g4,db5]@5 ~@3]/2", AS: "eb3 ~ ab4 [g4,bb4], c5@3 ~",
  AT: "[ab4,c5] [bb4,d5,g5] [ab4,c5,f5] [a4,c5,eb5]", AU: "[bb4,d5] ~@3", AV: "[a4,f5]",
  AW: "c5 c5@2 c5@2 c5@2 c5, [a4,f5]", AX: "[f4,bb4,d5] ~@3", AY: "[g4,eb5] eb5!5 d5!2, ~ [bb4,g5]@2 [bb4,f5]",
  AZ: "[c5,eb5] ~ [g4,c5,eb5]@4 [g4,d5]@2, ~@6 bb4 ~", BA: "[ab4,c5] ~ [ab4,c5,eb5]@4 [bb4,eb5]@2, ~@6 g4 ~",
  BB: "[f4,ab4,d5] ~ [eb4,g4,eb5] ~", BC: "[ab4,f5] ~ [f4,bb4,d5] ~",
  BD: "~ bb4 g4 bb4 ~ bb4 ab4 bb4, [g4,eb5] e5 [ab4,f5] d5", BE: "g4!4 ab4!4, [bb4,eb5] f4",
  BF: "bb4!4 bb3!4, [eb4,g4] [d4,f4]", BG: "eb4!16", BH: "eb4!16, db5 b4", BI: "eb4!8 eb4@4 [ab4,c5,eb5]@4, c5 ~",
  BJ: "[bb4,eb5]!2 [bb3,bb4,d5]!2", BK: "eb4!16, [bb4,eb5] ~", BL: "eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 eb5@2 f5 eb5 d5 eb5",
  BM: "bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 bb4@2 c5 bb4 a4 bb4", BN: "g4@2 g4@2 g4@2 g4@2 g4@2 g4@2 ab4 g4 [f4,gb4] g4",
  BO: "eb4 bb3 eb4 bb3 eb4 bb3 eb4 bb3",
  BP: "eb4 [bb3,f4,bb4] [eb4,g4,bb4] [bb3,f4,bb4] [eb4,g4,bb4] [bb3,f4,bb4] [eb4,g4,bb4] [bb3,f4,bb4]", // Bb5 Eb Bb5 Eb Bb5 Eb Bb5
  BQ: "[eb4,g4,bb4] [bb4,d5] [bb4,eb5] [bb4,d5] [bb4,eb5] [bb4,d5] [bb4,eb5] [bb4,d5]", // Eb Bb Eb5 Bb Eb5 Bb Eb5 Bb
  BR: "[bb4,eb5] ~ [eb4,g4,bb4]!2", BS: "[eb4,g4,bb4]",
})).s("gm_clarinet").gain(0.4)

// chords · clarinet · "Bb Clarinet" · soft notes
const clarinet_soft = note(`<
  ~@10 A@3 B@2 ~ C D@5 E@3 F@2 B@2 G@3 H I@3 J@2 K@2 L@2 M@4 N@2 O@2 P ~@10 Q R S@8 T@3 ~@18 U V W X Y Z AA@5 ~@5 AB@5
  ~@5 AC@5 ~@28 AD@2 AE@2 AF AG AH ~@3 AI ~@2 AJ ~@11 AK AL AM ~ AN AO AP ~ AQ AR AS ~ AT AU AV AW AX ~ AY AZ BA BB BC
  BD BE BF ~@25 BG@2 BH@2 BI@2 BJ@4 ~@5 BK@2 BJ@2 ~@5 BL BM@3 ~@20
>`.pickRestart({
  A: "[~@8 ab3@13 ab3@26 ~]/3", B: "[ab3@13 ~@3]/2", C: "~ ab3@3", D: "[~@2 bb3@13 bb3@26 bb3@26 ~@13]/5",
  E: "[~@14 bb3@13 ~ c4@13 ~@7]/3", F: "[~@3 c4@3 bb3@13 ~@10 bb3@3]/2", G: "[~@8 bb3@13 c4@13 ~@10 c4@3 ~]/3",
  H: "bb3@13 ~@3", I: "[~@7 bb3@3 c4@26 ~@12]/3", J: "[~@2 db4@13 c4@13 ~@4]/2", K: "[~@6 c4@3 ~ b3@13 ~@9]/2",
  L: "[~ b3@3 bb3@26 ~@2]/2", M: "[~@12 f4@13 gb4@26 ~@13]/4", N: "[~ c4@13 bb3@13 ~@5]/2", O: "[~@8 ab3@13 ~@11]/2",
  P: "~@3 g3@4 ~@9", Q: "~@3 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 eb3@2 f3",
  R: "eb3 d3 eb3 bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 c4",
  S: "[bb3 a3 bb3 g3@2 g3@2 c4@2 c4@2 f3@2 f3@2 bb3@2 bb3@2 g3@2 g3@2 c4@2 c4@2 f3@2 f3@2 bb3@2 bb3@2 eb3@2 eb3@2 f3@2 f3@2 d3@2 d3@2 g3@2 g3@2 eb4@2 eb4@2 f4@2 f4@2 g4@2 g4@2 f4@2 f4@2 f4@4 ~@8 bb3@4 eb4@4 c4@4 f4@4 f4@4 f4@2 bb3@2 d4@2 g3@2 g4@2 g4@2 f4@2 a3@2 bb3@2 bb3@2 d4@2 g3@2 g4@2 g4@2 f4]/8",
  T: "[~ eb4@2 d4@2 bb3@2 e4@2 e4@2 f4@2 f4@2 d4@2 d4@2 eb4@2 eb4@2 a3@2 a3@2 bb3@2 bb3@2 bb3@2 bb3@2 ~@13, ~@7 db5@4 c5@4 b4@4 bb4@4 c5@4 bb4@4 ab4@4 ~@13]/3",
  U: "~@3 b4@2 b4@2 b4@2 b4@2 b4@2 b4@2 c5", V: "b4 a4 b4 c5@4 ~@9", W: "~@3 a4@2 a4@2 a4@2 a4@2 a4@2 a4@2 bb4",
  X: "a4 g4 a4 bb4@4 ~@9", Y: "~@3 g4@2 g4@2 g4@2 g4@2 g4@2 g4@2 a4", Z: "g4 f4 g4 a4@4 ~@4 f3@4 ~",
  AA: "[~@7 f3@4 ~@4 f4@4 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [bb4,d5] [a4,c5] [g4,bb4] [a4,c5] [bb4,d5]@4 f3@4 ~@4 f4@4 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [a4,c5]@2 [bb4,d5] [a4,c5] [g4,bb4] [a4,c5] ~@13, ~@23 f4@4 ~@4 f3@4 ~@20 f4@4 ~@4 f3@4 ~@13]/5", // Am Bb Am Gm Am Bb Am Bb …
  AB: "[~@7 f3@4 ~@4 f4@4 ~@4 f4@4 ~@4 f3@4 ~@4 f3@4 ~@4 f4@4 ~@4 f4@4 ~@4 f3@4 ~@13]/5",
  AC: "[~@3 d4@2 f4@2 d4@2 f4@2 eb4@2 f4@2 eb4@2 f4@2 d4@2 f4@2 d4@2 f4@2 eb4@2 f4@2 eb4@2 f4@2 d4@2 f4@2 d4@2 f4@2 eb4@2 f4@2 eb4@2 f4@2 d4@2 f4@2 d4@2 f4@2 eb4@2 f4@2 eb4@2 f4@2 ~@13]/5",
  AD: "[~@4 bb4@6 a4 g4 f4 eb4 db4 c4]/2", AE: "[bb3 ~ bb4@4 a4@2]/2", AF: "ab4@2 g4 gb4", AG: "g4 f4 eb4 d4",
  AH: "c4 ~@3", AI: "~ c3 eb3 ab3", AJ: "~ gb3 a3 d4", AK: "b4!6 c5!2", AL: "b4!2 c5!2 b4!2 c5!2", AM: "b4 ~@3",
  AN: "e4!6 f4!2", AO: "e4!2 f4!2 e4!2 f4!2", AP: "e4 ~@3", AQ: "a4!6 bb4!2", AR: "a4!2 bb4!2 a4!2 bb4!2", AS: "a4 ~@3",
  AT: "d4!6 eb4!2", AU: "d4!2 eb4!2 d4!2 eb4!2",
  AV: "~ [bb4,d5] [d5,f5] [c5,eb5] [bb4,d5] [d5,f5] [f5,ab5] [eb5,g5], d4 ~@3", // Bb Dm Cm Bb Dm Fm Eb
  AW: "[d5,f5] [c5,eb5] [bb4,d5] [ab4,c5] [g4,bb4] [f4,ab4] [eb4,g4] [d4,f4]", AX: "eb4 ~@3", AY: "~@2 e4 ~",
  AZ: "f4 ~@3", BA: "~ bb3!7", BB: "bb3@2 bb3@2 c4 b3 a3 b3 c4@2 c4@2 c4@2 c4@2",
  BC: "c4@2 c4@2 d4 db4 b3 db4 d4@2 d4@2 d4@2 d4@2", BD: "d4@2 d4@2 eb4 d4 c4 d4 eb4@2 eb4@2 eb4@2 eb4@2",
  BE: "eb4@2 eb4@2 f4 e4 d4 e4 f4@2 f4@2 f4@2 f4@2",
  BF: "~ [c5,eb5] [bb4,d5] [ab4,c5] [g4,bb4] [f4,ab4] [eb4,g4] [d4,f4], f4 ~@3", // Cm Bb Ab Gm Fm Eb Dm
  BG: "[e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 f4 e4 d4 e4 ~@2 db5@2 d5@2 eb5@2 e5@2 f5@2 g5@2 ab5@2, c5@9 ~@7, ~@4 f4 ~@3]/2",
  BH: "[d4@2 d4@2 d4@2 d4@2 d4@2 d4@2 eb4 d4 c4 d4 ~@2 b4@2 c5@2 d5@2 eb5@2 f5@2 gb5@2 g5@2, bb4@9 ~@7, ~@4 eb4 ~@3]/2",
  BI: "[c4@2 c4@2 c4@2 c4@2 c4@2 c4@2 d4 c4 bb3 c4 ~@2 a4@2 bb4@2 d5@2 f5@2 f4@2 bb4@2 ab4@2, ab4@9 ~@7, ~@4 d4 ~ d3 ~]/2",
  BJ: "[g4@2 bb3@2 ~@2 bb3@2 ~ d5 f5 d5 bb4 f4 bb4 ab4, ~@4 bb4@5 ~ bb3@2 ~@2 bb3@2]/2",
// … 374 more lines