Strudelify

Symphony No.6 Op.68

Ludwig van Beethoven

KeyB♭ majorTempo60 bpm
0:00/0:00
// Symphony No.6 Op.68 — Ludwig van Beethoven
// 60 bpm, 12/8, 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: 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 string ensemble 2 patch is not one); ch 3 "B♭ Clarinet" named as a reed, played on clarinet (its string ensemble 1 patch is not one); ch 4 "Bassoon" named as a reed, played on bassoon (its pizzicato strings patch is not one); ch 5 "Horn in B♭" named as a brass, played on brass section (its string ensemble 2 patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5566801; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 30 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/6)

// 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("<~@5 A B C D@2 E F B ~@2 G H@2 ~@5 I J@2 K L@3>".pickRestart({
  A: "~@8 [f5,bb5]@5 ~@3 [f5,bb5]@5 ~@3 [f5,a5]@5 ~@3", B: "[f5,bb5]@5 ~@27", C: "[d5,bb5]@5 ~@27", D: "[a5,c6]@5 ~@27",
  E: "[bb5,d6]@5 ~@11 [bb5,c6]@5 ~@11", F: "[bb5,d6]@5 ~@3 [f5,bb5]@5 ~@3 [f5,bb5]@5 ~@3 [f5,c6]@5 ~@3",
  G: "~@8 bb5@2 ~ a5@2 g5@3 f5@10 ~ g5@2 a5@3, ~@8 c6 ~@23", H: "[bb5@35 ~@5 [bb2,d5]@5 ~@3 [bb2,d5]@5 ~@11]/2",
  I: "~@14 f5@11 f5@7",
  J: "[f5@7 f5@2 [f5,b5]@11 ~ [f5,b5]@6 [f5,b5]@7 ~ [f5,b5]@2 [e5,c6]@3 g5@3 g5@2 g5@3 ~@8 a5@3 a5@2 a5@3]/2", // Fdim C
  K: "~@8 bb5@3 bb5@2 bb5@3 ~@8 a5@3 a5@2 a5@3",
  L: "[~@5 [g5,c6]@15 ~ [c5,bb5]@15 ~ a5@3 f5@3 e5@2 d5 ~@2 bb5 ~@2 d6 ~ f5@8 [c3,a5]@5 ~ g5@3 ~@26, ~@45 bb2@5 ~@3 c3@5 ~@38]/3", // C5 C7 F
})).s("gm_flute").gain(0.32)

