Strudelify

Cinematic Orchestral Suite

teesee1

KeyF majorTempo152 bpm
0:00/0:00
// Cinematic Orchestral Suite — teesee1
// 152 bpm, 4/4, key F 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 "Bb 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" named as a brass, played on brass section (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/106833; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(152/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 · flute
const flute = note(`<
  ~@6 A@5 ~@2 B@4 C@8 D@6 E@8 F ~@35 G H G I G J K L G H G I M N O P G H G I G J K L Q@4 ~@25 R
>`.pickRestart({
  A: "[~@11 [bb4,db5]@4 [db5,gb5]@4 ~ [bb5,db6]@4 [ab5,c6]@13 [gb5,bb5]@2 [ab5,c6]@2 [bb5,d6]@34 ~@5]/5", // Bbm Gb5 Bbm Ab Gb Ab Bb
  B: "[~ ab4@4 db5@4 ab5@4 bb5@8 ~ g5@8 f5@13 e5@2 f5@2 g5@8 c5@8 ~]/4", C: "[a4@59 ~@5]/8",
  D: "[~@7 a4@68 bb4@8 [f4,g4]@8 a4@5]/6", E: "[~@4 g4@8 f4@17 g4@17 a4@36 bb4@22 [f4,g4]@12 e4@12]/8", F: "f5 ~@7",
  G: "~ f4 c5 f5 e5@3 f5", H: "d5", I: "c6@6 bb5 a5 g5@8", J: "d5@2 e5 f5 c5@4", K: "~ d5 e5 f5 c5@2 a4@2", L: "g4 c5",
  M: "ab5@6 g5 ab5 bb5@4 eb5@4", N: "g5@6 f5 g5 ab5@4 db5@4", O: "f5@6 e5 f5 g5@4 c5@4", P: "f5 e5", Q: "f5/4",
  R: "~ c6 ~ f6 ~@4",
})).s("gm_flute").gain(0.3).pan(0.9)

// other · flute · soft notes
const flute_soft = note("<~@105 A@8 B@5 C@4 D@5 ~@2>".pickRestart({
  A: "[~ a4@59 ~@4]/8", B: "[~@9 a4@67 bb4@4]/5", C: "[~@5 [f4,g4]@8 a4@8 ~ g4@8 f4@17 g4@17]/4",
  D: "[a4@35 bb4@20 ~ [f4,g4]@11 e4@11 ~@2]/5", // Fsus2
})).s("gm_flute").gain(0.2).pan(0.9)

// other · oboe
const oboe = note(`<
  A@5 B@4 ~ C@3 ~ D@3 E@3 F G@2 H@8 I@3 J@5 K ~@19 L M L N L O P Q L M L N R S T U V W V X V Y T Z V W V X AA AB AC AD V
  W V X V Y T Z AE@4 ~@25 AF
>`.pickRestart({
  A: "[~@6 bb3@4 eb4@4 bb4@4 ~ a4@12 bb4@4 g4@34 ~@4 db4@4 ~ gb4@2]/5", B: "[~@2 db5@4 c5@13 db5@4 bb4@34 ~@7]/4",
  C: "[~@15 [d4,f4]@4 [f4,bb4]@4 [d5,f5]@4 [e5,g5]@8 ~ [c5,e5]@8 ~@4]/3", D: "[~@14 a4@13 g4@2 a4@2 bb4@8 e4@8 ~]/3",
  E: "[f4@17 ~@4 f4@3]/3", F: "~@3 [a4,c5]@8 [g4,bb4]@5", G: "[~@3 [f4,a4]@29]/2",
  H: "[~@5 [d4,bb4]@17 [e4,c5]@17 [f4,a4]@34 [d4,bb4]@17 [f4,c5]@17 ~@4 d5@4 e5@4 f5@4 c5@5]/8", // Gm C F Gm F5
  I: "[~@4 a4@8 g4@17 c5@17 ~@2]/3",
  J: "[~@2 f4@4 ~ c5@4 f5@4 e5@19 ~@5 [bb3,d4]@5 ~ [d4,f4]@5 [f4,c5]@5 ~ f4@12 e4@12, ~@7 g4@3]/5", K: "f5 ~@7",
  L: "~ f5!3", M: "f5", N: "f5@2 f5!2 f5@2 f5@2", O: "f5@2 f5!2 f5@4", P: "~ bb4 c5 d5 a4@2 f4@2", Q: "f4 e4",
  R: "~ f5 e5 c5", S: "d5@2 c5 bb4 a4@4", T: "~ d5 e5 f5 c5@2 a4@2", U: "g4@4 c5!2 c5@2", V: "~ f4 c5 f5 e5@3 f5",
  W: "d5", X: "c6@6 bb5 a5 g5@8", Y: "d5@2 e5 f5 c5@4", Z: "g4 c5", AA: "f5@6 eb5 f5 g5@4 c5@4",
  AB: "eb5@6 db5 eb5 f5@4 bb4@4", AC: "db5@6 bb4 c5 db5@4 g4@4", AD: "db5 c5", AE: "f5/4", AF: "~ c5 ~ f5 ~@4",
})).s("gm_oboe").gain(0.4).pan(0.9)

