Strudelify

Symphony no. 3 in E-flat major, "Eroica": I. (extract)

Ludwig van Beethoven

KeyB♭ majorTempo120 bpm
0:00/0:00
// Symphony no. 3 in E-flat major, "Eroica": I. (extract) — Ludwig van Beethoven
// 120 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// other · cello
const cello = note(`<
  A B C D@3 E@3 F G ~@2 H I ~ J K@3 L M@4 N O P@2 Q R@2 S T U V T W X T Y@2 Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN
  AO AP AO AQ AR
>`.pickRestart({
  A: "eb3 ~@2 eb3", B: "~ eb3", C: "g3 eb3@2 bb2", D: "[eb3 g3 bb3 eb3@2 d3 db3@6]/3",
  E: "[d3@5 d3 eb3@3 ab2 bb2 c3]/3", F: "bb2", G: "bb2!2 eb3 ~", H: "~ c3 f3 ab3", I: "c4 f3 ~@2",
  J: "c3@2 b2@2 bb2!2 d3 f3", K: "[bb3 d4 f4@2 ~@2 bb2@4 bb2@4 bb2@4 bb2@2 bb2!2 d3 f3]/3", L: "bb3 d4 f4@2 ~@2 bb2@2",
  M: "[ab2 ab3@2 ab3@2 ab3@2 g3@2 g3@2 g3@2 ab3 ab3@2]/4", N: "g3@2 g3@2 f3!4", O: "f3!2 bb2 bb3!5",
  P: "[eb3@2 g3 eb3@2 bb2 [db3,eb3] g3]/2", Q: "bb3 eb3@2 g2", R: "[c3@2 eb3@2 g3@2 c3@4 eb2@2 ab2 ab3!3]/2",
  S: "ab3!2 gb3!6", T: "f3 ~@3", U: "~@4 f2 ~ a2 ~", V: "c3 ~ f3 ~ a3 ~ c4 ~", W: "~@4 f2 ~ bb2 ~",
  X: "d3 ~ f3 ~ d4 ~ bb3 ~", Y: "[~@6 g3@3 f3 eb3 ~ d3 ~ c3 ~]/2", Z: "bb3@4 a3 ab3 g3@2",
  AA: "f3@2 eb3@2 d3 f3 eb3 d3", AB: "c3 bb2 a2 bb2 c3 f2 g2 a2", AC: "bb2 bb3!3 a3 ab3 g3 f3",
  AD: "eb3 g3 f3 eb3 d3 ~ eb3 d3, ~@5 f3@2 ~", AE: "c3 bb2 a2 bb2 c3 bb2 a2 g2", AF: "gb2 ~ gb3 ~@5",
  AG: "~@3 gb2 g2 ~ g3 ~", AH: "~@7 g3", AI: "f3 ~ f4 ~@5", AJ: "~ f3!3 eb3 eb3@2 e3", AK: "f3 gb3 g3 g3@2 g3 ab3 a3",
  AL: "bb3!2 ab3!2 g3!2 gb3!2", AM: "f3!2 d3!2 eb3!4", AN: "eb3!8", AO: "f3!8", AP: "f3!4 ~ f3!3, ~@2 f2 ~",
  AQ: "f3 e4 eb4 d4 c4 bb3 a3 g3", AR: "f3 eb3 d3 c3 bb2@2 ~@2",
})).s("gm_cello").gain(0.36)