// chords · oboe
const oboe = note("<A B C D E F G H I@2 J K L M N O P Q ~@6 R@2 S T@3>".pickRestart({
  A: "bb2@3 [d3,f3]@2 [d3,f3]@3 [eb3,g3]@3 [d3,f3]@2 [d3,f3]@3 [c3,eb3]@3 [bb2,d3]@2 [bb2,d3]@3 [a2,c3]@3 [bb2,d3]@2 [bb2,d3]@3", // Dm Eb Dm Cm Bb Am Bb
  B: "[bb2,d3]@3 [d3,f3]@2 [d3,f3]@3 [eb3,g3]@3 [d3,f3]@2 [d3,f3]@3 [c3,eb3]@3 [bb2,d3]@2 [bb2,d3]@3 [f2,c3]@3 [bb2,d3]@2 [bb2,d3]@3", // Bb Dm Eb Dm Cm Bb F5 Bb
  C: "[f2,c3]@3 [c3,eb3]@2 [c3,eb3]@3 [d3,f3]@3 [c3,eb3]@2 [c3,eb3]@3 [bb2,d3]@3 [a2,c3]@2 [a2,c3]@3 [g2,bb2]@3 [f2,c3]@2 [f2,c3]@3", // F5 Cm Dm Cm Bb Am Gm F5
  D: "[f2,c3]@3 [c3,eb3]@2 [c3,eb3]@3 [d3,f3]@3 [c3,eb3]@2 [c3,eb3]@3 [bb2,d3]@3 [a2,c3]@2 [a2,c3]@3 [g2,bb2]@3 [f2,c3]@2 [c3,eb3]@3", // F5 Cm Dm Cm Bb Am Gm F5 …
  E: "[bb2,d3] [d2,bb2] ~ [bb2,d3] [d2,bb2] [bb2,d3] ~ [d2,bb2] [bb2,d3] [d2,bb2] ~ [bb2,d3] [d2,bb2] [bb2,d3] ~ [d2,bb2] [bb2,c3] [eb2,bb2] ~ [bb2,c3] [eb2,bb2] [bb2,c3] ~ [eb2,bb2] [bb2,c3] [eb2,bb2] ~ [bb2,c3] [eb2,bb2] [bb2,c3] ~ [eb2,bb2]", // Bb Gm Bb Gm Bb Gm Bb Gm …
  F: "[bb2,d3] [f2,bb2] ~ [bb2,d3] [f2,bb2] [bb2,d3] ~ [f2,bb2] [bb2,d3] [f2,bb2] ~ [bb2,d3] [f2,bb2] [bb2,d3] ~ [f2,bb2] [bb2,d3] [f2,bb2] ~ [bb2,d3] [f2,bb2] [bb2,d3] ~ [f2,bb2] [c3,eb3] [f2,bb2] ~ [c3,eb3] [f2,bb2] [c3,eb3] ~ [f2,bb2], ~@8 [bb4,d5]@5 ~@3 [bb4,d5]@5 ~@3 [c5,eb5]@5 ~@3", // Bb Bb5 Bb Bb5 Bb Bb5 Bb Bb5 …
  G: "d3 f3 ~ d3 f3 d3 ~ f3 eb3 g3 ~ d3 f3 d3 ~ f3 c3 eb3 ~ bb2 d3 bb2 ~ d3 f2 c3 ~ bb2 d3 bb2 ~ d3, [bb4,d5]@5 ~@27", // Bb
  H: "bb2 f3 ~ d3 f3 d3 ~ f3 eb3 g3 ~ d3 f3 d3 ~ f3 c3 eb3 ~ bb2 d3 bb2 ~ d3 f2 c3 ~ bb2 d3 bb2 ~ d3, bb4",
  I: "f2 c3 ~ c3 eb3 c3 ~ eb3 d3 f3 ~ c3 eb3 c3 ~ eb3 bb2 d3 ~ a2 c3 a2 ~ c3 g2 bb2 ~ f2 c3 f2 ~ c3, f5",
  J: "[bb2,d3] [d2,bb2] ~ [bb2,d3] [d2,bb2] [bb2,d3] ~ [d2,bb2] [bb2,d3] [d2,bb2] ~ [bb2,d3] [d2,bb2] [bb2,d3] ~ [d2,bb2] [bb2,c3] [eb2,bb2] ~ [bb2,c3] [eb2,bb2] [bb2,c3] ~ [eb2,bb2] [bb2,c3] [eb2,bb2] ~ [bb2,c3] [eb2,bb2] [bb2,c3] ~ [eb2,bb2], bb5, f5 g5", // Bb Gm Bb Gm Bb Gm Bb Gm …
  K: "[bb2,d3] [f2,bb2] ~ [bb2,d3] [f2,bb2] [bb2,d3] ~ [f2,bb2] [bb2,d3] [f2,bb2] ~ [bb2,d3] [f2,bb2] [bb2,d3] ~ [f2,bb2] [bb2,d3] [f2,bb2] ~ [bb2,d3] [f2,bb2] [bb2,d3] ~ [f2,bb2] [c3,eb3] [f2,c3] ~ [c3,eb3] [f2,c3] [c3,eb3] ~ [f2,c3], [d5,bb5]@5 ~@3 [bb4,d5]@5 ~@3 [bb4,d5]@5 ~@3 [a4,c5]@5 ~@3", // Bb Bb5 Bb Bb5 Bb Bb5 Bb Bb5 …
  L: "bb2 d3 ~ bb2 d3 bb2 ~ d3 bb2 d3 ~ bb2 d3 bb2 ~ d3 bb2 eb3 ~ bb2 eb3 bb2 ~ eb3 bb2 eb3 ~ bb2 eb3 bb2 ~ eb3, [f4,bb4]@5 ~@27", // Bb5
  M: "bb2 d3 ~ bb2 d3 bb2 ~ d3 bb2 d3 ~ bb2 d3 bb2 ~ d3 bb2 c3 ~ bb2 c3 bb2 ~ c3 bb2 f3 ~ bb2 f3 bb2 ~ f3",
  N: "bb2@13 bb2@3 a2@2 ~ g2@2 f2@3 f2 ~@2 g2 ~ a2 ~@2, ~@16 bb2 ~@15",
  O: "bb2@11 c3@2 d3@3 f3@3 eb3@2 d3 ~@2 c3@5 f3@3",
  P: "[bb2,d3]@11 [eb3,g3]@2 [d3,f3]@3 [bb2,d3]@3 [eb3,g3]@2 [d3,f3]@3 [bb2,d3]@3 [eb3,g3]@2 [d3,f3]@3", // Bb Eb Dm Bb Eb Dm Bb Eb …
  Q: "[bb2,d3]@5 ~@3 [d4,f4]@5 ~@3 [d4,f4]@5 ~@11", // Bb Dm
  R: "[~@9 [b4,d5]@11 ~ [b4,d5]@6 [b4,d5]@7 ~ [b4,d5]@2 [c5,e5]@3 e5@3 e5@2 e5@3 ~@8 f5@3 f5@2 f5@3]/2", // Bm C
  S: "~@8 e5@3 e5@2 e5@3 ~@8 f5@3 f5@2 f5@3",
  T: "[~@5 [g4,e5]@16 [e5,g5]@16 [c5,f5]@5 ~@3 [g5,bb5]@5 ~@3 [f5,a5]@5 ~@3 [e5,g5]@5 ~@30]/3", // C Em F5 Gm F Em
})).s("gm_oboe").gain(0.2)

