Strudelify

tilteyam

tesbia

KeyF majorTempo90 bpm
0:00/0:00
// tilteyam — tesbia
// 90 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 2 "Oboe" named as a reed, played on oboe (its tremolo strings patch is not one); ch 3 "Clarinete en Si♭" named as a reed, played on clarinet (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5889143; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 137 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(90/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.

// chords · pizzicato strings · "Flauta"
const pizzicato_strings = note(`<
  A B@2 C D B@2 C E ~@7 F G@2 H I G@2 H J ~@7 K L@2 M N L@2 M O G@2 H I G@2 H J ~@7 K L@2 M N L@2 M P Q@2 C D Q@2 C E
  ~@11 R S@2 T U@3 V@3 W@2 T X@3 Y@3 Z AA AB@4 AC@2 AD AE@2 AF AG@3 AH@3 AI@2 AJ AK@6 AL@3 AM ~@3
>`.pickRestart({
  A: "~@6 f4 e4", B: "d4@11 ~ a4@11 ~ f4@4 e4@4", C: "d4@11 ~ e4@8 d4@2 c4@2 b3@4 c4@4", D: "d4@23 ~ f4@4 e4@4",
  E: "d4@23 ~@9", F: "~@6 d5!2", G: "c5@11 ~ d5@11 ~ d5@4 d5@4", H: "c5@11 ~ e5@11 ~ c5@4 bb4@4",
  I: "a4@23 ~ d5@4 d5@4", J: "a4@15 ~@17", K: "~@6 f5 e5", L: "d5@11 ~ a5@11 ~ f5@4 e5@4",
  M: "d5@11 ~ e5@8 d5@2 c5@2 b4@4 c5@4", N: "d5@23 ~ f5@4 e5@4", O: "d5@23 ~ d5@4 d5@4", P: "d5@15 ~@9 f4@4 e4@4",
  Q: "d4@11 ~ a4@4 f4@4 g4@4 f4@4 e4@4", R: "~@4 d5@3 d5@3 c5@8 d5@8 d5@3 d5@3",
  S: "[c5@8 d5@8 ~ d5@2 d5@3 c5@8 e5@8 ~ c5@3 bb4@2 a4@16 ~ d5@3]/2", T: "d5@2 c5@8 ~ d5@8 d5@3 d5@3 c5@7",
  U: "[~ d5@8 d5@3 d5@3 c5@8 e5@8 c5@3 bb4@3 a4@16 ~ d5@2 d5@3 c5@8 d5@8 ~ d5@2 d5@3 c5@8 ~ d5@6]/3",
  V: "[~@2 d5@3 d5@2 c5@8 ~ e5@8 c5@3 bb4@3 a4@16 d5@3 d5@3 c5@8 d5@8 d5@3 d5@3 c5@8 d5@8 d5@3 d5@3]/3",
  W: "[c5@8 e5@8 ~ c5@2 bb4@3 a4@16 ~ d5@3 d5@2 c5@8 ~ d5@8 d5@3]/2",
  X: "[~ e5@8 c5@3 bb4@3 a4@16 d5@3 d5@3 c5@8 d5@8 ~ d5@2 d5@3 c5@8 d5@8 ~ d5@2 d5@3 c5@8 ~ e5@6]/3",
  Y: "[~@2 c5@3 bb4@2 a4@16 ~ d5@3 d5@3 c5@8 d5@3 bb4@2 c5@3 a4@3 bb4@3 g4@8 a4@3 f4@3 g4@2 e4@3 f4@3 d4@8 e4@5 ~ c4@2 b3@3 c4@3]/3",
  Z: "d4@16 ~ d5@2 d5@3 c5@8 d5@2", AA: "~ bb4@3 c5@3 a4@3 bb4@2 g4@8 ~ a4@2 f4@3 g4@3 e4@3",
  AB: "[f4@2 d4@8 ~ e4@5 c4@3 b3@3 c4@3 d4@16 f5@3 e5@3 d5@8 a5@3 f5@3 g5@2 f5@3 e5@3 d5@8 a5@3 f5@3 g5@3 f5@2 e5@3 d5@8 e5@5 ~ d5 c5 ~ b4@2 c5@3 d5@15]/4",
  AC: "[~@2 f5@3 e5@2 d5@8 ~ a5@2 f5@3 g5@3 f5@3 e5@3 d5@8 a5@3 f5@2 g5@3 f5@3 e5@3 d5@8 e5@4]/2",
  AD: "~@2 d5 c5 b4@3 c5@3 d5@16 d5@3 d5@3", AE: "[c5@8 d5@8 ~ d5@2 d5@3 c5@8 d5@8 ~ d5@3 d5@2 c5@8 ~ e5@8 c5@3]/2",
  AF: "bb4@2 a4@16 ~ d5@3 d5@3 c5@7",
  AG: "[~ d5@8 d5@3 d5@3 c5@8 d5@8 d5@3 d5@3 c5@8 e5@8 ~ c5@2 bb4@3 a4@16 ~ d5@2 d5@3 c5@8 ~ d5@6]/3",
  AH: "[~@2 d5@3 d5@2 c5@8 ~ d5@8 d5@3 d5@3 c5@8 e5@8 c5@3 bb4@3 a4@16 d5@3 d5@3 c5@8 d5@3 bb4@3 c5@2 a4@3 bb4@3]/3",
  AI: "[g4@8 a4@3 f4@3 g4@3 e4@2 f4@3 d4@8 e4@5 ~ c4@3 b3@3 c4@2 d4@16 ~ d5@3]/2",
  AJ: "d5@2 c5@8 ~ d5@3 bb4@2 c5@3 a4@3 bb4@3 g4@7",
  AK: "[~ a4@3 f4@2 g4@3 e4@3 f4@3 d4@8 e4@5 ~ c4@2 b3@3 c4@3 d4@16 ~ f5@2 e5@3 d5@8 a5@3 f5@3 g5@3 f5@2 e5@3 d5@8 ~ a5@2 f5@3 g5@3 f5@3 e5@2 d5@8 ~ e5@5 d5 ~ c5 b4@3 c5@3 d5@16 f5@3 e5@3 d5@8 a5@3 f5@3 g5@2 f5@3 e5@3 d5@8 a5@3 f5@3 g5@2 f5@3 e5@3]/6",
  AL: "[d5@8 e5@5 ~ d5 c5 ~ b4@2 c5@3 d5@16 ~ d5@3 d5@2 d5@8 ~ a5@8 d6@5 bb4@8 ~ f5@8 f5@5 ~ g4@7]/3",
  AM: "~ d5@8 g4@3 g4@3 d5@11 ~@6",
})).s("gm_pizzicato_strings").gain(0.3)

