Strudelify
KeyD majorTempo90 bpm
0:00/0:00
// macarthur park — Donna Summerarr. Justin Peng
// 90 bpm, 4/4, key D 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, 3/4 at bar 8, 4/4 at bar 10) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 1 "Flute" named as a pipe, played on flute (its tuba patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5888126; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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@4 ~@3 B C D E F G H I J K ~ L M N@2 O ~@3 M P@2 Q ~ R S T U V@2 W X W Y Z AA AB AC@2 Z AD AE AF AG@3
>`.pickRestart({
  A: "[~@8 [f#5,f#6] ~ [f#5,f#6] ~ [f#5,f#6]@2 [f#5,f#6] [g5,g6]@3 [f#5,f#6] ~ [e5,e6]@2 [d5,d6]@2 ~@4 [f#5,f#6]@2 [f#5,f#6] [g5,g6] ~ [f#5,f#6]@3 [e5,e6]@2 [d5,d6] ~@6 [e5,e6]!3 ~@2 [e5,e6]@3 [d5,d6]@3 [c3,f5,f6]@3 [a2,d5,d6]@3 [f2,c5,c6]@2, ~@8 b2@16 a2@15 [e5,e6]@5 ~@20, ~@5 g2@2 ~]/4", // F# G F# E D F# G F# …
  B: "~@10 e5 d5 e5 g5 e5 d5", C: "e5 g5 e5 d5 ~@2 a5 g5 a5 c6 a5 g5 a5 c6 a5 g5", D: "[a2,a5,a6]", E: "[b2,b5,b6]",
  F: "e2@6 ~ b2", G: "e2@6 ~ f#2", H: "~@2 f#5@2 ~ g#5 ~@2 a5@2 ~@4 f#2@2, b2@3 g#5",
  I: "~@2 f#5@2 ~ g#5 ~@2 a5@2 ~@2 g#5@4, b2@3 ~", J: "~ e2 a2 b2 c3@2 b2 d3@2 b2 c3@2 b2 a2 g2 e2",
  K: "~ a2 d3 e3 f3@2 e3 g3@2 e3 f3@2 e3 d3 c3 a2", L: "f3 ~ d3@4 a#2 ~ g2@2 f3 ~ [d#3,d6] ~ [c3,e6]@2, ~@2 d6 ~",
  M: "[f#5,f#6] ~ [f#5,f#6] ~ [f#5,f#6]@2 [f#5,f#6] [g5,g6]@3 [f#5,f#6] ~ [e5,e6]@2 [d5,d6] [f#5,f#6], b2", // F# G F# E D F#
  N: "[~@4 [f#5,f#6]@2 [f#5,f#6] [g5,g6] ~ [f#5,f#6]@3 [e5,e6]@2 [d5,d6] ~@6 [e5,e6]!3 ~@2 [e5,e6]@3 [d5,d6]@3, a2@15 [e5,e6]@5 ~@12, ~ g2]/2", // F# G F# E D E D E
  O: "[c3,f5,f6]@3 [a2,d5,d6]@3 [c5,c6] ~@9, ~@3 f2 ~@4", // F5 D5 C
  P: "[~@4 [f#5,f#6]@2 [f#5,f#6] [g5,g6] ~ [f#5,f#6]@3 [e5,e6]@2 [d5,d6] ~@7 [e5,e6]@2 [e5,e6]@2 [e5,e6]@2 [d5,d6]@3 [c5,c6], a2@15 [e5,e6]@7 ~@10, ~ g2]/2", // F# G F# E D E D C …
  Q: "[b4,b5]@3 ~@5", R: "c6 b5 a5 g5 f5 e5 d5 c5 b4 c5 d5 e5 f5 g5 a5 b5", S: "[a5,c#6]", T: "[g#5,c#6]@15 ~",
  U: "[e5,e6]@3 [f#5,f#6]@3 [g5,g6]@10", V: "[c#6@16 d6@11 ~ [e3,e6]@4, a2@7 ~]/2", W: "[e3,e6]", X: "[f#3,d6]",
  Y: "~@2 d5 e5 f#5 ~ f#5 g#5 a5@8, a2", Z: "g2", AA: "a2", AB: "c3", AC: "[~ d5 ~@2 d3@4, f2 ~, ~@8 d6@23 ~]/2",
  AD: "[e3,g6]", AE: "[b2,f#6]", AF: "[a2,f#6]", AG: "[b2, f#6@23 ~]/3",
})).s("gm_flute").gain(0.45)

// chords · flute · soft notes
const flute_soft = note("<~@4 A@5 ~@6 B C ~ D ~@4 E F ~@4 E F G H@2 I ~@18>".pickRestart({
  A: "[~@2 e3@4 d3@4 ~ d#3@3 e3@3 e3@3]/5", B: "a4@15 ~", C: "f4@15 ~", D: "c6 ~ c6@4 d6 ~@9", E: "e3", F: "d3",
  G: "f2@7 e2", H: "a2/2", I: "a2@3 a2@3 a2@10",
})).s("gm_flute").gain(0.2)

// chords · tuba · "B♭ Clarinet"
const tuba = note(`<
  A@4 ~@2 B@3 C D E F G H I J ~ K L M@2 N ~@3 O P@2 Q R S T@2 U V W X Y X Z AA AB AC@2 AD@2 AE AF AG AH@3