// other · violin · "Violin 2"
const violin = note(`<
  A B C@4 D E F G H I@2 J K L M N O@2 P@5 Q R S T U V W X Y Z@2 AA@2 AB AC AD@2 AE@2 AF AG AH AI AJ AK AL AM@2 AN AO AP
  AQ AR AS@2 AT AU
>`.pickRestart({
  A: "[g3,eb4,eb5] ~@2 [g3,eb4,eb5]", B: "~@4 g4!4", C: "g4!8", D: "g4 bb3 g4 bb3 ~ bb3 f4 bb3, ~@2 g4 ~",
  E: "f4 bb3 f4 bb3 eb4 bb3 eb4 bb3", F: "eb4 bb3 c4 eb4 bb3 eb4 ab3 eb4", G: "bb3 eb4 g3 bb3 g3 bb3 ab3 bb3",
  H: "g3 bb3 d4 bb3 eb4 bb3!3", I: "bb3!8", J: "db4!2 c4!6", K: "c4!4 db4!2 eb4!2", L: "eb4!8", M: "eb4!4 d4 bb3 d4 f4",
  N: "bb4 d5 f5 ~ f4@2 d4@2", O: "[eb4 ~ [eb4,c5]@4 [eb4,c5]@4 [eb4,c5]@2 [d4,bb4] bb3 d4 f4]/2",
  P: "[bb4 d5 f5 ~@3 [bb3,f4]@4 [bb3,f4]@4 [bb3,f4]@4 [bb3,f4]@4 [bb3,eb4]@4 [bb3,eb4]@4 [bb3,eb4]@4 [bb3,d4]@2 [bb3,d4]@4]/5", // Bb5 Eb5 Bb
  Q: "[bb3,eb4]@4 [bb3,eb4]@4 [bb3,ab4] ab5!5 g5!2", R: "f5!2 eb5!2 d5!2 c5!2 bb4!2 ab4!2 g4!2 f4!2",
  S: "eb4 [bb4,g5]!15", T: "[bb4,g5]!16", U: "[bb4,g5]!12 [b4,g5]!4", V: "[c5,g5]!16",
  W: "[c5,g5]!4 [bb4,g5]!4 [c5,ab5] c5!7", X: "c5!6 bb4!2 a4!2 bb4!2 c5!2 bb4!2",
  Y: "a4 ~ a3@2 c4@2 a3@2 c4@2 a3@2 c4@2 a3@2", Z: "c4 a3 c4 a3 c4 a3 c4 a3",
  AA: "d4 bb3 d4 bb3 d4 ~ d4 bb3, ~@5 bb3@2 ~", AB: "d4 bb3 d4 bb3 d4 ~@2 bb3, ~@5 bb3@2 ~, ~@3 d4",
  AC: "eb4 a3 c4 a3 c4 a3 c4 a3", AD: "[c4 a3 c4 a3 c4@2 g4@3 f4 eb4 ~ d4 ~ c4 ~]/2", AE: "[bb3@7 f4]/2", AF: "f4!4",
  AG: "f4 bb4 a4 bb4 c5 d5 eb5 f5", AH: "g5 bb4 a4 g4 f4 bb4 a4 bb4", AI: "c5 d5 eb5!6",
  AJ: "eb5@2 ~@2 a4@2 ~@8 eb4 f4", AK: "eb4 ~ c4 d4 c4 ~ a4 ~ bb4@2 ~@2 [d4,bb4]@2 ~@2",
  AL: "~@6 d4 eb4 d4 ~ bb3 c4 bb3 ~ bb4 ~",
  AM: "[b4@2 ~@2 [b4,ab5]@2 ~@8 d5 ~ d5 ~ d4 eb4 d4 ~ [d4,b4] ~ [eb4,c5] ~ g4@4 c5 ~, ~@15 eb5@2 ~@15]/2", // E G Cm
  AN: "c5 ~ d5 ~ d5 ~ eb5@4 eb5 ~ eb5 ~ f5 ~", AO: "f5 ~ bb4 ~ bb5 ~ bb4 ~ bb5 ~ bb4 ~ bb5 ~ bb4 ~",
  AP: "bb5 ~ bb4 ~ bb5 ~ bb4 ~ bb5 bb4!7", AQ: "b4!4 c5!2 d5!2 f5!2 eb5!2 d5!2 c5!2",
  AR: "bb4!2 f4!2 g4!2 a4!2 bb4!2 c5!2 d5!2 eb5!2",
  AS: "[e5 ~ f5!2 eb5!2 d5!2 c5!2 d5!2 eb5!2 d5 ~ [c5,db5] c5 bb4!2 a4!2 bb4!2 c5!2 bb4!2 a4!2 g4!2, ~ e5@2 ~@12 d5@2 ~@15]/2", // Dbmaj7
  AT: "f4!2 e4!2 eb4!2 d4!2 c4!2 bb3!2 a3!2 g4!2", AU: "f4!2 eb4!2 d4!2 c4!2 bb3@4 ~@4",
})).s("gm_violin").gain(0.36)

