Strudelify

high school musical - high school musical

David Lawrence

KeyE♭ majorTempo120 bpm
0:00/0:00
// high school musical - high school musical — David Lawrence
// 120 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: metre changes (4/4 at bar 1, 2/2 at bar 37, 4/4 at bar 56) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5933651; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 106 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 · [...]/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 · piccolo
const piccolo = note(`<
  ~@6 A@3 ~@8 B@2 C D E@2 F@4 G ~ H@2 I@2 J@3 K L@2 ~@2 M N@2 O@3 P@2 Q@3 R@2 S@6 T U V W X@7 Y Z@2 AA AB AC@2 AD ~ AE
  AF AG@4 AH@2 AI AJ@2 AK AL AM@3 AN AO@3 AP@3 AQ AR AS
>`.pickRestart({
  A: "[g5 ab5 g5 f5@2 eb5@2 g5@2 ab5 g5 f5@2 eb5@2 g5@9]/3", B: "[c6@2 d6 eb6@3 d6 c6@3 d6 eb6@3 ~@2]/2",
  C: "c6@3 eb6@2 c6 g6@2", D: "~ f6 eb6@10 ~@4", E: "bb5@3 g5@5",
  F: "[g6 ab6 g6 f6@2 eb6@2 g6@2 ab6 g6 f6@2 eb6@2 g6@3 ~@3 g6 eb6 f6@2 g6@3 ~ f6!3]/4", G: "eb6 eb6@3 ~@4",
  H: "[~@4 c6@4 ~ c6@4 d6@4 eb6@9 c6@4 ~ g6@14 f6@4 f6@14 ~]/2", I: "[~@19 c6@5 d6@5 ~ eb6@10 c6@10 g6@5 ab6@5 g6@4]/2",
  J: "[~@2 f6@10 eb6@16 g6@20 f6@3 eb6@45]/3", K: "~@11 a6@5 e6@2 e6@5 a6@5 g6@4",
  L: "[~ e6@17 ~ d6@2 c6@5 d6@5 e6@5 d6@5 c6@17 ~@6]/2", M: "~@11 d6@10 e6@7 f6@4",
  N: "[~ g6@7 ~ f6@5 e6@2 e6@22 ~@3 c6@5 c6@2 ~ a5@5 g5@5 a5@5]/2",
  O: "[a5@5 a5@7 b5@2 ~@3 b5@5 b5@2 ~ b5@10 g6@2 e6@5 g6@5 e6@5 g6@5 e6@5 d6@5 c6@7 ~ a5@5 a5@5 a5@7 b5@2 ~@2]/3",
  P: "[~ b5@5 b5@2 ~ b5@2 e5@5 g5@15 b5@5 a5@22 ~ a5@5]/2",
  Q: "[a5@5 a5@7 b5@2 ~@3 b5@5 b5@2 ~ b5@10 g6@2 e6@5 g6@5 e6@5 d6@5 c6@17 ~ e6@5 f5@5 c6@5 d6@2 e6@4]/3",
  R: "[~ a5@5 a5@2 ~ c6@5 d6@5 e6@20 a6@5 ~@5 ab6@5 ab6@2 a6@2 ~@6]/2",
  S: "[~@5 a5@26 f5@5 bb5@5 c6@5 f5@11 f6@4 g6@5 g6@4 e6@5 a6@9 g6@32 ~@9 d6@4 e6@5 g6@9 e6@4 a6@23 ~@22]/6",
  T: "~ g6@4 g6@5 a6@4 b6@5 c7@4 b6@5 a6@4", U: "g6@9 ~@7", V: "d6@5 d6@4 e6@5 g6@4 e6@5 g6@9", W: "e6@4 a6@23 ~@5",
  X: "[~@9 g5@18 a5@4 bb5@9 ~@5 g5@4 bb5@5 c6@4 d6@5 c6@14 ~@4 g5@5 bb5@4 c6@9 bb5@14 ~@4 g5@5 bb5@4 c6@5 d6@4 c6@9 ~@5 c6@4 c6@5 bb5@9 c6@9 d6@9 ~@5 b5@4 c6@7 d6@7 d6@14 ~@2]/7",
  Y: "~@2 b5@4 c6@7 d6@7 d6@12", Z: "[~@2 d6@4 b5@5 d6@6 b5@7 a5@5 g5@9 b5@4 a5@14 ~@8]/2",
  AA: "~ b5@7 b5@2 ~@5 d6@4 g6@7 gb6@6", AB: "~ d6@14 ~@4 g5@4 b5@5 c6@4",
  AC: "[d6@5 d6@32 b5@4 a5@9 g5@5 a5@4 g5@5]/2", AD: "b5@2 d6@7 d6@4 ~@3", AE: "~@12 e5 g5@3",
  AF: "~ e5@2 ~@6 e5@2 g5@6 e5@2 ~@6 e5@2 g5@5",
  AG: "[~@2 e5@2 ~@2 d5@2 ~@2 e5@2 ~@2 g5@8 ~@4 e5@2 ~ g5@6 e5@2 ~@6 e5@2 g5@6 e5@2 ~@7 e5@2 g5@6 a5@2 ~@2 bb5@2 ~@2 a5@2 ~@2 g5@8 ~@5 e6@2 g6@6 e6@2 ~@6 e6@2 g6@6 ~ e6@2 ~@6 e6@2]/4",
  AH: "[g6@6 e6@2 ~@2 d6@2 ~@2 e6@2 ~@2 g6@8 ~@5 e6@2 g6@6 e6@2 ~@6 e6@2 ~ g6@6 e6@2 ~@6]/2",
  AI: "e6@2 g6@6 a6@2 ~@2 bb6@2 ~@3 a6@2 ~@2 g6@8 ~@3",
  AJ: "[~@5 a6@4 a6@4 ~ a6@4 g6@4 ~@4 f6@4 g6@4 f6@4 f6@4 d6@4 ~ f6@6 g6@10 ~]/2",
  AK: "~@3 f6@4 a6@4 ~ a6@4 g6@4 f6@4 ~@4 g6@4", AL: "~ f6 eb6@6 ~@8",
  AM: "[~@6 f6@4 a6@4 c7@4 a6@4 g6@8 f6@4 g6@4 ~ f6@4 f6@4 d6@4 f6@6 g6@10 ~@5 f6@4 a6@4 a6@4 g6@4 f6@4 f6@4]/3",
  AN: "~ g6@16 a6@12 ~@3",
  AO: "[~@2 g6@4 b6@8 g6@4 a6@12 ~ b6@4 g6@8 e6@4 ~@4 gb6@8 ~ g6@8 g6@4 ~@4 e6@4 d6@4 g6@4 ~@5 e6@3]/3",
  AP: "[~ d6@4 g6@4 ~@4 a6@4 b6@4 ~ b6@8 a6@4 ~@8 g6@4 ~@4 g6@4 ~@5 g6@4 g6@2 f6@10 f6@4 f6@4 ~ g6@4 f6@4 g6@4]/3",
  AQ: "g6@2 f6@10 g6@4 ~ f6@4 g6@4 f6@4 g6@3", AR: "~ f6@4 g6@4 f6@4 ~ g6@4 f6@4 g6@4 bb6@6",
  AS: "~ f6@2 f6@2 g6@2 ~@9",
})).s("gm_piccolo").gain(0.3)

