Strudelify

arrival to earth

Steve Jabonsky

KeyE♭ majorTempo75 bpm
0:00/0:00
// arrival to earth — Steve Jabonsky
// 75 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 20, 4/4 at bar 20, 2/4 at bar 58, ...) are rendered on a constant 4/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 viola patch is not one); ch 3 "B♭ Clarinet" named as a reed, played on clarinet (its pizzicato strings patch is not one); ch 4 "Alto Saxophone" named as a reed, played on alto sax (its tremolo strings patch is not one); ch 5 "Tenor Saxophone" named as a reed, played on tenor sax (its cello patch is not one); ch 6 "Horn in F" named as a brass, played on brass section (its pizzicato strings patch is not one); ch 7 "B♭ Trumpet" named as a brass, played on trumpet (its tremolo strings patch is not one); ch 9 "Trombone" named as a brass, played on trombone (its acoustic bass patch is not one); ch 11 "Tuba" named as a brass, played on tuba (its tremolo strings patch is not one); ch 8 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/2213456; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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(`<
  ~@18 A B C D E F C G H I J@2 ~ K ~@8 L M N O P M Q R@2 S@2 ~ T U V W@3 ~@4 X@2 Y@2 Z AA@2 AB AC AD AC AE AF AG AC AH
  AI AJ@2 ~
>`.pickRestart({
  A: "c4 c5 d5 eb5", B: "f5@4 g5@4 c5@6 g4 c5", C: "eb5@4 bb4@4 d5@6 f4 bb4", D: "c5@4 ab4@4 c5@6 g4 c5",
  E: "g5@2 eb5@2 f5@2 eb5 d5", F: "c5@4 g4@4 c5@6 g4 c5", G: "c5 ab4 c5@2", H: "bb4@2 eb5 d5 c5@4",
  I: "~@2 g4 bb4 c5@4", J: "[bb4@4 eb5@2 d5@2 c5@15 ~@9]/2", K: "~ f5 ~@2", L: "~@8 c6@6 g5 c6",
  M: "eb6@4 bb5@4 d6@6 f5 bb5", N: "c6@4 ab5@4 c6@6 g5 c6", O: "g6@2 eb6@2 f6@2 eb6 d6", P: "c6@4 g5@4 c6@6 g5 c6",
  Q: "c6 ab5 c6@2", R: "[bb5@4 eb6@2 d6@2 c5@11 ~ g4@2 bb4@2 c6@8]/2", S: "[bb5@4 eb6@2 d6@2 c6@15 ~@9]/2",
  T: "~@3 bb4", U: "a4 g4 ~ c5", V: "bb4 a4 ~ bb5", W: "[a5@2 g5@2 a5@15 ~@5]/3", X: "[~@8 c5@23 ~]/2",
  Y: "[eb4@8 bb4@15 ~ c5@8]/2", Z: "d5@15 ~", AA: "[d5@4 g5@4 bb5@15 ~ f5@4 a5@4]/2", AB: "c6@11 ~ bb5@2 a5@2",
  AC: "g5@2 f5 g5", AD: "a5@2 d5 g5", AE: "d5@2 c6 bb5", AF: "bb5@2 c6 d6", AG: "d5@3 d5 gb5@2 bb5@2",
  AH: "a5@2 bb5 a5", AI: "bb5@2 c6 eb6", AJ: "[d6@15 ~]/2",
})).s("gm_flute").gain(0.45)

// other · flute · soft notes
const flute_soft = note("<~@2 A B@3 C D@2 ~@22 E@5 F@5 ~@20 G H ~@19>".pickRestart({
  A: "c5", B: "[eb5@23 ~]/3", C: "eb5@15 ~", D: "[eb5@15 ~]/2", E: "[~@8 gb5@15 ~ ab5@15 ~ bb5@15 ~ db6@24]/5",
  F: "[~@8 eb6@15 ~ e6@15 ~ g5@15 ~ ab5@15 ~@9]/5", G: "bb4@15 ~", H: "a5 ~",
})).s("gm_flute").gain(0.2)

// other · oboe
const oboe = note(`<
  ~@9 A B C D A B E F E G H I J K L I M N O P@2 Q R S T U V@6 I J K L I M W X Y@5 Z@8 AA@2 AB@2 AC AD@2 AE AF AG AF AH
  AI AJ AK AL AM AN@2 AO
