Strudelify

Mozart Symphony No. 40 - III - Menuetto

W. A. Mozart

KeyB♭ majorTempo160 bpm
0:00/0:00
// Mozart Symphony No. 40 - III - Menuetto — W. A. Mozart
// 160 bpm, 3/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 3/4 at bar 2, 2/4 at bar 15, 1/4 at bar 15, ...) are rendered on a constant 3/4 grid of one bar per cycle
// note: ch 1 "Flute" named as a pipe, played on flute (its tremolo strings patch is not one); ch 2 "Oboe" named as a reed, played on oboe (its string ensemble 1 patch is not one); ch 3 "Bassoon" named as a reed, played on bassoon (its acoustic bass patch is not one); ch 4 "Horn in G" named as a brass, played on brass section (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1873246; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 211 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/3)

// 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 · oboe
const oboe = note(`<
  ~ A B C A D E F@2 G H I@2 J K A B C A D E F@2 G H I@2 J L M@2 N O@2 P Q@2 R S T U V W@6 X Y Z ~@5 AA M@2 N O@2 P Q@2 R
  S T U V W@6 X Y Z ~@14 AB AC AD AE ~@14 AB AC AD AE ~@21 AF AG AH ~@21 AF AG AH ~@14 AB AC AD AE ~@21 AF AG AH ~@6
>`.pickRestart({
  A: "g2@3 ~@2 bb2@3 ~@3 bb4@5, g4@11 g2@3 ~@2", B: "[d2,d5]@11 [c2,gb4]@5", C: "[bb1,g4]@5 ~@11",
  D: "[d2,d5]@11 [gb2,a4]@5", E: "[g2,bb4]@5 ~@11",
  F: "[eb2@3 ~@2 eb3@3 ~@3 bb4@5 ~@5 a5@5 ~ e5@5, [g4,g5]@11 bb5@11 ~@10, ~@11 d3@3 ~@2 db3@16, ~@16 e5@11 ~@5]/2", // G
  G: "f5@5 [g2,e5]@3 d5@3 [a2,db5]@2 e5@3, d3@3 ~@13", H: "d5@5 [e2,c5]@3 bb4@3 [gb2,a4]@2 c5@3, bb2@3 ~@13",
  I: "[bb4@5 [db2,g5]@3 ~@3 [d2,f5]@3 ~@2 e2@3 ~@2 db5@5 ~ d5@5, g2@3 ~@8 d5@10 a1@3 ~@3 bb1@3 ~@2, ~@16 e5@11 ~@5]/2", // Dbdim Dm
  J: "g2@5 e2@5 ~ [a2,db5,e5]@5, [e5,g5]@11 ~@5", K: "[d2,d5]@5 ~@11", L: "[d2,d5]@5 ~@6 [f2,f4]@5",
  M: "[[bb2,bb4]@11 [d3,d5]@10 [c3,c5]@3 [bb2,bb4]@3 [a2,a4]@2 [c3,c5]@3]/2", N: "[bb2,bb4]@5 ~@6 [d2,d4,d5]@5",
  O: "[[g2,g4,g5]@11 bb5@5 bb5@5 [a2,a4,a5]@3 [g2,g4,g5]@3 [gb2,gb4,gb5]@2 [a2,a4,a5]@3, ~@11 [bb2,bb4]@11 ~@10]/2", // G A G Gb A Bb
  P: "[g2,g4,g5]@5 ~@6 [bb1,bb4]@5", Q: "[[eb2,eb5]@11 [g2,g5]@10 [f2,f5]@3 [eb2,eb5]@3 [d2,d5]@2 [f2,f5]@3]/2",
  R: "[eb2,eb5]@5 [b1,b4]@11", S: "[c2,c5]@5 [d2,d5]@11", T: "[eb2,eb5]@5 [db3,db5,db6]@11",
  U: "[d3,d5,d6]@5 [bb2,bb4,bb5]@3 [a2,a4,a5]@3 [bb2,bb4,bb5]@2 [g2,g4,g5]@3", // D Bb A Bb G
  V: "[gb2,gb4,gb5]@5 [d2,d5]@3 [db2,db5]@3 d2@2 [c2,c5]@3, ~@11 d5@5", // Gb D Db C
  W: "[[bb1,bb4]@5 bb2@5 ~ [g2,g4]@5 eb2@5 a5@3 bb5@3 g5@2 a5@3 d3@5 d5@3 eb5@3 c5@2 d5@3 g2@5 g5@3 ab5@3 f5@2 g5@3 c2@5 c5@3 d5@3 bb4@2 c5@3 gb1@5 [gb2,d5]@5 ~ [d2,a5,c6]@5, g5@11 bb5@10 c2@5 ~ c3@5 gb5@11 a5@10 d2@5 ~ b1@5 eb5@11 eb5@11 ~@10, ~@16 c5@11 eb5@10 a2@5 ~ gb2@5 bb4@11 d5@10 ab1@5 ~ g1@5 a4@11 ~@5]/6", // Bb G D D7
  X: "[g2,bb5]@3 ~@2 [d3,a5]@3 ~@3 g5@5, g5@5 gb5@5 ~ eb3@3 ~@2", // Gm D5
  Y: "[c3,a5]@3 ~@2 [a2,c6]@3 ~@3 [d3,d5,gb5]@2 c5@3, eb5@11 ~@5", Z: "[g2,bb4,g5]@5 ~@11", AA: "~@11 [f2,f4]@5",
  AB: "~@11 [gb5,a5]@3 ~@2", AC: "[gb5,a5]@5 [e5,g5]@5 ~ [e5,g5]@3 ~@2",
  AD: "[e5,g5]@3 ~@2 [e5,g5]@3 ~@3 [e5,g5]@3 ~@2", AE: "[e5,g5]@5 [d5,gb5]@5 ~@6", AF: "~@11 gb4@5",
  AG: "a4@5 c5@5 ~ d5@5", AH: "[a5,c6]@5 [g5,b5]@5 ~@6",
})).s("gm_oboe").gain(0.27)

