Strudelify
KeyF♯ majorTempo137 bpm
0:00/0:00
// Bad Apple — ThVocaloid21- Redone by Vocaloid_Butler_time
// 137 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 5 "Baritone Saxophone" baritone sax (copy of ch 8 "C Tuba" tuba); ch 9 "Bass Trombone" trombone (copy of ch 8 "C Tuba" tuba); ch 14 "Violoncello" cello (copy of ch 8 "C Tuba" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/639146; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 180 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(137/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 · piano
const piano = note(`<
  A B A B A B A C D E D F D E D G D E D F D E D G H@6 I@2 J K L M J K L N J K L M J K L N O P Q R S T U V W P Q@2 O X Y
  Z AA AB U AC O P Q@2 O P Q AD AE AF AG AH D E D F D E D G D E D F D E D G J K L M J K L N J K L M J K L N ~@4 S T ~@5
  AI AJ AK Y Z AL AM AN@2 AL AM AN ~ AO AP AQ@2 AO AP AQ AR AS AT AU AV AS AT AU AW AX AY AU AV AS AZ BA BB ~@6 BC BD BE
  BF BG BH AO AP BI BJ BK@4
>`.pickRestart({
  A: "d#4@2 d#5@2 d#4@2 d#5@2 d#4@2 d#5@2 d#4 d#5 d#4 d#5, d#3!4", B: "d#4 d#5 d#4 d#5 d#4 d#5 d#4!2, d#3!4",
  C: "d#4 d#5 d#4 d#5 d#4!2 [d#3,d#5]@2, d#3!3 ~", // D#
  D: "[d#3,d#5]@2 d#5 ~@2 d#5 c#5 d#5 [d#3,d#5]@2 d#5 ~@2 d#5 c#5 d#5, ~ d#4 d#3 d#4 ~ d#4 d#3 d#4, ~@3 d#5@2 ~@6 d#5@2 ~@3", // D#
  E: "[d#3,d#5]@2 d#5 ~@2 d#5 c#5 d#5 [d#3,d#5]@2 f#5 d#5 [d#3,g#5]@2 f#5 g#5, ~ d#4 d#3 d#4 ~ d#4 ~ d#4, ~@3 d#5@2 ~@11", // D# G#5
  F: "[d#3,d#5]@2 d#5 ~@2 d#5 c#5 d#5 [d#3,g#5]@2 f#5 g#5 [d#3,f#5]@2 d#5 f#5, ~ d#4 d#3 d#4 ~ d#4 ~ d#4, ~@3 d#5@2 ~@11", // D# G#5 D#m
  G: "[d#3,d#5]@2 d#5 ~@2 d#5 c#5 d#5 [g#3,g#5] [f#3,f#5] ~ [g#3,g#5] [f#3,f#5] [d#3,d#5] ~ [f#3,f#5], ~ d#4 d#3 d#4 ~@4, ~@3 d#5@2 ~@11", // D# G# F# G# F# D# F#
  H: "[d#4 d#5 d#6@2 d#5 d#6 d#7@2, [d#3,f#3,a#3]]/2", // D#m
  I: "[d#4@4 d#5@4 d#6@8 d#5@8 [a#3,g#5] [f#3,f#5] ~ [g#3,g#5] [f#3,f#5] [d#3,d#5] ~ [f#3,f#5], [d#3,f#3,a#3]@3 ~]/2", // A#7 F# G# F# D# F# D#m
  J: "[d#3,d#5] [d#4,f5] [d#3,f#5] [d#4,g#5] d#3 d#4 [d#3,d#6] [d#4,c#6], ~@2 a#5 ~", // D# D#sus2 D#m G#5 D# D#7
  K: "d#3 d#4 d#3 d#4 [d#3,a#5] [d#4,g#5] [d#3,f#5] [d#4,f5], a#5 d#5 ~@2", // D#5 G#5 D#m D#sus2
  L: "[b2,d#5] [b3,f5] [b2,f#5] [b3,g#5] b2 b3 [b2,g#5] [b3,f#5], ~@2 a#5 ~", // B Bdim B5 E B5
  M: "[c#3,f5] [c#4,d#5] [c#3,f5] [c#4,f#5] [d3,f5] [d4,d#5] [d3,d5] [d4,f5]", // C# C#sus2 C# F#5 Dm D#maj7 D Dm
  N: "c#3 c#4 c#3 c#4 d3 d4 d3 d4, f5 f#5 g#5 a#5", O: "b2 b3 b2 b3 b2 b3 b2 b3", P: "c#3 c#4 c#3 c#4 c#3 c#4 c#3 c#4",
  Q: "d#3 d#4 d#3 d#4 d#3 d#4 d#3 d#4", R: "d#3 d#4 d#3 d#4 d#3 d#4 [d#3,g#5] [d#4,a#5]",
  S: "[b2,c#6] [b3,d#6] [b2,a#5] [b3,g#5] b2 b3 [b2,g#5] [b3,a#5], ~@2 a#5 ~", // Bsus2 B Bmaj7 E Bmaj7
  T: "[c#3,c#6] [c#4,d#6] [c#3,a#5] [c#4,g#5] c#3 c#4 [c#3,g#5] [c#4,a#5], ~@2 a#5 ~", // C# C#sus2 F# C#5 F#
  U: "[d#3,g#5] [d#4,f#5] [d#3,f5] [d#4,c#5] d#3 d#4 [d#3,c#5] [d#4,d#5], ~@2 d#5 ~", // G#5 D#m D#sus2 D#7 D#
  V: "[d#3,f5] [d#4,f#5] [d#3,g#5] [d#4,a#5] d#3 d#4 [d#3,g#5] [d#4,a#5], ~@2 d#5 ~", // D#sus2 D#m G#5 D#5 G#5 D#5
  W: "[b2,c#6] [b3,d#6] [b2,a#5] [b3,g#5] b2 b3 b2 b3, ~@2 a#5 ~", X: "c#3 c#4 c#3 c#4 c#3 c#4 [c#3,d#6] [c#4,f6]",
  Y: "[d#3,f#6] [d#4,f6] [d#3,d#6] [d#4,c#6] d#3 d#4 [d#3,g#5] [d#4,a#5], ~@2 a#5 ~", // D#m D#sus2 D# D#7 G#5 D#5
  Z: "[d#3,g#5] [d#4,f#5] [d#3,f5] [d#4,c#5] d#3 d#4 [d#3,g#5] [d#4,a#5], ~@2 d#5 ~", // G#5 D#m D#sus2 D#7 G#5 D#5
  AA: "b2 [b3,d#6] b2 b3 b2 b3 b2 b3, ~@2 a#5 ~", AB: "[c#3,c#6] c#4 c#3 c#4 c#3 c#4 [c#3,g#5] [c#4,a#5]",
  AC: "[d#3,f5] [d#4,f#5] [d#3,g#5] [d#4,a#5] d#3 d#4 d#3 d#4, ~@2 d#5 ~", // D#sus2 D#m G#5 D#5
  AD: "d#3 d#4 d#3 d#4 d#3 d#4 [d#3,f5,g#5] [d#4,f#5,a#5]", // Fm7 D#m
  AE: "[b2,a#5,c#6] [b3,b5,d#6] [b2,f#5,a#5] [b3,f5,g#5] b2 b3 [b2,g#5] [b3,a#5], ~@2 [f#5,a#5] ~", // F# B Bmaj7 Fdim E Bmaj7 F#
  AF: "[c#3,a#5,c#6] [c#4,b5,d#6] [c#3,f#5,a#5] [c#4,f5,g#5] c#3 c#4 [c#3,b5,d#6] [c#4,c#6,f6], ~@2 [f#5,a#5] ~", // F# G#m F# C# G#m C# F#
  AG: "[d#3,d#6,f#6] [d#4,c#6,f6] [d#3,b5,d#6] [d#4,a#5,c#6] d#3 d#4 [d#3,f5,g#5] [d#4,f#5,a#5], ~@2 [f#5,a#5] ~", // D#m C# G#m D#7 Fm7 D#m F#
  AH: "[d#3,f5,g#5] [d#4,d#5,f#5] [d#3,c#5,f5] [d#4,a#4,c#5] d#3 d#4 d#3 d#4, ~ d#5", AI: "~@6 g#5 a#5",
  AJ: "c#6 d#6 a#5 g#5 ~ b3 [b2,g#5] [b3,a#5], ~@2 a#5 ~", // E Bmaj7
  AK: "[c#3,c#6] [c#4,d#6] [c#3,a#5] [c#4,g#5] c#3 c#4 [c#3,d#6] [c#4,f6], ~@2 a#5 ~", AL: "[b2,d#3,f#3]",
  AM: "[c#3,f3,g#3]", AN: "[d#3,f#3,a#3]", AO: "[c3,e3,g3]", AP: "[d3,f#3,a3]", AQ: "[e3,g3,b3]",
  AR: "[e3,g3,b3]@4 [e3,g3,b3]@2 a5 b5, ~@3 [e3,g3,b3]", // Em
  AS: "[c3,d6] [c4,e6] [c3,b5] [c4,a5] c3 c4 [c3,a5] [c4,b5], ~@2 b5 ~", // Csus2 C Cmaj7 F Cmaj7
  AT: "[d3,d6] [d4,e6] [d3,b5] [d4,a5] d3 d4 [d3,a5] [d4,b5], ~@2 b5 ~", // D Dsus2 G D5 G
  AU: "[e3,a5] [e4,g5] [e3,f#5] [e4,d5] e3 e4 [e3,d5] [e4,e5], ~@2 e5 ~", // A5 Em Esus2 E7 E
  AV: "[e3,f#5] [e4,g5] [e3,a5] [e4,b5] e3 e4 [e3,a5] [e4,b5], ~@2 e5 ~", // Esus2 Em A5 E5 A5 E5
  AW: "[e3,f#5] [e4,g5] [e3,a5] [e4,b5] e3 e4 [a3,a5] [b3,b5], ~@2 e5 ~", // Esus2 Em A5 E5 A B
  AX: "[d4,d6] [e4,e6] [b3,b5] [a3,a5] [b3,b5]@2 [a3,a5] [b3,b5]", // D E B A B A B
  AY: "[d4,d6] [e4,e6] [b3,b5] [a3,a5] [b3,b5]@2 [d3,a5] [d4,b5]", // D E B A B D5 G
  AZ: "[d3,d6] [d4,e6] [d3,b5] [d4,a5] d3 d4 [d3,e6] [d4,f#6], ~@2 b5 ~", // D Dsus2 G D5 Dsus2 D
  BA: "[e3,g6] [e4,f#6] [e3,e6] [e4,d6] e3 e4 [e3,a5] [e4,b5], ~@2 b5 ~", // Em Esus2 E E7 A5 E5
  BB: "[e3,a5] [e4,g5] [e3,f#5] [e4,d5] e3 e4 [e3,a5] [e4,b5], ~@2 e5 ~", BC: "~@6 d5 e5",
  BD: "f#5 g5 a5 b5 e5@2 a5 b5", BE: "d6 e6 b5 a5 b5@2 a5 b5, [c3,e3,g3]", BF: "d6 e6 b5 a5 b5@2 a5 b5, [d3,f#3,a3]",
  BG: "a5 g5 f#5 d5 e5@2 d5 e5, [e3,g3,b3]", BH: "f#5 g5 a5 b5 e5@2 ~@2, [e3,g3,b3]", BI: "~@6 a5 b5, [e3,g3,b3]",
  BJ: "[a3,a5] [g3,g5] [f#3,f#5] [d3,d5] [e3,e5]@4", // A G F# D E
  BK: "[a3,a5]@2 [a3,a5] [b3,b5]@2 [a3,a5] [b3,b5]@2 [a3,a5]@2 [a3,a5] [b3,b5]@2 [a3,a5] [b3,b5]@2", // A B A B A B A B
})).s("gm_piano").gain(0.72)

