Strudelify

Symphony No.8 D.759

Franz Schubert

KeyE majorTempo35 bpm
0:00/0:00
// Symphony No.8 D.759 — Franz Schubert
// 35 bpm, 3/8, key E 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 tremolo strings patch is not one); ch 3 "A 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 6 "Horn in D" named as a brass, played on brass section (its string ensemble 1 patch is not one); ch 7 "E Trumpet" named as a brass, played on trumpet (its pizzicato strings patch is not one); ch 9 "Trombone" named as a brass, played on trombone (its string ensemble 1 patch is not one); ch 11 "Trombone" named as a brass, played on trombone (its pizzicato strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5461572; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 147 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(35/1.5)

// 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(`<
  ~@13 A ~@2 B ~@5 C ~@7 D ~ E F G F H I J I K L J K ~@5 A ~ M N O N ~@36 P@6 Q@2 R S@2 T U@2 ~@6 V W@2 ~@4 X Y@3 Z AA
  ~@23
>`.pickRestart({
  A: "[a#4,c5]", B: "[d#5,f#5]", C: "[f#5,a5]", D: "b4@5 d#5@5 ~ f#5@5 ~@16", E: "[d#5,f#5]@15 ~", F: "[e5,g#5]@15 ~",
  G: "[f#5,a5]@11 [g#5,b5]@16 [f#5,a5]@5", H: "[c#5,a#5]@15 ~", I: "[d#5,b5]@15 ~",
  J: "[e5,c#6]@11 [f#5,d#6]@16 [e5,c#6]@5", K: "[d#5,c6]@15 ~", L: "[e5,c#6]@21 [d#5,c6]@10 ~", M: "b5@11 g#5@10 e5@11",
  N: "b4@5 ~@11", O: "b5@11 c#6@5 b5@5 g#5@5 ~ e5@5",
  P: "[[e5,g#5]@27 ~ [g#5,c#6]@27 ~ c#6@27 ~@10 g#5@18 ~ g#5@19 b5@18 a5@9 ~ d#6@9 e6@9 [e6,g#6]@5 ~@5 [d#6,g#6]@5, ~@14 a5@9 ~@25, ~@84 c6@28 c#6@47 c#6@18 ~@15]/6", // E C#5 E G#5
  Q: "[~@4 c#6@9 c#5@5 ~@5 g#5@18 c#5@5 ~@5 c#6@13]/2", R: "~@5 f#5@5 ~@5 a5@17",
  S: "[~ g#5@5 ~@5 [d#5,d#6]@14 [c#5,c#6]@2 ~@2 [e5,e6]@5 ~@5 [f5,f6]@13 ~ [g#5,g#6]@2 ~@2 [f#5,f#6]@5 ~@2]/2", // D# C# E F G# F#
  T: "~@3 [g5,g6]@5 ~@4 [g5,c#6]@5 [g5,c#6]@9 [g5,c#6]@6", // G Gdim
  U: "[~@3 [g5,c#6]@4 ~ [c#6,e6]@4 ~ [c#6,e6]@9 [c#6,e6]@9 [c#6,e6]@4 ~ [d6,f#6]@9 ~@19]/2", // Gdim C#m D
  V: "~@23 b4@4 c#5@5, ~@23 g5@9", W: "[g5 a5 g5 ~ a5 g5 a5 g5 a5 [g5,b5]@9 ~ [f#5,a5]@9 g5@18 ~@18, d5@9 ~@55]/2",
  X: "~@23 e5@4 f#5@5, ~@23 c6@9",
  Y: "[c6 d#6 c6 ~ d#6 c6 d#6 c6 d#6 [c6,e6]@9 ~ [b5,d6]@9 c6@18 ~@10 e5@19 d5@4 b4@5 c5@9 ~@3, g5@3 ~@29]/3", // C Bm
  Z: "~ e5", AA: "~@3 d5@4 b4@5 c5@9 ~@11",
})).s("gm_flute").gain(0.4)

// chords · flute · soft notes
const flute_soft = note(`<
  ~@14 A B ~ C ~@3 D ~ E ~@4 F G H I ~@12 J K L M N ~ A ~@4 O P Q ~@29 R@3 ~@36 S@2 ~@19