// chords · oboe · soft notes
const oboe_soft = note(`<
  ~@50 A B@2 C@2 D E ~@21 A B@2 C@2 D E ~ F ~ G H I J K L ~@2 M N O P Q P R ~ F ~ G H I J K L ~@2 M N O P Q P S T U V W
  X Y Z AA ~ AB ~ AC AD AE ~@3 AF AG AH R AI AJ AK T U V W X Y Z AA ~ AB ~ AC AD AE ~@3 AF AG AH R AI AJ AL ~ F ~ G H I
  J K L ~@2 M N O P Q P S T U V W X Y Z AA ~ AB ~ AC AD AE ~@3 AF AG AH R AI AJ AL
>`.pickRestart({
  A: "~@11 a4@5", B: "[b4@5 c5@5 ~ db5@5 d5@5 c5@3 bb4@3 a4@2 c5@3, ~@11 g5@10 d5@5 ~@6]/2",
  C: "[e5@16 [d3,g5]@5 [bb4,d5]@5 ~ [bb4,d5]@5, bb4@21 ~@11]/2", D: "[d2,c5,d5]@5 [c5,d5]@5 ~ [c5,d5]@5",
  E: "[g2,bb4,d5]@5 ~@11", F: "~@5 d3@5 ~@6", G: "~@5 g2@3 ~@3 e2@3 ~@2", H: "c2@3 ~@2 a1@3 ~@3 d2@3 ~@2",
  I: "b1@3 ~@2 g1@3 ~@3 [d4,g4]@5", J: "[g4,b4]@5 [b4,d5]@5 ~ [d5,g5]@5", K: "[g5,b5]@5 [gb5,a5]@5 ~ [gb5,a5]@3 ~@2",
  L: "[gb5,a5]@3 ~@2 [gb5,a5]@3 ~@8", M: "~@11 d5@5", N: "gb5@5 e5@5 ~ [g4,db5]@5, b4@11 ~@5", O: "[gb4,d5]@5 ~@11",
  P: "a2@5 ~@11", Q: "d3@5 ~@11", R: "d2@5 ~@11", S: "d2@5 ~@6 d2@5", T: "gb2@5 a2@5 ~ [d3,a4,c5]@5",
  U: "[g4,b4]@5 [gb4,a4]@5 ~ d2@5", V: "g2@5 b2@5 ~ [d3,b4,d5]@5", W: "[a4,c5]@5 [g4,b4]@5 ~ e2@5",
  X: "ab2@5 b2@5 ~ [e3,c5,e5]@5", Y: "[b4,d5]@5 [a4,c5]@5 ~ [b4,d5]@5", Z: "[a4,c5]@5 [g4,b4]@5 ~ [b4,d5]@2 [a4,c5]@3",
  AA: "[g4,b4]@5 [gb4,a4]@5 ~@6", AB: "~@5 d3@5 ~ d3@5", AC: "~@5 g2@5 ~ g2@5", AD: "~@5 d2@5 ~ d2@5",
  AE: "g1@5 g2@5 ~@6", AF: "~@11 g5@5", AG: "b5@5 a5@5 ~ [c5,gb5]@5, e5@11 ~@5", AH: "[b4,g5]@5 ~@11", AI: "g2@5 ~@11",
  AJ: "[c5,gb5]@3 ~@2 [c5,gb5]@3 ~@3 [c5,gb5]@3 ~@2, d2@5 ~@11", AK: "[g1,b4,g5]@5 ~@6 d2@5", AL: "[g1,b4,g5]@5 ~@11",
})).s("gm_oboe").gain(0.13)