// other · flute
const flute = note(`<
  A B C D E@2 F@3 G H I J G K I L M N O P Q R S T U V W X Y@2 Z@2 AA ~@2 AB@3 AC AD AE AF@2 AG AH@2 AI@2 AG AJ@3 AK AL@3
  AM@5 AN@2 AO@2 AP@5 AQ@3 AR AS@4 ~ AT AU AV@4 AW@2 AX AY@2 AZ BA BB@3 BC BD@3 BE@3 BF BG BH
>`.pickRestart({
  A: "eb4@11 ~ f4@11 ~ g4@8", B: "bb4@11 ~ f4@19 ~", C: "eb4@15 ~", D: "bb4@27 ~ bb4@4", E: "bb5@11 ~ g5@19 ~",
  F: "[eb5@11 ~ eb5@15 ~ eb5@15 ~ d5@8 eb5@8 g5@34 ~@2]/3", G: "~@4 g4@4 c5@4 d5@4 eb5@15 ~",
  H: "~@4 c4@4 f4@4 g4@4 a4@15 ~", I: "~@4 eb4@4 ab4@4 bb4@4 c5@15 ~", J: "c4 eb4 f4 g4",
  K: "~@4 c5@4 f5@4 g5@4 a5@15 ~", L: "~ bb4 eb5 bb4 ~ bb4 c5 d5", M: "~@4 eb5@4 ab4@4 eb5@4 bb4@4 eb5@11 ~",
  N: "~@4 eb5@4 c5@4 eb5@4 c5@4 eb5@11 ~", O: "~@4 eb4@4 ab4@4 eb4@4 bb4@4 eb4@11 ~", P: "bb4@23 ~@9",
  Q: "eb5@11 ~ c5@11 ~@9", R: "eb5@11 ~ a4@11 ~@9", S: "~@8 c5@11 ~ c5@4 c5@4 ~@4", T: "bb4@15 ~",
  U: "~@8 g5@11 ~ g5@4 g5@4 ~@4", V: "~@8 a5@11 ~ a5@4 a5@4 ~@4", W: "~@8 bb4@11 ~ c5@4 c5@4 ~@4",
  X: "~@8 bb5@11 ~ c6@4 c6@4 ~@4", Y: "[~@4 c5@4 ~ c5@4 d5@4 eb5@8 ~ c5@4 ~ c5@13 ~ a5@4 a5@14 ~]/2",
  Z: "[~@19 f5@5 g5@5 ~ ab5@10 c6@10 bb4@5 c5@5 bb4@4]/2", AA: "~@2 bb4@10 bb4@15 ~@5",
  AB: "[~@11 c5@5 e5@2 e5@5 c5@5 b4@21 ~@2 b4@2 c5@5 b4@5 e5@5 a4@21 ~@2 e4@5]/3",
  AC: "a4@2 e4@5 e5@5 b4@5 c5@2 ~ g4@12", AD: "d5@2 ~ b4@5 c5@2 b4@5 c5@2 ~ c5@14", AE: "~@11 f4@9 ~ a4@7 d5@4",
  AF: "[~ g5@7 ~ a4@5 e5@2 g4@21 ~@22 f4@5]/2", AG: "f4@5 f4@7 g4@2 ~@3 g4@5 b4@2 ~ g4@7",
  AH: "[~@3 b4@2 e5@5 b4@5 e5@5 c5@5 e5@5 a4@5 a4@7 ~ f4@5 f4@5 f4@7 g4@2 ~@2]/2",
  AI: "[~ g5@5 b5@2 ~ g5@2 e5@5 d5@14 ~ b4@5 db5@21 ~@2 f4@5]/2",
  AJ: "[~@3 b4@2 e5@5 b4@5 e5@5 a4@5 a4@17 ~ f4@9 ~ c5@9 ~ f5@9 ~ c5@9 ~ e5@7 b4@6]/3",
  AK: "~@2 e5@5 c5@5 ~@5 b4@5 b4@2 c5@2 ~@6", AL: "[~@5 c5@54 ~@2 d5@13 ~ d5@21]/3",
  AM: "[~@2 d5@6 d5@2 ~@5 d5@21 ~@2 d5@13 d5@21 ~@2 d5@6 ~ d5@2 ~@5 d5@21 ~ d5@13 ~ d5@21 ~@2 d5@6 d5@2 ~@5]/5",
  AN: "[d5@21 ~@2 d5@13 d5@21 ~@2 d5@5]/2", AO: "[~@2 d5@2 ~@5 d5@21 ~ g4@6 ~ g4@2 ~@5 g4@19]/2",
  AP: "[~@3 a4@6 ~ a4@2 ~@5 a4@21 ~@2 g4@6 g4@2 ~@5 g4@21 ~@2 a4@5 ~@4 a4@4 a4@4 ~ g4@9 a4@9 b4@6 ~ b4@2 ~@5 d5@21 ~ c5@6 ~ c5@2 ~@3]/5",
  AQ: "[~@2 c5@21 ~@2 b4@6 b4@2 ~@5 d5@21 ~@2 c5@6 ~ c5@2 ~@4 c5@21 ~]/3", AR: "~ b4@6 ~ b4@2 ~@5 d5@4 g5@6 ~ gb5@6",
  AS: "[~ d5@13 ~@5 d5@21 ~ c5@6 ~ c5@2 ~@5 c5@21 ~@2 c5@6 ~ c5@2 ~@4 c5@9 g5@13 ~ g5@8 ~@6]/4", AT: "~@12 e4 g4@3",
  AU: "~ e4@2 ~@6 e4@2 g4@6 e4@2 ~@6 e4@2 g4@5",
  AV: "[~@2 e4@2 ~@2 d4@2 ~@2 e4@2 ~@2 g4@8 ~@4 e4@2 ~ g4@6 e4@2 ~@6 e4@2 g4@6 e4@2 ~@7 e4@2 g4@6 a4@2 ~@2 bb4@2 ~@2 a4@2 ~@2 g4@8 ~@5 e4@2 g4@6 e4@2 ~@6 e4@2 g4@6 ~ e4@2 ~@6 e4@2]/4",
  AW: "[g4@6 e4@2 ~@2 d4@2 ~@2 e4@2 ~@2 g4@8 ~@5 e4@2 g4@6 e4@2 ~@6 e4@2 ~ g4@6 e4@2 ~@6]/2",
  AX: "e4@2 g4@6 a4@2 ~@2 bb4@2 ~@3 a4@2 ~@2 g4@8 ~@3",
  AY: "[~@5 a4@4 a4@4 ~ a4@4 g4@4 ~@4 f4@4 g4@4 f4@4 f4@4 d4@4 ~ f4@6 g4@10 ~]/2",
  AZ: "~@3 f4@4 a4@4 ~ a4@4 g4@4 f4@4 ~@4 g4@4", BA: "~ f4 eb4@6 ~@8",
  BB: "[~@6 f4@4 a4@4 c5@4 a4@4 g4@8 c5@4 d5@4 ~ c5@4 c5@4 bb4@4 c5@6 d5@10 ~@5 f4@4 a4@4 a4@4 g4@4 f4@4 f4@4]/3",
  BC: "~ bb4@16 c5@12 ~@3",
  BD: "[~@2 g5@4 g5@8 g5@4 gb5@12 ~ gb5@4 e5@8 b4@4 ~@4 d5@8 ~ d5@8 e5@4 ~@4 c5@4 c5@4 d5@4 ~@5 c5@3]/3",
  BE: "[~ c5@4 e5@4 ~@4 e5@4 e5@4 ~ gb5@8 gb5@4 ~@8 g4@4 ~@4 g4@4 ~@5 g4@4 g4@2 f4@10 f4@4 f4@4 ~ g4@4 f4@4 g4@4]/3",
  BF: "g4@2 f4@10 g4@4 ~ f4@4 g4@4 f4@4 g4@3", BG: "~ f4@4 g4@4 f4@4 ~ g4@4 f4@4 g4@4 bb4@6",
  BH: "~ f4@2 f4@2 g4@2 ~@9",
})).s("gm_flute").gain(0.3)