>`.pickRestart({
  A: "[~@8 f#5 ~ f#5 ~ f#5@2 f#5 g5@3 f#5 ~ e5@2 d5@2 a2@2 a2@2 [a2,f#5]@2 f#5 g5 ~@2 a2@2 [a2,e5]@2 d5 ~ g2@2 g2@2 ~ e5!3 g2@2 [g2,e5]@2 ~@2 g2@2 [f2,f5]@3 [d2,d5]@3 [c2,c5]@2, ~ b1@2 a1@2 g1@2 ~, ~@15 a2 a2 ~@2 a2 ~@2 g2!2 ~@2 g2 ~@5, ~@33 f#5@3 ~@3 e5@5 ~@9 d5@3 ~@8]/4", // D A5 C F D C
  B: "[~@8 g#2@16 ~@2 e5 d5 e5 g5 e5 d5 e5 g5 e5 d5 ~@2 a5 g5 a5 c6 a5 g5 a5 c6 a5 g5, ~@2 c3 f2]/3", C: "[a1,a5]",
  D: "[b1,b5]", E: "e2@6 ~ b2", F: "e2@6 ~ f#2", G: "~@2 f#5@2 ~ g#5 ~@2 a5@2 ~@4 f#2@2, b1@3 g#5",
  H: "~@2 f#5@2 ~ g#5 ~@2 a5@2 ~@2 g#5@4, b1@3 ~", I: "~ e2 a2 b2 c3@2 b2 d3@2 b2 c3@2 b2 a2 g2 e2",
  J: "~ a2 d3 e3 f3@2 e3 g3@2 e3 f3@2 e3 d3 c3 a2",
  K: "f3 ~ d3@4 [a#2,a5] ~ g2@2 f2 ~ [d#2,a#5] ~ [c2,b5]@2, ~@2 a#5 ~", // A#maj7 D#5 Cmaj7
  L: "b2@2 b2@2 [b2,f#5]@2 f#5 ~ b2@2 b2@2 [b2,e5]@2 d5 f#5, b1, f#5 ~ f#5 ~@3 b2@2 ~@6 b2@2, ~@7 g5@3 f#5 ~@5", // B5 E5
  M: "[a2@2 a2@2 [a2,f#5]@2 f#5 g5 ~@2 a2@2 [a2,e5]@2 d5 ~ g2@2 g2@2 ~ e5!3 g2@2 [g2,e5]@2 ~@2 g2@2, a1 g1, ~@3 a2!2 ~@2 a2 ~@2 g2!2 ~@2 g2 ~, ~@9 f#5@3 ~@3 e5@5 ~@9 d5@3]/2", // D A5 C
  N: "[f2,f5]@3 [d2,d5]@3 c2@2 ~@8, ~@6 c5 ~@9", // F D
  O: "f#5 ~ f#5 ~ f#5@2 f#5 ~@3 f#5 ~ e5@2 d5 f#5, b2@3 b2 b2@4, ~@7 g5@3 ~@6",
  P: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 ~ g2@6 [g2,e5]@2 e5@2 e5@2 d5@3 c5, a2@6 a2@2 a2@7 e5@7 ~@2 g2@8]/2", // C
  Q: "e2@3 e2 e2@4", R: "d2@3 d2 d2@4", S: "f2@3 f2 f2@3 e2", T: "a2@3 a2 a2@3 e2", U: "a1@3 [a1,f#5]@3 [a1,g5]@10",
  V: "d2@3 d2 d2@3 d2, f#5", W: "d2@3 d2 ~@3 d2, f#5@3 g#5, ~@4 d2@3 ~", X: "c#2@3 c#2 c#2@3 c#2, a5",
  Y: "b1@3 b1 b1@3 b1, f#5", Z: "~@2 d5 e5 f#5 ~ f#5 g#5 d2@6 d2@2, d2@3 d2 a5@4",
  AA: "e5 ~ e5 ~ e5@2 e5 f5@3 e5 ~ d5@2 c5 e5, c2", AB: "~@4 e5@2 e5 f5 ~ e5@3 d5 c5@3, a2",
  AC: "[e5@4 ~ e5!2 f5 ~ e5@3 d5@2 c5 ~@13 e5@2 f5@2, f2@15 d5@11 ~@6, ~ a#1]/2",
  AD: "[g5@2 g5@2 g5@2 g5 g#5 ~ g5@3 f5@2 d#5 ~@6 g5!2 g#5 ~ g5@3 f5 d#5@3, d#2@15 g5@5 ~@12, ~ c2]/2", AE: "[c#2,g5]",
  AF: "[b1,c#5]", AG: "[a1,b4]", AH: "[b1,f#5]/3",
})).s("gm_tuba").gain(0.4)

// chords · tuba · "B♭ Clarinet" · soft notes
const tuba_soft = note("<~@4 A@4 ~@7 B C ~ D ~@4 E@2 ~@4 F@2 G H I J ~@18>".pickRestart({
  A: "[~@2 e2@4 d2@4 ~ f#3@3 ~@2]/4", B: "e4", C: "d4", D: "a5 ~ a5@4 ~@10", E: "[e2@3 e2 e2@4 d2@3 d2 d2@4, b3]/2",
  F: "b3/2", G: "c5 b4 a4 g4 f4 e4 d4 c4 b3 c4 d4 e4 f4 g4 a4 b4", H: "c#5 ~ c#5 ~ c#5@2 c#5 d5@3 c#5 ~ b4@2 a4 c#5",
  I: "~@4 c#5@2 c#5 d5 ~ c#5@3 b4 a4@3", J: "e5@3 ~@13",
})).s("gm_tuba").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@2 B C ~@2 D E F G H ~@2 I@2 ~@3 J K L@2 M ~@3 K N@2 ~@5 O P Q R S R T U V W@2 X@2 Y Z AA AB@3
>`.pickRestart({
  A: "[~@8 f#4 ~ f#4 ~ f#4@2 f#4 g4@3 f#4 ~ e4@2 d4@2 ~@4 f#4@2 f#4 g4]/2", B: "~ f#4@3 e4@2 d4 e4@5 ~ e4!3",
  C: "~@2 e4@3 d4@3 c5@3 a4@3 f4@2", D: "~@14 d#4 f4", E: "g4 f4 d#4 c4 d#4 f4 g4 a#4 ~@2 e5 d5 e5 g5 e5 d5",
  F: "e5 g5 e5 d5 e5@12", G: "[a4,a5]", H: "[b4,b5]", I: "~@2 f#4@2 ~ g#4 ~@2 a4@2 ~@2 g#4@4",
  J: "~@6 d5 ~ d5@4 d5 ~ e5@2", K: "f#5 ~ f#5 ~ f#5@2 f#5 g5@3 f#5 ~ e5@2 d5 f#5",
  L: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 e5@5 ~ e5!3 ~@2 e5@3 d5@3]/2", M: "f5@3 d5@3 c5 ~@9",
  N: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 e5@7 e5@2 e5@2 e5@2 d5@3 c5]/2", O: "~@3 b4@3 d5@10", P: "c#5", Q: "d5@3 e5",
  R: "e5", S: "d5", T: "~@2 d4 e4 f#4 ~ f#4 g#4 a4@8", U: "e4 ~ e4 ~ e4@2 e4 f4@3 e4 ~ d4@2 c4 e4",
  V: "~@4 e4@2 e4 f4 ~ e4@3 d4 c4@3", W: "[e4@4 ~ e4!2 f4 ~ e4@3 d4@2 c4 d4@11 ~@2 e4@2 f4@2]/2",
  X: "[g4@2 g4@2 g4@2 g4 g#4 ~ g4@3 f4@2 d#4 g4@5 ~ g4!2 g#4 ~ g4@3 f4 d#4@3]/2", Y: "g4", Z: "a#4", AA: "g#4",
  AB: "a#4/3",
})).s("gm_clarinet").gain(0.4)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note("<~@15 A B ~ C ~@4 D@2 ~@4 D@2 E F G H ~@18>".pickRestart({
  A: "a3", B: "f3", C: "c5 ~ c5@4 ~@10", D: "g3/2", E: "c5 b4 a4 g4 f4 e4 d4 c4 b3 c4 d4 e4 f4 g4 a4 b4",
  F: "c#5 ~ c#5 ~ c#5@2 c#5 d5@3 c#5 ~ b4@2 a4 c#5", G: "~@4 c#5@2 c#5 d5 ~ c#5@3 b4 a4@3", H: "b4@3 ~@13",
})).s("gm_clarinet").gain(0.2)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A@2 B C D@3 E@2 F G H@2 I@2 J K ~ L M N@2 O P@2 Q M R@2 P@2 S T U V W X Y Z AA AB AC AD AE@2 AF@2 AG AH AI AJ@3
>`.pickRestart({
  A: "[~@8 f#4 ~ f#4 ~ f#4@2 f#4 g4@3 f#4 ~ e4@2 d4@2 ~@4 f#4@2 f#4 g4]/2", B: "~ f#4@3 e4@2 d4 e4@5 ~ e4!3",
  C: "~@2 e4@3 d4@3 a4@3 f4@3 a3@2", D: "[~@8 [g3,b3]@32 ~@6 d#4 f4]/3",
  E: "[g4 f4 d#4 c4 d#4 f4 g4 a#4 g4@12 a4@12]/2", F: "e5 e5@2 e5 e5@2 e5 e5@2 e5 e5@2 e5!3 ~, a4",
  G: "f#5 f#5@2 f#5 f#5@2 f#5 f#5@2 f#5 f#5@2 f#5 f#5@2 f#5, b4", H: "~@2 d4@2 ~ e4 ~@2 f#4@2 ~@2 g4@4",
  I: "~@2 c#4@2 ~ d#4 ~@2 e4@2 ~@2 d#4@4", J: "c4", K: "a3",
  L: "[e4,a4] ~ [f4,a4]@4 [f4,a4] ~ [f4,a#4]@4 [g4,a#4] ~ [g4,b4]@2", M: "f#4 ~ f#4 ~ f#4@2 f#4 g4@3 f#4 ~ e4@2 d4 f#4",
  N: "[~@4 f#4@2 f#4 g4 ~ f#4@3 e4@2 d4 e4@5 ~ e4!3 ~@2 e4@3 d4@3]/2", O: "f4@3 d4@3 c4 ~@9",
  P: "b3 ~ b3 ~ b3@2 b3 c4@3 b3@3 a3 g3 ~", Q: "[g3,d#4] ~ [g3,d#4]@4 [a3,f4] ~ [a3,f4]@4 [a3,f4] ~ [b3,g4]@2",
  R: "[~@4 f#4@2 f#4 g4 ~ f#4@3 e4@2 d4 e4@7 e4@2 e4@2 e4@2 d4@3 c4]/2", S: "c4 b3",
  T: "c#5 ~ c#5 ~ c#5@2 c#5 d5@3 c#5 ~ b4@2 a4 c#5", U: "~@4 c#5@2 c#5 d5 ~ c#5@3 b4 a4@3", V: "b4@3 b4@3 d5@10",
  W: "[c#5,f#5]", X: "d5@3 b4", Y: "a4 b4 a4 d4, e5", Z: "d5@6 c#5 d5", AA: "e4 g#4 a4 b4, e5", AB: "c#5",
  AC: "e4 ~ e4 ~ e4@2 e4 f4@3 e4 ~ d4@2 c4 e4", AD: "~@4 e4@2 e4 f4 ~ e4@3 d4 c4@3",
  AE: "[e4@4 ~ e4!2 f4 ~ e4@3 d4@2 c4 d4@11 ~@2 e4@2 f4@2]/2",
  AF: "[g4@2 g4@2 g4@2 g4 g#4 ~ g4@3 f4@2 d#4 g4@5 ~ g4!2 g#4 ~ g4@3 f4 d#4@3]/2", AG: "[b3,g4]", AH: "d#4", AI: "c#4",
  AJ: "a#4/3",
})).s("gm_alto_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A@4 B@5 C D E@2 F@2 G H I J K@2 L M N@2 O K@2 L N@2 P Q@2 R S T U V W S X Y Z AA AB X L K L AC@3
>`.pickRestart({
  A: "[~@8 f#3@16 f#3@16 e3@16 d3@3 c3@3 d3@2]/4", B: "[~@2 b2@8 ~ c4@3 b3@3 c4@3]/5",
  C: "e3 e3@2 e3 e3@2 e3 e3@2 e3 e3@2 e3!3 ~", D: "f#3 f#3@2 f#3 f#3@2 f#3 f#3@2 f#3 f#3@2 f#3 f#3@2 f#3",
  E: "~@2 d4@2 ~ e4 ~@2 f#4@2 ~@2 g4@4", F: "~@2 d3@2 ~ e3 ~@2 f#3@2 ~@2 e3@4",
  G: "~ e3 a3 b3 c4@2 b3 d4@2 b3 c4@2 b3 a3 g3 e3", H: "~ a3 d4 e4 f4@2 e4 g4@2 e4 f4@2 e4 d4 c4 a3",
  I: "d#3@3 d#3 d#3@3 d3 ~ d3 d3@6", J: "e3 ~ f3@4 f3 ~ f3@4 g3 ~ g3@2", K: "f#3", L: "e3", M: "d3@3 c3@3 d3@2 ~@8",
  N: "b3 ~ b3 ~ b3@2 b3 c4@3 b3@3 a3 g3 ~", O: "d#3 ~ d#3@4 f3 ~ f3@4 f3 ~ g3@2", P: "e3 d3", Q: "c#4/2",
  R: "d4@3 d4@3 e4@10", S: "c#4", T: "d4@3 b4", U: "a4 b4 a4 d4", V: "d4@6 c#4 d4", W: "e4 g#4 a4 b4", X: "g3", Y: "a3",
  Z: "c4", AA: "f3", AB: "d4", AC: "a#3/3",
})).s("gm_tenor_sax").gain(0.4)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A@2 B C ~@3 D E F G ~@6 H I J K@2 L M N ~ J O@2 P N ~@3 Q R S T@2 U V W@2 ~ X@2 ~@2 Y Z AA@3
>`.pickRestart({
  A: "[~@8 f#5 ~ f#5 ~ f#5@2 f#5 g5@3 f#5 ~ e5@2 d5@2 ~@4 f#5@2 f#5 g5]/2", B: "~ f#5@3 e5@2 d5 e5@5 ~ e5!3",
  C: "~@2 e5@3 d5@3 f5@3 d5@3 c5@2", D: "~@10 e5 d5 e5 g5 e5 d5", E: "e5 g5 e5 d5 ~@2 a5 g5 a5 c6 a5 g5 a5 c6 a5 g5",
  F: "a5", G: "b5", H: "a#4@3 a#4 a#4@3 a#4 ~ a#4 a#4@6", I: "c5 ~ c5@4 d5 ~ d5@4 d5 ~ e5@2",
  J: "f#5 ~ f#5 ~ f#5@2 f#5 g5@3 f#5 ~ e5@2 d5 f#5",
  K: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 e5@5 ~ e5!3 ~@2 e5@3 d5@3]/2", L: "f5@3 d5@3 c5@2 ~@8", M: "e4", N: "d4",
  O: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 e5@7 e5@2 e5@2 e5@2 d5@3 c5]/2", P: "b4@3 ~@5", Q: "~@12 a4 b4 e5 g5",
  R: "f#5@2 f#5@2 f#5@2 f#5 g5@3 f#5@2 e5@2 d5@2", S: "f#5@2 f#5 g#5", T: "a5@2 a5@2 a5@2 g#5@2 b5@2 a5@4 f#5 g#5",
  U: "a5@2 a5@2 a5@2 g#5@2 b5@2 a5@4 a5 b5", V: "c#6@14 c#6 d6", W: "e6/2", X: "[~ d5 d6@6]/2",
  Y: "~@2 d#5!2 e5 d#5 c#5 b4", Z: "c#5@3 g#4 a4 b4 c#5 e5 d5@2 c#5@2 b4@2 a4@2", AA: "[~@2 f#5@2 b5@3 ~ b5@2 f#6@6]/3",
})).s("gm_trumpet").gain(0.45)

// other · trumpet · "B♭ Trumpet"
const trumpet_2 = note(`<
  A@2 B C ~@3 D E F G ~@2 H@2 ~@3 I J K@2 L ~@3 J M@2 ~@6 N O P N P Q R S T@2 U@2 V W X Y@3