// chords · bassoon
const bassoon = note(`<
  ~ A B C A D E F G@2 H I J K L A B C A D E F G@2 H I J K L M N O P Q R S T U V W X Y Z@6 AA AB E ~@6 M N O P Q R S T U
  V W X Y Z@6 AA AB E ~@15 AC AD AE ~@15 AC AD AE ~@21 AF AG AH ~@21 AF AG AH ~@15 AC AD AE ~@21 AF AG AH ~@6
>`.pickRestart({
  A: "g3@3 ~@2 bb3@3 ~@3 g3@3 ~@2", B: "d3@11 c3@5", C: "bb2@5 ~@11", D: "gb3@11 d3@5", E: "g3@5 ~@11",
  F: "[eb3,g3]@3 ~@2 [eb4,g4]@3 ~@3 [d4,f4]@3 ~@2", G: "[[db4,e4]@11 a3@10 bb3@3 ~@3 g3@3 ~@2]/2",
  H: "f3@3 ~@2 g3@3 ~@3 d3@3 ~@2", I: "g3@3 ~@2 db3@3 ~@3 d3@3 ~@2", J: "e3@3 ~@2 a2@3 ~@3 bb2@3 ~@2",
  K: "g3@5 e3@5 ~ a3@5", L: "d3@5 ~@11", M: "f3@5 f3@5 ~ f3@5", N: "eb4", O: "d4@3 bb3@2 f3@3 d3@3 bb2@5",
  P: "d3@5 d3@5 ~ d3@5", Q: "c4", R: "bb3@3 g3@2 d3@3 bb2@3 g2@5", S: "bb2@5 bb2@5 ~ bb2@5", T: "ab3",
  U: "g3@5 f3@3 eb3@3 d3@2 f3@3", V: "eb3@5 d3@3 c3@3 b2@2 d3@3", W: "c3@5 bb2@3 a2@3 bb2@2 g2@3", X: "gb2@5 db4@11",
  Y: "d4@5 ~@6 d3@5",
  Z: "[g3@11 g3@5 ~@5 a3@3 bb3@3 g3@2 a3@3 ~@5 d4@3 eb4@3 c4@2 d4@3 ~@5 g3@3 ab3@3 f3@2 g3@3 ~@5 c4@3 d4@3 bb3@2 c4@3 ~@5 d4@3 eb4@3 c4@2 d4@3, ~@11 bb3@11 ~@10 gb3@11 a3@11 ~@10 eb3@11 ~@5 a3@11 gb3@5, ~@16 c4@11 eb4@11 ~@10 bb3@11 d4@11 ~@5 eb4@11 ~@10]/6",
  AA: "g3@5 c4@5 ~ bb3@5, bb3@3 ~@2 gb4@3 ~@3 g4@3 ~@2", AB: "c4@5 a3@5 ~ gb3@5, eb4@3 ~@2 c4@3 ~@3 a3@3 ~@2",
  AC: "~@11 a2@5", AD: "db3@5 e3@5 ~ a3@5", AE: "bb3@5 b3@5 ~@6", AF: "[gb2,gb3]@5 [a2,a3]@5 ~ [d3,d4]@5",
  AG: "[d4,gb4]@3 ~@2 [d4,gb4]@3 ~@3 [d4,gb4]@3 ~@2", AH: "[eb4,gb4]@5 [e4,g4]@5 ~@6",
})).s("gm_bassoon").gain(0.27)