// other · flute
const flute_2 = note(`<
  ~@2 A@2 B C D@3 E F G H E F G H I@2 J@2 K@2 L M L@4 N O@3 ~@3 P@3 Q R S T@2 U V@2 W@2 U X@2 ~ Y ~ Z@2 AA@5 AB@2 AC@2
  AD@5 AE@3 AF@5 ~ AG AH AI@4 AJ@2 AK AL@2 AM AN AO@3 AP AQ@3 AR@3 AS AT AU
>`.pickRestart({
  A: "[eb4@61 ~@3]/2", B: "eb5@15 ~", C: "f5@15 ~", D: "[c5@11 ~ c5@15 ~ bb4@15 ~ bb4@8 bb4@8 c5@34 ~@2]/3",
  E: "eb5@23 ~ bb4@8", F: "a4@23 ~ f5@8", G: "c5@23 ~ eb5@8", H: "g4@15 ~ bb4@15 ~",
  I: "[c5@2 d5 eb5@3 d5 c5@3 d5 eb5@3 ~@2]/2", J: "[c5@11 ~ eb5@8 c5@4 g5@31 ~@9]/2", K: "g5@11 ~ eb5@11 ~@9",
  L: "~@8 eb5@11 ~ eb5@4 eb5@4 ~@4", M: "eb5@16 f5@15 ~", N: "eb5", O: "[~@3 f5@36 ~@2 eb5@38 ~@17]/3",
  P: "[~@11 a4@9 ~ e5@9 ~ g4@9 ~ d5@9 ~ g4@9 ~ d5@9 ~ f4@9 ~ f4@5 g4@5 e4@5]/3", Q: "a4@2 e4@5 e5@5 b4@5 c5@2 ~ g4@12",
  R: "d5@2 ~ b4@5 c5@2 b4@5 c5@2 ~ c5@14", S: "~@11 f4@9 ~ a4@7 d5@4", T: "[~ g5@7 ~ a4@5 e5@2 g4@21 ~@22 f4@5]/2",
  U: "f4@5 f4@7 g4@2 ~@3 g4@5 b4@2 ~ g4@7",
  V: "[~@3 b4@2 e5@5 b4@5 e5@5 c5@5 e5@5 a4@5 a4@7 ~ f4@5 f4@5 f4@7 g4@2 ~@2]/2",
  W: "[~ g4@5 b4@2 ~ g4@2 e4@5 d4@14 ~ b4@5 db5@21 ~@2 f4@5]/2", X: "[~@3 b4@2 e5@5 b4@5 e5@5 a4@5 a4@17 ~@22]/2",
  Y: "~@7 c5@5 ~@5 b4@5 b4@2 c5@2 ~@6", Z: "[~@29 a4@13 ~ a4@21]/2",
  AA: "[~@2 a4@6 a4@2 ~@5 a4@21 ~@2 c5@13 c5@21 ~@2 c5@6 ~ c5@2 ~@5 c5@21 ~ a4@13 ~ a4@21 ~@2 a4@6 a4@2 ~@5]/5",
  AB: "[a4@21 ~@2 c5@13 c5@21 ~@2 c5@5]/2", AC: "[~@2 c5@2 ~@5 c5@21 ~ f4@6 ~ f4@2 ~@5 f4@19]/2",
  AD: "[~@3 g4@6 ~ g4@2 ~@5 g4@21 ~@2 f4@6 f4@2 ~@5 f4@21 ~@2 g4@5 ~@4 g4@4 g4@4 ~ f4@9 g4@9 a4@6 ~ a4@2 ~@5 a4@21 ~ g4@6 ~ g4@2 ~@3]/5",
  AE: "[~@2 g4@21 ~@2 a4@6 a4@2 ~@5 a4@21 ~@2 g4@6 ~ g4@2 ~@4 g4@21 ~]/3",
  AF: "[~ g4@6 ~ g4@2 ~@5 g4@21 ~ a4@6 ~ a4@2 ~@5 a4@21 ~ g4@6 ~ g4@2 ~@5 g4@21 ~@2 e4@6 ~ e4@2 ~@4 e4@9 c5@13 ~ b4@8 ~@6]/5",
  AG: "~@12 e4 g4@3", AH: "~ e4@2 ~@6 e4@2 g4@6 e4@2 ~@6 e4@2 g4@5",
  AI: "[~@2 e4@2 ~@2 d4@2 ~@2 e4@2 ~@2 g4@8 ~@4 e4@2 ~ g4@6 e4@2 ~@6 e4@2 g4@6 e4@2 ~@7 e4@2 g4@6 a4@2 ~@2 bb4@2 ~@2 a4@2 ~@2 g4@8 ~@5 e4@2 g4@6 e4@2 ~@6 e4@2 g4@6 ~ e4@2 ~@6 e4@2]/4",
  AJ: "[g4@6 e4@2 ~@2 d4@2 ~@2 e4@2 ~@2 g4@8 ~@5 e4@2 g4@6 e4@2 ~@6 e4@2 ~ g4@6 e4@2 ~@6]/2",
  AK: "e4@2 g4@6 a4@2 ~@2 bb4@2 ~@3 a4@2 ~@2 g4@8 ~@3",
  AL: "[~@5 a4@4 a4@4 ~ a4@4 g4@4 ~@4 f4@4 g4@4 f4@4 f4@4 d4@4 ~ f4@6 g4@10 ~]/2",
  AM: "~@3 f4@4 a4@4 ~ a4@4 g4@4 f4@4 ~@4 g4@4", AN: "~ f4 eb4@6 ~@8",
  AO: "[~@6 f4@4 a4@4 c5@4 a4@4 g4@8 c5@4 d5@4 ~ c5@4 c5@4 bb4@4 c5@6 d5@10 ~@5 f4@4 a4@4 a4@4 g4@4 f4@4 f4@4]/3",
  AP: "~ eb4@16 f4@12 ~@3",
  AQ: "[~@2 g4@4 d5@8 d5@4 d5@12 ~ d5@4 b4@8 g4@4 ~@4 b4@8 ~ b4@8 c5@4 ~@4 g4@4 g4@4 b4@4 ~@5 g4@3]/3",
  AR: "[~ g4@4 c5@4 ~@4 c5@4 c5@4 ~ d5@8 d5@4 ~@8 g4@4 ~@4 g4@4 ~@5 g4@4 g4@2 f4@10 f4@4 f4@4 ~ g4@4 f4@4 g4@4]/3",
  AS: "g4@2 f4@10 g4@4 ~ f4@4 g4@4 f4@4 g4@3", AT: "~ f4@4 g4@4 f4@4 ~ g4@4 f4@4 g4@4 bb4@6",
  AU: "~ f4@2 f4@2 g4@2 ~@9",
})).s("gm_flute").gain(0.25)