// other · oboe · soft notes
const oboe_soft = note("<~@105 A@3 B C@2 D@7 E@4 F G@4 ~@2>".pickRestart({
  A: "[~ f4@17 ~@4 f4@2]/3", B: "~@4 [a4,c5]@8 ~ [g4,bb4]@3", C: "[~@5 [f4,a4]@27]/2",
  D: "[~@7 [d4,bb4]@17 [e4,c5]@17 [f4,a4]@34 [d4,bb4]@17 [f4,c5]@17 ~@3]/7", // Gm C F Gm F5
  E: "[~ d5@4 e5@4 f5@4 c5@8 ~ a4@8 g4@17 c5@17]/4", F: "~@4 f4@4 c5@4 ~ f5@3",
  G: "[~ e5@18 ~@5 [bb3,d4]@5 [d4,f4]@5 ~ [f4,c5]@5 f4@11 e4@11 ~@2, ~@20 g4@11 ~]/4", // Bb Dm F5
})).s("gm_oboe").gain(0.2).pan(0.9)

// chords · clarinet · "Bb Clarinet"
const clarinet = note(`<
  ~@2 A@6 B@6 C@3 D@2 E@5 F@4 G@8 H@3 I J K J K J K J K ~@2 J K J K J K ~@2 J K J K J K ~@3 L M L M N@2 O P Q R Q S Q T
  U V Q R Q S ~@2 W X Q R Q S Q T U V Y@4 ~@25 Z
>`.pickRestart({
  A: "[~@71 gb4@25, ~ eb2@31]/6", B: "[~@9 [bb1,f4]@67 db2@20]/6", C: "[~@14 [f2,a4]@17 c3@8 c2@8 ~, ~@31 c5@17]/3",
  D: "[f1,c4]/2", E: "[~@2 [bb1,d4]@33 [f1,c4]@34 [bb1,d5]@11]/5",
  F: "[~@2 c5@2 d5@2 [c2,e5]@17 [f1,c4]@34 [bb1,bb3]@7]/4", // C F5 Bb
  G: "[~ c4@4 d4@4 ~ [c2,c4]@17 [bb1,bb4]@16 c2@8 ~ d2@8 f4@17 g4@17 [f1,a4]@34, ~@43 a4@17 c2@34 ~@34]/8", // C Bb F
  H: "[~ [d2,d4]@11 [c2,g4]@12]/3", I: "[f2,f4] ~@7", J: "~@14 c2 [d2,e2]", K: "f2 ~@7", L: "f2 ~ f2@6",
  M: "bb1@12 ~@2 c2 [d2,e2]", N: "f2/2", O: "bb1 f2", P: "c2 ~", Q: "~ f4 c5 f5 e5@3 f5, f2", R: "[bb2,d5]",
  S: "c6@6 bb5 a5 [c3,g5]@8, bb2 ~", T: "[bb2,d5]@2 e5 f5 a2@2 f2@2, ~ g2 c5@2",
  U: "~ d5 e5 f5 [c2,c5]@2 [f2,a4]@2, bb1 d2 ~@2", V: "c3 bb2 a2 g2, g4 c5", W: "bb2 e2", X: "c2", Y: "[db2,f5]/4",
  Z: "~ [c3,e4] ~ [f2,f4] ~@4", // C F
})).s("gm_clarinet").gain(0.3).pan(0.9)