// chords · bassoon · soft notes
const bassoon_soft = note(`<
  ~@50 A B C D E F G ~@21 A B C D E F G ~@11 H I J ~@15 H I J ~@4 K L M N O P Q R ~@6 S ~@2 T U V W G ~@2 K L M N O P Q
  R ~@6 S ~@2 T U V W G ~@13 H I J ~@4 K L M N O P Q R ~@6 S ~@2 T U V W G ~@2
>`.pickRestart({
  A: "~@5 g4@5 ~ gb4@5", B: "f4@5 e4@5 ~ eb4@5", C: "d4@5 d4@3 ~@3 d4@3 ~@2", D: "db4@5 db4@5 ~ db4@5",
  E: "[bb3,d4]@5 [g3,bb3]@5 ~ [g3,bb3]@5", F: "[gb3,a3]@5 [gb3,a3]@5 ~ [gb3,a3]@5", G: "g3@5 ~@11", H: "~@11 a3@5",
  I: "g3@11 a3@5", J: "d3@5 ~@11", K: "~@11 [a3,c4]@5", L: "[g3,b3]@5 [gb3,a3]@5 ~@6", M: "~@11 [b3,d4]@5",
  N: "[a3,c4]@5 [g3,b3]@5 ~@6", O: "~@11 [ab3,e4]@5", P: "[a3,e4]@11 [gb3,d4]@5", Q: "[g3,d4]@11 [c3,e4]@5",
  R: "[d3,d4]@11 ~@5", S: "~@11 [d2,d3]@5", T: "~@11 d4@5", U: "c4@11 d4@5", V: "g3@5 d4@5 ~ b3@5",
  W: "a3@5 b3 ~ a3 g3@3 a3@2 b3@3",
})).s("gm_bassoon").gain(0.13)