>`.pickRestart({
  A: "[c4,c5]@6 [g3,g4] [c4,c5] [eb4,eb5]@4 [bb3,bb4]@4", B: "[d4,d5]@6 [f3,f4] [bb3,bb4] [c4,c5]@4 [ab3,ab4]@4",
  C: "[c4,c5]@6 [g3,g4] [c4,c5] [g4,g5]@4 [eb4,eb5]@4", D: "[f4,f5]@2 [eb4,eb5] [d4,d5] [c4,c5]@2 [g3,g4]@2",
  E: "[c4,c5]@4 [bb3,bb4]@2 [eb4,eb5] [d4,d5]", F: "[c4,c5]@4 d3@2 g4 bb4, ~@3 bb3", G: "~ c5 d5 eb5, c4 ~",
  H: "f5@4 g5@4 c5@6 g4 c5", I: "eb5@4 bb4@4 d5@6 f4 bb4", J: "c5@4 ab4@4 c5@6 g4 c5", K: "g5@2 eb5@2 f5@2 eb5 d5",
  L: "c5@4 g4@4 c5@6 g4 c5", M: "c5 ab4 c5@2", N: "bb4@2 eb5 d5 f4@2 eb4@2, ~ c5", O: "d4@2 g4 bb4 c5@4, ~ bb3 ~@2",
  P: "[bb4@2 eb5 d5 c5@8 ~@2 c4@2]/2", Q: "g3 eb4 ~ d4", R: "bb3 f4 ~ eb4", S: "bb3 gb4 ~ f4", T: "db4 ab4 ~ gb4",
  U: "db4 a4 ~ ab4",
  V: "[e4@4 b4@4 ~@4 ab4@4 e4@4 db5@4 ~@4 a4@4 e4@4 db5@4 ~@4 ab4@4 e4@4 db5@4 [b4,e5]@16 c5@16 c5@6 g4 c5, ~ ab5@2 bb5@2 a5@2 ~@5]/6", // E5
  W: "bb4@2 eb5 d5 f4@2 eb4@2", X: "d4 bb3 c5@2",
  Y: "[bb4@2 eb5 d5 c5@8 eb3@8 g3@8 ~@2 bb3@2 a3@2 g3@2 ~@2 c4@2, ~@7 eb5@2 f5]/5",
  Z: "[bb3 a3 ~ bb3 a3 g3 g3@4 [a3,a5]@4 g3@18, ~ g5@4 ~@11]/8", AA: "[~ f3, f4, ~ c5@3]/2",
  AB: "[[c3,c4] bb4 g4 [f3,c5], ~ eb3@2 ~]/2", AC: "[g3,d5]", AD: "[bb3 d4 eb4@4 d4!2, g3 ~@2 bb3]/2",
  AE: "c4@6 bb4 a4, f3", AF: "g4@2 f4 g4, c4", AG: "[d4,a4]@2 d4 g4", AH: "d4@2 c4 bb3, g3", AI: "bb3@2 c4 d4, eb4",
  AJ: "~ d5, d4", AK: "c6@2 g5 c6, c4", AL: "a4@2 bb4 a4, f3", AM: "[bb3,bb4] [c4,eb4]", AN: "[d4,d5]/2", AO: "g3",
})).s("gm_oboe").gain(0.35)

// other · oboe · soft notes
const oboe_soft = note("<~@4 A@2 B C@2 ~@52 D E ~@19>".pickRestart({
  A: "c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2", B: "c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2, eb5",
  C: "[c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2, eb5]/2", D: "bb4",
  E: "a5 ~",
})).s("gm_oboe").gain(0.15)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~@8 A B C D E B C F G F H I J K L M J N O P Q@2 ~ R@8 S@2 J K L M J N T@2 Q@2 ~ U@6 ~ V@2 W X@2 Y Z W AA@2 AB AC AD AE
  AF AG AH AE AI AJ AK@2 ~
>`.pickRestart({
  A: "~@7 g4", B: "c5@6 g4 c5 eb5@4 bb4@4", C: "d5@6 f4 bb4 c5@4 ab4@4", D: "c5@6 g4 c5 g5@4 eb5@4",
  E: "f5@2 eb5 d5 c5@2 g4@2", F: "c5@4 bb4@2 eb5 d5", G: "c5@4 ~@2 g4 bb4", H: "c5@2 d5 eb5", I: "f5@4 g5@4 c5@6 g4 c5",
  J: "eb5@4 bb4@4 d5@6 f4 bb4", K: "c5@4 ab4@4 c5@6 g4 c5", L: "g5@2 eb5@2 f5@2 eb5 d5", M: "c5@4 g4@4 c5@6 g4 c5",
  N: "c5 ab4 c5@2", O: "bb4@2 eb5 d5 c5@4", P: "~@2 g4 bb4 c5@4", Q: "[bb4@2 eb5 d5 c5@8 ~@4]/2",
  R: "[~ f4 gb4@4 ab4@4 bb4@4 db5@4 db5@4 eb5@4 db5@4 g4@2]/8", S: "[~@8 ab5@16 c5@6 g4 c5]/2",
  T: "[bb4@2 eb5 d5 c5@6 g4 bb4 c5@4]/2", U: "[bb4 d5 eb5@4 f5@4 g5@8 gb5@4 ~@2]/6", V: "d4/2", W: "bb4",
  X: "[a5 ~ c5@2, ~ a4@2 ~]/2", Y: "eb4 bb4", Z: "g4 ~", AA: "[bb4 d5 eb5@4 d5!2]/2", AB: "c5@6 bb4 a4",
  AC: "g4@2 f4 g4", AD: "a4@2 d5 g5", AE: "g5@2 f5 g5", AF: "d5@2 c5 bb4", AG: "bb4@2 c5 d5", AH: "d5",
  AI: "a5@2 bb5 a5", AJ: "bb5 eb5", AK: "d5/2",
})).s("gm_clarinet").gain(0.35)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@19 A B C D E B F G H I@2 J K L M N O P Q R@3 B C D E B F S T U@2 ~ V@6 ~ W@2 X Y@2 Z AA X AB@2 AC AD AE AF AG AH AI
  AJ AK AL W@2 ~