// chords · pizzicato strings · "Flauta" · soft notes
const pizzicato_strings_soft = note(`<
  ~@73 A B A C ~ D E@3 F@3 G@2 H I@3 J@3 K@2 L M N@2 O@3 P@2 Q R@3 S@3 T@2 U V@3 F@3 G@2 H I@3 W@3 K@2 L X@3 Y
>`.pickRestart({
  A: "g2@3 g2@3 g2@2", B: "d3@3 d3@3 ~@2", C: "d3@3 ~@13", D: "~@25 d3@7",
  E: "[~ a3@8 d4@3 a3@3 bb2@8 f3@8 bb3@3 f3@3 g2@8 d3@8 ~ g3@2 d3@3 d3@8 a3@8 ~ d4@2 a3@3 d3@8 ~ a3@6]/3",
  F: "[~@2 d4@3 a3@2 bb2@8 ~ f3@8 bb3@3 f3@3 g2@8 d3@8 g3@3 d3@3 d3@8 a3@8 ~@6 d3@8 a3@8 d4@3 a3@3]/3",
  G: "[bb2@8 f3@8 ~ bb3@2 f3@3 g2@8 d3@8 ~ g3@3 d3@2 d3@8 ~ a3@8 ~@3]/2", H: "~@2 d3@8 ~ a3@8 d4@3 a3@3 bb2@7",
  I: "[~ f3@8 bb3@3 f3@3 g2@8 d3@8 g3@3 d3@3 d3@8 a3@8 ~@6 d3@8 a3@8 ~ d4@2 a3@3 bb2@8 ~ f3@6]/3",
  J: "[~@2 bb3@3 f3@2 g2@8 ~ d3@8 g3@3 d3@3 d3@8 a3@8 ~@6 d3@8 a3@8 d4@3 a3@3 bb2@8 f3@8 bb3@3 f3@3]/3",
  K: "[g2@8 d3@8 ~ g3@2 d3@3 d3@8 a3@8 ~@6 d3@8 ~ a3@8 d4@3]/2", L: "a3@2 bb2@8 ~ f3@8 bb3@3 f3@3 g2@7",
  M: "~ d3@8 g3@3 d3@3 d3@8 a3@8 ~", N: "[~@5 d3@8 a3@8 ~ d4@2 a3@3 bb2@8 f3@8 ~ bb3@2 f3@3 g2@8 ~ d3@6]/2",
  O: "[~@2 g3@3 d3@2 d3@8 ~ a3@8 ~@6 d3@8 a3@8 d4@3 a3@3 bb2@8 f3@8 bb3@3 f3@3 g2@8 d3@8 g3@3 d3@3]/3",
  P: "[d3@8 a3@8 ~@6 d3@8 a3@8 ~ d4@3 a3@2 bb2@8 ~ f3@8 bb3@3]/2", Q: "f3@2 g2@8 ~ d3@8 g3@3 d3@3 d3@7",
  R: "[~ a3@8 ~@6 d3@8 a3@8 d4@3 a3@3 bb2@8 f3@8 ~ bb3@2 f3@3 g2@8 d3@8 ~ g3@2 d3@3 d3@8 ~ a3@6]/3",
  S: "[~@2 d4@3 a3@2 d3@8 ~ a3@8 d4@3 a3@3 bb2@8 f3@8 bb3@3 f3@3 g2@8 d3@8 g3@3 d3@3 d3@8 a3@8 ~@6]/3",
  T: "[d3@8 a3@8 ~ d4@2 a3@3 bb2@8 f3@8 ~ bb3@3 f3@2 g2@8 ~ d3@8 g3@3]/2", U: "d3@2 d3@8 ~ a3@8 ~@6 d3@7",
  V: "[~ a3@8 d4@3 a3@3 bb2@8 f3@8 bb3@3 f3@3 g2@8 d3@8 ~ g3@2 d3@3 d3@8 a3@8 ~@6 d3@8 ~ a3@6]/3",
  W: "[~@2 bb3@3 f3@2 g2@8 ~ d3@8 g3@3 d3@3 d3@8 a3@8 d4@3 a3@3 d3@8 a3@8 d4@3 a3@3 bb2@8 f3@8 bb3@3 f3@3]/3",
  X: "[~ d3@8 g3@3 d3@3 d3@8 a3@8 d4@3 a3@3 g2@8 g2@8 ~ g2@5 d3@8 d3@8 ~@6 g2@8 ~ g2@6]/3", Y: "~@2 b2@5 d3@22 ~@3",
})).s("gm_pizzicato_strings").gain(0.2)