// chords · clarinet · "Bb Clarinet" · soft notes
const clarinet_soft = note("<~@105 A@2 B@5 C@4 D@6 E@5 ~@2>".pickRestart({
  A: "[~ [f1,c4]@15]/2", B: "[~@4 [bb1,d4]@33 [f1,c4]@34 [bb1,d5]@9]/5",
  C: "[~@4 c5@2 d5@2 [c2,e5]@17 [f1,c4]@34 [bb1,bb3]@5]/4", // C F5 Bb
  D: "[~@3 c4@4 d4@4 ~ [c2,c4]@16 [bb1,bb4]@17 c2@8 ~ d2@8 f4@17 g4@17, ~@45 a4@17 c2@34]/6", // C Bb
  E: "[[f1,a4]@35 [d2,d4]@20 ~ [c2,g4]@22 ~@2]/5", // F D C5
})).s("gm_clarinet").gain(0.2).pan(0.9)

// other · bassoon
const bassoon = note(`<
  A@4 B@4 C@8 D E@2 F@2 G@2 H@8 I@8 J ~@23 K L M N ~@4 O P Q R S T S U S V W X S T S U Y Z AA AB S T S U S V W X AC AD
  AE AF ~@2 AG@2 AH@2 AI@2 AJ@7 AK@4 AL@5 AM AN
>`.pickRestart({
  A: "[~ eb3@31]/4", B: "[~@5 gb3@59]/4", C: "[~@9 bb3@67 ab2@34 a3@17 bb3]/8", D: "~@7 e3@8 ~", E: "c3/2",
  F: "[~ f3@15]/2", G: "[~@3 c3@29]/2", H: "[~@5 f3@17 g3@17 c3@34 a3@17 c3@17 bb3@8 g3@8 a3@5]/8",
  I: "[~@2 c3@4 c3@17 f3@18 f3@11 c3@12]/8", J: "f3 ~@7", K: "c4 f3", L: "g3 c3 a3 f3", M: "g3 f3 a3 c3", N: "f3 e3",
  O: "~ c4 bb3 g3", P: "a3@2 a3 g3 f3@4", Q: "~ bb3 c4 d4 a3@2 f3@2", R: "c3@4 g3!2 g3@2", S: "f2 ~ a3@6", T: "d4",
  U: "d4 e4", V: "f3 bb2 c3 a2", W: "f3 bb3 a3 c4", X: "g3 e4", Y: "db4 eb4", Z: "c4 db4", AA: "bb3 g3", AB: "g3 c4",
  AC: "~ f2 ab2 db3 f3@3 eb3", AD: "db3 ab2 db3 f3 ab3@3 gb3", AE: "ab2 f2 ab2 db3 f3 db3 f3 ab3", AF: "db4",
  AG: "[~ c3@15]/2", AH: "[~ f3@7]/2", AI: "[~@5 c3@27]/2", AJ: "[~@7 f3@17 g3@17 c3@34 a3@17 c3@16 bb3@4]/7",
  AK: "[~@5 g3@8 a3@8 ~ c3@8 c3@34]/4", AL: "[f3@35 f3@20 ~ c3@22 db3@2]/5", AM: "ab2 db3 f3 ab3 f3 ab3 db4 f4",
  AN: "~ c4 ~ f3 ~@4",
})).s("gm_bassoon").gain(0.25).pan(0.9)