>`.pickRestart({
  A: "~@8 c5@6 g4 c5", B: "eb5@4 bb4@4 d5@6 f4 bb4", C: "c5@4 ab4@4 c5@6 g4 c5", D: "g5@2 eb5@2 f5@2 eb5 d5",
  E: "c5@4 g4@4 c5@6 g4 c5", F: "c5 ab4 c5@2", G: "bb4@2 eb5 d5 c5@4", H: "~@2 g4 bb4 c5@4",
  I: "[bb4@2 eb5 d5 c5@8 ~@2 c4@2]/2", J: "g3 eb4 ~ d4", K: "bb3 f4 ~ eb4", L: "bb3 gb4 ~ f4", M: "db4 ab4 ~ gb4",
  N: "db4 a4 ~ ab4", O: "e4 b4 ~ ab4", P: "e4 db5 ~ a4", Q: "e4 db5 ~ ab4", R: "[e4@4 db5@4 b4@16 c5@16 c5@6 g4 c5]/3",
  S: "bb4@2 eb5 d5 f4@2 eb4@2", T: "d4 bb3 c5@2", U: "[bb4@2 eb5 d5 c5@8 ~@4]/2",
  V: "[bb4 d5 eb5@4 f5@4 g5@8 gb5@4 ~@2]/6", W: "d4/2", X: "bb4", Y: "[a4 ~ c5@2, ~ a4@2 ~]/2", Z: "c4 bb4", AA: "g4 ~",
  AB: "[d4 g4 bb4@4 f4 a4]/2", AC: "c5@6 bb4 a4", AD: "g4@2 f4 g4", AE: "a4@2 d5 g5", AF: "g5@2 f5 g5",
  AG: "d5@2 c5 bb4", AH: "bb4@2 c5 d5", AI: "d5@3 d5 gb5@2 bb5@2", AJ: "c6@2 g5 c6", AK: "a5 f5", AL: "bb5@2 c5 eb5",
})).s("gm_alto_sax").gain(0.5)

// other · brass section · "Horn in F"
const brass_section = note(`<
  ~@29 A B C D E F G H I J@3 K L M N K O P Q R@2 ~@8 S@2 T@3 U@2 V W@2 X Y X Z V Y AA Z AB AC S@2 V