// other · clarinet · "Clarinete en Si♭"
const clarinet = note(`<
  ~ A B C D A B C E A B C D A B C F G@2 H I G@2 H J ~@7 K L@2 M N L@2 M O G@2 H I G@2 H J ~@7 K L@2 M N L@2 M P A B C D
  A B C Q ~@11 R S@2 T U@2 ~@16 V@3 W@2 X Y@2 Z ~@10 AA@5 AB@3 AC ~@3
>`.pickRestart({
  A: "d4 a4 d5 a4 d5 a4 d5 a4, d2@3 a2@3 d3@2", B: "bb3 f4 bb4 f4 bb4 f4 bb4 f4, bb1@3 f2@3 f2@2",
  C: "g3 d4 g4 d4 g4 d4 [g1,g4] [g1,d4], g1@3 d2@3 ~@2", D: "d4 a4 d5 a4 d5 a4 d5 a4, d2 ~",
  E: "d3 a3 d4 a3 d4 a3 ~@2, d2 ~", F: "d4 a4 d5 a4 d5 a4 d5!2", G: "c5@3 d5@3 d5!2", H: "c5@3 e5@3 c5 bb4",
  I: "a4@6 d5!2", J: "a4 ~", K: "~@6 f5 e5", L: "d5@3 a5@3 f5 e5", M: "d5@6 e5@4 d5 c5 b4@2 c5@2", N: "d5@6 f5 e5",
  O: "d5@6 d5!2", P: "d5 ~", Q: "d4 a4 d5 a4 d5 a4 ~@2, d2 ~", R: "~@4 d5@3 d5@3 c5@8 d5@8 d5@3 d5@3",
  S: "[c5@8 d5@8 ~ d5@2 d5@3 c5@8 e5@8 ~ c5@3 bb4@2 a4@17 d5@3]/2", T: "d5@2 c5@8 ~ d5@8 d5@3 d5@3 c5@7",
  U: "[~ d5@8 d5@3 d5@3 c5@8 e5@8 c5@3 bb4@3 a4@17 ~@10]/2",
  V: "[~@9 f5@3 e5@3 d5@8 a5@3 f5@3 g5@2 f5@3 e5@3 d5@8 a5@3 f5@3 g5@3 f5@2 e5@3 d5@8 e5@6 d5 c5 ~ b4@2 c5@3 d5@15]/3",
  W: "[~@2 f5@3 e5@2 d5@8 ~ a5@2 f5@3 g5@3 f5@3 e5@3 d5@8 a5@3 f5@2 g5@3 f5@3 e5@3 d5@8 e5@4]/2",
  X: "~@2 d5 c5 b4@3 c5@3 d5@16 d5@3 d5@3", Y: "[c5@8 d5@8 ~ d5@2 d5@3 c5@8 d5@8 ~ d5@3 d5@2 c5@8 ~ e5@8 c5@3]/2",
  Z: "bb4@2 a4@17 ~@13",
  AA: "[~@22 f5@2 e5@3 d5@8 a5@3 f5@3 g5@3 f5@2 e5@3 d5@8 ~ a5@2 f5@3 g5@3 f5@3 e5@2 d5@8 ~ e5@5 d5 ~ c5 b4@3 c5@3 d5@16 f5@3 e5@3 d5@8 a5@3 f5@3 g5@2 f5@3 e5@3 d5@8 a5@3 f5@3 g5@2 f5@3 e5@3]/5",
  AB: "[d5@8 e5@6 d5 c5 ~ b4@2 c5@3 d5@17 d5@3 d5@2 d4@8 ~ a4@8 d5@5 bb3@8 ~ f4@8 f4@6 g3@7]/3",
  AC: "~ d4@8 g3@3 g3@3 d4@11 ~@6",
})).s("gm_clarinet").gain(0.2)