>`.pickRestart({
  A: "[a4,b4]@5 ~@3", B: "[b4,e5]", C: "[e5,g5]@5 ~@11", D: "[d5,g5]", E: "[g5,b5]@5 ~@11",
  F: "b4@5 d#5@5 ~ f#5@5 a5@5 g#5@5 ~ f#5@5", G: "e5@5 ~@11", H: "~@16 a5@5 g#5@5 ~ f#5@5", I: "e5@5 ~@27",
  J: "[b4,b5]", K: "[c#5,c#6]", L: "[b4,b5]@11 [g#4,g#5]@10 [e4,e5]@10 ~", M: "d#4@11 e4@10 f#4@11, d#5",
  N: "[e4,c#5]@15 ~", O: "e5", P: "[d#5,f#5]", Q: "[e5,g#5]@5 ~@11",
  R: "[~@16 a#5@7 g#5@2 a#5@5 g#5@5 f5@4 c#5@4 ~ g#5@7 f#5@2 g#5@5 f#5@5 d#5@4 c5@5 c#5@9 ~@15]/3",
  S: "[~@19 g5@25 e5@6 ~@14]/2",
})).s("gm_flute").gain(0.24)

// other · oboe
const oboe = note(`<
  ~@32 A B C B D E F E G H F G ~@40 I@3 ~@4 J@6 K L M@2 N O P@2 ~@6 Q R@2 ~@4 S T@2 ~@26
>`.pickRestart({
  A: "[d#5,f#5]", B: "[e5,g#5]", C: "[f#5,a5]@11 [g#5,b5]@16 [f#5,a5]@5", D: "[a#4,c#5]", E: "[b4,d#5]",
  F: "[c#5,e5]@11 [d#5,f#5]@16 [c#5,e5]@5", G: "[c5,d#5]", H: "[c#5,e5]@21 [c5,d#5]@11",
  I: "[~@28 f#5@9 a#5@26 g#5@2 a#5@5 g#5@5 f5@5 ~@16]/3",
  J: "[[g#4,c#5]@28 [c#5,g#5]@28 [c#5,f#5]@28 [c5,d#5]@28 e5@19 f5@9 f#5@19 [d#5,g5]@9 [e5,g#5]@9 [e5,c#6]@5 ~@5 [d#5,c6]@5, ~@112 c#5@47 ~@33]/6", // C#5 F#5 Cm D# E C#m Cm
  K: "~@4 [e5,c#6]@2 g#4@2 ~ c#5@2 b4@2 a4@2 ~ g#4@2 f#4@2 e4@2 ~ g#4@2 f#4@2 e4@2 ~ d#4@2", // C#m
  L: "c#4@2 g#4@2 ~ e5@2 d#5@2 c#5@2 ~ b4@2 a4@2 g#4@2 ~ a4@2 g#4@2 f#4@2 ~ e4@2 f#4@2 g#4@2",
  M: "[~ a4@2 g#4@2 f#4@2 ~ a4@2 d#5@2 c#5@2 ~ c5@2 a5@2 g#5@2 ~ f#5@2 e5@2 d#5@2 ~ c#5@2 d#5@2 c5@2 ~ d#5@2 g#4@2 a4@2 ~ g#4@2 f#4@2 e4@2 ~ d#4@2 c#4@2 d#4@2 ~ e4@2 c#5@2 b4@2 ~]/2",
  N: "e4@2 g#4@2 a4@2 ~ b4@2 d5@2 c#5@2 ~ b4@2 a4@2 g#4@2 ~ f#4@2 f4@2 c#5@2 ~ b4@2 a4@2",
  O: "g#4@2 ~ a4@2 g5@2 e5@2 ~ c#5@2 a4@5 [c#5,e5]@9 [c#5,e5]@6", // C#m
  P: "[~@3 [c#5,e5]@5 [g5,a5]@5 [g5,a5]@9 [g5,a5]@9 [g5,a5]@5 [f#5,a5]@9 ~@19]/2", Q: "~@23 g4@4 a4@5",
  R: "[b4@9 [b4,d5]@9 ~ [c5,d5]@9 [b4,d5]@19 ~@17]/2", S: "~@23 c5@4 d5@5",
  T: "[e5@9 e5@9 ~ f5@9 e5@19 ~@17, ~@9 g5@37 ~@18]/2",
})).s("gm_oboe").gain(0.4)

// other · oboe · soft notes
const oboe_soft = note(`<
  ~@15 A@3 ~@3 B@3 ~@27 C D E D F@3 ~@22 G@3 H I ~ J@2 ~ K@2 ~@29 L@2 M N O P ~@21