// other · viola
const viola = note(`<
  A B C@4 D@2 E F G H I J K L M@2 N@3 O@4 P Q R@2 S T@2 U V W V X Y@2 Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
  AP AQ AR AS@3
>`.pickRestart({
  A: "[g3,eb4] ~@2 [g3,eb4]", B: "~@4 bb3!4", C: "bb3!8", D: "[bb3 ~@2 ab4@5]/2", E: "g4 f4 g4 ab4",
  F: "g4 bb4 ab4 g4 [f4,gb4] eb4 d4 bb3", G: "eb4 bb3 ab3 f3 g3 [eb3,g3]!3", H: "[eb3,g3]!8", I: "[eb3,g3]!6 g3!2",
  J: "[g3,bb3]!4 [f3,ab3]!4", K: "[f3,ab3]!6 [bb3,db4]!2", L: "[ab3,c4]!7 c4", M: "[c4!2 b3!2 bb3@8 d3@2 f3@2]/2",
  N: "[g3 gb3@2 gb3@2 gb3 f3 bb3@3 d3 bb3]/3", O: "[ab3 ab4@2 ab4@2 ab4@2 g4@2 g4@2 g4@2 ab4 ab4@2]/4",
  P: "g4@4 g4@4 d4 f4!5 eb4!2", Q: "d4!2 c4!2 bb3!2 ab3!2 g3!2 f3!2 eb3!2 ab3!2", R: "[g3 eb4 g4 eb4@2 bb3 eb4 g4]/2",
  S: "bb4 eb4@2 g3", T: "[c4@4 eb4@4 g4@4 c4@8 db4!4 c4!8]/2", U: "c4!6 bb3!2 a3!2 bb3!2 c4!2 bb3!2",
  V: "a3 f3 a3 f3 a3 f3 a3 f3", W: "a3 f3 ~ f3 a3 f3 a3 f3, ~ a3 ~@2", X: "bb3 f3 ~ f3 ~ f3 ~ f3, ~ bb3!3",
  Y: "~ f3 ~ f3 ~ f3 ~ f3, bb3!4", Z: "c4 ~@3", AA: "[~@6 g4@3 f4 eb4 ~ d4 ~ c4 ~]/2", AB: "bb3@4 a3 ab3 g3@2",
  AC: "f3@2 eb3@2 d3 f4 eb4 d4", AD: "c4 bb3 a3 bb3 c4 f3 g3 a3", AE: "bb3 bb4!3 a4 ab4 g4 f4",
  AF: "eb4 ~ f4 eb4 d4!2 c4 f4, ~ g4@2 ~@5", AG: "a4 bb4 c5!6", AH: "c5 ~ [c4,eb4] ~@5", AI: "~@3 c4 bb3 ~ [bb3,d4] ~",
  AJ: "~@7 d4", AK: "d4 ~ d5 ~@5", AL: "~ ab3!2 f4 eb4 c4@2 c4", AM: "a3 d4!2 bb3@2 ~ c4 f4, ~@5 eb4@2 ~",
  AN: "f4 bb4 ab4!2 g4!2 gb4!2", AO: "f4@2 f4@2 d4@2 d4@2 eb4 bb3!7", AP: "b3!4 c4!2 b3!2 d4!2 c4!2 f4!2 eb4!2",
  AQ: "d4!2 f4!2 e4!2 eb4!2 d4!2 c4!2 bb3 ~ c4!2, ~@13 bb3@2 ~", AR: "db4!2 d4!2 c4!2 bb3!2 a3 [c4,eb4]!7",
  AS: "[[c4,eb4]!15 eb4 a3!2 e4!2 eb4!2 d4 ~ c4!2 bb3!2 a3!2 g3 ~ f3!2 eb3!2 d3!2 c4!2 bb3@4 ~@4, ~@15 c4@2 ~@6 d4@2 ~@6 g3@2 ~@15]/3", // Cm
})).s("gm_viola").gain(0.36)

