Strudelify

gold on the ceiling

Franz Wolfe

KeyB♭ majorTempo125 bpm
0:00/0:00
// gold on the ceiling — Franz Wolfe
// 125 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/3114271; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 49 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(125/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · flute
const flute = note(`<
  A B C D@2 E F@2 G H@2 I J@2 K L@2 M N@2 O P@2 Q R S@2 T U V@2 W X Y Z AA AB Y Z AC AD AE AF AE AG AE AF AE AG
>`.pickRestart({
  A: "~@11 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2", B: "bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~",
  C: "~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2",
  D: "[~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~]/2",
  E: "g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2",
  F: "[~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2 ~ a4@2 ~]/2",
  G: "c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2",
  H: "[~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~]/2",
  I: "c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2",
  J: "[~ a4@2 ~ c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~]/2",
  K: "bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2",
  L: "[~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ f5@2 ~ a5@2 ~@4 f5@3 ~@2 g5@2 bb5@2 ~@4, ~@39 f5@2 ~@7]/2",
  M: "~@6 g5@2 ~ bb5@2 c6@2 ~ d6@2 g5@2 ~@6",
  N: "[~@3 g5@2 bb5@2 ~ c6@2 d6@2 ~ eb6@2 ~ d6@2 bb5@2 ~ c6@7 c6@2 ~ bb5@5 d6@2 ~ g5@3 ~@6]/2",
  O: "~@16 g5@2 ~ bb5@2 ~ c6@2",
  P: "[d6@2 ~ g5@2 ~@8 g5@2 bb5@2 ~ c6@2 ~ d6@2 eb6@2 ~ d6@2 bb5@2 ~ c6@7 ~ c6@2 bb5@5 d6@2]/2", Q: "~ g5@3 ~@20",
  R: "~@2 d6 d6@2 c6 d6@3 bb5@3", S: "[g5@6 ~@6 f5@6 g5@4 bb5@6 g5@5 ~@15]/2", T: "~@2 f5 g5@3 g5@3 ~@2 f5",
  U: "g5@3 f5@2 g5@3 f5 g5@3", V: "[g5@2 ~@3 g5 f5@3 g5@2 bb5@3 g5@2 ~@8]/2", W: "~@2 f5 g5@3 g5@3 ~@3",
  X: "d6 c6@2 bb5@2 g5 bb5@2", Y: "d6 c6 bb5 g5@2 bb5@3 g5 bb5@2 c6", Z: "d6 c6 bb5 g5@2 g5@3 g5 f5 g5 bb5",
  AA: "d6 c6 bb5 g5@2 bb5@3 g5 f5@2 g5", AB: "f5@2 d5 c5@3 bb4@2 c5 bb4@2 g4", AC: "d6 c6 bb5 g5@2 bb5@4 d6@2 c6",
  AD: "g5@2 f5 g5@2 g5@4 g5@3", AE: "e5@9 e5@3 g5@4 e5@4 ~ d5@3", AF: "c5 ~ b4 ~", AG: "c5@4 d5@4 ~ c5@3 b4@6 a4@6",
})).s("gm_flute").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C D@2 E F@2 G H@2 I J@2 K L@2 M N@2 O P@2 Q R S T U V W@2 X Y Z AA AB AC Z AA AD AE AF AG AF AH AF AG AF AH
>`.pickRestart({
  A: "~@11 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2", B: "bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~",
  C: "~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2",
  D: "[~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~]/2",
  E: "g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2",
  F: "[~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2 ~ a4@2 ~]/2",
  G: "c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2",
  H: "[~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~]/2",
  I: "c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2",
  J: "[~ a4@2 ~ c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~]/2",
  K: "bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2",
  L: "[~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ f4@2 ~ a4@2 ~@4 f4@3 ~@2 g4@2 bb4@2 ~@4, ~@39 f4@2 ~@7]/2",
  M: "~@6 g4@3 bb4@2 c5@3 d5@2 g4@3 ~@5",
  N: "[~@3 g4@2 bb4@3 c5@2 d5@3 eb5@3 d5@2 bb4@3 c5@7 c5@3 bb4@5 d5@3 g4@3 ~@6]/2", O: "~@16 g4@3 bb4@3 c5@2",
  P: "[d5@3 g4@3 ~@7 g4@2 bb4@3 c5@3 d5@2 eb5@3 d5@2 bb4@3 c5@8 c5@2 bb4@5 d5@2]/2", Q: "~ g4@3 ~@20",
  R: "~@2 d4 d4@2 c4 d4@3 bb3@3", S: "g4@3 ~@3 f4@3 g4@2 bb4", T: "bb4@4 g4@5 ~@15", U: "~@2 f4 g4@3 g4@3 ~@2 f4",
  V: "g4@3 f4@2 g4@3 f4 g4@3", W: "[g4@2 ~@3 g4 f4@3 g4@2 bb4@3 g4@2 ~@8]/2", X: "~@2 f4 g4@3 g4@3 ~@3",
  Y: "d5 c5@2 bb4@2 g4 bb4@2", Z: "d5 c5 bb4 g4@2 bb4@3 g4 bb4@2 c5", AA: "d5 c5 bb4 g4@2 g4@3 g4 f4 g4 bb4",
  AB: "d5 c5 bb4 g4@2 bb4@3 g4 f4@2 g4", AC: "f4@2 d4 c4@3 bb3@2 c4 bb3@2 g3", AD: "d5 c5 bb4 g4@2 bb4@4 d5@2 c5",
  AE: "g4@2 f4 g4@2 g4@4 g4@3", AF: "e4@9 e4@3 g4@4 e4@4 ~ d4@3", AG: "c4 ~ b3 ~", AH: "c4@4 d4@4 ~ c4@3 b3@6 a3@6",
})).s("gm_clarinet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C D@2 E F@2 G H@2 I J@2 K L M N O@2 P Q@2 R S T@2 U V W@2 X Y Z AA AB AC Z AA AB AD AE AF AE AG AE AF AE AG
>`.pickRestart({
  A: "~@11 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~@2", B: "bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~",
  C: "~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2",
  D: "[~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~]/2",
  E: "g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ bb4@2",
  F: "[~ g4@2 ~@2 bb4@2 ~ g4@2 ~ bb4@2 ~ g4@2 ~ eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~@2 eb5@2 ~ c5@2 ~ eb5@2 ~ c5@2 ~ c5@2 ~ a4@2 ~]/2",
  G: "c5@2 ~ a4@2 ~@2 c5@2 ~ a4@2 ~ c5@2 ~ a4@2 ~ g4@2 ~ bb4@2",
  H: "[~@4 g4@3 ~@2 g4@2 bb4@2 ~@7 g4@2 ~ bb4@2 ~@4 g4@3 ~@2 g4@2 bb4@2 ~@7 g4@2 ~, ~@8 f4@2 ~@23 f4@2 ~@13]/2",
  I: "bb4@2 ~@4 g4@3 ~@2 g4@2 bb4@2 ~@7 f4@2, ~@5 f4 ~@6",
  J: "[~ a4@2 ~@4 f4@3 ~@2 g4@2 bb4@2 ~@7 g4@2 ~ bb4@2 ~@4 g4@3 ~@2 g4@2 bb4@2 ~@7, ~@11 f4@2 ~@23 f4@2 ~@10]/2",
  K: "g4@2 ~ bb4@2 ~@4 g4@3 ~@2 g4@2 bb4@2 ~@6, ~@13 f4@2 ~@9",
  L: "~ g4@2 ~ bb4@2 ~@4 g4@3 ~@2 g4@2 bb4@2 ~@5, ~@7 f4 ~@4",
  M: "~@2 f4@2 ~ a4@2 ~@4 f4@3 ~@2 g4@2 bb4@2 ~@4, ~@15 f4@2 ~@7", N: "~@6 g4@3 bb4@2 c5@3 d5@2 g4@3 ~@5",
  O: "[~@3 g4@2 bb4@3 c5@2 d5@3 eb5@3 d5@2 bb4@3 c5@7 c5@3 bb4@5 d5@3 g4@3 ~@6]/2", P: "~@16 g4@3 bb4@3 c5@2",
  Q: "[d5@3 g4@3 ~@7 g4@2 bb4@3 c5@3 d5@2 eb5@3 d5@2 bb4@3 c5@8 c5@2 bb4@5 d5@2]/2", R: "~ g4@3 ~@20",
  S: "~@2 d4 d4@2 c4 d4@3 bb3@3", T: "[g3@6 ~@6 f3@6 g3@4 bb3@6 g3@5 ~@15]/2", U: "~@2 f3 g3@3 g3@3 ~@2 f3",
  V: "g3@3 f3@2 g3 g3@2 f3 g3@3", W: "[g3@2 ~@3 g3 f3@3 g3@2 bb3@3 g3@2 ~@8]/2", X: "~@2 f3 g3@3 g3@3 ~@3",
  Y: "d4 c4@2 bb3@2 g3 bb3@2", Z: "g4@2 g4 g4@2 g4 g4@2 g4 g4@2 g4", AA: "f4@2 f4 f4@2 f4 f4@2 f4 f4@2 d4",
  AB: "c4@2 c4 c4@2 c4 c4@2 g4 bb4@2 c5", AC: "g4@2 g4 g4@2 g4 g4@2 g4 c5@2 bb4", AD: "g4@2 g4 g4@2 g4 g4@2 g4 g4@3",
  AE: "b3@9 b3@3 d4@4 b3@4 ~ a3@3", AF: "g3 ~ gb3 ~", AG: "g3@4 a3@4 ~ g3@3 gb3@6 e3@6",
})).s("gm_alto_sax").gain(0.45)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D@2 E F@2 G H@2 I J@2 K L M N O@2 P Q@2 R ~ S T U V S T U V W X Y Z W X AA AB AC AD AC AE AC AD AC AE
>`.pickRestart({
  A: "~@11 d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~@2", B: "d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~",
  C: "~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@2",
  D: "[~@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~@2 f3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~]/2",
  E: "d3@2 ~@2 d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ e3@2 ~ e3@2 ~ e3@2",
  F: "[~ e3@2 ~@2 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ f3@2 ~ f3@2 ~]/2",
  G: "f3@2 ~ f3@2 ~@2 f3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~ g2@2 ~ bb2@2",
  H: "[~@4 g2@3 ~@2 g2@2 bb2@2 ~@7 g2@2 ~ bb2@2 ~@4 g2@3 ~@2 g2@2 bb2@2 ~@7 g2@2 ~, ~@8 f2@2 ~@23 f2@2 ~@13]/2",
  I: "bb2@2 ~@4 g2@3 ~@2 g2@2 bb2@2 ~@7 f2@2, ~@5 f2 ~@6",
  J: "[~ a2@2 ~@4 f2@3 ~@2 g2@2 bb2@2 ~@7 g2@2 ~ bb2@2 ~@4 g2@3 ~@2 g2@2 bb2@2 ~@7, ~@11 f2@2 ~@23 f2@2 ~@10]/2",
  K: "g2@2 ~ bb2@2 ~@4 g2@3 ~@2 g2@2 bb2@2 ~@6, ~@13 f2@2 ~@9",
  L: "~ g2@2 ~ bb2@2 ~@4 g2@3 ~@2 g2@2 bb2@2 ~@5, ~@7 f2 ~@4",
  M: "~@2 f2@2 ~ a2@2 ~@4 f2@3 ~@2 g2@2 bb2@2 ~@4, ~@15 f2@2 ~@7", N: "~@6 g2@3 bb2@2 c3@3 d3@2 g2@3 ~@5",
  O: "[~@3 g2@2 bb2@3 c3@2 d3@3 eb3@3 d3@2 bb2@3 c3@7 c3@3 bb2@5 d3@3 g2@3 ~@6]/2", P: "~@16 g2@3 bb2@3 c3@2",
  Q: "[d3@3 g2@3 ~@7 g2@2 bb2@3 c3@3 d3@2 eb3@3 d3@2 bb2@3 c3@8 c3@2 bb2@5 d3@2]/2", R: "~ g2@3 ~@20",
  S: "g2@2 g2 g2@2 g2 g2@2 g2 g2@2 g2", T: "f2@2 f2 f2@2 f2 f2@2 f2 f2@2 d2", U: "c3@2 c3 c3@2 c3 c3@2 g2 bb2@2 c3",
  V: "g2@2 g2 g2@2 g2 g2@2 g2 c3@2 bb2", W: "d4 c4 bb3 g3@2 bb3@3 g3 bb3@2 c4", X: "d4 c4 bb3 g3@2 g3@3 g3 f3 g3 bb3",
  Y: "d4 c4 bb3 g3@2 bb3@3 g3 f3@2 g3", Z: "f3@2 d3 c3@3 bb2@2 c3 bb2@2 g2", AA: "d3 c3 bb2 g2@2 bb2@4 d3@2 c3",
  AB: "g2@2 f2 g2@2 g2@4 g2@3", AC: "e3@9 e3@3 g3@4 e3@4 ~ d3@3", AD: "c3 ~ b2 ~", AE: "c3@4 d3@4 ~ c3@3 b2@6 a2@6",
})).s("gm_baritone_sax").gain(0.45)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A B C D@2 E F@2 G H@2 I J@2 K L@2 M N@2 O P@2 Q R S@2 T U V@2 W X Y Z AA AB Y Z AA AC AD AE AD AF AD AE AD AF
>`.pickRestart({
  A: "~@11 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2", B: "bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~",
  C: "~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2",
  D: "[~@2 eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~ c4@2 ~ a3@2 ~ c4@2 ~ a3@2 ~@2 c4@2 ~ a3@2 ~ c4@2 ~ a3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~]/2",
  E: "g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2",
  F: "[~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~@2 eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~ c4@2 ~ a3@2 ~]/2",
  G: "c4@2 ~ a3@2 ~@2 c4@2 ~ a3@2 ~ c4@2 ~ a3@2 ~ bb3@2 ~ g3@2",
  H: "[~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ eb4@2 ~]/2",
  I: "c4@2 ~ eb4@2 ~ c4@2 ~@2 eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~ c4@2",
  J: "[~ a3@2 ~ c4@2 ~ a3@2 ~@2 c4@2 ~ a3@2 ~ c4@2 ~ a3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~]/2",
  K: "bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2",
  L: "[~ eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~@2 eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~ f3@2 ~ a3@2 ~@4 f3@3 ~@2 g3@2 bb3@2 ~@4, ~@39 f3@2 ~@7]/2",
  M: "~@6 g3@3 bb3@2 c4@3 d4@2 g3@3 ~@5",
  N: "[~@3 g3@2 bb3@3 c4@2 d4@3 eb4@3 d4@2 bb3@3 c4@7 c4@3 bb3@5 d4@3 g3@3 ~@6]/2", O: "~@16 g3@3 bb3@3 c4@2",
  P: "[d4@3 g3@3 ~@7 g3@2 bb3@3 c4@3 d4@2 eb4@3 d4@2 bb3@3 c4@8 c4@2 bb3@5 d4@2]/2", Q: "~ g3@3 ~@20",
  R: "~@2 d4 d4@2 c4 d4@3 bb3@3", S: "[g3@6 ~@6 f3@6 g3@4 bb3@6 g3@5 ~@15]/2", T: "~@2 f3 g3@3 g3@3 ~@2 f3",
  U: "g3@3 f3@2 g3 g3@2 f3 g3@3", V: "[g3@2 ~@3 g3 f3@3 g3@2 bb3@3 g3@2 ~@8]/2", W: "~@2 f3 g3@3 g3@3 ~@3",
  X: "d4 c4@2 bb3@2 g3 bb3@2", Y: "g3@2 g3 g3@2 g3 g3@2 g3 g3@2 g3", Z: "f3@2 f3 f3@2 f3 f3@2 f3 f3@2 d3",
  AA: "c3@2 c3 c3@2 c3 c3@2 g3 bb3@2 c4", AB: "g3@2 g3 g3@2 g3 g3@2 g3 c4@2 bb3", AC: "g3@2 g3 g3@2 g3 g3@2 g3 g3@3",
  AD: "e4@9 e4@3 g4@4 e4@4 ~ d4@3", AE: "c4 ~ b3 ~", AF: "c4@4 d4@4 ~ c4@3 b3@6 a3@6",
})).s("gm_french_horn").gain(0.3)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C D@2 E F@2 G H@2 I J@2 K L@2 M N@2 O P@2 Q ~ R S T U R S T V W X Y Z W X Y AA AB AC AB AD AB AC AB AD
>`.pickRestart({
  A: "~@11 d4@2 ~ d4@2 ~ d4@2 ~ d4@2 ~@2", B: "d4@2 ~ d4@2 ~ d4@2 ~ d4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~",
  C: "~ e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2",
  D: "[~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~@2 f4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~ d4@2 ~ d4@2 ~ d4@2 ~]/2",
  E: "d4@2 ~@2 d4@2 ~ d4@2 ~ d4@2 ~ d4@2 ~ e4@2 ~ e4@2 ~ e4@2",
  F: "[~ e4@2 ~@2 e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4@2 ~ f4@2 ~ f4@2 ~]/2",
  G: "f4@2 ~ f4@2 ~@2 f4@2 ~ f4@2 ~ f4@2 ~ f4@2 ~ bb3@2 ~ g3@2",
  H: "[~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~ eb4@2 ~]/2",
  I: "c4@2 ~ eb4@2 ~ c4@2 ~@2 eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~ c4@2",
  J: "[~ a3@2 ~ c4@2 ~ a3@2 ~@2 c4@2 ~ a3@2 ~ c4@2 ~ a3@2 ~ bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~]/2",
  K: "bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2 ~@2 bb3@2 ~ g3@2 ~ bb3@2 ~ g3@2",
  L: "[~ eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~@2 eb4@2 ~ c4@2 ~ eb4@2 ~ c4@2 ~ f4@2 ~ a4@2 ~@4 f4@3 ~@2 g4@2 bb4@2 ~@4, ~@39 f4@2 ~@7]/2",
  M: "~@6 g4@3 bb4@2 c5@3 d5@2 g4@3 ~@5",
  N: "[~@3 g3@2 bb3@3 c4@2 d4@3 eb4@3 d4@2 bb3@3 c4@7 c4@3 bb3@5 d4@3 g3@3 ~@6]/2", O: "~@16 g4@3 bb4@3 c5@2",
  P: "[d5@3 g4@3 ~@7 g3@2 bb3@3 c4@3 d4@2 eb4@3 d4@2 bb3@3 c4@8 c4@2 bb3@5 d4@2]/2", Q: "~ g3@3 ~@20",
  R: "g4@3 ~@3 g4@3 ~@3 g4@3 ~@3 g4@4 d4@2", S: "f4@3 ~@3 f4@3 ~@3 f4@4 g4@2 f4@4 d4@2",
  T: "c4@3 ~@3 c4@3 ~@3 c4@4 d4@2 bb4@6", U: "g4@3 ~@3 g4@3 ~@3 g4@2 ~@2 g4@2 bb4@6",
  V: "g4@3 ~@3 g4@3 ~@3 g4@2 ~@2 g4@2 c5@4 bb4@2", W: "g4@2 g4 g4@2 g4 g4@2 g4 g4@2 g4",
  X: "f4@2 f4 f4@2 f4 f4@2 f4 f4@2 d4", Y: "c4@2 c4 c4@2 c4 c4@2 g4 bb4@2 c5", Z: "g4@2 g4 g4@2 g4 g4@2 g4 c5@2 bb4",
  AA: "g4@2 g4 g4@2 g4 g4@2 g4 g4@3", AB: "b4@9 b4@3 d5@4 b4@4 ~ a4@3", AC: "g4 ~ gb4 ~",
  AD: "g4@4 a4@4 ~ g4@3 gb4@6 e4@6",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note(`<
  A B C D@2 E F@2 G H I J K@2 L M N O P@2 Q R@2 S ~ T U V W T U V X T U V X T U V Y Z AA Z AB Z AA Z AB