>`.pickRestart({
  A: "[g#4@32 a4@32 g4@11 ~@21, b4@25 ~@7]/3", B: "[b4@32 c5@32 b4@11 ~@21, d5@25 ~@7]/3", C: "b4@11 g#4@10 e4@11",
  D: "f#4@11 ~@21", E: "b4@11 c#5@5 b4@5 g#4@5 ~ e4@5", F: "[g#4@32 a4@32 g#4@11 ~@21, b4@25 ~@7]/3",
  G: "[~@4 c#5@7 f5@7 d#5@6]/3", H: "~ f#5@7", I: "f5@9 g#5@19 ~@4",
  J: "[~@15 c#5@5 g#5@7 f#5@2 g#5@5 f#5@5 d#5@4 c5@5 c#5@9 ~@7]/2",
  K: "[~@8 a#5@7 g#5@2 a#5@5 g#5@5 f5@4 c#5@5 g#5@7 f#5@2 g#5@5 f#5@5 d#5@4 c5@5]/2",
  L: "[~@24 e5@19 d5@4 b4@5 c5@9 ~@3]/2", M: "~ e5", N: "~@3 d5@4 b4@5 c5@9 ~@11", O: "~ g5@3", P: "~ e5@6 ~@25",
})).s("gm_oboe").gain(0.2)

// chords · clarinet · "A Clarinet"
const clarinet = note(`<
  ~@13 A ~@13 B C B D E F G H I J K L M N O P N Q R S T U A ~@3 V C W ~@8 X@4 Y@6 Z@2 ~@8 AA AB@2 AC ~@3 AD@6 AE AF@4
  AG@4 AH@2 AI@2 AJ@2 AK AL@2 AM@2 AN@2 AO AP@2 AQ@2 ~@23