// other · brass section · "Horn"
const brass_section = note(`<
  ~@13 A@4 B@2 C@2 D@2 E@8 F@3 G@5 H ~@23 I J@2 K ~@4 L M N O P Q P R P S T U P Q P R V W X Y P Q P R P S T U Z AA AB AC
  ~@2 AD@2 AE@2 AF@2 AG@8 AH@3 AI AJ@4 AK AL
>`.pickRestart({
  A: "[~ ab3@4 db4@4 ab4@4 bb4@8 ~ g4@8 f4@13 e4@2 f4@2 g4@8 c4@8 ~]/4", B: "a3/2", C: "[~ d4@15]/2",
  D: "[~@3 f4@29]/2", E: "[~@5 bb3@17 c4@17 f4@34 bb3@17 c4@17 bb3@16 c4@5]/8", F: "[~@4 d4@8 g4@17 c5@17 ~@2]/3",
  G: "[~@2 a3@4 ~ c4@4 a4@4 g4@19 ~@5 d4@5 ~ f4@5 c5@5 ~ g4@24]/5", H: "f4 ~@7", I: "[c4,c5] [f3,f4]",
  J: "[bb3,bb4] [g3,g4] [a3,a4] [f3,f4]", K: "f4 e4, g4", L: "~ a4 g4 e4", M: "f4@2 e4 d4 c4@4",
  N: "~ bb4 c5 d5 a4@2 f4@2", O: "c4@4 f4!2 f4@2", P: "~ f3 c4 f4 e4@3 f4", Q: "d4", R: "c5@6 bb4 a4 g4@8",
  S: "d4@2 e4 f4 c4@4", T: "~ d4 e4 f4 c4@2 a3@2", U: "g3 c4", V: "[f4,ab4] [g4,bb4]", W: "[eb4,g4] [f4,ab4]",
  X: "[db4,f4] [bb3,g4]", Y: "f4 e4, c4", Z: "~ f3 ab3 db4 f4@3 eb4", AA: "db4 ab3 db4 f4 ab4@3 gb4",
  AB: "ab3 f3 ab3 db4 f4 db4 f4 ab4", AC: "db5", AD: "[~ a3@15]/2", AE: "[~ d4@7]/2", AF: "[~@5 f4@27]/2",
  AG: "[~@7 bb3@17 c4@17 f4@34 bb3@17 c4@16 bb3@17 c4@3]/8", AH: "[~@6 d4@8 g4@17 c5@17]/3", AI: "~@4 a3@4 c4@4 ~ a4@3",
  AJ: "[~ g4@18 ~@5 d4@5 f4@5 ~ c5@5 g4@22 ab3@2]/4", AK: "f3 ab3 db4 f4 db4 f4 ab4 db5", AL: "~ g4 ~ f4 ~@4",
})).s("gm_brass_section").gain(0.25).pan(0.9)

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  ~@39 A ~@11 B C B D B E F G H C H I H J F G H C H I H J F K B C B L B E F G B C B L ~@4 B C B L B E F G ~@2 M N ~@25 O
>`.pickRestart({
  A: "f5 ~@7", B: "~ f4 c5 f5 e5@3 f5", C: "d5", D: "c6@2 bb5 a5 g5@4", E: "d5@2 e5 f5 c5@4", F: "~ d5 e5 f5 c5@2 a4@2",
  G: "g4 c5", H: "~ f5 e5 c5", I: "d5@2 c5 bb4 c5@2 a4@2", J: "d5@2 c5 bb4 a4@4", K: "g4@4 bb4!2 bb4@2",
  L: "c6@6 bb5 a5 g5@8", M: "f4 db4 f4 ab4 db5 ab4 db5 f5", N: "ab5", O: "~ g4 ~ f4 ~@4",
})).s("gm_trumpet").gain(0.4)

// other · timpani
const timpani = note(`<
  ~@8 A ~@3 B ~ C@2 D E F G ~ H ~ I J@2 ~ K L M N O P Q@2 ~ R S T U ~@19 V W X ~ X ~@3 V W X ~@5 Y W Z AA X AB AC AD Y W
  Z AA ~@4 Y W Z AA X AB AC AD ~@29 AE