>`.pickRestart({
  A: "[~@8 f#4 ~ f#4 ~ f#4@2 f#4 g4@3 f#4 ~ e4@2 d4@2 ~@4 f#4@2 f#4 g4]/2", B: "~ f#4@3 e4@2 d4 e4@5 ~ e4!3",
  C: "~@2 e4@3 d4@3 c5@3 a4@3 f4@2", D: "~@10 e4 d4 e4 g4 e4 d4", E: "e4 g4 e4 d4 ~@12",
  F: "e5 e5@2 e5 e5@2 e5 e5@2 e5 e5@2 e5!3 ~", G: "f#5 f#5@2 f#5 f#5@2 f#5 f#5@2 f#5 f#5@2 f#5 f#5@2 f#5",
  H: "~@2 d4@2 ~ e4 ~@2 f#4@2 ~@2 e4@4", I: "e4 ~ f4@4 f4 ~ f4@4 g4 ~ g4@2",
  J: "f#5 ~ f#5 ~ f#5@2 f#5 g5@3 f#5 ~ e5@2 d5 f#5",
  K: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 e5@5 ~ e5!3 ~@2 e5@3 d5@3]/2", L: "c5@3 a4@3 ~@10",
  M: "[~@4 f#5@2 f#5 g5 ~ f#5@3 e5@2 d5 e5@7 e5@2 e5@2 e5@2 d5@3 c5]/2", N: "a4", O: "a4@3 b4", P: "c#5",
  Q: "~@2 d5 e5 f#5 ~ f#5 g#5 a5@8", R: "e5 ~ e5 ~ e5@2 e5 f5@3 e5 ~ d5@2 c5 e5", S: "~@4 e5@2 e5 f5 ~ e5@3 d5 c5@3",
  T: "[e5@4 ~ e5!2 f5 ~ e5@3 d5@2 c5 d5@11 ~@2 e4@2 f4@2]/2",
  U: "[g4@2 g4@2 g4@2 g4 g#4 ~ g4@3 f4@2 d#4 g4@5 ~ g4!2 g#4 ~ g4@3 f4 d#4@3]/2", V: "b4", W: "a#4", X: "g#4",
  Y: "c#5/3",
})).s("gm_trumpet").gain(0.45)

// other · trumpet · "B♭ Trumpet" · soft notes
const trumpet_soft = note("<~@4 A@4 B ~@6 C D E ~@4 F G@2 H ~@3 G@2 I J K L ~@18>".pickRestart({
  A: "[~@2 b3@8 ~ c4@3 ~@2]/4", B: "~ e4@3", C: "e4", D: "d4", E: "g#4@3 g#4 g#4@3 g#4 ~ g#4 g#4@6", F: "~@3 f4 ~@4",
  G: "b3/2", H: "g4 ~ g4@4 a4 ~ a4@4 a4 ~ b4@2", I: "c5 b4 a4 g4 f4 e4 d4 c4 b3 c4 d4 e4 f4 g4 a4 b4",
  J: "c#5 ~ c#5 ~ c#5@2 c#5 d5@3 c#5 ~ b4@2 a4 c#5", K: "~@4 c#5@2 c#5 d5 ~ c#5@3 b4 a4@3", L: "g4@3 g4@3 b4@10",
})).s("gm_trumpet").gain(0.2)

// other · french horn · "Mellophone"
const french_horn = note(`<
  A@4 B@3 C@2 D E F@2 G@2 H I J K L@2 M N O@2 P L@2 M O@2 Q R S T U V W X Y Z AA AB AC@2 AD@2 AE AF AG AH@3