// other · clarinet · "Eb Clarinet"
const clarinet = note(`<
  ~@2 A B A B A C D E D F D E D G D E D F D E D G ~@7 H ~@4 I J K L I J K M I J K L N@2 O P ~@5 Q R ~ Q S T R U V ~ Q
  N@2 O P ~ Q O W X Y Z AA D E D F D E D G D E D F D E D G AB@2 AC AD AB@2 AC AD I J K M I J K L N@2 O AE ~@2 AB@2 AC AF
  AB AG AH AF AB@2 ~@4 N@2 O AI AJ@2 AK AL AJ AM AN AO AP AQ AR AS AJ@2 AK AL AJ@2 AK AL AJ AM AN AT ~@11 AU AJ AM AV AW
  ~@4
>`.pickRestart({
  A: "d#4@2 d#5@2 d#4@2 d#5@2 d#4@2 d#5@2 d#4 d#5 d#4 d#5", B: "d#4 d#5 d#4 d#5 d#4 d#5 d#4!2",
  C: "d#4 d#5 d#4 d#5 d#4!2 d#5@2", D: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 d#5 d#5@2 d#5 c#5 d#5",
  E: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 f#5 d#5 g#5@2 f#5 g#5",
  F: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5@2 f#5 g#5 f#5@2 d#5 f#5",
  G: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5", H: "~@8 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5",
  I: "d#5 f5 f#5 g#5 a#5@2 d#6 c#6", J: "a#5@2 d#5@2 a#5 g#5 f#5 f5", K: "d#5 f5 f#5 g#5 a#5@2 g#5 f#5",
  L: "f5 f#5 g#5 a#5", M: "f5 d#5 f5 f#5 f5 d#5 d5 f5", N: "c#6 d#6 a#5 g#5 a#5@2 g#5 a#5",
  O: "g#5 f#5 f5 c#5 d#5@2 c#5 d#5", P: "f5 f#5 g#5 a#5 d#5@2 ~@2", Q: "~@6 g#5 a#5", R: "g#5 f#5 f5 c#5 d#5@2 ~@2",
  S: "c#6 d#6 a#5 g#5 a#5@2 d#6 f6", T: "f#6 f6 d#6 c#6 a#5@2 g#5 a#5", U: "~@2 a#5 ~ a#5@2 ~ a#5",
  V: "~@3 g#5 ~@2 g#5 a#5", W: "f5 f#5 g#5 a#5 d#5@2 [f5,g#5] [f#5,a#5]",
  X: "[a#5,c#6] [b5,d#6] [f#5,a#5] [f5,g#5] [f#5,a#5]@2 g#5 a#5", // A#m B F# Fm F#
  Y: "[a#5,c#6] [b5,d#6] [f#5,a#5] [f5,g#5] [f#5,a#5]@2 [b5,d#6] [c#6,f6]", // A#m B F# Fm F# B C#
  Z: "[d#6,f#6] [c#6,f6] [b5,d#6] [a#5,c#6] [f#5,a#5]@2 [f5,g#5] [f#5,a#5]", // D#m C# B A#m F# Fm F#
  AA: "[f5,g#5] [d#5,f#5] [c#5,f5] [a#4,c#5] d#5@4", AB: "d#3 d#4 d#3 d#4 d#3 d#4 d#3 d#4",
  AC: "b2 b3 b2 b3 b2 b3 b2 b3", AD: "c#3 c#4 c#3 c#4 d3 d4 d3 d4", AE: "f5 f#5 g#5 a#5 d#5@2 g#5 a#5",
  AF: "c#3 c#4 c#3 c#4 c#3 c#4 c#3 c#4", AG: "d#3 d#4 d#3 d#4 d#3 d#4 g#5 a#5", AH: "c#6 d#6 a#5 g#5 a#5 b3 b2 b3",
  AI: "f5 f#5 g#5 a#5 d#5@2 a5 b5", AJ: "d6 e6 b5 a5 b5@2 a5 b5", AK: "a5 g5 f#5 d5 e5@2 d5 e5",
  AL: "f#5 g5 a5 b5 e5@2 a5 b5", AM: "d6 e6 b5 a5 b5@2 e6 f#6", AN: "g6 f#6 e6 d6 b5@2 a5 b5",
  AO: "a5 g5 f#5 d5 e5 ~@3", AP: "c3 c4 c3 c4 c3 c4 c3 c4", AQ: "d3 d4 d3 d4 d3 d4 d3 d4",
  AR: "e3 e4 e3 e4 e3 e4 e3 e4", AS: "e3 e4 e3 e4 e3 ~ a5 b5", AT: "a5 g5 f#5 d5 e5@2 a5 b5", AU: "~@6 a5 b5",
  AV: "g6 f#6 e6 d6 b5@2 ~@2", AW: "a5 g5 f#5 d5 e5@4",
})).s("gm_clarinet").gain(0.26)