// chords · flute
const flute = note(`<
  A ~@8 B C D E ~ F G@3 H@7 I J K@2 L@4 M N@2 ~ O@2 ~ P@2 Q ~@2 R@2 S T U V W X Y@2 Z@2 AA AB@3 AC
>`.pickRestart({
  A: "[bb5,eb6] ~@2 [bb5,eb6]", B: "~ bb5", C: "c6 d6 eb6@2", D: "g6 eb6@2 bb5", E: "eb6 ~@3", F: "~@3 g5",
  G: "[ab5 c6 [eb5,eb6] ~ eb5 [eb5,a5] [d5,bb5]@5 [ab5,d6], ~@3 ab5@2 ~@7]/3", // Eb Ebdim Gm Abdim
  H: "[[g5,eb6] [a5,eb6]@2 [a5,eb6]@2 [a5,eb6] [bb5,d6]@5 bb5@2 [bb5,d6]@2 [bb5,d6]@2 [bb5,d6]@2 [bb5,eb6]@2 [bb5,eb6]@2 [bb5,eb6]@2 [bb5,d6] [bb5,d6]@2]/7", // Cm Adim Bb Eb5 Bb
  I: "[bb5,eb6]@2 [bb5,eb6]@2 [bb5,d6]@2 bb4 c5", J: "d5 eb5 f5 g5 ab5 bb5 c6 d6",
  K: "[eb6@2 [g5,g6] [eb5,eb6]@2 [bb4,bb5] [eb5,eb6] [eb6,g6]]/2", // G Eb Bb Eb
  L: "[[eb6,g6]@2 [eb6,g6]@8 [eb6,g6]@2 [eb6,g6]@2 [eb6,g6]@4 [db6,g6]@2 ab6@2 eb6@2 eb6@2 ~ bb5 a5 bb5 c6 bb5, ~@20 c6@7 ~@5, ~@13 e6@3]/4", // Eb Dbdim
  M: "[a5,f6] ~@3", N: "[~@6 eb6@3 c6 a5@2 ~@4]/2", O: "[~@6 d6@3 bb5 f5@2 ~@4]/2",
  P: "[~@6 [g5,g6]@3 [f5,f6] [eb5,eb6] ~ [d5,d6] ~ [c5,c6] ~]/2", Q: "[bb4,bb5] ~@3",
  R: "[[bb4,bb5]@13 [d5,bb5] [c5,a5] [d5,bb5]]/2", S: "[a5,c6] [bb5,d6] [c6,eb6]!6", T: "[c6,eb6] ~ [c6,eb6] ~@5",
  U: "~@3 [a5,eb6] [bb5,d6] ~ [bb5,d6] ~", V: "~@7 [bb5,d6]", W: "[b5,d6] ~ [b5,d6] ~@5",
  X: "~@3 [d5,b5] [g5,c6] [g5,c6]@2 [g5,c6]", // G C5
  Y: "[[a5,c6] [a5,d6] [bb5,d6] [bb5,eb6]@2 [bb5,eb6] [c6,eb6] f6 [bb5,d6]@2 [bb5,d6]@2 [bb5,eb6]@2 [bb5,e6]@2, ~@7 c6@2 ~@7]/2", // Am D5 Bb Eb5 Cm Bb Eb5 Bbdim
  Z: "[[bb5,f6]@2 [bb5,gb6]@2 g6 gb6 g6 gb6 g6 d6 [c6,eb6] [g5,d6] [g5,f6] [gb5,eb6] [f5,d6] [eb5,c6], ~@2 bb5@3 ~@3]/2", // Bb5 Ebm Cm G5 G7 Ebm Dm Cm
  AA: "[d5,bb5] ~@3", AB: "[~@4 f6@13 e6 eb6 d6 c6 bb5 a5 [g5,g6]]/3",
  AC: "[f5,f6] [eb5,eb6] [d5,d6] [c5,c6] [bb4,bb5]@2 ~@2", // F Eb D C Bb
})).s("gm_flute").gain(0.36)