// bass · acoustic bass · "Fagot"
const bass = note(`<
  ~ A B C D A B C D A B C D A B C E F G H I F G H J K L M K@2 L M K N O P Q N O P Q F G H I F G H J K L M K@2 L M K N O
  P Q N O P Q A B C D A B C D R K R S ~ T U@3 V@3 W@2 X Y@3 Z@3 AA@2 AB AC AD@2 AE@3 AF@2 AG@4 AH@3 AI@2 AJ AK@3 V@3
  AL@2 AM AN@3 AO@3 AP@2 AQ AR@3 AS
>`.pickRestart({
  A: "d3@3 a3@3 d4@2", B: "bb2@3 f3@3 f3@2", C: "g2@3 d3@3 g2!2", D: "d3 ~", E: "d3@4 ~@2 d3!2",
  F: "[d2,c3]@3 [d2,d3]@3 d3!2", G: "[bb1,c3]@3 [bb1,d3]@3 d3!2", H: "[g1,c3]@3 [g1,e3]@3 c3 bb2",
  I: "d2@3 d2@3 d3!2, a2@3 ~", J: "d2@3 d2@3 ~@2, a2 ~", K: "d2@3 d2@3 ~@2", L: "bb1@3 bb1@3 ~@2", M: "g1@3 g1@3 ~@2",
  N: "d3@3 a3@3 d4@2, d2 ~@2 a2 ~@2 d3 ~", O: "bb2@3 f3@3 f3@2, bb1 ~@2 f2 ~@2 bb2 ~",
  P: "g2@3 d3@3 g2!2, g1 ~@2 d2 ~@4", Q: "d2 ~@2 a2 ~@4, d3 ~", R: "g1@3 g1@3 g1@2", S: "d2@3 ~@13", T: "~@25 d2@7",
  U: "[~ a2@8 d3@3 a2@3 bb1@8 f2@8 bb2@3 f2@3 g1@8 d2@8 ~ g2@2 d2@3 d2@8 a2@8 ~ d3@2 a2@3 d2@8 ~ a2@6]/3",
  V: "[~@2 d3@3 a2@2 bb1@8 ~ f2@8 bb2@3 f2@3 g1@8 d2@8 g2@3 d2@3 d2@8 a2@8 ~@6 d2@8 a2@8 d3@3 a2@3]/3",
  W: "[bb1@8 f2@8 ~ bb2@2 f2@3 g1@8 d2@8 ~ g2@3 d2@2 d2@8 ~ a2@8 ~@3]/2", X: "~@2 d2@8 ~ a2@8 d3@3 a2@3 bb1@7",
  Y: "[~ f2@8 bb2@3 f2@3 g1@8 d2@8 g2@3 d2@3 d2@8 a2@8 ~@6 d2@8 a2@8 ~ d3@2 a2@3 bb1@8 ~ f2@6]/3",
  Z: "[~@2 bb2@3 f2@2 g1@8 ~ d2@8 g2@3 d2@3 d2@8 a2@8 ~@6 d2@8 a2@8 d3@3 a2@3 bb1@8 f2@8 bb2@3 f2@3]/3",
  AA: "[g1@8 d2@8 ~ g2@2 d2@3 d2@8 a2@8 ~@6 d2@8 ~ a2@8 d3@3]/2", AB: "a2@2 bb1@8 ~ f2@8 bb2@3 f2@3 g1@7",
  AC: "~ d2@8 g2@3 d2@3 d2@8 a2@8 ~", AD: "[~@5 d2@8 a2@8 ~ d3@2 a2@3 bb1@8 f2@8 ~ bb2@2 f2@3 g1@8 ~ d2@6]/2",
  AE: "[~@2 g2@3 d2@2 d2@8 ~ a2@8 ~@6 d2@8 a2@8 d3@3 a2@3 bb1@8 f2@8 bb2@3 f2@3 g1@8 d2@8 g2@3 d2@3]/3",
  AF: "[d2@8 a2@8 ~ d3@2 d3@3 [d2,c3]@8 d3@3 bb2@3 c3@3 [a2,d3]@3 [a2,bb2]@2 [bb1,g2]@8 ~ [f2,a2]@2 f2@3 g2@3 [e2,bb2]@3, ~@15 a2@4 ~@13]/2", // D7 D5 Bbmaj7 Eb F Edim
  AG: "[f2@2 [g1,d2]@8 ~@6 c2@3 [b1,g2]@3 [c2,d2]@3 ~@8 a2@8 ~@6 d2@8 a2@8 d3@3 a2@3 bb1@8 f2@8 ~ bb2@2 f2@3 g1@8 d2@8 ~ g2@2 d2@3 d2@8 ~ [a2,a3]@6, ~@11 [d2,e2]@8 ~@6 d2@17 ~@5 d3@4 ~@4 a3@4 ~@4 d4 ~@2 a3 ~@2 bb2@4 ~@4 f3@4 ~@5 bb3 ~ f3 ~@2 g2@4 ~@4 d3@4 ~@5 g3 ~ d3 ~@2 d3@4 ~@11]/4", // G5 Em Csus2 A Dsus2
  AH: "[~@2 d3@3 a2@2 d2@8 ~ a2@8 d3@3 a2@3 bb1@8 f2@8 bb2@3 f2@3 g1@8 d2@8 g2@3 d2@3 d2@8 a2@8 ~@6, ~@2 d4 ~@2 a3 ~ d3@4 ~@5 a3@4 ~@4 d4 ~@2 a3 ~@2 bb2@4 ~@4 f3@4 ~@4 bb3 ~@2 f3 ~@2 g2@4 ~@4 d3@4 ~@4 g3 ~@2 d3 ~@2 d3@4 ~@4 a3@4 ~@10]/3",
  AI: "[d2@8 a2@8 ~ d3@2 a2@3 bb1@8 f2@8 ~ bb2@3 f2@2 g1@8 ~ d2@8 g2@3]/2", AJ: "d2@2 d2@8 ~ a2@8 ~@6 d2@7",
  AK: "[~ a2@8 d3@3 a2@3 bb1@8 f2@8 bb2@3 f2@3 g1@8 d2@8 ~ g2@2 d2@3 d2@8 a2@8 ~@6 d2@8 ~ a2@6]/3",
  AL: "[bb1@8 f2@8 ~ bb2@2 f2@3 g1@8 d2@8 ~ g2@3 d2@2 d2@8 ~ a2@8 d3@3]/2",
  AM: "d3@2 [d2,c3]@8 ~ d3@3 bb2@2 c3@3 [a2,d3]@3 [a2,bb2]@3 [bb1,g2]@7, ~@11 a2@8 ~@13", // D7 D5 Bbmaj7 Eb
  AN: "[~ [f2,a2]@3 f2@2 g2@3 [e2,bb2]@3 f2@3 [g1,d2]@8 [d2,e2]@6 c2@2 [b1,g2]@3 [c2,d2]@3 ~@8 a2@8 ~@6 d2@8 a2@8 ~ d3@2 a2@3 bb1@8 ~ [f2,f3]@6, ~@37 d2@17 ~@5 d3@4 ~@4 a3@4 ~@5 d4 ~ a3 ~@2 bb2@4 ~@11]/3", // F Edim G5 Dsus2 Em Csus2 F
  AO: "[~@2 bb2@3 f2@2 g1@8 ~ d2@8 g2@3 d2@3 d2@8 a2@8 d3@3 a2@3 d2@8 a2@8 d3@3 a2@3 bb1@8 f2@8 bb2@3 f2@3, ~@2 bb3 ~@2 f3 ~ g2@4 ~@5 d3@4 ~@4 g3 ~@2 d3 ~@2 d3@4 ~@4 a3@4 ~@4 d4 ~@2 a3 ~@2 d3@4 ~@4 a3@4 ~@4 d4 ~@2 a3 ~@2 bb2@4 ~@4 f3@4 ~@4 bb3 ~@2 f3 ~@2]/3",
  AP: "[g1@8 d2@8 ~ g2@2 d2@3 d2@8 a2@8 ~@6 d2@8 ~ a2@8 d3@3, g2@4 ~@4 d3@4 ~@5 g3 ~ d3 ~@2 d3@4 ~@4 a3@4 ~@10 d3@4 ~@5 a3@4 ~@4 d4 ~@2]/2",
  AQ: "a2@2 bb1@8 ~ f2@8 bb2@3 f2@3 g1@7, a3 ~ bb2@4 ~@5 f3@4 ~@4 bb3 ~@2 f3 ~@2 g2@4 ~@3",
  AR: "[~ d2@8 g2@3 d2@3 d2@8 a2@8 d3@3 a2@3 g1@8 g1@8 ~ g1@5 d2@8 d2@8 ~@6 g1@8 ~ [g1,g2]@6, ~ d3@4 ~@4 g3 ~@2 d3 ~@2 d3@4 ~@4 a3@4 ~@4 d4 ~@2 a3 ~@2 g2@4 ~@4 g2@4 ~@5 g2@3 ~@2 d3@4 ~@4 d3@4 ~@10 g2@4 ~@11]/3", // G
  AS: "~@2 b1@5 [d2,d3]@22 ~@3, ~@2 b2@3 ~@27", // D
})).s("gm_acoustic_bass").gain(0.2)