// chords · clarinet · "B♭ Clarinet"
const clarinet = note("<~@4 A B C D E F G H I J K L M N ~ O ~@3 P Q@2 R S@3>".pickRestart({
  A: "~ g4, bb4", B: "bb4 ~@2 eb4, d4@3 ~, ~ f4@3", C: "d4@5 ~@22 bb4 c5 d5 ~ c5, bb3",
  D: "c5@3 bb4@5 ~@19 bb4 c5 d5 ~ c5, bb3", E: "[a4,bb4] bb4@2 a4@5 ~@19 c5 d5 eb5 ~ d5, f4, ~ c5 ~@30",
  F: "d5@3 c5@5 ~@19 c5@2 d5 ~ eb5, f4", G: "f5@11 eb5@2 d5@3 c5@8 [c5,d5] c5@2 eb5@2 g5 ~@2, bb4, ~@25 b4 ~@6",
  H: "f4@11 g4 ~ a4 ~@2 bb4 ~@2 c5 ~ d5 ~@2 f5@3 eb5@2 c5 ~ d5", I: "[d4,bb4]@5 ~@27", J: "bb4@11 f4@2 d4@3 c4@8 f4@8",
  K: "bb4@13 bb4@3 a4@2 ~ g4@2 f4@3 f4 ~@2 g4 ~ a4 ~@2, d4@5 ~@11 bb4 ~@15",
  L: "bb4@11 c5@2 d5@3 f5@3 eb5@2 d5 ~@2 c5@5 f5@3", M: "bb4@27 [eb5,g5]@2 [d5,f5]@3",
  N: "[bb4,d5]@5 ~@3 [bb4,d5]@5 ~@3 [bb4,d5]@5 ~@11", O: "~@8 [f4,c5]!2 ~ [f4,c5]!3 ~ [f4,c5] [bb4,d5]@5 ~@11",
  P: "~@14 [f4,a4]@11 [f4,a4]@7", // F
  Q: "[[f4,a4]@7 [f4,a4]@2 [f4,a4]@11 ~ [f4,a4]@6 [f4,a4]@7 ~ [f4,a4]@2 [c4,e4]@5 ~@6 [e4,g4]@3 [e4,g4]@2 [f4,a4]@5 ~@6]/2", // F C Em F
  R: "[f4,a4]@3 [f4,a4]@2 [e4,bb4]@5 ~@6 [e4,bb4]@3 [e4,bb4]@2 [f4,a4]@5 ~@6", // F Edim F
  S: "[[f4,a4]@3 [f4,a4]@2 [e4,c5]@16 [g4,bb4]@16 [f4,a4]@5 ~@3 [bb4,d5]@5 ~@3 [a4,c5]@5 ~@3 [g4,c5]@5 ~@30]/3", // F C Gm F Bb Am C5
})).s("gm_clarinet").gain(0.14)