// other · flute
const flute_3 = note(`<
  ~@4 A@2 B@3 C D E F G D H F I J K@2 L M N O L M P N Q R@2 ~@4 S@4 T U@3 V@2 W@3 V@2 X ~ Y ~ Z@2 AA@5 AB@2 AC@2 AD@5
  AE@3 AF@7 AG AH AI AJ AK AL@6 AM AN AO AP AQ AR@8 AS
>`.pickRestart({
  A: "c5@15 ~", B: "[ab4@11 ~ ab4@15 ~ eb5@15 ~ bb4@8 bb4@8 g5@34 ~@2]/3", C: "c5@4 g5@27 ~", D: "f5@4 c5@27 ~",
  E: "ab5@4 eb5@4 ab5@23 ~", F: "eb5@15 ~ d5@15 ~", G: "c5@4 g4@27 ~", H: "ab4@4 eb5@4 ab4@23 ~", I: "ab4@15 ~",
  J: "a4@15 ~", K: "[ab4@53 ~@11]/2", L: "c5@11 ~ c5@4 c5@4 c5@4 c5@4 ~@4", M: "f5@11 ~ f5@4 f5@4 f5@4 f5@4 ~@4",
  N: "ab5@11 ~ ab5@4 ab5@4 ab5@4 ab5@4 ~@4", O: "eb5@2 eb5@2 d5!3 ~", P: "ab4@11 ~ ab4@4 ab4@4 ab4@4 ab4@4 ~@4",
  Q: "c6 g5@7", R: "[~@3 f5@5 c5@32 ~@24]/2",
  S: "[~@11 a4@9 ~ e5@9 ~ g4@9 ~ d5@9 ~ g4@9 ~ d5@9 ~ f4@9 ~ f4@5 g4@5 a4@9 ~ e5@9 ~ g4@9 ~ d5@7]/4",
  T: "~@3 g4@9 ~ g4@9 ~ a4@9", U: "[~@11 d5@9 ~ a4@5 d5@14 ~ a4@5 d5@5 e5@19 ~@21 f4@5]/3",
  V: "[~@2 c5@7 ~ g4@14 ~ d5@5 g4@5 e5@9 ~ b4@9 ~ a4@9]/2",
  W: "[~ e5@5 a4@5 f4@7 c5@7 ~ g4@14 ~ d5@2 ~@3 g4@5 a4@7 e5@2 ~ e5@5 a4@12 ~@13 f4@5]/3", X: "~ e5@9 ~@22",
  Y: "~@7 e4@5 ~@5 e4@5 e4@2 a4@2 ~@6", Z: "[~@29 g5@34 ~]/2",
  AA: "[~@2 g5@6 g5@2 ~@5 g5@21 ~@2 g5@34 ~@2 g5@6 ~ g5@2 ~@5 g5@21 ~ g5@34 ~@3 g5@6 g5@2 ~@5]/5",
  AB: "[g5@21 ~@2 g5@34 ~@2 g5@5]/2", AC: "[~@2 g5@2 ~@5 g5@21 ~ eb5@6 ~ eb5@2 ~@5 eb5@19]/2",
  AD: "[~@3 f5@6 ~ f5@2 ~@5 f5@21 ~@2 eb5@6 eb5@2 ~@5 eb5@21 ~@2 f5@34 ~@2 g5@6 ~ g5@2 ~@5 g5@21 ~ c5@6 ~ c5@2 ~@3]/5",
  AE: "[~@2 c5@21 ~@2 g5@6 g5@2 ~@5 g5@21 ~@2 c5@6 ~ c5@2 ~@4 d5@13 ~ d5@8]/3",
  AF: "[~ e5@6 ~ e5@2 ~@5 e5@21 ~ g5@6 ~ g5@2 ~@5 g5@21 ~ c5@6 ~ c5@2 ~@5 c5@21 ~@2 d5@6 ~ d5@2 ~@4 d5@9 d5@13 ~ g5@8 ~@4 g5@4 ~@17 g5@8 ~@4 g5@4 ~@17 g5@8 ~@4]/7",
  AG: "~ g5@4 ~@16 g5@8 ~@3", AH: "~ g5@2 ~@2 d5@2 ~ f5@2 ~ g5@4 ~", AI: "~@3 g5@4 ~@16 g5@8 ~",
  AJ: "~@4 g5@4 ~@4 a5@4 ~@2 f5@4 ~@3 g5@7", AK: "~@5 g5@4 ~@17 g5@6",
  AL: "[~@6 g5@4 ~@4 d5@4 ~@3 f5@4 ~@2 g5@8 ~@4 g5@4 ~@17 g5@8 ~@4 g5@4 ~@9 g5@4 gb5@4 f5@8 ~@4 f5@4 ~@17 eb5@8 ~@4 d5@4 ~@5 g5@4 ~@2 eb5@4 ~@2 f5@8 ~@5 f5@4 ~@16]/6",
  AM: "eb5@8 ~@5 eb5@4 ~@4 g5@4 ~@2 eb5@4 ~", AN: "~ f5@8 ~@5 f5@4 ~@14", AO: "~@2 eb5@8 ~@5 d5@4 ~@4 g5@4 ~@2 eb5@3",
  AP: "~ f5@2 ~ f5 ~@3", AQ: "~ eb5@16 f5@12 ~@3",
  AR: "[~@6 g5@12 gb5@20 ~ e5@12 d5@20 ~ c5@12 b4@20 ~ e5@12 ~ gb5@4 ~@4 gb5@4 ~@2 gb5@4 ~@2 f5@114 ~@4]/8",
  AS: "~ f4@2 f4@2 g4@2 ~@9",
})).s("gm_flute").gain(0.25)