// chords · brass section · "Horn in G"
const brass_section = note(`<
  ~ A B C A B C D E F G H I J K A B C A B C D E F G H I J K ~@3 L@2 C ~@4 M N O P ~ Q R ~ S T U V ~@9 L@2 C ~@4 M N O P
  ~ Q R ~ S T U V ~@57 W X Y ~@21 W X Y ~@39 W X Y ~@6
>`.pickRestart({
  A: "[g3,g4]", B: "[d3,d4]@11 [d3,d4]@5", C: "[d3,d4]@5 ~@11", D: "[g3,g4]@5 [g3,g4]@5 ~ [g3,g4]@5",
  E: "[g3,g4]@5 ~@6 a4@5", F: "[d4,a4]@5 ~@6 a4@5", G: "d4@5 g3@5 ~ [d3,d4]@5", H: "[g3,d4]@5 ~@11",
  I: "~@5 a4@5 ~ d4@5", J: "g4@5 ~@6 a4@5", K: "[d4,a4]@5 ~@11", L: "[d3,d4]@5 [d3,d4]@5 ~ [d3,d4]@5",
  M: "~@5 [g3,g4]@11", N: "[d3,d4]@5 [g3,g4]@11", O: "[d3,d4]@5 [d3,d4]@11", P: "g3@5 ~@11", Q: "[d3,d4]", R: "[g2,g3]",
  S: "~@11 [d4,a4]@5", T: "[g3,g4]@5 [d4,a4]@5 ~ [g3,g4]@5", U: "[a4,c5]@5 ~@6 [d4,a4]@5", V: "[g3,g4]@5 ~@11",
  W: "[b4,d5]@5 [a4,c5]@5 ~ [a4,c5]@3 ~@2", X: "[a4,c5]@3 ~@2 [a4,c5]@3 ~@3 [a4,c5]@3 ~@2",
  Y: "[a4,c5]@5 [g4,b4]@5 ~@6", // Am G
})).s("gm_brass_section").gain(0.27)

// chords · brass section · "Horn in G" · soft notes
const brass_section_soft = note(`<
  ~@54 A@2 B ~@25 A@2 B ~@43 C D E F G H I J ~@7 K L ~@7 C D E F G H I J ~@7 K L ~@25 C D E F G H I J ~@7 K L
>`.pickRestart({
  A: "[d3,d4]@5 [d3,d4]@5 ~ [d3,d4]@5", B: "[g3,d4]@5 ~@11", C: "~@11 [b3,g4]@3 ~@2", D: "[g4,b4]@11 [a4,c5]@5",
  E: "[d4,a4]@5 ~@6 [d4,a4]@3 ~@2", F: "[a4,c5]@11 [b4,d5]@5", G: "[g4,b4]@5 ~@11",
  H: "[d4,a4]@5 a4@3 g4@3 a4@2 b4@3, ~@5 d4@5 ~ d4@5", I: "[b3,g4]@5 ~@6 [g3,b3]@5",
  J: "[b3,d4]@5 [d4,g4]@5 ~ [g4,b4]@5", K: "[d4,a4]@5 [d4,a4]@5 ~ [d4,a4]@5", L: "[b3,g4]@5 ~@11",
})).s("gm_brass_section").gain(0.14)

// other · string ensemble 1 · "Violin I"
const string_ensemble_1 = note(`<
  A B@2 C D@2 E F@2 G H I J K L B@2 C D@2 E F@2 G H I J K M N O P Q R S T U V W X Y Z AA@2 AB@2 AC@2 AD AE AF ~@6 N O P
  Q R S T U V W X Y Z AA@2 AB@2 AC@2 AD AE AF ~@132
>`.pickRestart({
  A: "~@11 d4@5", B: "[g4@11 bb4@10 a4@3 g4@3 gb4@2 a4@3]/2", C: "g4@5 d4@5 ~ g4@5",
  D: "[bb4@11 d5@10 c5@3 bb4@3 a4@2 c5@3]/2", E: "bb4@5 g4@5 ~ d5@5", F: "[g5@11 bb5@10 a5@3 f5@3 e5@2 g5@3]/2",
  G: "f5@5 e5@3 d5@3 db5@2 e5@3", H: "d5@5 c5@3 bb4@3 a4@2 c5@3", I: "bb4@3 ~@2 bb5@3 ~@3 a5@3 ~@2",
  J: "ab5@3 ~@2 g5@3 ~@3 f5@3 ~@2", K: "e5@5 g5@5 ~ db5@5", L: "d5@5 ~@6 d4@5", M: "d5@5 ~@11", N: "f5@5 f5@5 ~ f5@5",
  O: "eb6", P: "d6@3 bb5@2 f5@3 d5@3 bb4@5", Q: "d5@5 d5@5 ~ d5@5", R: "c6", S: "bb5@3 g5@2 d5@3 bb4@3 g4@5",
  T: "bb4@5 bb4@5 ~ bb4@5", U: "ab5", V: "g5@5 f5@3 eb5@3 d5@2 f5@3", W: "eb5@5 d5@3 c5@3 b4@2 d5@3",
  X: "c5@5 bb4@3 a4@3 bb4@2 g4@3", Y: "gb4@5 db6@11", Z: "d6@5 ~@6 d4@5", AA: "[g4@11 bb4@10 a4@3 bb4@3 g4@2 a4@3]/2",
  AB: "[gb4@11 a5@10 g5@3 ab5@3 f5@2 g5@3]/2", AC: "[eb5@11 eb6@10 d6@3 eb6@3 c6@2 d6@3]/2",
  AD: "bb5@3 ~@2 gb5@3 ~@3 g5@3 ~@2", AE: "a4@3 ~@2 a5@3 ~@3 gb5@3 ~@2", AF: "g5@5 ~@11",
})).s("gm_string_ensemble_1").gain(0.31).pan(0.8)