>`.pickRestart({
  A: "[e4,g4]", B: "g#3@11 e3@10 c#4@11", C: "b3@11 ~@21", D: "b4@5 d#5@5 ~ f#5@5 ~@16, b3@11 ~@21",
  E: "~@11 g#3@5 ~@5 a3@5 ~@6", F: "b3@5 ~@6 c#4@5 ~@5 a3@5 ~@6, [f#4,d#5]",
  G: "g#3@5 ~@6 f#3@5 ~@5 e3@5 ~@6, [g#4,e5]", H: "[a4,f#5]@11 b3@5 ~@5 d#3@5 ~ [a4,f#5]@5, d#3@5 ~@6 [b4,g#5]@16 ~@5",
  I: "e3@5 ~@6 f#3@5 ~@5 g#3@5 ~@6, [g#4,e5]", J: "f#3@5 ~@6 g#4@5 ~@5 e4@5 ~@6, [a#4,c#5]",
  K: "d#4@5 ~@6 c#4@5 ~@5 b3@5 ~@6, [b4,d#5]", // B
  L: "[c#5,e5]@11 f#3@5 ~@5 a#3@5 ~ [c#5,e5]@5, a#3@5 ~@6 [d#5,f#5]@16 ~@5", // C#m D#m
  M: "b4@11 b4@5 ~@5 a4@5 ~@6, d#5, b3@5 ~@27", N: "g#4@5 ~@6 a4@5 ~@5 f#4@5 ~@6, [c5,d#5]",
  O: "e4@5 ~@6 c#4@5 ~@5 [c5,d#5]@11, [c#5,e5]@21 g#4@5 ~@6", // Cm C#m
  P: "[c#5,e5]@11 c4@5 ~@5 c#4@5 ~ [c#5,e5]@5, e4@5 ~@6 [d#5,f#5]@16 ~@5", Q: "g#4, e4@11 ~@21", R: "a4",
  S: "g#4@11 e4@10 c#4@11", T: "c4", U: "c#4", V: "g#3@11 e3@10 ~@6 e4@5, ~@21 c#4@11", W: "e3@11 ~@21",
  X: "[~@6 c#5@7 e5@7 d#5@7 f#5@5]/4",
  Y: "[~@8 e5@9 g#5@14 ~@19 c#4@9 c#4@5 g4@5 g4@9 g4@9 g4@5 f#4@5 f#4@9 d4@9 c#4@5 ~@19 g5@4 f5@5 e5@9 g5@9 ~ e5@9 f5@16, ~@31 c#4@9 ~ c#4@9 ~@142, ~@12 f#5@3 a5@31 ~@18]/6",
  Z: "[~@3 e5@4 d5@5 c#5@9 e5@9 ~ c#5@18 e5@9 ~@6]/2", AA: "~@23 c#4@9",
  AB: "[~ c#4@9 c#4@9 c#4@9 ~ f4@9 f4@9 f4@5 f#4@5 f#4@7]/2", AC: "~@2 f#4@9 f#4@5 ~@16",
  AD: "[~@9 c#4@19 [c#4,e4,g#4]@28 [d#4,f#4]@28 ~@9 g#4@19 g#4@9 ~@10 f4@9 ~@19 g4@9 g#4@5 ~@4 [g#3,c#5,g#5]@5 ~@5 [g#3,c5,g#5]@5, [e4,g#4]@28 ~@28 a4@37 ~@28 g#4@19 f#4@19 c#5@14 ~@19, ~@84 [d#4,f#4]@28 e4@19 b4@18 a4@19 ~@24]/6", // C#m D#m C#5 G# E D#m
  AE: "~@4 c#4@2 g#4@2 ~ c#5@2 b4@2 a4@2 ~ g#4@2 f#4@2 e4@2 ~@3 f#4@2 e4@2 ~ d#4@2, ~@4 g#5@9 ~@19, ~@4 c#5@5 ~@4 c#4@5 ~@5 g#4@9",
  AF: "[c#4@2 g#4@2 ~ e5@2 d#5@2 c#5@2 ~ b4@2 a4@2 g#4@2 ~ a4@2 g#4@2 f#4@2 ~ e4@2 f#4@2 g#4@2 ~ a4@2 g#4@2 ~@3 a4@2 d#5@2 c#5@2 ~ [a4,c5]@2 a4@2 g#4@2 ~ f#4@2 e4@2 d#4@2 ~ c#4@2 d#4@2 c4@2 ~ d#4@2 g#4@2 a4@2 ~ g#4@2 f#4@2 e4@2 ~ d#4@2 c#4@2 d#4@2 ~ [e4,c#5]@2 c#4@2 b3@2 ~ e4@2 g#4@2 a4@2 ~ b4@2 d5@2 c#5@2 ~ b4@2 a4@2 g#4@2 ~ [f#4,g#5]@2 f4@2 c#5@2 ~ b4@2 a4@2, ~@9 c#4@5 ~@5 c#5@18 f#4@5 ~@23 g#4@5 ~@5 d#5@14 ~@4 e5@5 ~@5 f5@14 ~@4 f#5@5 ~@2]/4", // Am C#m F#sus2
  AG: "[g#4@2 ~ a4@2 g4@2 e4@2 ~ c#4@2 a3@2 c#4@2 ~ [e4,g4]@2 g4@2 a4@2 ~ g4@2 e4@2 c#4@2 ~ a3@2 c#4@2 [e4,g4]@3 g4@2 a4@2 g4@2 ~ e4@2 c#4@2 a3@2 ~ c#4@2 e4@2 g4@2 ~ a4@2 g4@2 e4@2 ~ c#4@2 d4@5 d4@9 d4@9 d4@9 ~ d4@9 d4@9 d4@9, ~@3 g5@5 ~@4 [g4,a4]@5 a4@4 ~@5 [g4,a4]@9 a4@5 [c#5,e5]@5 [c#5,e5]@9 [c#5,e5]@9 [c#5,e5]@5 [d5,f#5]@9 ~@51]/4", // Em Gsus2 C#m D
  AH: "[~ d4@9 d4@9 d4@9 ~ d4@9 d4@9 d4@5 c#4@5 c#4@7]/2", AI: "[~@2 c#4@9 c#4@9 ~ c#4@9 c#4@9 c#4@5 d4@5 d4@9 d4@6]/2",
  AJ: "[~@3 d4@9 ~ d4@9 d4@9 d4@9 ~ d4@4 b3@5 b3@9 c#4@5]/2", AK: "d4@19 c4@9 b3@4",
  AL: "[~ [g4,b4]@9 [g4,b4]@9 [g4,b4]@9 ~ [g4,b4]@9 [g4,b4]@9 [g4,b4]@5 [f#4,c5]@5 [f#4,c5]@7]/2", // G F#dim
  AM: "[~@2 [f#4,c5]@9 c5@5 a4@5 [f#4,a4]@9 a4@5 b4@4 [f#4,c5]@5 [g4,b4]@5 [g4,b4]@9 [g4,b4]@6, ~@11 f#4@9 ~@10 f#4@9 ~@25]/2", // F#dim F#m F#dim G
  AN: "[~@3 g4@9 ~ g4@9 g4@9 g4@9 ~ g4@4 e4@5 e4@9 f#4@5, ~@3 b4@5 ~@56]/2", AO: "g4@19 f4@9 e4@4",
  AP: "[~ e3@9 e3@9 e3@9 ~ e3@9 e3@9 e3@9 ~ e3@7]/2", AQ: "[~@2 e3@9 e3@9 ~ e3@9 e3@9 e3@9 ~ e3@9 ~@6]/2",
})).s("gm_clarinet").gain(0.27)

// chords · clarinet · "A Clarinet" · soft notes
const clarinet_soft = note(`<
  ~@2 A B C D E ~ A B C F G ~ H ~@2 I F J K L ~ I F J M ~@3 N O ~@18 H P L Q ~@9 R S@2 T@2 U ~@2 V@2 W@2 X@2 Y@5 Z@2 AA
  ~@2 AB@2 AC@2 ~@32 AD AE@8 AF@3 AG@6 AH@6