// chords · bassoon
const bassoon = note("<A@3 B C D E F G H I J K L M N O P ~@2 Q R S@8>".pickRestart({
  A: "bb2@5 ~@27", B: "f2@5 ~@22 f3@2 eb3@3", C: "d3@5 ~@11 eb2@5 ~@11",
  D: "f2@5 ~@3 [f3,bb3]@5 ~@3 [f2,f3,bb3]@5 ~@3 [f2,f3,c4]@5 ~@3", E: "bb3@5 ~@22 bb3 c4 d4 ~ c4, bb2",
  F: "c4@3 bb3@5 ~@19 bb3 c4 d4 ~ c4, bb2", G: "[a3,bb3] bb3@2 a3@5 ~@19 c4 d4 eb4 ~ d4, f3, f2@5 ~@27, ~ c4 ~@30",
  H: "d4@3 c4@5 ~@19 [f3,c4]@2 eb3@2 eb4, f3@27 ~@2 d4 ~@2, f2@5 ~@27", // F5
  I: "f4@11 eb4@2 d4@3 c4@8 [c4,d4] c4@2 eb4@2 g4 ~@2, bb3@25 bb3@7, d3@5 ~@11 eb3@5 ~@11", // Csus2
  J: "f3@11 g3 ~ a3 ~@2 bb3 ~@2 c4 ~ d4 ~@2 f4@3 eb4@2 c4 ~ d4, f2@5 ~@11 f2@5 ~@3 f2@5 ~@3", K: "[bb2,bb3]@5 ~@27",
  L: "bb3@11 f3@2 d3@3 c3@8 f3@8", M: "bb2@5 ~@11 f4@13 eb4@3",
  N: "d4@2 ~ c4@2 bb3@3 bb3@2 ~ a3@2 g3@3 f3@11 g3@2 a3@3, bb2@5 ~@27, eb4 ~@7 c4 ~@23",
  O: "bb2@5 ~@11 bb2@5 ~@6 [eb4,g4]@2 [d4,f4]@3, bb3@27 ~@5", P: "[bb2,bb3,d4]@5 ~@3 bb2@5 ~@3 bb2@5 ~@11",
  Q: "bb2@5 ~@22 bb2@5", R: "~@23 [bb3,c4]@9, ~@23 c3@5 ~@4",
  S: "[~@2 [bb3,c4]@7 [bb3,c4]@7 [bb3,c4]@2 [bb3,c4]@11 ~ [bb3,c4]@7 [bb3,c4]@6 [bb3,c4]@2 ~ [f2,a3,c4]@5 ~@8 f2@14 g4@11 ~ g4@6 g4@7 ~ g4@2 c3@16 f3@16 g3@16 f3@16 c3@8 c3@5 ~@3 c3@8 c3@5 ~@3 [f3,a3]@5 ~@3 [bb2,bb3,d4]@5 ~@3 [c3,f3,a3]@5 ~@3 [c3,g3,bb3]@5 ~@30, ~@18 c3@5 ~@50 g2@28 ~@16 c3@5 ~@11 c3@5 ~@11 c3@5 ~@11 g3@16 g3@16 ~@59]/8", // Bbsus2 F Bb F C7
})).s("gm_bassoon").gain(0.32)