>`.pickRestart({
  A: "~@3 c4", B: "g3 eb4 ~ d4", C: "bb3 f4 ~ eb4", D: "bb3 gb4 ~ f4", E: "db4 ab4 ~ gb4", F: "db4 a4 ~ ab4",
  G: "e4 b4 ~ ab4", H: "e4 db5 ~ a4", I: "e4 db5 ~ ab4", J: "[e4@4 db5@4 b4@16 c5@16 c4@6 g3 c4]/3",
  K: "eb4@4 bb3@4 d4@6 f3 bb3", L: "c4@4 ab3@4 c4@6 g3 c4", M: "g4@2 eb4@2 f4@2 eb4 d4", N: "c4@4 g3@4 c4@6 g3 c4",
  O: "c4 ab3 c4@2", P: "bb3@2 eb4 d4 f4@2 eb4@2", Q: "d4 bb3 c4@2", R: "[bb3@2 eb4 d4 c4@8 ~@4]/2", S: "d4/2",
  T: "[bb3 c4]/3", U: "[c3 eb3@2 f3]/2", V: "g3", W: "[bb4 g4@2 a4]/2", X: "a4", Y: "eb4", Z: "c4", AA: "d4", AB: "f4",
  AC: "bb3 c4",
})).s("gm_brass_section").gain(0.5)

// other · trumpet · "B♭ Trumpet"
const trumpet = note("<~@40 A B C D E B F G H I@2 ~@10 J K@2 L@2 M N@2 O P Q R S T U V W X Y Z AA>".pickRestart({
  A: "~@8 c5@6 g4 c5", B: "eb5@4 bb4@4 d5@6 f4 bb4", C: "c5@4 ab4@4 c5@6 g4 c5", D: "g5@2 eb5@2 f5@2 eb5 d5",
  E: "c5@4 g4@4 c5@6 g4 c5", F: "c5 ab4 c5@2", G: "bb4@2 eb5 d5 c5@4", H: "d4 bb3 c5@2", I: "[bb4@2 eb5 d5 c5@8 ~@4]/2",
  J: "~ d4 g4 a4", K: "[bb4 c5 d5@2 c5@6 c4@2 f4@2 a4@2]/2", L: "[c5 d5 eb5@2 bb4@6 eb4@2 a4 g4 f4@2]/2", M: "g4",
  N: "[d4 g4 bb4@4 f4 a4]/2", O: "c5@6 bb4 a4", P: "eb4@2 g4 eb4", Q: "a4@2 d5 bb4", R: "d5@3 c5", S: "bb4@3 bb4",
  T: "bb4@2 c5 d5", U: "g4 gb4", V: "g5@2 f5 g5", W: "a5@2 c5 a4", X: "d5 g5!2 a5", Y: "bb5 g5", Z: "a5", AA: "g3",
})).s("gm_trumpet").gain(0.5)

// other · trombone
const trombone = note(`<
  ~@8 A ~@20 B C D E F G H I J K@3 L M L M L N O@2 P@2 ~@8 Q@2 R S@2 T@2 A U@2 V W X W Y Z AA AB AC AD AE@2 AF
>`.pickRestart({
  A: "g3", B: "~@3 c3", C: "g2 eb3 ~ d3", D: "bb2 f3 ~ eb3", E: "bb2 gb3 ~ f3", F: "db3 ab3 ~ gb3", G: "db3 a3 ~ ab3",
  H: "e3 b3 ~ ab3", I: "e3 db4 ~ a3", J: "e3 db4 ~ ab3", K: "[e3 db4 b3@4 c4@4 c3@2]/3", L: "eb3 bb2", M: "f3 c3",
  N: "f3 ab3", O: "[bb3 c3@2 ab3]/2", P: "[g3 g3@2 ~]/2", Q: "bb2/2", R: "~ d3 g3 a3",
  S: "[bb3 c4 d4@2 c4@6 c3@2 f3@2 a3@2]/2", T: "[c4 d4 eb4@2 bb3@6 eb3@2 a3 g3 f3@2]/2", U: "[bb2 d3 eb3@4 d3!2]/2",
  V: "c3@6 bb2 a2", W: "g3@2 f3 g3", X: "a3@2 d3 g3", Y: "d3@2 c3 bb2", Z: "bb2@2 c3 d3", AA: "d3", AB: "g2@2 g3 c4",
  AC: "a3@2 bb2 a2", AD: "bb2 eb3", AE: "d3/2", AF: "g2",
})).s("gm_trombone").gain(0.5)

// bass · tuba
const bass = note(`<
  ~@4 A ~ A B A C D C D C D E A E F G H I J I J K L@2 M@8 N@5 O I O I O P Q@2 R@2 ~ S@5 T@4 U V@2 W@2 X Y@2 Z AA AB AA
  AC AD AB AA AE AF AG@2 X