// other · string ensemble 1 · "Violin I" · soft notes
const string_ensemble_1_soft = note(`<
  ~@54 A B C ~@25 A B D E F G H I C ~@7 J K L M N E F G H I C ~@7 J K L M O ~@7 P E F G H I C ~@5 Q I Q I C ~@7 P E F G
  H I C ~@5 Q I Q I D E F G H I C ~@7 J K L M O ~@7 P E F G H I C ~@5 Q I Q I C
>`.pickRestart({
  A: "bb4@5 ~@11", B: "a4@5 ~@11", C: "g4@5 ~@11", D: "g4@5 ~@6 g4@5", E: "b4@5 d5@5 ~ c5@5", F: "a4@5 ~@6 a4@5",
  G: "c5@5 e5@5 ~ d5@5", H: "b4@5 ~@11", I: "a4@5 b4 ~ a4 g4@3 a4@2 b4@3", J: "d5@5 a5@5 ~ gb5@5",
  K: "e5@5 gb5 ~ e5 d5@3 e5@2 gb5@3", L: "d5@5 a4@5 ~ gb4@5", M: "e4@5 gb4 ~ e4 d4@3 e4@2 gb4@3", N: "d4@5 ~@6 g4@5",
  O: "d4@5 ~@11", P: "~@11 g4@5", Q: "g4@5 d5@5 ~ b4@5",
})).s("gm_string_ensemble_1").gain(0.16).pan(0.8)

// other · string ensemble 1 · "Violin II"
const string_ensemble_1_2 = note(`<
  A B@2 C D@2 E F@2 G H I J K L B@2 C D@2 E F@2 G H I J K M N O P Q R S T U V W X Y Z AA AB@2 AC@2 AD AE AF AG ~@6 N O P
  Q R S T U V W X Y Z AA AB@2 AC@2 AD AE AF AG ~@132
>`.pickRestart({
  A: "~@11 d4@5", B: "[g4@11 bb4@10 a4@3 g4@3 gb4@2 a4@3]/2", C: "g4@5 d4@5 ~ g4@5",
  D: "[bb4@11 d5@10 c5@3 bb4@3 a4@2 c5@3]/2", E: "bb4@5 g4@5 ~ d4@5", F: "[g4@11 bb4@10 a4@3 f4@3 e4@2 g4@3]/2",
  G: "f4@5 e4@3 d4@3 db4@2 e4@3", H: "d4@5 c4@3 bb3@3 a3@2 c4@3", I: "bb3@3 ~@2 bb4@3 ~@3 a4@3 ~@2",
  J: "ab4@3 ~@2 g4@3 ~@3 f4@3 ~@2", K: "e4@5 g4@5 ~ db4@5", L: "d4@5 ~@6 d4@5", M: "d4@5 ~@11", N: "f4@5 f4@5 ~ f4@5",
  O: "eb5", P: "d5@3 bb4@2 f4@3 d4@3 bb3@5", Q: "d4@5 d4@5 ~ d4@5", R: "c5", S: "bb4@3 g4@2 d4@3 bb3@3 g3@5",
  T: "bb3@5 bb3@5 ~ bb3@5", U: "ab4", V: "g4@5 f4@3 eb4@3 d4@2 f4@3", W: "eb4@5 d4@3 c4@3 b3@2 d4@3",
  X: "c4@5 bb3@3 a3@3 bb3@2 g3@3", Y: "d4@5 db5@11", Z: "d5@5 ~@11", AA: "~@11 g4@5",
  AB: "[c5@11 eb5@10 d5@3 eb5@3 c5@2 d5@3]/2", AC: "[bb4@11 d6@10 c6@3 d6@3 bb5@2 c6@3]/2", AD: "a5@11 gb5@5",
  AE: "g5@3 ~@2 c5@3 ~@3 bb4@3 ~@2", AF: "eb4@3 ~@2 c5@3 ~@3 a4@3 ~@2", AG: "bb4@5 ~@11",
})).s("gm_string_ensemble_1").gain(0.28).pan(0.7)