>`.pickRestart({
  A: "~@11 d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~@2", B: "d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~",
  C: "~ e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@2",
  D: "[~@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~@2 f3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~]/2",
  E: "d3@2 ~@2 d3@2 ~ d3@2 ~ d3@2 ~ d3@2 ~ e3@2 ~ e3@2 ~ e3@2",
  F: "[~ e3@2 ~@2 e3@2 ~ e3@2 ~ e3@2 ~ e3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~@2 g3@2 ~ g3@2 ~ g3@2 ~ g3@2 ~ f3@2 ~ f3@2 ~]/2",
  G: "f3@2 ~ f3@2 ~@2 f3@2 ~ f3@2 ~ f3@2 ~ f3@2 ~ g3@3 ~@2", H: "g3@2 ~@2 g3@3 ~@13 e3@3 ~",
  I: "~ e3@2 ~@2 e3@3 ~@13 g3@3", J: "~@2 g3@2 ~@2 g3@3 ~@13 f3@2",
  K: "[~@3 f3@2 ~@2 f3@3 ~@13 g3@3 ~@2 g3@2 ~@2 g3@3 ~@13]/2", L: "e3@3 ~@2 e3@2 ~@2 e3@3 ~@12",
  M: "~ g3@3 ~@2 g3@2 ~@2 g3@3 ~@11", N: "~@2 f3@2 ~ a3@2 ~@4 f3@3 ~@2 g3@2 bb3@2 ~@4, ~@15 f3@2 ~@7",
  O: "~@6 g3@3 bb3@2 c4@3 d4@2 g3@3 ~@5",
  P: "[~@3 g2@2 bb2@3 c3@2 d3@3 eb3@3 d3@2 bb2@3 c3@7 c3@3 bb2@5 d3@3 g2@3 ~@6]/2", Q: "~@16 g3@3 bb3@3 c4@2",
  R: "[d4@3 g3@3 ~@7 g2@2 bb2@3 c3@3 d3@2 eb3@3 d3@2 bb2@3 c3@8 c3@2 bb2@5 d3@2]/2", S: "~ g2@3 ~@20",
  T: "g3@3 ~@3 g3@3 ~@3 g3@3 ~@3 g3@4 d3@2", U: "f3@3 ~@3 f3@3 ~@3 f3@4 g3@2 f3@4 d3@2",
  V: "c3@3 ~@3 c3@3 ~@3 c3@4 d3@2 bb3@6", W: "g3@3 ~@3 g3@3 ~@3 g3@2 ~@2 g3@2 bb3@6",
  X: "g3@3 ~@3 g3@3 ~@3 g3@2 ~@2 g3@2 c4@4 bb3@2", Y: "g3@3 ~@3 g3@3 ~@3 g3@2 ~@2 g3@2 g3@6",
  Z: "e3@9 e3@3 g3@4 e3@4 ~ d3@3", AA: "c3 ~ b2 ~", AB: "c3@4 d3@4 ~ c3@3 b2@6 a2@6",
})).s("gm_trombone").gain(0.3)

// bass · tuba · "Euphonium"
const bass = note(`<
  A B C D@2 E F@2 G H I J K@2 L M N O P@2 Q R@2 S ~ T U V W T U V X T U V X T U V Y Z AA Z AB Z AA Z AB