// other · soprano sax · "Soprano Saxophone"
const soprano_sax = note(`<
  ~@4 A B A C D E D F D E D G D E D F D E D G ~@7 H ~@8 I J K L I J K M N@2 O P ~@7 Q R S T U V W ~@2 Q N O P ~@5 X Y Z
  D E D F D E D G D E D F D E D G AA@2 AB AC AA@2 AB AC I J K L I J K M AB AD AA@2 ~@2 O AE N@2 O AE AF AD AA@2 ~@8 AG@2
  AH AI AG AJ AK AL AG@2 AH AM AN AO AP AQ AG@2 AH AI AG AJ AK AR ~@11 AS AG AJ AT AU ~@4
>`.pickRestart({
  A: "d#4@2 d#5@2 d#4@2 d#5@2 d#4@2 d#5@2 d#4 d#5 d#4 d#5", B: "d#4 d#5 d#4 d#5 d#4 d#5 d#4!2",
  C: "d#4 d#5 d#4 d#5 d#4!2 d#5@2", D: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 d#5 d#5@2 d#5 c#5 d#5",
  E: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 f#5 d#5 g#5@2 f#5 g#5",
  F: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5@2 f#5 g#5 f#5@2 d#5 f#5",
  G: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5", H: "~@8 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5",
  I: "d#5 f5 f#5 g#5 a#5@2 d#6 c#6", J: "a#5@2 d#5@2 a#5 g#5 f#5 f5", K: "d#5 f5 f#5 g#5 a#5@2 g#5 f#5",
  L: "f5 d#5 f5 f#5 f5 d#5 d5 f5", M: "f5 f#5 g#5 a#5", N: "c#6 d#6 a#5 g#5 a#5@2 g#5 a#5",
  O: "g#5 f#5 f5 c#5 d#5@2 c#5 d#5", P: "f5 f#5 g#5 a#5 d#5@2 ~@2", Q: "~@6 g#5 a#5", R: "c#6 d#6 a#5 g#5 a#5@2 ~@2",
  S: "~@6 d#6 f6", T: "f#6 f6 d#6 c#6 a#5@2 g#5 a#5", U: "g#5 f#5 f5 c#5 d#5@2 ~@2", V: "~@3 g#5 a#5@2 ~@2",
  W: "~ d#6 a#5 ~@3 g#5 a#5", X: "[a#5,c#6] [b5,d#6] [f#5,a#5] [f5,g#5] [f#5,a#5]@2 [b5,d#6] [c#6,f6]",
  Y: "[d#6,f#6] [c#6,f6] [b5,d#6] [a#5,c#6] [f#5,a#5]@2 [f5,g#5] [f#5,a#5]", // D#m C# B A#m F# Fm F#
  Z: "[f5,g#5] [d#5,f#5] [c#5,f5] [a#4,c#5] d#5@4", AA: "d#3 d#4 d#3 d#4 d#3 d#4 d#3 d#4",
  AB: "b2 b3 b2 b3 b2 b3 b2 b3", AC: "c#3 c#4 c#3 c#4 d3 d4 d3 d4", AD: "c#3 c#4 c#3 c#4 c#3 c#4 c#3 c#4",
  AE: "f5 f#5 g#5 a#5 d#5@2 g#5 a#5", AF: "c#6 d#6 a#5 g#5 a#5 b3 b2 b3", AG: "d6 e6 b5 a5 b5@2 a5 b5",
  AH: "a5 g5 f#5 d5 e5@2 d5 e5", AI: "f#5 g5 a5 b5 e5@2 a5 b5", AJ: "d6 e6 b5 a5 b5@2 e6 f#6",
  AK: "g6 f#6 e6 d6 b5@2 a5 b5", AL: "a5 g5 f#5 d5 e5 ~@3", AM: "f#5 g5 a5 b5 e5@2 e3 e4",
  AN: "c3 c4 c3 c4 c3 c4 c3 c4", AO: "d3 d4 d3 d4 d3 d4 d3 d4", AP: "e3 e4 e3 e4 e3 e4 e3 e4",
  AQ: "e3 e4 e3 e4 e3 ~ a5 b5", AR: "a5 g5 f#5 d5 e5@2 a5 b5", AS: "~@6 a5 b5", AT: "g6 f#6 e6 d6 b5@2 ~@2",
  AU: "a5 g5 f#5 d5 e5@4",
})).s("gm_soprano_sax").gain(0.5)