// other · tremolo strings · "Corno en Fa"
const tremolo_strings = note(`<
  ~@24 A B C D E B C D F G H I J G H I J ~@7 A B C D E B C D F G H I J G H I J ~@72
>`.pickRestart({
  A: "~@6 d4!2", B: "c4@3 d4 bb3 c4 a3 bb3", C: "g3@3 a3 f3 g3 e3 f3", D: "d3@3 e3@2 c3 b2 c3", E: "d3@6 d4!2",
  F: "d3@3 ~", G: "d3@3 a3@3 d4@2", H: "bb2@3 f3@3 f3@2", I: "g2@3 d3@3 g2!2", J: "d3 ~",
})).s("gm_tremolo_strings").gain(0.3)

// other · tremolo strings · "Corno en Fa" · soft notes
const tremolo_strings_soft = note("<~@65 A B C D A B C D ~@64>".pickRestart({
  A: "d4@3 a4@3 d5@2", B: "bb3@3 f4@3 f4@2", C: "g3@3 d4@3 g3!2", D: "d4 ~",
})).s("gm_tremolo_strings").gain(0.2)

// other · violin
const violin = note(`<
  ~@64 A B@2 C D B@2 C E ~@5 F G@3 H@3 I@2 J K@2 ~@13 L M N@2 O P Q R S T@2 U ~@7 V W X@2 Y Z@2 AA AB@2 ~@5
>`.pickRestart({
  A: "~@6 f4 e4", B: "d4@3 a4 f4 g4 f4 e4", C: "d4@6 e4@4 d4 c4 b3@2 c4@2", D: "d4@6 f4 e4", E: "d4@3 ~",
  F: "~@25 d4@7", G: "[~ a4@8 d5@6 bb3@8 f4@8 f4@6 g3@8 d4@8 ~ g3@2 g3@3 d4@11 ~@11 d4@8 ~ a4@6]/3",
  H: "[~@2 d5@5 bb3@8 ~ f4@8 f4@6 g3@8 d4@8 g3@3 g3@3 d4@16 d5@3 d5@3 c5@8 d5@8 d5@3 d5@3]/3",
  I: "[c5@8 d5@8 ~ d5@2 d5@3 c5@8 e5@8 ~ c5@3 bb4@2 a4@17 d5@3]/2", J: "d5@2 c5@8 ~ d5@8 d5@3 d5@3 c5@7",
  K: "[~ d5@8 d5@3 d5@3 c5@8 e5@8 c5@3 bb4@3 a4@17 ~@10]/2", L: "~@17 d5@2 d5@3 c5@8 d5@2",
  M: "~ bb4@3 c5@3 a4@3 bb4@2 g4@8 ~ a4@2 f4@3 g4@3 e4@3",
  N: "[f4@2 d4@8 ~ e4@5 c4@3 b3@3 c4@3 d4@17 ~@8 a4 ~ f5 ~@2 f5 ~@5 a4 ~ f5]/2",
  O: "~@2 f5 ~@5 a4 ~ f5 ~@2 f5 ~@5 a4 ~@2 f5 ~ f5 ~@5 a4 ~", P: "~ f5 ~ f5 ~@5 c5 ~@2 b4 ~ c5 ~@2 d4@15",
  Q: "~@10 a4 ~@2 f5 ~@2 f5 ~@4 a4 ~@2 f5 ~@2 f5 ~@4",
  R: "a4 ~@2 f5 ~@2 f5 ~@4 a4 ~@2 f5 ~@2 f5 ~@4 a4 ~@2 f5 ~@2 f5 ~@3", S: "~@2 c5 ~ b4 ~@2 c5 ~@2 d4@16 d5@3 d5@3",
  T: "[c5@8 d5@8 ~ d5@2 d5@3 c5@8 d5@8 ~ d5@3 d5@2 c5@8 ~ e5@8 c5@3]/2", U: "bb4@2 a4@17 ~@13", V: "~@29 d5@3",
  W: "d5@2 c5@8 ~ d5@3 bb4@2 c5@3 a4@3 bb4@3 g4@7",
  X: "[~ a4@3 f4@2 g4@3 e4@3 f4@3 d4@8 e4@6 c4@2 b3@3 c4@3 d4@17 ~@8 a4 ~]/2",
  Y: "~ f5 ~ f5 ~@5 a4 ~@2 f5 ~ f5 ~@5 a4 ~@2 f5 ~@2 f5 ~@4 a4",
  Z: "[~@2 f5 ~@2 f5 ~@4 a4 ~@2 f5 ~@2 f5 ~@4 c5 ~@2 b4 ~@2 c5 ~@2 d4@17 ~@7 a4 ~@2 f5 ~@2 f5 ~@3]/2",
  AA: "~@2 a4 ~ f5 ~@2 f5 ~@5 a4 ~ f5 ~@2 f5 ~@5 a4 ~ f5 ~@2 f5 ~@2",
  AB: "[~@3 a4 ~@2 f5 ~ f5 ~@5 c5 ~@2 b4 ~ c5 ~@2 d4@17 d5@3 d5@3 ~@19]/2",
})).s("gm_violin").gain(0.4)