// other · string ensemble 1 · "Violin II" · soft notes
const string_ensemble_1_soft_2 = note(`<
  ~@54 A B A ~@25 A B C D E F C G H ~@8 I J K L D E F C G H ~@8 I J K M ~@7 N D E F A O A ~@6 B A P Q ~@7 N D E F A O A
  ~@6 B A P R D E F C G H ~@8 I J K M ~@7 N D E F A O A ~@6 B A P Q
>`.pickRestart({
  A: "g4@5 ~@11", B: "gb4@5 ~@11", C: "g4@5 ~@6 b3@5", D: "g4@5 b4@5 ~ a4@5", E: "gb4@5 ~@6 gb4@5",
  F: "a4@5 c5@5 ~ b4@5", G: "e4@5 c4@3 ~@3 a3@3 ~@2", H: "d4@3 ~@2 b3@3 ~@8", I: "db5@5 ~@11", J: "d5@5 ~@11",
  K: "db4@5 ~@11", L: "d4@5 ~@6 b3@5", M: "d4@5 ~@11", N: "~@11 b3@5", O: "gb4@5 g4 ~ gb4 e4@3 gb4@5",
  P: "[c4,d4]@5 ~@11", Q: "[b3,d4]@5 ~@11", R: "[b3,d4]@5 ~@6 b3@5",
})).s("gm_string_ensemble_1").gain(0.14).pan(0.7)

// other · string ensemble 1 · "Viola"
const string_ensemble_1_3 = note(`<
  ~ A B C D E F G H@2 I J K L M A B C D E F G H@2 I J K L N O@2 P Q@2 R S@2 T U V W X Y Z@4 AA AB AC C ~@5 AD O@2 P Q@2
  R S@2 T U V W X Y Z@4 AA AB AC C ~@132
>`.pickRestart({
  A: "bb3@3 ~@2 g3@3 ~@3 d3@3 ~@2", B: "d4@11 d4@5", C: "d4@5 ~@11", D: "d4@3 ~@2 g3@3 ~@3 bb3@3 ~@2", E: "gb3@11 d4@5",
  F: "d3@5 ~@11", G: "g3@3 ~@2 g4@3 ~@3 f4@3 ~@2", H: "[e4@11 a3@10 bb3@3 ~@3 g3@3 ~@2]/2",
  I: "f3@3 ~@2 g3@3 ~@3 d3@3 ~@2", J: "d4@3 ~@2 e4@3 ~@3 f4@3 ~@2", K: "b3@3 ~@2 db4@3 ~@3 d4@3 ~@2", L: "bb3@11 g3@5",
  M: "f3@5 ~@11", N: "f3@5 ~@6 f4@5", O: "[bb4@11 d5@10 c5@3 bb4@3 a4@2 c5@3]/2", P: "bb4@5 ~@6 d4@5",
  Q: "[g4@11 bb4@10 a4@3 g4@3 gb4@2 a4@3]/2", R: "g4@5 ~@6 bb3@5", S: "[eb4@11 g4@10 f4@3 eb4@3 d4@2 f4@3]/2",
  T: "eb4@5 b3@11", U: "c4@5 d4@11", V: "eb4@5 db5@11", W: "d5@5 bb4@3 a4@3 bb4@2 g4@3",
  X: "gb4@5 d4@3 db4@3 d4@2 c4@3", Y: "bb3@5 d4@5 ~ bb3@5",
  Z: "[g3@5 eb4@5 ~ a3@10 gb3@5 ~ d4@10 bb3@5 ~ g4@10 gb4@5 ~ g4@5]/4", AA: "a4@5 a3@5 ~ a4@5",
  AB: "g4@3 ~@2 a4@3 ~@3 g4@3 ~@2", AC: "c4@3 ~@2 eb4@3 ~@3 d4@3 ~@2", AD: "~@11 f4@5",
})).s("gm_string_ensemble_1").gain(0.27).pan(0.6)