>`.pickRestart({
  A: "g#4", B: "a4", C: "g#4@11 e4@10 c#4@11", D: "d#4", E: "e4@11 ~@21", F: "c4", G: "c#4", H: "[d#4,f#4]", I: "b3",
  J: "d4@11 b3@10 g3@11", K: "a3@11 b3@10 c4@11", L: "b3@11 ~@21", M: "f#3@11 g#3@10 a3@11",
  N: "~@16 a5@5 g#5@5 ~ f#5@5", O: "[e3,e5]@5 ~@27", P: "[e4,b4]@11 g#4@10 e4@11", Q: "b4@11 c#5@5 b4@5 g#4@5 ~@6",
  R: "c#4@5 c#4@9 c#4@9 c#4@9", S: "[~ c#4@9 c#4@9 c#4@9 ~ c#4@9 c#4@9 c#4@9 ~ c#4@7]/2",
  T: "[~@2 c#4@9 c#4@5 c4@5 c4@9 c4@9 c4@9 ~ c4@9 c4@6]/2", U: "~@3 c4@5 c#4@5 c#4@9 c#4@9 ~",
  V: "[~@24 c4@5 c4@9 c4@9 c4@9 ~ c4@7]/2", W: "[~@2 c4@5 c#4@4 c#4@5 d4@5 d4@9 d4@9 d4@5 a3@5 a3@9 a3@6]/2",
  X: "[~@3 a3@9 ~ a3@9 ~@9 a3@9 ~@19 a3@5, ~@22 a3@9 ~@10 a3@9 a3@9 ~@5, ~@27 c#5@18 e5@9 ~ c#5@9]/2",
  Y: "[c#4@5 c#4@9 c#4@9 c#4@5 c4@5 c4@9 c4@9 c4@5 c#4@5 c#4@9 c#4@9 c#4@9 ~ c#4@9 c#4@9 c#4@5 c#4@5 c#4@9 c#4@9 c#4@9 ~ c#4@9 c#4@6, g#5@103 ~@57]/5",
  Z: "[~@3 c#4@5 c4@5 c4@9 c4@9 c4@9 ~ c4@9 c4@9 c4@5]/2", AA: "c#4@5 c#4@9 c#4@9 ~@9",
  AB: "[~@16 f4@5 f4@9 f4@9 f4@5 f#4@5 f#4@9 f#4@6]/2", AC: "[~@3 f#4@5 f4@5 f4@9 f4@9 f4@5 f#4@5 f#4@9 f#4@9 f#4@5]/2",
  AD: "~@13 e3@3", AE: "[~@157 g5@25 e5@6 ~@68, ~@3 e3@253]/8", AF: "[~@13 f#3@43 ~ g#3@11 ~@28]/3",
  AG: "[~@25 g#4@32 a4@32 g#4@11 e4@10 c#4@11 d#4@32 e4@11 ~@28]/6",
  AH: "[~@25 g#4@32 a4@32 g#4@11 e4@10 c#4@11 c4@32 c#4@32 ~@7]/6",
})).s("gm_clarinet").gain(0.16)

// chords · bassoon
const bassoon = note(`<
  ~@13 A ~@18 B C D C E F G F H I G H ~@5 A ~@41 J@6 K L@7 ~@6 M N@2 ~@4 O P@2 Q@2 R ~@23