// other · violin · soft notes
const violin_soft = note("<~@33 A@2 B C A@2 B C ~@16 A@2 B C A@2 B D ~@72>".pickRestart({
  A: "~@2 a4 ~ f5 ~ f5 ~@3 a4 ~ f5 ~ f5 ~", B: "~@2 a4 ~ f5 ~ f5 ~@3 c5@2 b4@2 c5@2", C: "d4@3 ~", D: "d4 ~",
})).s("gm_violin").gain(0.2)

// other · pizzicato strings
const pizzicato_strings_2 = note(`<
  ~@17 A B C A@2 B C A@2 B C A@2 B C A ~@8 A B C A@2 B C A@2 B C A@2 B C A ~@16 D A D E ~@54 F G H@3 I
>`.pickRestart({
  A: "a4@3 a4@3 ~@2", B: "f4@3 f4@3 ~@2", C: "d4@3 d4@3 ~@2", D: "d4@3 d4@3 d4@2", E: "a4@3 ~@13",
  F: "~@12 d4@8 ~ a4@8 d5@3", G: "a4@2 bb3@8 ~ f4@8 bb4@3 f4@3 g3@7",
  H: "[~ d4@8 g4@3 d4@3 d4@8 a4@8 d5@3 a4@3 d5@8 d5@8 ~ d5@5 f5@8 f5@8 ~@6 d5@8 ~ d5@6]/3", I: "~@2 d5@5 gb5@22 ~@3",
})).s("gm_pizzicato_strings").gain(0.3)