// chords · oboe
const oboe = note(`<
  A ~@8 B C ~@5 D@2 E@7 F G H@2 I J@3 K ~@2 K ~@2 L M@2 N@2 O P ~@2 Q R S T U V W X Y P Z@3 AA
>`.pickRestart({
  A: "[eb5,g5] ~@2 [eb5,g5]", B: "[eb5,g5]@3 [f5,ab5]", C: "[eb5,g5] [d5,f5] eb5 ~",
  D: "[~@2 [bb4,d5]@3 f5@2 ab5, ~@5 d5@3]/2", // Bb
  E: "[[eb5,g5] [eb5,gb5]@2 [eb5,gb5]@2 [d5,f5] [d5,f5]@5 [d5,f5]@2 [d5,f5]@2 [d5,f5]@2 [d5,f5]@2 [eb5,g5]@2 [eb5,g5]@2 [eb5,g5]@2 [d5,f5] [d5,f5]@2]/7", // Eb Ebm Dm Eb Dm
  F: "[eb5,g5]@2 [eb5,g5]@2 [d5,ab5]@2 bb4 c5", G: "d5 eb5 f5 g5 ab4 bb4 c5 d5",
  H: "[eb5@2 g5 eb5@2 bb4 eb5 [bb4,bb5]]/2", I: "[bb4,bb5] [bb4,bb5]@2 [b4,b5]",
  J: "[[c5,c6]!3 [c5,c6]@2 [eb5,bb5] [eb5,ab5]@3 [e5,bb5] ~@2]/3", K: "~@2 g5@3 f5 e5@2", L: "~@2 gb5@3 f5 eb5@2",
  M: "[~@6 g5@3 f5 eb5 ~ d5 ~ c5 ~]/2", N: "[~@15 f4, bb4]/2", O: "[a4,c5] d5 [c5,eb5] ~ [c5,eb5] ~ [c5,eb5] ~",
  P: "[bb4,d5] ~@3", Q: "[c5,eb5]!2 ~@2", R: "~@3 [c5,eb5] [bb4,d5] ~ [d5,bb5] ~", S: "~@7 [bb4,g5]",
  T: "[b4,ab5] ~ [b4,ab5] ~@5", U: "~@3 [b4,ab5] [c5,g5] [bb4,c5]@2 [bb4,c5]",
  V: "[a4,c5] [a4,d5] [bb4,d5] [bb4,eb5]@2 [bb4,eb5] [c5,eb5] [c5,f5]", W: "[d5,f5] [bb4,bb5]!3",
  X: "[bb4,bb5] [bb4,bb5]@3", Y: "[b4,b5]@2 [c5,c6] d5 f5 [eb5,g5] [d5,f5] [c5,eb5], ~@3 g5@2 ~@3",
  Z: "[~@4 f5@13 e5 eb5 d5 c5 bb4 a4 [g4,g5]]/3", AA: "[f4,f5] [eb4,eb5] [d4,d5] [c4,c5] bb4@2 ~@2",
})).s("gm_oboe").gain(0.36)

// chords · clarinet
const clarinet = note(`<
  A ~@8 B C D E ~ F G@2 H I@2 J@5 K L M@2 N@4 O P ~@2 Q ~@2 R@2 S T U V ~@2 W X Y Z AA@2 AB AC AD AE ~@4
>`.pickRestart({
  A: "[g4,eb5] ~@2 [g4,eb5]", B: "~ bb4", C: "c5 d5 eb5@2", D: "g5 eb5@2 bb4", E: "eb5 g5 bb5 eb5", F: "~@3 g4",
  G: "[ab4 c5 eb5 ~ eb4 [eb4,a4] bb4@2, ~@3 ab4@2 ~@3]/2", H: "[f4,f5] [d4,d5] [bb3,bb4] [ab4,f5]",
  I: "[[g4,eb5] [gb4,eb5]@2 [gb4,eb5]@2 [gb4,eb5] ~ [f4,bb4,d5,bb5]]/2", // Cm Ebm Bb
  J: "[[f4,f5] [d4,d5] [bb3,bb4] [f4,bb4]@2 [f4,d5]@2 [f4,d5]@2 [f4,d5]@2 [g4,eb5]@2 [g4,eb5]@2 [g4,eb5]@2 [f4,d5]!2 [bb4,d5]]/5", // F D Bb Bb5 Dm Cm Dm Bb
  K: "[bb4,eb5]@2 [bb4,eb5]@2 [bb4,d5]@2 bb3 c4", L: "d4 eb4 f4 g4 ab4 bb4 c5 d5", M: "[eb5@2 g5 eb5@2 bb4 eb5 g5]/2",
  N: "[bb5@2 eb5@4 [eb5,g5]@4 [eb5,g5]@2 [eb5,g5]@2 eb5@4 db5@2 ab5@2 eb5@2 eb5@2 ~ bb4 a4 bb4 c5 bb4, ~@14 g5@6 c5@7 ~@5, ~@13 e5@3]/4", // Eb
  O: "[a4,f5] ~@7", P: "f5@3 eb5 c5@2 ~@2", Q: "f5@3 d5 bb4@2 ~@2",
  R: "[gb5@3 f5 eb5@2 [g4,g5]@3 f5 [eb4,eb5] ~ [d4,eb4,d5] ~ [c4,c5] ~, ~@9 f4@2 ~@5]/2", // G Eb Ebmaj7 C
  S: "[bb3,d4]@4 [c4,eb4] [d4,f4] [eb4,g4]@2", T: "[f4,a4] ~ [g4,bb4]@2 [f4,bb4]@3 [f3,bb3]",
  U: "[a3,c4] [bb3,d4] [c4,eb4] ~ [c4,eb4] ~ [c4,eb4] ~", V: "[bb3,d4] ~@3", W: "[a4,eb5] ~ [a4,eb5] ~@5",
  X: "~@3 [a4,c5] bb4 ~ bb4 ~", Y: "~@7 [bb4,d5]", Z: "[b4,d5] ~ [b4,d5] ~@5",
  AA: "[~@8 d5@3 ~@3 f5@2, ~@3 c5@3 ~@2, ~@11 eb5@5]/2", AB: "[d5,f5] ~@3", AC: "~@2 gb5@2 g5 gb5 g5 gb5, ~ bb4@3",
  AD: "g5 d5 [c5,eb5] d5 f5 [g4,eb5] [f4,d5] [eb4,c5], b4@2 ~ g4@2 ~@3", AE: "[d4,bb4] ~@3",
})).s("gm_clarinet").gain(0.36)