// other · string ensemble 1 · "Viola" · soft notes
const string_ensemble_1_soft_3 = note(`<
  ~@54 A B C ~@25 A B C ~ D ~ E@2 F ~@8 F G H I ~ D ~ E@2 F ~@8 F G H I ~@9 J ~ K L M ~@6 B M I H ~@9 J ~ K L M ~@6 B M
  I H ~ D ~ E@2 F ~@8 F G H I ~@9 J ~ K L M ~@6 B M I H
>`.pickRestart({
  A: "d4@5 ~@11", B: "[c4,d4]@5 ~@11", C: "[bb3,d4]@5 ~@11", D: "~@5 d4@5 ~@6",
  E: "[~@5 d4@5 ~ g4@10 gb4@3 e4@3 gb4@5]/2", F: "g4@5 ~@11", G: "gb4@5 ~@11", H: "g3@5 ~@11", I: "gb3@5 ~@11",
  J: "~@5 d4@5 ~ d4@5", K: "~@5 [b3,d4]@5 ~ [b3,d4]@5", L: "~@5 [c4,d4]@5 ~ [c4,d4]@5", M: "[b3,d4]@5 ~@11",
})).s("gm_string_ensemble_1").gain(0.13).pan(0.6)

// other · string ensemble 1 · "Violoncello"
const string_ensemble_1_4 = note(`<
  ~ A B C A D E F G H I J K L M A B C A D E F G H I J K L N O@2 P Q@2 R S@2 T U V W X Y Z AA AB AC AD AE AF E ~@5 AG O@2
  P Q@2 R S@2 T U V W X Y Z AA AB AC AD AE AF E ~@132
>`.pickRestart({
  A: "g3@3 ~@2 bb3@3 ~@3 g3@3 ~@2", B: "d3@11 c3@5", C: "bb2@5 ~@11", D: "d3@11 gb3@5", E: "g3@5 ~@11",
  F: "eb3@3 ~@2 eb4@3 ~@3 d4@3 ~@2", G: "db4", H: "d4@3 ~@2 g3@3 ~@3 a3@3 ~@2", I: "bb3@3 ~@2 e3@3 ~@3 gb3@3 ~@2",
  J: "g3@3 ~@2 db3@3 ~@3 d3@3 ~@2", K: "e3@3 ~@2 a2@3 ~@3 bb2@3 ~@2", L: "g3@5 e3@5 ~ a3@5", M: "d3@5 ~@11",
  N: "d3@5 ~@6 f3@5", O: "[bb3@11 d4@10 c4@3 bb3@3 a3@2 c4@3]/2", P: "bb3@5 ~@6 d3@5",
// … 23 more lines

More by W. A. Mozart