// other · trumpet · "C Trumpet"
const trumpet = note(`<
  ~@6 A B C D C E C D C F C D C E C D C F ~@7 G H@2 I J H@2 I J H@2 I J H@2 I J ~@13 K L M ~@5 N O P ~@8 C D C E C D C F
  C D C E C D C F H@2 I J H@2 I J Q R S T Q R S U I V H@2 ~@2 O W X@2 O W Y V H@2 ~@9 Z AA AB AC AA AB AD Z@2 AE AF AG
  AH AI AJ Z@2 AE AK Z AA AB AL ~@11 AM Z AA AN AO ~@4
>`.pickRestart({
  A: "d#4@2 d#5@2 d#4@2 d#5@2 d#4@2 d#5@2 d#4 d#5 d#4 d#5", B: "d#4 d#5 d#4 d#5 d#4!2 d#5@2",
  C: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 d#5 d#5@2 d#5 c#5 d#5",
  D: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 f#5 d#5 g#5@2 f#5 g#5",
  E: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5@2 f#5 g#5 f#5@2 d#5 f#5",
  F: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5", G: "~@8 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5",
  H: "d#3 d#4 d#3 d#4 d#3 d#4 d#3 d#4", I: "b2 b3 b2 b3 b2 b3 b2 b3", J: "c#3 c#4 c#3 c#4 d3 d4 d3 d4", K: "~@6 d#6 f6",
  L: "f#6 f6 d#6 c#6 a#5@2 g#5 a#5", M: "g#5 f#5 f5 c#5 d#5@2 ~@2", N: "~@6 g#5 a#5", O: "g#5 f#5 f5 c#5 d#5@2 c#5 d#5",
  P: "f5 f#5 g#5 a#5 d#5@2 ~@2", Q: "d#5 f5 f#5 g#5 a#5@2 d#6 c#6", R: "a#5@2 d#5@2 a#5 g#5 f#5 f5",
  S: "d#5 f5 f#5 g#5 a#5@2 g#5 f#5", T: "f5 d#5 f5 f#5 f5 d#5 d5 f5", U: "f5 f#5 g#5 a#5",
  V: "c#3 c#4 c#3 c#4 c#3 c#4 c#3 c#4", W: "f5 f#5 g#5 a#5 d#5@2 g#5 a#5", X: "c#6 d#6 a#5 g#5 a#5@2 g#5 a#5",
  Y: "c#6 d#6 a#5 g#5 a#5 b3 b2 b3", Z: "d6 e6 b5 a5 b5@2 a5 b5", AA: "d6 e6 b5 a5 b5@2 e6 f#6",
  AB: "g6 f#6 e6 d6 b5@2 a5 b5", AC: "a5 g5 f#5 d5 e5 b5 a5 b5", AD: "a5 g5 f#5 d5 e5 ~@3",
  AE: "a5 g5 f#5 d5 e5@2 d5 e5", AF: "f#5 g5 a5 b5 e5@2 e3 e4", AG: "c3 c4 c3 c4 c3 c4 c3 c4",
  AH: "d3 d4 d3 d4 d3 d4 d3 d4", AI: "e3 e4 e3 e4 e3 e4 e3 e4", AJ: "e3 e4 e3 e4 e3 ~ a5 b5",
  AK: "f#5 g5 a5 b5 e5@2 a5 b5", AL: "a5 g5 f#5 d5 e5@2 a5 b5", AM: "~@6 a5 b5", AN: "g6 f#6 e6 d6 b5@2 ~@2",
  AO: "a5 g5 f#5 d5 e5@4",
})).s("gm_trumpet").gain(0.45)