// chords · bassoon · "Bassoons"
const bassoon = note(`<
  A ~@13 B C@3 D@2 E@5 F G H@2 I J@3 K ~@6 L@2 M N O P Q R S T U V W X Y Z@2 Y AA@3 AB
>`.pickRestart({
  A: "[eb3,eb4] ~@2 [eb3,eb4]", B: "~@3 eb3", C: "[ab3 c4 eb4 ab3@2 a3 ~@3 d4@2 [ab3,f4], ~@6 bb3@5 ~]/3",
  D: "[[g3,eb4] [gb3,c4]@2 [gb3,c4]@2 [gb3,c4] [f3,d4] ~]/2", // Cm Gbdim Dm
  E: "[~@3 bb3 ab3 [ab3,d4]@2 [ab3,d4]@2 d4 eb4 [g3,eb4]@2 [g3,eb4]@2 [g3,eb4]@2 [ab3,d4] [ab3,d4]@2, ~@3 d4@2 ~@4 ab3@2 ~@9]/5", // Abdim Cm Abdim
  F: "[g3,eb4]@2 [g3,eb4]@2 [ab3,d4]@2 bb2 c3", G: "d3 eb3 f3 g3 ab3 bb3 c4 d4",
  H: "[[eb3,eb4]@2 [g3,g4] [eb3,eb4]@2 [bb2,bb3] [eb3,eb4] g3]/2", I: "bb3 eb3@2 [g2,g3]",
  J: "[[c3,c4]@2 [eb3,eb4]@2 [g3,g4]@2 [c3,c4]@4 [eb3,db4]@2 ab3@6 ~ bb3 a3 bb3 c4 bb3, ~@12 c4@7 ~@5, ~@3 gb3]/3", // C Eb G C Eb7
  K: "[f3,a3] ~@3", L: "[gb4@3 f4 eb4@2 [g3,g4]@3 [f3,f4] [eb3,eb4]@2 [d3,eb3,d4] ~ [c3,c4] ~]/2",
  M: "~@4 a3 ab3 g3 ~, bb3@7 ~", N: "[f3,a3] ~ [eb3,g3]@2 [d3,f3]@4",
  O: "[c3,eb3] [bb2,d3] [a2,c3]@2 [f3,a3]@2 [f3,a3]@2", P: "[bb2,bb3] ~@3", Q: "~@5 f4 eb4 d4",
  R: "c4 bb3 a3 [bb3,d4] [c4,eb4] [bb3,d4] [a3,bb3,c4] [g3,bb3]", S: "[gb3,a3] ~ [gb3,a3] ~@5",
  T: "~@3 [gb3,a3] [g3,bb3] ~ [g3,bb3] ~", U: "~@7 [g3,bb3]", V: "[f3,ab3] ~ [f3,ab3] ~@5",
  W: "~@3 [f3,f4] [eb3,eb4] [eb3,bb3]@2 [e3,bb3]", X: "[f3,a3] [gb3,c4] [g3,bb3] [g3,db4]@2 [g3,db4] [ab3,c4] [a3,c4]",
  Y: "[bb3,d4] ~@3", Z: "[~@8 b3@2 c4 b3 d4 [g3,c4] [b3,f4] [c4,eb4], ~ bb3@3 ~@4, ~@2 d3@3 ~@11, ~@4 eb3@9 ~@3]/2",
  AA: "[~@4 f4@13 e4 eb4 d4 c4 bb3 a3 [g3,g4]]/3", AB: "[f3,f4] [eb3,eb4] [d3,d4] [c3,c4] [bb2,bb3]@2 ~@2",
})).s("gm_bassoon").gain(0.36)