>`.pickRestart({
  A: "c3", B: "ab2", C: "c2 eb2", D: "bb2 f2", E: "ab2 bb2", F: "c2 c3 d3 eb3", G: "f3 g3 c3@2", H: "eb3 bb2",
  I: "f2 c2", J: "eb2 bb2", K: "f2 ab2", L: "[bb2 c3@2 ab2]/2", M: "[bb2 c3@2 c2@2 bb1@2 eb2@2 db3@2 gb2@2 e2@2 db3]/8",
  N: "[~ a2@2 db3@2 b1@2 c2@2 c2]/5", O: "eb2 bb1", P: "f2 ab1", Q: "[bb1 c2@2 ab2]/2", R: "[g2 c3@2 ~]/2",
  S: "[bb2 d3 eb3@4 f3@4 g3@8 gb3@2]/5", T: "[~ g2@7]/4", U: "bb2", V: "[a2 f2@3]/2", W: "[c2 eb2@2 f2]/2", X: "g2",
  Y: "[g2 eb2@2 bb1]/2", Z: "a3", AA: "c2", AB: "d2", AC: "g1", AD: "eb2", AE: "f2", AF: "bb2 c3", AG: "d3/2",
})).s("gm_tuba").gain(0.45)

// other · timpani · "Violin"
const timpani = note(`<
  ~@6 A B@2 C D E F C D G H G I J K L M N K O P Q R@2 S@5 T S T U@2 V W X Y Z W AA AB AC AD@2 AE AF AG AH AI@3 ~ AJ@2 AK
  AL@2 AM@2 AN AO@2 AP AQ AR AS AT AU AV AW AX AY AZ@2 BA