>`.pickRestart({
  A: "c4", B: "[f#3,d#4]", C: "[g#3,e4]", D: "[a3,f#4]@11 [b3,g#4]@16 [a3,f#4]@5", E: "[a#3,c#4]", F: "[b3,d#4]",
  G: "[c#4,e4]@11 [d#4,f#4]@16 [c#4,e4]@5", H: "[c4,d#4]", I: "[c#4,e4]@21 [c4,d#4]@11",
  J: "[[c#3,c#4]@28 [e3,e4]@28 [d#3,d#4]@28 [f#3,f#4]@28 [e3,e4]@9 g#3@19 f#3@9 a3@19 g#3@5 ~@4 [c#4,e4]@5 ~@5 [c4,d#4]@5]/6", // C# E D# F# E C#m Cm
  K: "~ [c#3,c#4]@7", // C#
  L: "[[e3,e4]@28 [d#3,d#4]@28 [f#3,f#4]@28 [g#3,e4]@9 g#3@19 f#3@9 a3@19 a2@2 c#3@2 ~ e3@2 g3@2 a3@2 ~ g3@2 e3@2 c#3@2 ~ a2@2 c#3@2 e3@2 ~ g3@2 a3@2 g3@2 ~ e3@2 c#3@2 a2@2 ~ c#3@2 e3@2 g3@2 ~ a3@2 g3@2 e3@2 ~ c#3@2 d3@9 ~@19]/7", // E D# F# C#m
  M: "~@27 [a3,c#4]@5", N: "[b3@19 c4@9 b3@19 ~@17, d4@47 ~@17]/2", O: "~@27 [d4,f#4]@5",
  P: "[e4@19 f4@9 e4@19 ~@17, g4@47 ~@17]/2", Q: "[~@20 e4@19 ~@25]/2", R: "~@12 e4@19 ~",
})).s("gm_bassoon").gain(0.48)

// chords · bassoon · soft notes
const bassoon_soft = note(`<
  A B C ~@3 A B C ~@5 D E ~@12 B C B F ~@12 G H I J K ~ L E B F B F ~ A B M ~@51 N ~@6 O ~@3 P Q@2 ~@8 R@4 ~@2 R@4 ~@4
>`.pickRestart({
  A: "b3", B: "[a3,d#4]", C: "[g#3,e4]@11 ~@21", D: "b3@5 d#4@5 ~ f#4@5 a4@5 g#4@5 ~ f#4@5", E: "e4@11 ~@21",
  F: "[g#3,e4]@5 ~@27", G: "e3@11 e4@10 d#4@11", H: "c#4@11 a3@10 c#4@5 ~ d#4@5", I: "e4@11 e3@10 f#3@11", J: "g#3",
  K: "c#3", L: "~@5 d#4@5 ~ f#4@5 a4@5 g#4@5 ~ f#4@5, b3@21 ~@11", M: "[g#3,e4]@21 ~@11", N: "~@23 [g3,b3]@5 ~@4",
  O: "~@23 [c4,e4]@5 ~@4", P: "~@7 a4@4 e4@5 e4@9 ~@7", Q: "[~@31 a4@7 g4@2 g4@12 ~@12]/2",
  R: "[~@25 b3@32 [a3,d#4]@32 [g#3,e4]@11 ~@28]/4", // Adim C#m
})).s("gm_bassoon").gain(0.24)

// chords · brass section · "Horn in D"
const brass_section = note(`<
  A B@2 C D E A B@2 C D F ~@2 G H ~ I J K L ~@2 I J M N ~ O@2 P Q R S T U V W X Y Z AA AB Z AC ~@4 AD ~ AE AF AE AG AH
  ~@14 AI AJ ~@5 AK ~@3 AL@2 AM AN@3 AO@2 AP ~ AQ@6 AR AS@7 AT@4 AU@3 AV@4 AW@3 AX AY@5 AZ@2 BA@2 ~@4 BB@5 BC@8 ~