// other · viola
const viola = note(`<
  ~ A B C D A B C D A B C D A B C D ~@16 E@2 F G E@2 F G ~@16 E@2 F G E@2 F H I@2 J K I@2 J L ~@33 M N O P Q R ~@13 S T
  U@2 V W@2 ~@5
>`.pickRestart({
  A: "d4@3 a4@3 d5@2", B: "bb3@3 f4@3 f4@2", C: "g3@3 d4@3 g3!2", D: "d4 ~", E: "~@2 a3 ~ f4 ~ f4 ~@3 a3 ~ f4 ~ f4 ~",
  F: "~@2 a3 ~ f4 ~ f4 ~@3 c4@2 b3@2 c4@2", G: "d3@3 ~", H: "d3@4 ~@2 f4 e4", I: "d4@3 a4@3 f4 e4",
  J: "d4@6 e4@4 d4 c4 b3@2 c4@2", K: "d4@6 f4 e4", L: "d4@3 ~", M: "~@18 a3 ~ f4 ~@2 f4 ~@5 a3 ~ f4",
  N: "~@2 f4 ~@5 a3 ~ f4 ~@2 f4 ~@5 a3 ~@2 f4 ~ f4 ~@5 a3 ~", O: "~ f4 ~ f4 ~@5 c4 ~@2 b3 ~ c4 ~@2 d3@15",
  P: "~@10 a3 ~@2 f4 ~@2 f4 ~@4 a3 ~@2 f4 ~@2 f4 ~@4",
  Q: "a3 ~@2 f4 ~@2 f4 ~@4 a3 ~@2 f4 ~@2 f4 ~@4 a3 ~@2 f4 ~@2 f4 ~@3", R: "~@2 c4 ~ b3 ~@2 c4 ~@2 d3@17 ~@5",
  S: "~@30 a3 ~", T: "~ f4 ~ f4 ~@5 a3 ~@2 f4 ~ f4 ~@5 a3 ~@2 f4 ~@2 f4 ~@4 a3",
  U: "[~@2 f4 ~@2 f4 ~@4 a3 ~@2 f4 ~@2 f4 ~@4 c4 ~@2 b3 ~@2 c4 ~@2 d3@17 ~@7 a3 ~@2 f4 ~@2 f4 ~@3]/2",
  V: "~@2 a3 ~ f4 ~@2 f4 ~@5 a3 ~ f4 ~@2 f4 ~@5 a3 ~ f4 ~@2 f4 ~@2",
  W: "[~@3 a3 ~@2 f4 ~ f4 ~@5 c4 ~@2 b3 ~ c4 ~@2 d3@17 ~@25]/2",
})).s("gm_viola").gain(0.2)