>`.pickRestart({
  A: "eb5", B: "[eb5@14 ~ g4]/2", C: "c5@6 g4 c5 eb5@4 bb4@4", D: "d5@6 f4 bb4 c5@4 ab4@4", E: "c5@6 g4 c5 g5@4 eb5@4",
  F: "f5@2 eb5 d5 c5@2 g4@2", G: "c5@4 bb4@2 eb5 d5", H: "c5@4 ~@2 g4 bb4", I: "c5@2 d5 eb5",
  J: "f5@4 ~@2 c3!2 c5 d5 eb5 ~ c5 d5 eb5 ~, ~ g5 c3 ~",
  K: "eb5 f5 g5 ~ eb5 f5 [c3,g5] c3 d5 eb5 f5 ~ d5 eb5 f5 ~, ~@2 c3 ~ c3@2 ~@2", // C5
  L: "ab4 bb4 c5 ~ [c3,ab4] [c3,bb4] [c3,c5] c3 c5 d5 eb5 ~ c5 d5 eb5 ~, ~@2 c3 ~", // Fm C7 C
  M: "eb5 f5 g5 ~ eb5 f5 [c3,g5] c3 d5 eb5 f5 ~ d5 eb5 f5 ~, ~@2 c3 ~", // C5
  N: "ab4 bb4 c5 ~ ab4 bb4 [c3,c5] c3 c5 d5 eb5 ~ c5 d5 eb5 ~, ~@2 c3 ~ c3@2 ~@2", // C
  O: "ab4 bb4 c5 ~ [c3,ab4] [c3,bb4] [c3,c5] c3 ab4 bb4 c5 ~ ab4 bb4 c5 ~, ~@2 c3 ~", // Fm C7 C
  P: "bb4 c5 d5 ~ bb4 c5 [c3,d5] c3 c5 d5 eb5 ~ c5 d5 eb5 ~, ~@2 c3 ~ c3@2 ~@2", // Csus2
  Q: "c5 d5 eb5 c3 c5 d5 [c3,eb5] c3 ab4 bb4 c5 ~ ab4 bb4 c5 ~, ~@2 c3 ~ c3@2 ~@2", // Cm
  R: "[bb4 c5 d5 ~ bb4 c5 [c3,d5] c3 c5 d5 eb5 ~ c5 d5 eb5 ~ c5 d5 eb5 ~ c5 d5 [c3,eb5] c3 c3@4 ~@4, ~@2 c3 ~ c3@6 ~@6]/2", // Csus2 Cm
  S: "~@3 c3 c3@2 c3!2 c3@4 ~@4", T: "~@3 c3!5 c3@4 ~@4", U: "[~@3 c3 c3@2 c3!2 c3@16 ~@8]/2",
  V: "~@4 c3!4 c5@6 g4 c5, ~@2 c3 ~", W: "eb5@4 bb4@4 d5@6 f4 bb4", X: "c5@4 ab4@4 c5@6 g4 c5",
  Y: "g5@2 eb5@2 f5@2 eb5 d5", Z: "c5@4 g4@4 c5@6 g4 c5", AA: "c5 ab4 c5@2", AB: "bb4@2 eb5 d5 c5@4", AC: "d4 bb3 c5@2",
  AD: "[bb4@4 eb5@2 d5@2 c5@16 ~@6 c3!2]/2", AE: "c3 ~@15", AF: "~@3 bb4", AG: "a4 g4 ~ c5", AH: "bb4 a4 ~ bb5",
  AI: "[a5 g5 a5@8 ~@2]/3", AJ: "bb3/2", AK: "~ d4 g4 a4", AL: "[bb4 c5 d5@2 c5@6 c4@2 f4@2 a4@2]/2",
  AM: "[c5 d5 eb5@2 bb4@6 eb4@2 a4 g4 f4@2]/2", AN: "g4", AO: "[d4 g4 bb4@4 f4 a4]/2", AP: "c5@6 bb4 a4",
  AQ: "g4@2 f4 g4", AR: "a4@2 d5 g5", AS: "g5@2 f5 g5", AT: "d5@2 c5 bb4", AU: "bb4@2 c5 d5", AV: "d5@3 d5 gb5@2 bb5@2",
  AW: "c6@2 g5 c6", AX: "a5@2 bb5 a5", AY: "g5 bb5 c6 eb6", AZ: "d6/2", BA: "g3",
})).s("gm_timpani").gain(0.5)

// other · violin
const violin = note(`<
  ~@7 A B ~@10 C D E F G D H I J ~ K L M N O P Q R@2 S@3 T U T U T V W@2 X@2 ~ Y@6 ~@3 Z AA@2 AB@2 AC AD@2 AE AF AG AH
  AI AJ AK AL AM AN AO AP AQ