// other · tuba · "C Tuba"
const tuba = note(`<
  ~@8 A@7 B A@7 B C@6 D E F@2 G H F@2 G H F@2 G H ~@4 I J A@2 I J A@2 I J A@2 I J A K I J A@2 I J A@2 I J A@2 I J A@9 B
  A@7 B A@2 I L A@2 I L M N O P M N O Q R@2 S T ~@2 A@2 I J A U V J A@2 W X D@2 W X D ~ Y Z AA@2 Y Z AA AB AC@2 AD AE AF
  AG AH AI AJ AK AH@2 AF AG AH@2 ~@8 Y Z AA@2 Y Z AA AL ~@4
>`.pickRestart({
  A: "d#3 d#4 d#3 d#4 d#3 d#4 d#3 d#4", B: "d#3@2 d#4@2 d#3@2 d#4@2 g#3 f#3 ~ g#3 f#3 d#3 ~ f#3", C: "[d#3,f#3,a#3]/2",
  D: "[d#3,f#3,a#3]", E: "~@8 g#3 f#3 ~ g#3 f#3 d#3 ~ f#3", F: "d#3/2", G: "b2", H: "c#3 d3",
  I: "b2 b3 b2 b3 b2 b3 b2 b3", J: "c#3 c#4 c#3 c#4 c#3 c#4 c#3 c#4", K: "d#3 d#4 d#3 d#4 d#3 d#4 ~@2",
  L: "c#3 c#4 c#3 c#4 d3 d4 d3 d4", M: "d#5 f5 f#5 g#5 a#5@2 d#6 c#6", N: "a#5@2 d#5@2 a#5 g#5 f#5 f5",
  O: "d#5 f5 f#5 g#5 a#5@2 g#5 f#5", P: "f5 d#5 f5 f#5 f5 d#5 d5 f5", Q: "f5 f#5 g#5 a#5",
  R: "c#6 d#6 a#5 g#5 a#5@2 g#5 a#5", S: "g#5 f#5 f5 c#5 d#5@2 c#5 d#5", T: "f5 f#5 g#5 a#5 d#5 d#4 d#3 d#4",
  U: "d#3 d#4 d#3 d#4 d#3 d#4 g#5 a#5", V: "c#6 d#6 a#5 g#5 a#5 b3 b2 b3", W: "[b2,d#3,f#3]", X: "[c#3,f3,g#3]",
  Y: "[c3,e3,g3]", Z: "[d3,f#3,a3]", AA: "[e3,g3,b3]", AB: "[e3,g3,b3]@2 [e3,g3,b3]!2", AC: "d6 e6 b5 a5 b5@2 a5 b5",
  AD: "a5 g5 f#5 d5 e5@2 d5 e5", AE: "f#5 g5 a5 b5 e5@2 e3 e4", AF: "c3 c4 c3 c4 c3 c4 c3 c4",
  AG: "d3 d4 d3 d4 d3 d4 d3 d4", AH: "e3 e4 e3 e4 e3 e4 e3 e4", AI: "e3 e4 e3 e4 e3 ~ a3 b3",
  AJ: "d4 e4 b3 a3 b3@2 a3 b3", AK: "d4 e4 b3 a3 b3@2 d3 d4", AL: "a3 g3 f#3 d3 e3@4",
})).s("gm_tuba").gain(0.71)