// other · french horn · "Horns"
const french_horn = note(`<
  A ~@8 B C D E ~@3 F@2 G H@6 I@2 J@2 K L@3 M N@2 O N@2 O P@2 Q@2 R S@2 T U V W X Y Z AA AB AC O AD@3 AE
>`.pickRestart({
  A: "[g3,eb4] ~@2 [g3,eb4]", B: "[eb4,g4]@3 [f4,ab4]", C: "[eb4,g4] [bb3,f4] eb4@2, ~@2 g3 ~", D: "g4 eb4@2 bb3",
  E: "eb4 g4 bb4 eb4", F: "[[eb3,eb4] [f3,eb4] [bb2,bb3]@5 [bb2,f3,bb3], ~@2 f3 ~@5]/2",
  G: "[eb4,eb5] [eb4,eb5]@2 [eb4,eb5]", // Eb
  H: "[~ [eb4,eb5] [bb3,bb4]@5 [bb3,f4]@2 [bb3,f4]@2 [bb3,f4]@2 [bb3,f4]@2 [bb3,g4]@2 [bb3,g4]@2 [bb3,g4]@2 [bb3,f4] [bb3,f4]@2]/6", // Eb Bb Bb5 Eb Bb5
  I: "[[bb3,g4]!2 [bb3,ab4]@4 [bb3,ab4]!2]/2", // Eb Bb7
  J: "[[bb3,g4] [eb3,eb4] [g3,g4] [eb3,eb4]@2 ~ [eb3,eb4] [g3,g4], ~@5 bb3@2 ~]/2", // Eb G Eb G
  K: "[bb3,bb4] [eb3,g3,eb4]@2 [g3,g4]", L: "[[g3,g4]!3 [g3,g4]@2 [eb3,db4,eb4] [eb3,eb4]@3 [bb3,bb4]@3, ~@6 c4 ~@5]/3",
  M: "[f3,f4] ~@3", N: "[~@2 f4@4 f4!2]/2", O: "f4 ~@3", P: "[~@6 f4@3 f4!2 ~ f4 ~ f4 ~]/2", Q: "[bb2,bb3]/2",
  R: "f4!4", S: "[[bb2,bb3]@7 ~]/2", T: "~@5 [eb3,eb4]!3", U: "[eb3,eb4] ~ [eb3,eb4] ~@5",
  V: "~@3 [eb3,eb4] [bb2,bb3] ~ [bb2,bb3] ~", W: "~@7 [eb3,eb4]", X: "[f3,ab3] ~ [f3,ab3] ~@5",
  Y: "~ [f3,ab3]!3 [eb3,g3]@2 ~@2", Z: "~@2 g3 f3", AA: "f3 [bb2,bb3]!3", AB: "[bb2,bb3]!2 [bb3,bb4] [g3,g4]",
  AC: "[g3,f4,g4] [g3,eb4,g4]@3", AD: "[~@2 f4@7 f4!3]/3", AE: "f4!2 [bb3,bb4] ~",
})).s("gm_french_horn").gain(0.36)

stack(cello, violin, viola, flute, oboe, clarinet, bassoon, french_horn)

More by Ludwig van Beethoven