// other · brass section · "Horn in B♭"
const brass_section = note("<A@2 B@2 A C D@3 E D E F ~ G H I@2 ~ J K@2 ~@4 L@3 ~>".pickRestart({
  A: "[bb3,bb4]", B: "[f3,f4]",
  C: "[f3,f4]@3 [f3,f4]@2 [f3,f4]@3 [f3,f4]@3 [f3,f4]@2 [f3,f4]@3 [f3,f4]@3 [f3,f4]@2 [f3,f4]@3 [f3,f4]@3 [f3,f4]@2 [f3,f4]@3", // F
  D: "[bb3,bb4]@13 [bb3,bb4]@8 [bb3,bb4]@8 [bb3,bb4]@3", E: "[f3,f4]@13 [f3,f4]@8 [f3,f4]@8 [f3,f4]@3",
  F: "[bb3,f4]@5 ~@27", // Bb5
  G: "bb3@3 bb3@2 bb3@3 bb3@3 bb3@2 bb3@3 [bb3,f4]@3 [bb3,f4]@2 [bb3,f4]@3 [bb3,f4]@3 [bb3,f4]@2 [bb3,f4]@3", // Bb5
  H: "[bb3,f4]@3 [bb3,f4]@2 [bb3,f4]@3 [bb3,f4]@3 [bb3,f4]@2 [bb3,f4]@3 [bb3,f4]@3 [bb3,f4]@2 [bb3,f4]@3 [bb3,f4]@3 [bb3,f4]@2 [bb3,f4]@3", // Bb5
  I: "[[bb3,bb4]@37 ~@3 [d4,bb4]@5 ~@3 [d4,bb4]@5 ~@11]/2", J: "~@8 [f4,c5]!2 ~ [f4,c5]!3 ~ [f4,c5] [bb4,d5]@5 ~@11",
  K: "[[bb3,bb4]@11 [bb3,bb4]@7 [bb3,bb4]@7 [bb3,bb4]@2 [bb3,bb4]@11 ~ [bb3,bb4]@7 [bb3,bb4]@7 [bb3,bb4]@2 ~@9]/2", // Bb
  L: "[~@5 c5@16 f5@16 c5@16 c5@16 [f4,c5]@5 ~@22]/3", // F5
})).s("gm_brass_section").gain(0.2)