// other · violin
const violin = note(`<
  ~@8 A B A C A B A D A B A C A B A D ~@7 E ~@12 F G H I ~@3 J K@2 L M ~@2 N O P Q R S ~@13 T ~@2 A B A C A B A D A B A
  C A B A D U@2 V W U@2 V W F G H X F G H I K@2 L Y ~@2 U@2 V Z U AA AB Z U@2 K@2 L O K@2 L AC AD@2 AE AF AD AG AH AI AJ
  AK AL AM AD@2 AE AF AD@2 AE AF AD AG AH AN AD@2 AE AF AD@2 AO ~ AD@2 AE AP ~@3 AQ ~@4
>`.pickRestart({
  A: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 d#5 d#5@2 d#5 c#5 d#5",
  B: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 d#5@2 f#5 d#5 g#5@2 f#5 g#5",
  C: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5@2 f#5 g#5 f#5@2 d#5 f#5",
  D: "d#5@2 d#5 d#5@2 d#5 c#5 d#5 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5", E: "~@8 g#5 f#5 ~ g#5 f#5 d#5 ~ f#5",
  F: "d#5 f5 f#5 g#5 a#5@2 d#6 c#6", G: "a#5@2 d#5@2 a#5 g#5 f#5 f5", H: "d#5 f5 f#5 g#5 a#5@2 g#5 f#5",
  I: "f5 f#5 g#5 a#5", J: "~@6 g#5 a#5", K: "c#6 d#6 a#5 g#5 a#5@2 g#5 a#5", L: "g#5 f#5 f5 c#5 d#5@2 c#5 d#5",
  M: "f5 f#5 g#5 a#5 d#5@2 ~@2", N: "~@6 c#5 d#5", O: "f5 f#5 g#5 a#5 d#5@2 g#5 a#5", P: "c#6 d#6 a#5 g#5 a#5@2 ~@2",
  Q: "~@6 d#6 f6", R: "f#6 f6 d#6 c#6 a#5@2 g#5 a#5", S: "g#5 f#5 f5 c#5 d#5@2 ~@2", T: "~@4 a5 b5 ~@2",
  U: "d#3 d#4 d#3 d#4 d#3 d#4 d#3 d#4", V: "b2 b3 b2 b3 b2 b3 b2 b3", W: "c#3 c#4 c#3 c#4 d3 d4 d3 d4",
  X: "f5 d#5 f5 f#5 f5 d#5 d5 f5", Y: "f5 f#5 g#5 a#5 d#5 d#4 d#3 d#4", Z: "c#3 c#4 c#3 c#4 c#3 c#4 c#3 c#4",
  AA: "d#3 d#4 d#3 d#4 d#3 d#4 g#5 a#5", AB: "c#6 d#6 a#5 g#5 a#5 b3 b2 b3", AC: "f5 f#5 g#5 a#5 d#5@2 a5 b5",
  AD: "d6 e6 b5 a5 b5@2 a5 b5", AE: "a5 g5 f#5 d5 e5@2 d5 e5", AF: "f#5 g5 a5 b5 e5@2 a5 b5",
  AG: "d6 e6 b5 a5 b5@2 e6 f#6", AH: "g6 f#6 e6 d6 b5@2 a5 b5", AI: "a5 g5 f#5 d5 e5 ~@3",
  AJ: "c3 c4 c3 c4 c3 c4 c3 c4", AK: "d3 d4 d3 d4 d3 d4 d3 d4", AL: "e3 e4 e3 e4 e3 e4 e3 e4",
  AM: "e3 e4 e3 e4 e3 ~ a5 b5", AN: "a5 g5 f#5 d5 e5@2 a5 b5", AO: "a5 g5 f#5 d5 e5@2 ~@2", AP: "f#5 g5 a5 b5 e5@2 ~@2",
  AQ: "a5 g5 f#5 d5 e5@4",
})).s("gm_violin").gain(0.5)

stack(piano, clarinet, soprano_sax, trumpet, tuba, violin)