>`.pickRestart({
  A: "~@14 eb4!2", B: "c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2", C: "~@8 c6@6 g5 c6", D: "eb6@4 bb5@4 d6@6 f5 bb5",
  E: "c6@4 ab5@4 c6@6 g5 c6", F: "g6@2 eb6@2 f6@2 eb6 d6", G: "c6@4 g5@4 c6@6 g5 c6", H: "c6 ab5 c6@2",
  I: "bb5@2 eb6 d6 c6@4", J: "~@2 g5 bb5 c6@4", K: "~@9 [c4,c5] [d4,d5] [eb4,eb5] ~ [c4,c5] [d4,d5] [eb4,eb5]",
  L: "~ [c4,c5] [d4,d5] [eb4,eb5] ~ [c4,c5] [d4,d5] [eb4,eb5] ~ [d4,d5] [eb4,eb5] [f4,f5] ~ [d4,d5] [eb4,eb5] [f4,f5]", // C D Eb C D Eb D Eb …
  M: "~ [d4,d5] [eb4,eb5] [f4,f5] ~ [d4,d5] [eb4,eb5] [f4,f5] ~ [eb4,eb5] [f4,f5] [gb4,gb5] ~ [eb4,eb5] [f4,f5] [gb4,gb5]", // D Eb F D Eb F Eb F …
  N: "~ [eb4,eb5] [f4,f5] [gb4,gb5] ~ [eb4,eb5] [f4,f5] [gb4,gb5] ~ [f4,f5] [gb4,gb5] [ab4,ab5] ~ [f4,f5] [gb4,gb5] [ab4,ab5]", // Eb F Gb Eb F Gb F Gb …
  O: "~ [f4,f5] [gb4,gb5] [ab4,ab5] ~ [f4,f5] [gb4,gb5] [ab4,ab5] ~ [gb4,gb5] [ab4,ab5] [a4,a5] ~ [gb4,gb5] [ab4,ab5] [a4,a5]", // F Gb Ab F Gb Ab Gb Ab …
  P: "~ [gb4,gb5] [ab4,ab5] [a4,a5] ~ [gb4,gb5] [ab4,ab5] [a4,a5] ~ [ab4,ab5] [a4,a5] [b4,b5] ~ [ab4,ab5] [a4,a5] [b4,b5]", // Gb Ab A Gb Ab A Ab A …
  Q: "~ [ab4,ab5] [a4,a5] [b4,b5] ~ [ab4,ab5] [a4,a5] [b4,b5] ~ [db4,db5] [eb4,eb5] [e4,e5] ~ [db4,db5] [eb4,eb5] [e4,e5]", // Ab A B Ab A B Db Eb …
  R: "~ [db4,db5] [eb4,eb5] [e4,e5] ~ [db4,db5] [eb4,eb5] [e4,e5] ~ [db4,db5] [eb4,eb5] [e4,e5] ~ [db4,db5] [eb4,eb5] [e4,e5]", // Db Eb E Db Eb E Db Eb …
  S: "[~ [db4,db5] [eb4,eb5] [e4,e5] ~ [db4,db5] [eb4,eb5] [e4,e5] b5@16 c6@16 c5@8]/3", T: "eb5 bb4", U: "f5 c5",
  V: "f5 ab5", W: "[bb5@4 c5@6 g4 bb4 ab5@4]/2", X: "[g5 c5@2 ~]/2", Y: "[~ eb5@2 f5@2 g5@4 a5@2 ~]/6", Z: "~ d4 g4 a4",
  AA: "[bb4 c5 d5@2 c5@6 c4@2 f4@2 a4@2]/2", AB: "[c5 d5 eb5@2 bb4@6 eb4@2 a4 g4 f4@2]/2", AC: "g4",
  AD: "[d4 g4 bb4@4 f4 a4]/2", AE: "c5@6 bb4 a4", AF: "eb4@2 g4 eb4", AG: "a4@2 d5 bb4", AH: "d5@3 c5", AI: "bb4@3 bb4",
  AJ: "bb4@2 c5 d5", AK: "g4 gb4", AL: "g5@2 f5 g5", AM: "a5@2 c5 a4", AN: "d5 g5!2 a5", AO: "bb5 g5", AP: "a5",
  AQ: "g3",
})).s("gm_violin").gain(0.35)

// other · violin · soft notes
const violin_soft = note("<A@7 B ~@42 C@3 ~@4 D@4 ~@21>".pickRestart({
  A: "c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2", B: "c4!2 eb4!2 c4!2 eb4!2 c4!2 eb4!2 c4!2 ~@2", C: "[~ ab4@4 ~]/3",
  D: "[~ g4@7]/4",
})).s("gm_violin").gain(0.15)

// bass · acoustic bass · "Double Bass"
const bass_2 = note(`<
  ~@4 A@2 B C D E F E F E F G H G I@2 J K J K J L M@2 N@8 O@5 J P J P J Q R@2 S@8 T@5 U@2 V@2 W X@2 Y B Z B AA AB Z B Y
  AC AD@2 AA
>`.pickRestart({
  A: "[f2@7 g1]/2", B: "c2", C: "ab2 g2", D: "c2@6 ~ g2", E: "c2 eb2", F: "bb1 f2", G: "ab2 bb2", H: "c2 ~@3",
  I: "[c2@3 c2]/2", J: "eb2 bb1", K: "f1 c2", L: "f1 ab1", M: "[bb1 c2@2 ab1]/2",
// … 9 more lines