>`.pickRestart({
  A: "bb2@4 ~ bb2@2 bb2@2 bb2@4 ~@3", B: "~@3 f3", C: "[~@7 f3@2 ~@7]/2", D: "~@7 c3@4 ~ c3@2 c3@2", E: "f3 ~@3",
  F: "~@9 f3@4 f3@2 ~", G: "f3 bb2@2 ~@5", H: "~@3 f3@4 ~@9", I: "~@5 bb2@4 ~@7",
  J: "[~@2 bb2@2 bb2@2 c3@4 ~@5 c3@4 c3@4 f3@4 ~@5]/2", K: "~@9 bb2@4 ~@3", L: "~@5 f3@2 ~",
  M: "~@2 f3@4 f3@2 f3@2 ~ f3@4 ~", N: "~@3 bb2@4 ~@4 c3@4 ~", O: "~@2 c3@2 c3!2 c3@2", P: "~@5 c3@4 ~@4 c3@3",
  Q: "[~ c3@4 ~ c3@4 c3@4 f3@4 ~@14]/2", R: "~@2 bb2@5 ~@9", S: "~@4 c3@3 ~", T: "~@4 c3@6 c3@3 c3@3", U: "f3 ~@7",
  V: "[f2,f3] ~@7", W: "~@10 f2@2 bb2@2 c3!2", X: "f2 ~@7", Y: "f2 ~ f3 ~@5", Z: "f2 ~@4 f2 ~@2",
  AA: "bb2 ~@3 c3 ~ c3 ~", AB: "bb2 ~@3 f2 ~@3", AC: "bb2 ~@3 c3 ~@3", AD: "c3 ~ c3 ~ c3 ~ c3 ~", AE: "~ c3 ~ f3 ~@4",
})).s("gm_timpani").gain(0.3).pan(0.6)

// other · timpani · soft notes
const timpani_soft = note("<~@106 A@2 ~ B ~ C D E ~ F G H I J@3 K ~ L M N ~@2>".pickRestart({
  A: "[~@11 f3@4 f3@2 f3@2 ~ bb2@4 ~@8]/2", B: "~@5 f3@4 ~@7", C: "~@7 bb2@4 ~@5", D: "~@2 bb2!2 c3@2 ~@2",
  E: "c3@4 ~ c3@4 f3@4 ~@3", F: "~@11 bb2@4 ~", G: "~@3 f3", H: "~@2 f3@2 f3!2 f3@2", I: "~@5 bb2@4 ~@4 c3@3",
  J: "[~@6 c3@4 c3@2 c3@2 c3@4 ~@5 c3@4 ~@4 c3@4 c3@4 ~ c3@4 c3@4]/3", K: "f3 ~@3", L: "~@3 bb2@5 ~@8", M: "~@4 c3@3 ~",
  N: "~@3 c3@5 c3@3 c3@3 ~@2",
})).s("gm_timpani").gain(0.2).pan(0.6)

// chords · string ensemble 1 · "Violas"
const string_ensemble_1 = note(`<
  ~@2 A B C@5 D@2 ~@2 E@4 F G H@3 I J@5 K@6 L@5 M N M N M N M N M O@2 P M N M N M O@2 P M N M N Q R S T M N M N ~@4 U V
  U W U X Y Z U V U W AA AB AC AD U V U W U X Y Z AE@4 ~@2 AF@7 AG@2 AH@4 AI@4 F AJ@4 ~ AK
>`.pickRestart({
  A: "~@2 g3 bb3", B: "g4 f4@3", C: "[~ eb4@2 f4@2 gb4@68 ~@4 d4@3]/5", D: "[~ f4@4 d5@4 ~ c5@12 bb4@4 ~@6]/2",
  E: "[~ ab3@4 db4@4 ab4@4 bb4@8 ~ g4@8 f4@13 e4@2 f4@2 g4@8 c4@8 ~]/4", F: "~@4 f3@4 c4@4 ~ f4@3", G: "~ e4@12 f4@3",
  H: "[~ d4@17 ~@2 f3@2 c4@2]/3", I: "f4 e4@3",
  J: "[~ f4@4 f4@8 ~ bb4@4 a4@4 g4@17 ~@4 f3@4 c4@4 ~ f4@4 e4@13 f4@4 f4@7]/5",
  K: "[~ bb4@4 d5@4 ~ f4@17 ~@4 bb4@4 c5@4 d5@4 a4@8 ~ f4@8 f4@17 e4@17 ~@2]/6",
  L: "[~@2 f3@4 ~ c4@4 f4@4 e4@19 ~@5 bb3@5 ~ d4@5 f4@5 ~ f4@12 e4@12]/5",
  M: "[f4,a4] ~ [f4,a4] ~ [f4,a4]@4 [f4,a4] ~ [f4,a4] ~ [f4,a4]@4", // F
  N: "[f4,bb4] ~ [f4,bb4] ~ [f4,bb4]@4 [f4,bb4] ~ [f4,bb4] ~ [f4,bb4]@4", // Bb5
  O: "[f4,bb4] ~ [f4,bb4] ~ [f4,bb4]@4 [f4,a4] ~ [f4,a4] ~ [f4,a4]@4", // Bb5 F
  P: "[f4,g4] ~ [f4,g4] ~ [f4,g4]@4 [e4,g4] ~ [e4,g4] ~ [e4,g4]@4", Q: "c4 f3", R: "g3 c3 a3 f3", S: "g3 f3 a3 c3",
  T: "g3 c4", U: "f3 ~ a3@6", V: "d4", W: "d4 e4", X: "d4 bb3 c4 a3", Y: "f3 bb3 a3 c4", Z: "f4 e4",
  AA: "f5@6 eb5 f5 g5@4 c5@4", AB: "eb5@6 db5 eb5 f5@4 bb4@4", AC: "db5@6 bb4 c5 db5@4 g4@4", AD: "db5 c5", AE: "ab4/4",
  AF: "[~@6 f3@4 c4@4 f4@4 ~ e4@12 f4@4 ~ d4@34 ~@4 f3@4 c4@4 f4@4 e4@13 f4@4 f4@8 ~]/7",
  AG: "[bb4@4 a4@4 g4@17 ~@4 f3@3]/2", AH: "[~ c4@4 ~ f4@4 e4@12 f4@4 ~ f4@8 bb4@4 d5@4 ~ f4@17 ~@3]/4",
  AI: "[~ bb4@4 c5@4 d5@4 a4@8 ~ f4@8 f4@17 e4@17]/4", AJ: "[~ e4@18 ~@5 bb3@5 d4@5 ~ f4@5 f4@11 e4@11 ~@2]/4",
  AK: "~ e4 ~ a3 ~@4",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.6)

// other · string ensemble 1 · "Violoncellos"
const string_ensemble_1_2 = note(`<
  ~@8 A@4 B@5 C D E@3 F G@5 H@6 I@5 J K J K J K J K J ~@2 K J K J K J ~@2 K J K J K J ~@3 L M L M N@2 O P Q R Q S Q T O
  U Q R Q S ~ V W X Q R Q S Q T O U Y@4 ~@25 Z