// other · string ensemble 1
const string_ensemble_1 = note("<A B C D E F G@2 H I E F J K L M N O P Q R S T U V W X Y Z ~>".pickRestart({
  A: "bb3@3 f4@2 f4@3 g4@3 f4@2 f4@3 eb4@3 d4@2 d4@3 c4@3 bb3@2 bb3@3",
  B: "bb3@3 f4@2 f4@3 g4@3 f4@2 f4@3 eb4@3 d4@2 d4@3 c4@3 d4@2 d4@3",
  C: "eb4@3 eb4@2 eb4@3 f4@3 eb4@2 eb4@3 d4@3 c4@2 c4@3 bb3@3 c4@2 c4@3",
  D: "c4@3 eb4@2 eb4@3 f4@3 eb4@2 eb4@3 d4@3 c4@2 c4@3 bb3@3 c4@2 c4@3",
  E: "d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 c4 bb3 ~ c4 bb3 c4 ~ bb3 c4 bb3 ~ c4 bb3 c4 ~ bb3",
  F: "d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 eb4 a3 ~ eb4 a3 eb4 ~ a3",
  G: "d4 bb3 ~ f4 d4 f4 ~ d4 g4 eb4 ~ f4 d4 f4 ~ d4 eb4 c4 ~ d4 bb3 d4 ~ bb3 c4 a3 ~ d4 bb3 d4 ~ bb3",
  H: "eb4 a3 ~ eb4 c4 eb4 ~ c4 f4 d4 ~ eb4 c4 eb4 ~ c4 d4 bb3 ~ c4 a3 c4 ~ a3 bb3 g3 ~ c4 a3 c4 ~ a3",
  I: "c4 a3 ~ eb4 c4 eb4 ~ c4 f4 d4 ~ eb4 c4 eb4 ~ c4 d4 bb3 ~ c4 a3 c4 ~ a3 bb3 g3 ~ c4 a3 c4 ~ a3",
  J: "d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 c4 a3 ~ c4 a3 c4 ~ a3 c4 a3 ~ c4 a3 c4 ~ a3",
  K: "d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 eb4 bb3 ~ eb4 bb3 eb4 ~ bb3 eb4 c4 ~ eb4 c4 eb4 ~ c4",
  L: "d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 eb4 c4 ~ eb4 c4 eb4 ~ c4 eb4 c4 ~ eb4 c4 eb4 ~ c4",
  M: "d4 bb3 ~ d4 bb3 d4 ~ bb3 d4 bb3 ~ d4 bb3 d4 ~ bb3 c4 a3 ~ c4 a3 d4 ~ bb3 eb4 a3 ~ eb4 a3 eb4 ~ a3",
  N: "d4@11 g4@2 f4@3 d4@3 g4@2 f4@3 d4@3 g4@2 f4@3", O: "d4@5 ~@3 bb3@5 ~@3 bb3@5 ~@3 bb3!2 ~ bb3!3 ~ bb3",
  P: "bb3@5 ~@3 c4!2 ~ c4!3 ~ c4 d4@5 ~@3 bb3!2 ~ bb3!3 ~ bb3", Q: "c4@5 ~@19 f4!2 ~ f4!3 ~ f4",
  R: "d4 bb3 f4 d4 ~ f4 d4 g4 eb4 f4 d4 f4 ~ d4 eb4 c4 d4 bb3 d4 bb3 ~ c4 a3 d4 bb3 d4 bb3 d4 ~ bb3 f4 d4",
  S: "f4 d4 g4 eb4 ~ f4 d4 f4 d4 eb4 c4 d4 ~ bb3 d4 bb3 c4 a3 bb3 g3 ~ a4 f4 g4 e4 bb4 g4 bb4 ~ g4 c5 a4",
  T: "bb4 g4 bb4 g4 ~ a4 f4 g4 e4 g4 e4 f4 ~ d4 e4 c4 e4 c4 e4 c4 ~ bb4 g4 bb4 g4 c5 a4 bb4 ~ g4 a4 f4",
  U: "g4 e4 f4 d4 ~ e4 c4 d4 bb3 c4 a3 bb3 ~ g3 a3 a4 c5 a4 c5 a4 ~ d5 bb4 c5 a4 c5 a4 bb4 ~ g4 a4 f4",
  V: "a4 f4 g4 e4 ~ f4 d4 e4 c4 d4 b3 d5 ~ b4 d5 b4 e5 c5 d5 b4 ~ d5 b4 c5 a4 b4 g4 b4 ~ g4 a4 f4",
  W: "g4 e4 ~ f4 d4 e4 ~ c4 g4 e4 ~ g4 e4 g4 ~ e4 g4 e4 ~ g4 e4 a4 ~ f4 a4 f4 ~ a4 f4 a4 ~ f4",
  X: "a4 f4 ~ a4 f4 bb4 ~ g4 bb4 g4 ~ bb4 g4 bb4 ~ g4 bb4 g4 ~ bb4 g4 a4 ~ f4 a4 f4 ~ a4 f4 a4 ~ f4",
  Y: "a4 f4 ~ a4 f4 g4 ~ e4 g4 e4 ~ g4 e4 g4 ~ e4 g4 e4 ~ g4 e4 g4 ~ e4 g4 e4 ~ g4 e4 g4 ~ e4",
  Z: "g4 e4 ~ g4 e4 a4@3 ~@24",
})).s("gm_string_ensemble_1").gain(0.13)

// other · pizzicato strings
const pizzicato_strings = note("<~@28 A@2>".pickRestart({
  A: "[~@13 d4@5 ~@3 c4@5 ~@3 e4@5 ~@30]/2",
})).s("gm_pizzicato_strings").gain(0.32)