>`.pickRestart({
  A: "~@11 bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~@2", B: "bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~",
  C: "~ bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~ eb3@2 ~ c3@2 ~ eb3@2 ~ c3@2",
  D: "[~@2 eb3@2 ~ c3@2 ~ eb3@2 ~ c3@2 ~ c3@2 ~ a2@2 ~ c3@2 ~ a2@2 ~@2 c3@2 ~ a2@2 ~ c3@2 ~ a2@2 ~ bb2@2 ~ g2@2 ~ bb2@2 ~]/2",
  E: "g2@2 ~@2 bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~ bb2@2",
  F: "[~ g2@2 ~@2 bb2@2 ~ g2@2 ~ bb2@2 ~ g2@2 ~ eb3@2 ~ c3@2 ~ eb3@2 ~ c3@2 ~@2 eb3@2 ~ c3@2 ~ eb3@2 ~ c3@2 ~ c3@2 ~ a2@2 ~]/2",
  G: "c3@2 ~ a2@2 ~@2 c3@2 ~ a2@2 ~ c3@2 ~ a2@2 ~ g3@3 ~@2", H: "g3@2 ~@2 g3@3 ~@13 e3@3 ~",
  I: "~ e3@2 ~@2 e3@3 ~@13 g3@3", J: "~@2 g3@2 ~@2 g3@3 ~@13 f3@2",
  K: "[~@3 f3@2 ~@2 f3@3 ~@13 g3@3 ~@2 g3@2 ~@2 g3@3 ~@13]/2", L: "e3@3 ~@2 e3@2 ~@2 e3@3 ~@12",
  M: "~ g3@3 ~@2 g3@2 ~@2 g3@3 ~@11", N: "~@2 f3@2 ~ a3@2 ~@4 f3@3 ~@2 g3@2 bb3@2 ~@4, ~@15 f3@2 ~@7",
  O: "~@6 g2@3 bb2@2 c3@3 d3@2 g2@3 ~@5",
  P: "[~@3 g2@2 bb2@3 c3@2 d3@3 eb3@3 d3@2 bb2@3 c3@7 c3@3 bb2@5 d3@3 g2@3 ~@6]/2", Q: "~@16 g2@3 bb2@3 c3@2",
  R: "[d3@3 g2@3 ~@7 g2@2 bb2@3 c3@3 d3@2 eb3@3 d3@2 bb2@3 c3@8 c3@2 bb2@5 d3@2]/2", S: "~ g2@3 ~@20",
// … 65 more lines