>`.pickRestart({
  A: "[~@9 bb2@55]/4", B: "[~@6 f2@17 c3@17]/5", C: "~@4 a2@4 c3@4 ~ a3@3", D: "~ g3@12 a3@3",
  E: "[~ f3@17 ~@2 a2@2 c3@2]/3", F: "a3 g3@3",
  G: "[~ a3@4 d4@8 ~ bb3@8 c4@17 ~@4 a2@4 c3@4 ~ a3@4 g3@13 a3@4 bb3@7]/5",
  H: "[~ g3@8 ~ a3@17 ~@4 f3@4 bb3@4 c4@4 f3@8 ~ g2@8 c3@34 ~@2]/6",
  I: "[~@2 a2@4 ~ c3@4 a3@4 g3@19 ~@5 bb2@5 ~ d3@5 f3@5 ~ c3@24]/5", J: "f3 ~@7", K: "~@14 c3 [d3,e3]", L: "f3 ~ c3@6",
  M: "f3@12 ~@2 c3 [d3,e3]", N: "f3/2", O: "bb2 d3 c3 f3", P: "f3@4 c3!2 c3@2", Q: "f2 ~ a3@6", R: "f3", S: "bb3 c4",
  T: "f3 bb2 c3 a2", U: "c3 bb2 a2 g2", V: "ab3 db3", W: "g3 g2", X: "c3", Y: "ab3/4", Z: "~ g3 ~ c3 ~@4",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.9)

// other · string ensemble 1 · "Violoncellos" · soft notes
const string_ensemble_1_soft = note("<~@105 A@7 B@2 C@4 D@4 E F@4 ~@2>".pickRestart({
  A: "[~@6 a2@4 c3@4 a3@4 ~ g3@12 a3@4 ~ f3@34 ~@4 a2@4 c3@4 a3@4 g3@13 a3@4 d4@8 ~]/7", B: "[bb3@8 c4@17 ~@4 a2@3]/2",
  C: "[~ c3@4 ~ a3@4 g3@12 a3@4 ~ bb3@8 g3@8 ~ a3@17 ~@3]/4", D: "[~ f3@4 bb3@4 c4@4 f3@8 ~ g2@8 c3@34]/4",
  E: "~@4 a2@4 c3@4 ~ a3@3", F: "[~ g3@18 ~@5 bb2@5 d3@5 ~ f3@5 c3@22 ~@2]/4",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.9)

stack(
  flute, flute_soft, oboe, oboe_soft, clarinet, clarinet_soft, bassoon, brass_section, trumpet, timpani, timpani_soft,
  string_ensemble_1, string_ensemble_1_2, string_ensemble_1_soft
)