// other · string ensemble 1
const string_ensemble_1_2 = note("<A@2 B@2 C D E F G H I D J K L M N O P Q R S T U V W X Y Z ~>".pickRestart({
  A: "bb3@3 d4@2 d4@3 eb4@3 d4@2 d4@3 c4@3 bb3@2 bb3@3 a3@3 bb3@2 bb3@3",
  B: "a3@3 c4@2 c4@3 d4@3 c4@2 c4@3 bb3@3 a3@2 a3@3 g3@3 a3@2 a3@3",
  C: "bb3 g3 ~ bb3 g3 bb3 ~ g3 bb3 g3 ~ bb3 g3 bb3 ~ g3 bb3 g3 ~ bb3 g3 bb3 ~ g3 bb3 g3 ~ bb3 g3 bb3 ~ g3",
  D: "bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 f3 ~ bb3 f3 bb3 ~ f3 a3 f3 ~ a3 f3 a3 ~ f3",
  E: "bb3 d4 ~ f4 d4 f4 ~ d4 g4 eb4 ~ f4 d4 f4 ~ d4 eb4 c4 ~ d4 bb3 d4 ~ bb3 c4 a3 ~ d4 bb3 d4 ~ bb3",
  F: "d4 bb3 ~ f4 d4 f4 ~ d4 g4 eb4 ~ f4 d4 f4 ~ d4 eb4 c4 ~ d4 bb3 d4 ~ bb3 c4 a3 ~ d4 bb3 d4 ~ bb3",
  G: "eb4 a3 ~ eb4 c4 eb4 ~ c4 f4 d4 ~ eb4 c4 eb4 ~ c4 d4 bb3 ~ c4 a3 c4 ~ a3 bb3 g3 ~ c4 a3 c4 ~ a3",
  H: "c4 a3 ~ eb4 c4 eb4 ~ c4 f4 d4 ~ eb4 c4 eb4 ~ c4 d4 bb3 ~ c4 a3 c4 ~ a3 bb3 g3 ~ c4 a3 c4 ~ a3",
  I: "bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 g3 ~ bb3 g3 bb3 ~ g3 bb3 g3 ~ bb3 g3 bb3 ~ g3",
  J: "bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 f3 ~ bb3 f3 bb3 ~ f3 a3 f3 ~ a3 f3 a3 ~ f3 a3 f3 ~ a3 f3 a3 ~ f3",
  K: "bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 f3 ~ bb3 f3 bb3 ~ f3 bb3 g3 ~ bb3 g3 bb3 ~ g3 c4 a3 ~ c4 a3 c4 ~ a3",
  L: "[d3,bb3] f3 ~ [d3,bb3] f3 [d3,bb3] ~ f3 [d3,bb3] f3 ~ [d3,bb3] f3 [d3,bb3] ~ f3 [c3,c4] f3 ~ [c3,c4] f3 [c3,c4] ~ f3 [c3,c4] f3 ~ [c3,c4] f3 [c3,c4] ~ f3", // Gm C
  M: "[d3,bb3] f3 ~ [d3,bb3] f3 [d3,bb3] ~ f3 [d3,bb3] f3 ~ [d3,bb3] f3 [d3,bb3] ~ f3 [eb3,a3] f3 ~ [eb3,a3] f3 [d3,bb3] ~ f3 [c3,c4] f3 ~ [c3,a3] f3 [c3,a3] ~ f3", // Gm Ebdim Gm C F
  N: "bb3@11 eb4@2 d4@3 bb3@3 eb4@2 d4@3 bb3@3 eb4@2 d4@3",
  O: "bb3@5 ~@3 bb3@5 ~@3 bb3@5 ~@3 [d3,f3]!2 ~ [d3,f3]!3 ~ [d3,f3]", // Dm
  P: "[d3,f3]@5 ~@3 [f3,a3]!2 ~ [f3,a3]!3 ~ [f3,a3] [f3,bb3]@5 ~@3 d3!2 ~ d3!3 ~ d3", Q: "f3@5 ~@19 f3!2 ~ f3!3 ~ f3",
  R: "bb3 d4 f4 d4 ~ f4 d4 g4 eb4 f4 d4 f4 ~ d4 eb4 c4 d4 bb3 d4 bb3 ~ c4 a3 d4 bb3 d4 bb3 d4 ~ bb3 f4 d4",
  S: "f4 d4 g4 eb4 ~ f4 d4 f4 d4 eb4 c4 d4 ~ bb3 d4 bb3 c4 a3 bb3 g3 ~ f3 a3 e3 g3 bb4 g4 bb4 ~ g4 c5 a4",
  T: "bb4 g4 bb4 g4 ~ a4 f4 g4 e4 g4 e4 f4 ~ d4 e4 c4 e4 c4 e4 c4 ~ bb4 g4 bb4 g4 c5 a4 bb4 ~ g4 a4 f4",
  U: "g4 e4 f4 d4 ~ e4 c4 d4 bb3 c4 a3 bb3 ~ g3 f3 a4 c5 a4 c5 a4 ~ d5 bb4 c5 a4 c5 a4 bb4 ~ g4 a4 f4",
  V: "a4 f4 g4 e4 ~ f4 d4 e4 c4 d4 b3 d4 ~ b3 d4 b3 e4 c4 d4 b3 ~ d4 b3 c4 a3 b3 g3 b4 ~ g4 a4 f4",
  W: "g4 e4 ~ f4 d4 e4 ~ g3 e3 g3 ~ e3 g3 e3 ~ g3 e3 g3 ~ e3 g3 f3 ~ a3 f3 a3 ~ f3 a3 f3 ~ a3",
  X: "f3 a3 ~ f3 a3 g3 ~ bb3 g3 bb3 ~ g3 bb3 g3 ~ bb3 g3 bb3 ~ g3 bb3 f3 ~ a3 f3 a3 ~ f3 a3 f3 ~ a3",
  Y: "f3 a3 ~ f3 a3 e3 ~ g3 e3 g3 ~ e3 g3 e3 ~ g3 e3 g3 ~ e3 g3 e3 ~ g3 e3 g3 ~ e3 g3 e3 ~ g3",
  Z: "e3 g3 ~ e3 g3 a3@3 ~@24",
})).s("gm_string_ensemble_1").gain(0.12)