// other · pizzicato strings
const pizzicato_strings_3 = note(`<
  ~@17 A B C A@2 B C A@2 B D A@2 B D A ~@8 A B C A@2 B C A@2 B D A@2 B D A ~@16 E A E F ~ G H@3 I@3 J@2 K L@3 M@3 N@2 O
  P Q@2 R@3 S@2 T U ~@5 V@2 W X@3 I@3 J@2 K Y@2 ~@5 Z O AA@3 AB
>`.pickRestart({
  A: "f4@3 f4@3 ~@2", B: "d4@3 d4@3 ~@2", C: "bb3@3 bb3@3 ~@2", D: "b3@3 b3@3 ~@2", E: "b3@3 b3@3 b3@2", F: "f4@3 ~@13",
  G: "~@25 d4@7",
  H: "[~ a4@8 d5@3 a4@3 bb3@8 f4@8 bb4@3 f4@3 g3@8 d4@8 ~ g4@2 d4@3 d4@8 a4@8 ~ d5@2 a4@3 d4@8 ~ a4@6]/3",
  I: "[~@2 d5@3 a4@2 bb3@8 ~ f4@8 bb4@3 f4@3 g3@8 d4@8 g4@3 d4@3 d4@8 a4@8 ~@6 d4@8 a4@8 d5@3 a4@3]/3",
  J: "[bb3@8 f4@8 ~ bb4@2 f4@3 g3@8 d4@8 ~ g4@3 d4@2 d4@8 ~ a4@8 ~@3]/2", K: "~@2 d4@8 ~ a4@8 d5@3 a4@3 bb3@7",
  L: "[~ f4@8 bb4@3 f4@3 g3@8 d4@8 g4@3 d4@3 d4@8 a4@8 ~@6 d4@8 a4@8 ~ d5@2 a4@3 bb3@8 ~ f4@6]/3",
  M: "[~@2 bb4@3 f4@2 g3@8 ~ d4@8 g4@3 d4@3 d4@8 a4@8 ~@6 d4@8 a4@8 d5@3 a4@3 bb3@8 f4@8 bb4@3 f4@3]/3",
  N: "[g3@8 d4@8 ~ g4@2 d4@3 d4@8 a4@8 ~@6 d4@8 ~ a4@8 d5@3]/2", O: "a4@2 bb3@8 ~ f4@8 bb4@3 f4@3 g3@7",
  P: "~ d4@8 g4@3 d4@3 d4@8 a4@8 ~", Q: "[~@5 d4@8 a4@8 ~ d5@2 a4@3 bb3@8 f4@8 ~ bb4@2 f4@3 g3@8 ~ d4@6]/2",
// … 102 more lines