>`.pickRestart({
  A: "[~@8 d4@16 d4@16 c4@16 f4@3 d4@3 c4@2]/4", B: "[~@8 g3@32 ~@6 d#4 f4]/3",
  C: "[g4 f4 d#4 c4 d#4 f4 g4 a#4 g4@12 e3@12]/2",
  D: "[d4,e4] [d4,e4]@2 [c#4,e4] [c#4,e4]@2 [b3,e4] [b3,e4]@2 [c#4,e4] [c#4,e4]@2 [d4,e4]!2 [c#4,e4] ~", // Dsus2 C#m E5 C#m Dsus2 C#m
  E: "[e4,f#4] [e4,f#4]@2 [d#4,f#4] [d#4,f#4]@2 [c#4,f#4] [c#4,f#4]@2 [d#4,f#4] [d#4,f#4]@2 [e4,f#4] [d#4,f#4]@2 [c#4,f#4]", // Esus2 D#m F#5 D#m Esus2 D#m F#5
  F: "~@2 b3@2 ~ c#4 ~@2 d4@2 ~@2 e4@4", G: "~@2 a3@2 ~ b3 ~@2 c#4@2 ~@2 b3@4", H: "a3", I: "f3",
  J: "a#4@3 a#4 a#4@3 a#4 ~ a#4 a#4@6", K: "a4 ~ a4@4 a4 ~ a#4@4 a#4 ~ b4@2", L: "d4", M: "c4", N: "f4@3 d4@3 c4@2 ~@8",
  O: "b3 ~ b3 ~ b3@2 b3 c4@3 b3@3 a3 g3 ~", P: "g3 ~ g3@4 a3 ~ a3@4 a3 ~ b3@2",
  Q: "c5 b4 a4 g4 f4 e4 d4 c4 b3 c4 d4 e4 f4 g4 a4 b4", R: "c#5 ~ c#5 ~ c#5@2 c#5 d5@3 c#5 ~ b4@2 a4 c#5",
  S: "~@4 c#5@2 c#5 d5 ~ c#5@3 b4 a4@3", T: "b4@3 b4@3 d5@10", U: "c#5@12 [d4,d#4] [e4,f4,f#4] [g4,g#4,a4] [a#4,b4,c5]",
  V: "d5@3 b4, c#5 ~@15", W: "a4 b4 a4 d4, e5", X: "d5@6 c#5 d5", Y: "e4 g#4 a4 b4, e5", Z: "c#5", AA: "b4", AB: "g4",
  AC: "a4/2", AD: "a#4/2", AE: "[b3,f#4]", AF: "d#4", AG: "c#4", AH: "d#4/3",
})).s("gm_french_horn").gain(0.4)

// other · trombone
const trombone = note(`<
  A@4 B@3 C@2 D E F@2 ~@2 G H I J K L M N O@2 P K L M O@2 Q R S T U@2 V@2 R W X@3 Y Z AA AB AC S AD@3