// other · pizzicato strings
const pizzicato_strings_2 = note("<~@28 A@2>".pickRestart({
  A: "[~@13 bb3@5 ~@3 a3@5 ~@3 bb3@5 ~@30]/2",
})).s("gm_pizzicato_strings").gain(0.32)

// other · string ensemble 1
const string_ensemble_1_3 = note("<~@17 A B C D E F G H I@3 J ~>".pickRestart({
  A: "~@24 d3!2 ~ d3!3 ~ d3", B: "d3@5 ~@3 eb3!2 ~ eb3!3 ~ eb3 d3@5 ~@11", C: "~@24 f3!2 ~ f3!3 ~ f3",
  D: "bb2 f3 d3 f3 ~ d3 f3 eb3 g3 d3 f3 d3 ~ f3 c3 eb3 bb2 d3 bb2 d3 ~ f2 c3 bb2 d3 bb2 d3 bb2 ~ d3!2 f3",
  E: "d3 f3 eb3 g3 ~ d3 f3 d3 f3 c3 eb3 bb2 ~ d3 bb2 d3 a2 c3 g2 bb2 ~ f2 a2 e2 f2 g3 bb3 g3 ~ bb3 a3 c4",
  F: "g3 bb3 g3 bb3 ~ f3 a3 e3 g3 e3 g3 d3 ~ f3 c3 e3 c3 e3 c3 e3 ~ g3 bb3 g3 bb3 a3 c4 g3 ~ bb3 f3 a3",
  G: "e3 g3 d3 f3 ~ c3 e3 bb2 d3 a2 c3 g2 ~ bb2 f2 c4 a3 c4 a3 c4 ~ bb3 d4 a3 c4 a3 c4 g3 ~ bb3 f3 a3",
  H: "f3 a3 e3 g3 ~ d3 f3 c3 e3 b2 d3 b3 ~ d4 b3 d4 c4 e4 b3 d4 ~ b3 d4 a3 c4 g3 b3 g3 ~ b3 f3 a3",
  I: "[e3 g3 ~ d3 f3 c3@3 c3@3 b2@2 c3@11 c3@3 b2@2 c3@11 c3@3 b2@2 c3@11 c3@3 b2@2 c3@8 c3 ~ e3 c3 e3 ~ c3 e3 c3 ~ e3 c3 e3 ~ c3 e3 c3 ~ e3 c3 e3 ~ c3 e3 c3 ~ e3]/3",
  J: "c3 e3 ~ c3 e3 f3@3 ~@24",
})).s("gm_string_ensemble_1").gain(0.13)

stack(
  flute, oboe, clarinet, bassoon, brass_section, string_ensemble_1, pizzicato_strings, string_ensemble_1_2,
  pizzicato_strings_2, string_ensemble_1_3
)

More by Ludwig van Beethoven