// other · flute · "Alto Flute"
const flute_4 = note(`<
  ~@21 A B C D A B C@2 ~@9 E@3 F@3 G@2 H@3 G@2 I ~ J ~ K@7 L@2 M@7 N@3 O@7 P Q R S T U@6 V W X Y Z AA@8 AB
>`.pickRestart({
  A: "c5@3 c5!4 ~", B: "f4@3 f4!4 ~", C: "ab4@3 ab4!4 ~", D: "eb5@2 eb5@2 d5!3 ~",
  E: "[~@27 a4@10 e5@10 g4@10 d5@10 g4@10 g4@10 a4@9]/3", F: "[~@11 d4@10 a3@5 d4@15 a3@5 d4@5 e4@20 ~@20 f4@5]/3",
  G: "[~@2 c5@7 ~ g4@15 d5@5 g4@5 e5@10 b4@10 a4@9]/2",
  H: "[~ e5@5 a4@5 f4@7 c5@7 ~ g4@15 d5@2 ~@3 g4@5 a4@7 e5@2 ~ e5@5 a4@12 ~@13 f4@5]/3", I: "~ e5@10 ~@21",
  J: "~@7 c5@5 ~@5 b4@5 b4@2 c5@2 ~@6",
  K: "[~@29 g4@36 ~ g4@6 g4@2 ~@5 g4@23 g4@36 g4@7 g4@2 ~@5 g4@22 g4@36 ~ g4@6 g4@2 ~@5]/7", L: "[g4@23 g4@36 g4@5]/2",
  M: "[~@2 g4@2 ~@5 g4@22 eb4@7 eb4@2 ~@5 eb4@22 f4@7 f4@2 ~@5 f4@23 eb4@6 eb4@2 ~@5 eb4@23 f4@36 g4@7 g4@2 ~@5 g4@22 c4@7 c4@2 ~@3]/7",
  N: "[~@2 c4@23 g4@6 g4@2 ~@5 g4@23 c4@7 c4@2 ~@4 d4@14 d4@8]/3",
  O: "[~ e4@7 e4@2 ~@5 e4@22 g4@7 g4@2 ~@5 g4@22 c5@7 c5@2 ~@5 c5@23 d5@7 d5@2 ~@4 d5@9 d5@14 g4@8 ~@4 g4@4 ~@17 g4@8 ~@4 g4@4 ~@17 g4@8 ~@4]/7",
  P: "~ g4@4 ~@16 g4@8 ~@3", Q: "~ g4@2 ~@2 d4@2 ~ f4@2 ~ g4@4 ~", R: "~@3 g4@4 ~@16 g4@8 ~",
  S: "~@4 g4@4 ~@4 a4@4 ~@2 f4@4 ~@3 g4@7", T: "~@5 g4@4 ~@17 g4@6",
  U: "[~@6 g4@4 ~@4 d4@4 ~@3 f4@4 ~@2 g4@8 ~@4 g4@4 ~@17 g4@8 ~@4 g4@4 ~@9 g4@4 gb4@4 f4@8 ~@4 f4@4 ~@17 eb4@8 ~@4 f4@4 ~@5 g4@4 ~@2 eb4@4 ~@2 f4@8 ~@5 f4@4 ~@16]/6",
  V: "eb4@8 ~@5 eb4@4 ~@4 g4@4 ~@2 eb4@4 ~", W: "~ f4@8 ~@5 f4@4 ~@14", X: "~@2 eb4@8 ~@5 f4@4 ~@4 g4@4 ~@2 eb4@3",
  Y: "~ f4@2 ~ f4 ~@3", Z: "~ eb4@16 f4@12 ~@3",
  AA: "[~@6 g4@12 gb4@21 e4@12 d4@21 c4@12 b3@21 e4@12 ~ gb4@4 ~@4 gb4@4 ~@2 gb4@4 ~@2 f4@118]/8",
  AB: "~ f4@2 f4@2 g4@2 ~@9",
})).s("gm_flute").gain(0.3)