>`.pickRestart({
  A: "[g#3,e4]", B: "[f#4@32 [e3,g#4]@11 e4@10 d#4@11, b3@43 ~@21]/2", C: "c#4@11 a3@10 c#4@5 ~ d#4@5",
  D: "e4@11 e3@10 c#4@11", E: "b3", F: "g#3", G: "[b2,b3]", H: "[e3,g#3]@11 ~@21", I: "~@11 g3@10 f#3@11",
  J: "e3@11 d3@10 c3@11", K: "b2@11 g2@10 e3@11", L: "d3", M: "b2@11 g2@10 a2@11", N: "b2",
  O: "[~@5 d#4@5 ~ f#4@5 a4@5 g#4@5 ~ f#4@5 [e4,g#4]@11 ~@21, b3@43 ~@21, f#4@11 ~@53]/2", // E
  P: "~@5 d#4@5 ~ f#4@5 a4@5 g#4@5 ~ f#4@5, b3, f#4@11 ~@21", Q: "~@11 g#3@5 ~@5 a3@5 ~@6",
  R: "~@11 c#4@5 ~@5 a3@5 ~@6, [b3,b4]", S: "g#3@5 ~@6 f#3@5 ~@5 e3@5 ~@6, [b3,b4]",
  T: "[b3,b4]@11 b2@5 ~@5 d#3@5 ~@6, d#3@5 ~@6 [b3,b4]@21", U: "e3@5 ~@6 f#3@5 ~@5 g#3@5 ~@6, [e4,b4]",
  V: "f#3@5 ~@6 g#3@5 ~@5 e3@5 ~@6, f#4", W: "d#3@5 ~@6 c#3@5 ~@5 b2@5 ~@6, f#4",
  X: "f#4@11 f#2@5 ~@5 a#2@5 ~@6, a#2@5 ~@6 f#4@21", Y: "b3@11 b3@5 ~@5 a3@5 ~@6, f#4, b2@5 ~@27",
  Z: "~@11 a3@5 ~@5 f#3@5 ~@6, [g#3,g#4]", AA: "e3@5 ~@6 c#3@5 ~@5 g#3@5 ~@6, g#4, g#3@21 ~@11",
  AB: "[g#3,g#4]@11 c3@5 ~@5 c#3@5 ~@6, e3@5 ~@6 [g#3,g#4]@21", AC: "e3@11 ~@21", AD: "[e3,e4]",
  AE: "g#2@11 e2@10 c#3@11", AF: "b2@11 ~@21", AG: "[b3,f#4], b2@11 ~@21", AH: "g#4@5 ~@27",
  AI: "c#4@5 c#4@9 c#4@9 c#4@5 d4@4", AJ: "~ d4@9 d4@9 c#4@5 c4@8", AK: "g#3@5 ~@27",
  AL: "[~@12 c#3@19 c3@4 c#3@5 g#2@9 ~@15]/2", AM: "~@4 d#3@19 d3@4 d#3@5",
  AN: "[g#2@9 ~@10 c#3@28 c#4@14 c#4@9 c#4@9 c#4@9 ~ c#4@7]/3",
  AO: "[~@2 c#4@9 c#4@9 ~ c#4@9 c#4@9 c#4@9 ~ c#4@9 c#4@6]/2", AP: "~@3 c#4@9 ~@20",
  AQ: "[[c#3,e4,g#4]@28 [e3,g#4]@28 [d#3,f#4,a4]@28 [f#3,f#4,g#4]@28 [e3,e4,g#4]@9 ~@19 f#3@9 a4@9 ~@10 g#3@5 ~@4 [g#2,g#3,g#4]@5 ~@5 [g#2,g#3,g#4]@5, ~@121 [g#3,g#4]@19 f#4@19 e4@19 ~@14, ~@131 b4@18 a3@19 ~@24]/6", // C#m E D#dim F#sus2 E G#
  AR: "~@4 [g#3,g#4]@9 ~@10 [g#3,g#4]@9, ~ c#3@7", // G#
  AS: "[~@19 [g#3,g#4]@9 ~@19 [f#4,a4]@9 ~@19 [g#3,g#4]@9 e3@9 ~@10 [e4,g#4]@9 f#3@9 ~@10 e4@9 a2@2 c#3@2 ~ e3@2 g3@2 a3@2 ~ g3@2 e3@2 c#3@2 ~ a2@2 c#3@2 e3@2 ~ g3@2 a3@2 g3@2 ~ e3@2 c#3@2 a2@2 ~ c#3@2 e3@2 g3@2 ~ a3@2 g3@2 e3@2 ~ c#3@2 [d3,f#4,a4]@9 ~@19, e3@28 d#3@28 f#3@28 ~@9 g#3@19 ~@9 a3@19 e4@28 [e4,a4]@28 ~@28]/7", // G# F#m G# E D A5
  AT: "[~@28 d3@28 f#3@19 e3@4 d3@5 e3@28 g3@16]/4", AU: "[~@3 f#3@4 e3@5 f#3@28 c4@19 b3@4 a#3@5 b3@9 g3@9 ~ e3@9]/3",
  AV: "[d3@28 g3@28 b3@19 a3@4 g3@5 a3@28 c4@16]/4", AW: "[~@3 b3@4 a3@5 b3@28 f4@19 e4@4 d#4@5 e4@9 c4@9 ~ a3@9]/3",
  AX: "g3@7 c3",
  AY: "[~ c3@9 c3@9 c3@9 ~ c3@9 c3@9 ~@10 c3@9 ~@5 a4@4 e4@5 ~@5 c3@9 c3@9 ~@10 c3@9 ~@5 a4@7 g4@2 g4@12 ~@12, ~@47 c3@9 ~@10 c3@9 c3@9 ~@19 c3@9 ~@10 c3@9 ~@29, ~@52 e4@19 ~@9 e4@9 ~@19 e4@19 ~@33]/5",
  AZ: "[~@13 e4@25 e3@6 ~@20]/2", BA: "[~@24 e4@25 e3@6 ~@9]/2",
  BB: "[~@25 [g#3,e4]@32 f#4@32 [e3,g#4]@11 e4@10 d#4@11 c#4@11 a3@10 c#4@5 ~ d#4@5 e4@7, ~@57 b3@43 ~@60]/5", // C#m E
  BC: "[~@4 e3@10 c#4@11 b3@32 [g#3,e4]@32 f#4@32 [e3,g#4]@11 e4@10 d#4@11 c#4@11 a3@10 c#4@5 ~ d#4@5 e4@11 e3@10 c#4@11 g#3@32 ~@7, ~@89 b3@43 ~@124]/8", // C#m E
})).s("gm_brass_section").gain(0.23)

// chords · brass section · "Horn in D" · soft notes
const brass_section_soft = note(`<
  ~@6 A ~@5 B ~@18 C ~@18 D ~ E F ~@3 G H@2 ~@17 I J ~@10 K@2 ~@33 L@2 M@8 ~@5 N@2 ~@4 O@2