>`.pickRestart({
  A: "[~@8 [f#3,b3]@16 [f#3,a3]@16 [e3,g3]@16 d4@3 c4@3 d3@2]/4", // B5 F#m Em
  B: "[~@8 b3 ~ b3 ~ b3@2 b3 c4@3 b3@3 a3 g3 ~ b3 ~ b3 ~ b3@2 b3 c4@3 b3@3 a3 g3 ~@7 d#3 f3]/3",
  C: "[g3 f3 d#3 c3 d#3 f3 g3 a#3 g3@12 a3@12]/2", D: "d4 d4@2 c#4 c#4@2 b3 b3@2 c#4 c#4@2 d4!2 c#4 ~",
  E: "e4 e4@2 d#4 d#4@2 c#4 c#4@2 d#4 d#4@2 e4 d#4@2 c#4", F: "~@2 g3@2 ~ a3 ~@2 b3@2 ~@2 c#4@4",
  G: "~ e3 a3 b3 c4@2 b3 d4@2 b3 c4@2 b3 a3 g3 e3", H: "~ a3 d4 e4 f4@2 e4 g4@2 e4 f4@2 e4 d4 c4 a3",
  I: "d#4@3 d#4 d#4@3 d4 ~ d4 d4@6", J: "a3 ~ f3@4 f3 ~ a#3@4 g3 ~ g3@2", K: "[f#3,b3]", L: "[f#3,a3]", M: "[e3,g3]",
  N: "d4@3 c4@3 d3@2 ~@8", O: "b3 ~ b3 ~ b3@2 b3 c4@3 b3@3 a3 g3 ~", P: "d#3 ~ d#3@4 f3 ~ f3@4 f3 ~ g3@2", Q: "a3 g3",
  R: "a3", S: "g#3", T: "g3@3 g3@3 b3@10", U: "[f#3@7 g#3]/2", V: "a3/2", W: "f#3", X: "e3", Y: "d3", Z: "g3",
  AA: "d#3", AB: "b3", AC: "a#3", AD: "a#3/3",
})).s("gm_trombone").gain(0.4)

// other · trombone
const trombone_2 = note(`<
  A@4 B@5 C D E@2 ~@2 F G H I J@2 K L M@2 N J@2 K M@2 O P@2 Q R S R J T@2 K U V W@2 K X Y Z AA@3
// … 32 more lines