// other · flute · "Alto Flute" · soft notes
const flute_soft = note("<A B C@2 D E F@3 G H E I G J E I K L M@2 ~@85>".pickRestart({
  A: "~ g4 c5@6", B: "~ c4 g4 a4@5", C: "eb4/2", D: "g4", E: "ab4", F: "[ab4@3 ab4@4 eb4@4 bb4@2 bb4@2 ab4@9]/3",
  G: "c5", H: "f5", I: "eb4 d4", J: "f4", K: "ab3", L: "a4", M: "[ab4@7 ~]/2",
})).s("gm_flute").gain(0.2)

// other · flute · "Bass Flute"
const flute_5 = note(`<
  A B C@2 A B D@3 E F G H E F I J K L K M N O P Q N R S P ~@26 T@7 U@2 V@7 W@3 X@7 Y Z AA AB AC AD@6 AE AF AG AH AI AJ@5
  ~@3 AK
>`.pickRestart({
  A: "c4", B: "f4", C: "ab3/2", D: "[ab4@3 ab4@4 eb4@4 bb3@2 bb3@2 eb4@9]/3", E: "c4 g4@7", F: "f4 c4@7",
  G: "ab4 eb4@7", H: "g3 bb3", I: "ab3 eb4@7", J: "~ bb3 eb4 bb3 ~ bb3 c4 d4", K: "~ eb3 ab3 eb3 bb3 eb3@3",
  L: "~ eb3 c4 eb3 c4 eb3@3", M: "ab3@3 ~", N: "c4@3 c4!4 ~", O: "f4@3 f4!4 ~", P: "ab4@3 ab4!4 ~",
  Q: "eb4@2 eb4@2 d4!3 ~", R: "f3@3 f3!4 ~", S: "ab3@3 ab3!4 ~",
  T: "[~@29 g3@36 ~ g3@6 g3@2 ~@5 g3@23 g3@36 g3@7 g3@2 ~@5 g3@22 g3@36 ~ g3@6 g3@2 ~@5]/7", U: "[g3@23 g3@36 g3@5]/2",
  V: "[~@2 g3@2 ~@5 g3@22 eb3@7 eb3@2 ~@5 eb3@22 f3@7 f3@2 ~@5 f3@23 eb3@6 eb3@2 ~@5 eb3@23 f3@36 g3@7 g3@2 ~@5 g3@22 c4@7 c4@2 ~@3]/7",
  W: "[~@2 c4@23 g4@6 g4@2 ~@5 g4@23 c4@7 c4@2 ~@4 d4@14 d4@8]/3",
  X: "[~ e3@7 e3@2 ~@5 e3@22 g3@7 g3@2 ~@5 g3@22 c4@7 c4@2 ~@5 c4@23 d3@7 d3@2 ~@4 d3@9 d3@14 g3@8 ~@4 g3@4 ~@17 g3@8 ~@4 g3@4 ~@17 g3@8 ~@4]/7",
  Y: "~ g3@4 ~@16 g3@8 ~@3", Z: "~ g3@2 ~@2 d3@2 ~ f3@2 ~ g3@4 ~", AA: "~@3 g3@4 ~@16 g3@8 ~",
  AB: "~@4 g3@4 ~@4 a3@4 ~@2 f3@4 ~@3 g3@7", AC: "~@5 g3@4 ~@17 g3@6",
  AD: "[~@6 g3@4 ~@4 d3@4 ~@3 f3@4 ~@2 g3@8 ~@4 g3@4 ~@17 g3@8 ~@4 g3@4 ~@9 g3@4 gb3@4 f3@8 ~@4 f3@4 ~@17 eb3@8 ~@4 f3@4 ~@5 g3@4 ~@2 eb3@4 ~@2 f3@8 ~@5 f3@4 ~@16]/6",
  AE: "eb3@8 ~@5 eb3@4 ~@4 g3@4 ~@2 eb3@4 ~", AF: "~ f3@8 ~@5 f3@4 ~@14", AG: "~@2 eb3@8 ~@5 f3@4 ~@4 g3@4 ~@2 eb3@3",
  AH: "~ f3@2 ~ f3 ~@3", AI: "~ eb3@16 f3@12 ~@3",
  AJ: "[~@6 g3@12 gb3@21 e3@12 d3@21 d3@12 b3@21 e3@12 ~ gb3@4 ~@4 gb3@4 ~@2 gb3@4 ~@24]/5", AK: "~ f3@2 f3@2 g3@2 ~@9",
})).s("gm_flute").gain(0.25)

// … 1 more lines