>`.pickRestart({
  A: "e3@11 ~@21", B: "c#3", C: "[e4,g#4]@5 ~@27", D: "[b2,b3]@21 ~@11", E: "[b3,f#4]", F: "g#4@5 ~@27", G: "[g#3,e4]",
  H: "[f#4@32 g#4@21 ~@11, b3@53 ~@11]/2", I: "~@5 g#3@9 g#3@9 g#3@9", J: "~ g#3@9 g#3@9 g#3@5 c#4@8",
  K: "[~@13 c#4@9 c#4@9 c#4@9 ~ c#4@9 c#4@9 c#4@5]/2", L: "[~@3 c3@11 c3@12 ~ c3@12 c3@12 ~ c3@12]/2",
  M: "[c3@12 c3@12 ~ c3@12 c3@12 ~ c3@12 c3@12 ~ c3@12 ~@44 e4@25 e3@12 e4@25 e3@12 e4@25 e3@19 ~@7, ~@87 c3@81 c#3@81 ~@7]/8",
  N: "[~@25 e3@11 ~@28]/2", O: "[~@25 c#3@32 ~@7]/2",
})).s("gm_brass_section").gain(0.11)

// other · trumpet · "E Trumpet"
const trumpet = note("<~@32 A@2 B C D E F G H@2 I H ~@47 J@2 K@4 L M N O@2 P@2 ~@43>".pickRestart({
  A: "[b3,b4]", B: "[b3,b4]@11 [b3,b4]@21", C: "[e4,b4]", D: "f#5", E: "[b4,f#5]", F: "f#5@11 f#5@21", G: "b4",
  H: "g#4", I: "g#4@11 g#4@21", J: "[[e4,g#4]@7 g#4@7 ~@2]/2", K: "[~@20 g#4@28 g#4@28 ~@19 e4@18 g#4@5 ~@5 g#4@5]/4",
  L: "~@13 [e4,g#4]@19", M: "~@9 g#4@19 ~@4", N: "~@5 f#5@19 ~@8", O: "[~ g#4@19 ~@9 g#4@19 ~@9 f#5@5 ~@2]/2",
  P: "[~@3 e5@5 ~@4 e4@28 e4@24]/2",
})).s("gm_trumpet").gain(0.64)
// … 124 more lines

More by Franz Schubert