Strudelify

Starlight Memory

Dylan Rowe

KeyD majorTempo105 bpm
0:00/0:00
// Starlight Memory — Dylan Rowe
// 105 bpm, 6/8, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/1196306; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 98 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · trumpet
const trumpet = note(`<
  ~@12 A B C D A B E F ~@3 G H ~@2 I J K L M N O P Q ~@16 R S T U V W X Y Z AA AB AC AD AE AF Y AG AH@2 ~@19 AI AJ AK AL
  ~@4
>`.pickRestart({
  A: "~@4 c5 d5", B: "e5@5 ~", C: "~ e5 c5", D: "c5@2 b4 ~@3", E: "f5@2 e5@2 a4@2 a5@3 g5 f5@2", F: "g5", G: "e4 d4",
  H: "c4 ~@2", I: "~@8 c5 d5 e5 d5", J: "c5 e5 f5", K: "e5@2 b5", L: "a5", M: "g5@6 c5 b4 c5 d5 e5 f5",
  N: "g5@4 g4@2 g4@3 c5 d5@2", O: "g5@3 ~ e5@2", P: "f5@2 e5@2 a4@2 ~@2 c5@3 b4", Q: "g4", R: "~@2 a4 c5@2 a4",
  S: "f#4@3 b3 f#4 b4", T: "b4!6 b4@2 ~@4", U: "c5!6 c5@2 ~@4", V: "d5!6 d5@2 ~@2 d5@2", W: "f#5!2",
  X: "g5@2 e5@2 g5@2 b5@3 a5 g5@2", Y: "g5@2 e5@2 g5 f#5", Z: "d5", AA: "f#4 d4 f#4 a4 d5 f#5",
  AB: "e5@2 b4@2 e5@2 g5@3 f#5 e5@2", AC: "e5@2 c5@2 e5 d5", AD: "d5@2 a5 g5@2 a5", AE: "b5@2 g5 a5 f#5 d5",
  AF: "g5@2 e5@2 b4@2 e5@2 g5@2 b4@2 b5@3 ~ a5@4 g5@3 ~", AG: "d5@6 e5@3 d5 e5@2", AH: "[f#5@11 ~]/2",
  AI: "b4@2 b4@2 ~ b4@2 b4@2 b4@2 b4@2 b4@4 ~@7", AJ: "~@3 c5@2 c5@2 c5@2 c5@2 ~ c5@2 c5@2 c5@4 ~@4",
  AK: "~@5 d5@2 d5@2 ~ d5@2 d5@2 d5@2 d5@2 d5@4 ~@2", AL: "~@3 d5@4 ~ f#5@13 ~@3",
})).s("gm_trumpet").gain(0.52).pan(0)

// other · trumpet · soft notes
const trumpet_soft = note("<~@12 A B C D A B ~@6 E F G ~@17 H I J K L I J M ~@41 N@2 ~@3>".pickRestart({
  A: "c5@3 g4 ~@2", B: "~@5 c5", C: "f5 ~@2", D: "~@10 c5 d5", E: "~ a4@2", F: "~ f4@2", G: "g4 ~@5", H: "~@2 c5 e5@3",
  I: "~@2 a4 c5@3", J: "~@2 f4 a4@3", K: "~ d4 g4 ~ d4 f4", L: "~@2 e4 g4@3", M: "~@2 g4 b4@3",
  N: "[~@21 d5@13 ~@14]/2",
})).s("gm_trumpet").gain(0.19).pan(0)

// other · trumpet
const trumpet_2 = note(`<
  ~@12 A ~ B C A ~ D E ~@3 F G ~@2 H I J K L M N O P ~@16 Q R S@2 T U V W X Y Z AA AB AC AD AE AF AG@2 ~@19 AH AI AJ AK
  ~@4
>`.pickRestart({
  A: "~@4 c5 d5", B: "~ e5 c5", C: "c5@2 b4 ~@3", D: "f5@2 e5@2 a4@2 a5@3 g5 f5@2", E: "g5", F: "c4 b3", G: "a3 ~@5",
  H: "~@8 c5 d5 c5 b4", I: "c5@4 g4@2 g4@3 c5 d5@2", J: "b4@2 b4", K: "a4@2 c5 f5@2 e5",
  L: "e5@2 d5@2 b4@2 c5 b4 c5 d5 e5 f5", M: "g5@4 g4@2 g4@3 c5 d5@2", N: "e5@3 ~ e5@2", O: "f5@2 e5@2 a4@2 ~@2 c5@3 b4",
  P: "g4", Q: "~ e4@2 e4@3", R: "b3@3 b3 f#4 b4", S: "g4!6 g4@2 ~@4", T: "f#4!6 f#4@2 ~@2 f#4@2", U: "d4 f#4",
  V: "g4@2 e4@2 g4@2 b4@3 a4 g4@2", W: "g4@2 e4@2 g4 f#4", X: "d4", Y: "f#4 d4 f#4 a4 d5 f#5",
  Z: "g4@2 b4@2 e5@2 e5@3 f#5 e5@2", AA: "e5@2 c5@2 e5 d5", AB: "d5@2 a4 g4@2 a4", AC: "b4@3 f#4 b4 d5",
  AD: "g5@2 e5@2 b4@2 e5@2 g5@2 b4@2 b5@3 ~ a5@4 g5@3 ~", AE: "g5@2 e5@2 g5 f#5", AF: "d5@6 e5@3 d5 e5@2",
  AG: "[a4@11 ~]/2", AH: "g4@2 g4@2 ~ g4@2 g4@2 g4@2 g4@2 g4@4 ~@7", AI: "~@3 g4@2 g4@2 g4@2 g4@2 ~ g4@2 g4@2 g4@4 ~@4",
  AJ: "~@5 f#4@2 f#4@2 ~ f#4@2 f#4@2 f#4@2 f#4@2 f#4@4 ~@2", AK: "~@3 f#4@4 ~ d4@13 ~@3",
})).s("gm_trumpet").gain(0.4).pan(0.2)

// other · trumpet · soft notes
const trumpet_soft_2 = note("<~@12 A B C D A E ~@6 F G H ~@17 I J K L M J K N ~@41 O@2 ~@3>".pickRestart({
  A: "c5@3 g4 ~@2", B: "e5@5 c5", C: "f5 ~@2", D: "~@10 c5 d5", E: "b4@5 c5", F: "~ e4@2 c4@3", G: "~ c4@5",
  H: "b3 ~@5", I: "~ g4@2 g4@3", J: "~ e4@2 e4@3", K: "~ c4@2 c4@3", L: "~ d4@2 ~ d4@2", M: "~ b3@2 b3@3",
  N: "~ d4@2 d4@3", O: "[~@21 b3@13 ~@14]/2",
})).s("gm_trumpet").gain(0.15).pan(0.2)

// chords · muted trumpet
const muted_trumpet = note("<~ A B C@8 ~@87>".pickRestart({
  A: "~@2 c5@9 ~, g4@11 ~", B: "~@11 g4@13, ~@7 e4@17",
  C: "[~@14 d4@13 ~@9 g4@18 ~@8 c4@18 ~@13 b4@6 ~@39 d4@50 ~@4, ~@5 a3@22 ~@4 d4@22 ~@5 g3@22 ~@9 e4@10 ~@13 a3@26 ~@54, ~@61 g4@33 ~@2]/8",
})).s("gm_muted_trumpet").gain(0.23).pan(0.2)

// other · french horn · "Horn in F"
const french_horn = note(`<
  ~@6 A@5 ~@2 B C D ~ B C E F G H I J ~@3 K L M N O P Q R ~@17 S T U V W X Y Z AA AB AC AD AE AB AC AF ~@19 AG@4 AH@2
  ~@4
>`.pickRestart({
  A: "[~@4 d4@4 e4@19 ~@3 c4@4 ~ f4@10 e4@10 ~ g4@10 g4@50 ~@4]/5", B: "c4 ~", C: "~ a4", D: "g3 ~@5", E: "~@4 g4 b4",
  F: "a4@2 e4@2 a4@2 c5@3 b4 a4@2", G: "a4@2 f4@2 a4 g4", H: "g4@2 d4 c4@2 d4", I: "c4 d4", J: "e4", K: "~@2 c4 e4@3",
  L: "~@2 e4 g4@3", M: "~@2 f4 a4@3", N: "g4@2 d4@2 g4@2 c4 b3 c4 d4 e4 f4", O: "g4@2 c4 g3@3", P: "b3 a3 b3 g#3@3",
  Q: "f3 c4@2 f4 ~@2", R: "~@2 g3 b3@3", S: "~@4 e4 f#4", T: "e4@2 b3@2 e4@2 g4@3 f#4 e4@2", U: "e4@2 c4@2 e4 d4",
  V: "d4@2 a3 g3@2 a3", W: "b3@2 g3 a3 b3 d4", X: "b3@3 b3 ~@2", Y: "c4@3 c4 ~@2", Z: "a3 f#3 a3 d4 a3 g3", AA: "a3",
  AB: "b3!6 b3@2 ~@4", AC: "c4!6 c4@2 ~@4", AD: "a3!6 a3@2 ~@2 a3@2", AE: "f#3@2 f#3 b3@3", AF: "d4 ~",
  AG: "[~@8 g4@13 ~ a4@26 e4@4 ~ b3@4 e4@4 g4@7 f#4@2 e4@4 ~ e4@9 c4@8 e4@4]/4",
  AH: "[~ d4@4 d4@9 a3@4 g3@9 a3@4 ~ b3@9 g3@4 ~@3]/2",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note("<~@4 A B@2 ~@5 C D E F C D E G ~@5 H I ~@26 J ~@27 K@4 L@4 ~@4 M@2 ~@3>".pickRestart({
  A: "~@7 d3", B: "[~ g3@4 ~ c4@13 g3@4 c4@4 ~@21]/2", C: "~ e4", D: "~ g4", E: "~ c4 f4 ~@3", F: "~@4 d4@8 g4@5 ~@7",
  G: "d4@3 d4 ~@2", H: "~@2 f4 a4@3", I: "g4 ~@5", J: "~@3 d4 ~@2",
  K: "[~@4 d4@13 d4@4 ~ g4@4 a4@4 f#4@22 ~ g4@4 g4@27 g4@12]/4",
  L: "[~ f#4@13 g4@13 d4@7 g4@2 a4@4 ~ f#4@22 g4@4 g4@13 ~@16]/4", M: "[~@21 f#3@13 ~@14]/2",
})).s("gm_french_horn").gain(0.2)

// other · french horn · "Horn in F"
const french_horn_2 = note(`<
  ~@6 A@5 ~@2 B ~ C ~ B ~ D E F G H I ~@3 J K L M J N O P ~@16 Q R S T U V W X Y Z AA@2 AB AC AA@2 AD AE@2 ~@17 AF@4
  AG@2 ~@4
>`.pickRestart({
  A: "[~@4 d4@4 e4@19 ~@3 c4@4 ~ f4@10 e4@10 ~ e4@10 c4@31 ~ b3@18 ~@4]/5", B: "c4 ~", C: "g3 ~@5", D: "~@4 g3 d3",
  E: "c3 e3 a3 c4@3", F: "a3 f3!2", G: "e3 g3 e3", H: "g3 b3", I: "a3 ~", J: "~ g3 c4@4", K: "~ b3 e4@2 e4@2",
  L: "~ c4 f4@4", M: "g3 d4@2 f3 d4@2", N: "b3 a3 b3 g#3@3", O: "f3 c4@3 ~@2", P: "~ d3 g3@4", Q: "a3",
  R: "b3@3 ~ e4 f#4", S: "e4@2 b3@2 e4@2 g4@3 f#4 e4@2", T: "e4@2 c4@2 e4 d4", U: "d4@2 a3 g3@2 a3",
  V: "b3@2 g3 a3 b3 d4", W: "b3@3 b3 ~@2", X: "c4@3 c4 ~@2", Y: "~@3 d4 a3 g3", Z: "d3", AA: "g3!6 g3@2 ~@4",
  AB: "f#3!6 f#3@2 ~@2 f#4@2", AC: "d4@2 b3 a3@3", AD: "a3@3 d3@2 d3", AE: "[a3@11 ~]/2",
  AF: "[b3@4 g3@4 e4@7 d4@2 c4@4 ~ d4@26 e4@4 ~ b3@4 e4@4 g4@7 f#4@2 e4@4 ~ e4@9 c4@8 e4@4]/4",
  AG: "[~ d4@4 d4@9 a3@4 g3@9 a3@4 ~ b3@9 g3@4 ~@3]/2",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft_2 = note(`<
  ~@4 A B@2 ~@5 C D E F G D H I ~@4 J K L ~@17 M N O P Q N O R ~ S ~@27 T@7 ~@5 U@2 ~@3
>`.pickRestart({
  A: "~@16 g2@4 ~ d3@3", B: "[~ g3@4 ~ c4@13 g3@4 c4@4 ~@21]/2", C: "~ e4", D: "~ g4", E: "f3@2 f4@3 f4",
  F: "~@4 d4@8 g4@5 ~@7", G: "~ c4@2", H: "f4@2 f4@3 f4", I: "g4@3 d4 ~@2", J: "~ c4", K: "f3 c4", L: "g3 ~@5", M: "c4",
  N: "a3", O: "f3", P: "g3 f3", Q: "e3", R: "g3", S: "~@3 d4 ~@2",
  T: "[~@4 b3@26 d4@27 c4@27 d4@18 ~@8 b3@27 d4@13 b3@9 g3@4 c4@4 ~]/7", U: "[~@21 f#3@13 ~@14]/2",
})).s("gm_french_horn").gain(0.15)

// other · trombone
const trombone = note(`<
  ~@7 A@4 ~@13 B@2 C D E F G H I J K L M N O P Q R S T@2 ~@8 U V@2 W X Y Z AA AB AC AD AE AF AG Z AH AI@2 ~@19 AJ AK AL
  AM ~@4
>`.pickRestart({
  A: "[~@21 c4@21 d4@50 ~@4]/4", B: "c4", C: "~@4 b3 d4", D: "g4 ~@2", E: "~@2 c4 e4@3", F: "~@2 e4 g4@3",
  G: "~@2 f4 a4@3", H: "g4 d4@2 f4 d4@2", I: "~ g3 c4@4", J: "~@3 e4@2 b3", K: "f3 c4@2 f4 ~@2", L: "~@2 g3 b3@3",
  M: "a3@2 e3@2 a3@2 c4@3 b3 a3@2", N: "a3@2 f3@2 a3 g3", O: "g3@2 d3 c3@2 d3", P: "e3 d3",
  Q: "c4@2 a3@2 c4@2 e4@3 d4 c4@2", R: "c4@2 a3@2 c4 b3", S: "g3@6 a3@3 g3 a3@2", T: "[b3@7 ~@5]/2", U: "~@5 f#4",
  V: "e4!6 e4@2 ~@4", W: "d4!6 d4@2 ~@2 d4@2", X: "b3@2 g4 f#4@3", Y: "g4@2 e4@2 g4@2 b4@3 a4 g4@2",
  Z: "g4@2 e4@2 g4 f#4", AA: "d4", AB: "f#3 d3 f#3 a3 d4 f#4", AC: "e4@2 b3@2 e4@2 g4@3 f#4 e4@2",
  AD: "e4@2 c4@2 e4 d4", AE: "d4@2 a3 g3@2 a3", AF: "b3@3 a3 b3 d4",
  AG: "g4@2 e4@2 b3@2 e4@2 g4@2 b3@2 b4@3 ~ a4@4 g4@3 ~", AH: "d4@6 e4@3 d4 e4@2", AI: "[f#4@11 ~]/2",
  AJ: "g3@2 g3@2 ~ g3@2 g3@2 g3@2 g3@2 g3@4 ~@7", AK: "~@3 e3@2 e3@2 e3@2 e3@2 ~ e3@2 e3@2 e3@4 ~@4",
  AL: "~@5 a3@2 a3@2 ~ a3@2 a3@2 a3@2 a3@2 a3@4 ~@2", AM: "~@3 d4@4 ~ b3@13 ~@3",
})).s("gm_trombone").gain(0.4)

// other · trombone · soft notes
const trombone_soft = note(`<
  A@2 B C@5 ~@4 D E F G H E F I J K@2 L ~@2 M ~@26 N ~@17 O P Q R S P Q T@2 ~@13 U@2 ~@3
>`.pickRestart({
  A: "[~@19 c4@27 ~@2]/2", B: "~ b3@11", C: "[~@9 e4@18 g3@27 ~@13 e4@13 ~@5 b3@15 ~@20]/5", D: "~ g3", E: "~ b3@5",
  F: "~ c4@5", G: "~@12 d4@5 ~@7", H: "~ c4@2", I: "~ b3", J: "~ c4", K: "~ a3", L: "~ g3@2 b2 g3 b3",
  M: "b3 g3 b3 d4 ~@2", N: "~@3 b3 e4 ~", O: "~@2 g3 b3@3", P: "~@2 e3 g3@3", Q: "~@2 c3 e3@3", R: "~ a2 d3 ~ a2 c3",
  S: "~@2 b2 d3@3", T: "a3/2", U: "[~@21 d4@13 ~@14]/2",
})).s("gm_trombone").gain(0.15)

// bass · trombone · "Bass Trombone"
const bass = note(`<
  ~@7 A@4 ~@14 B C D E F G H I J K L M N O P M N Q R@2 ~@8 S T@2 U V W X Y Z AA AB AC AD AE X AF AG@2 ~@19 AH AI AJ AK
  ~@4
>`.pickRestart({
  A: "[~@11 f3@31 g3@50 ~@4]/4", B: "f2", C: "~@5 d3", D: "g2 ~@2", E: "c3 g3@5", F: "e3 b3@4 b3", G: "f3 c4@5",
  H: "g3@2 g3 f3@2 f3", I: "c3", J: "e3", K: "f3 ~", L: "g2 d3@5", M: "a3@2 e3@2 a3@2 c4@3 b3 a3@2",
  N: "a3@2 f3@2 a3 g3", O: "g3@2 d3 c3@2 d3", P: "e3@2 c3 d3 e3 g3", Q: "g3@3 d3@2 d3", R: "[a3@3 g3@4 ~@5]/2",
  S: "~@5 b2", T: "g2!6 g2@2 ~@4", U: "g2!6 g2@2 ~@2 g2@2", V: "f#2@2 f#2 b2@3", W: "g2@2 e2@2 g2@2 b2@3 a2 g2@2",
  X: "g2@2 e2@2 g2 f#2", Y: "d2", Z: "f#2 d2 f#2 a2 d3 f#3", AA: "g2@2 b2@2 e3@2 g2@3 f#2 e2@2", AB: "c2@2 c3@2 e3 d3",
  AC: "a2@2 f#2 e2@2 f#2", AD: "g2@2 g2 f#2@2 d2", AE: "g2@2 e2@2 b2@4 b2@4 b2@3 ~ a2@4 g2@3 ~", AF: "d2@3 a2@2 a2",
  AG: "[d2@11 ~]/2", AH: "e3@2 e3@2 ~ e3@2 e3@2 e3@2 e3@2 e3@4 ~@7", AI: "~@3 c3@2 c3@2 c3@2 c3@2 ~ c3@2 c3@2 c3@4 ~@4",
  AJ: "~@5 d3@2 d3@2 ~ d3@2 d3@2 d3@2 d3@2 d3@4 ~@2", AK: "~@3 d3@4 ~ d3@13 ~@3",
})).s("gm_trombone").gain(0.4).pan(0.8)

// bass · trombone · "Bass Trombone" · soft notes
const bass_soft = note(`<
  A@8 ~@4 B C@2 D E C@2 F B G H I J ~ K ~@26 L ~@17 M N O P Q N O R@2 ~@13 S@2 ~@3
>`.pickRestart({
  A: "[~@19 c3@27 e3@27 f3@27 ~@12 g2@13 ~ c3@26 e3@19 ~@21]/8", B: "~ e3@5", C: "~ g3", D: "~@4 g3@13 ~@7",
  E: "~ g3@5", F: "~ g3!2", G: "~ c3@5", H: "~ d3@4 g3", I: "c3 b2", J: "a2", K: "b2 g2@2 b2@2 ~", L: "~@3 b3 e3 ~",
  M: "~ d3@2 d3@3", N: "~ b2@2 b2@3", O: "~ g2@2 g2@3", P: "~ a2@2 ~ a2@2", Q: "~ f#2@2 f#2@3", R: "f#2/2",
  S: "[~@21 f#3@13 ~@14]/2",
})).s("gm_trombone").gain(0.15).pan(0.8)

// other · tuba · "Euphonium"
const tuba = note(`<
  ~@7 A@4 ~@12 B C D E@2 F G H I J K L M ~@3 N O P Q R ~@8 S T U V W X Y@2 Z AA U V W X Y@2 AB AC@2 AD@4 AE@3 AF@2 ~@18
>`.pickRestart({
  A: "[~@11 f3@31 c3@31 ~ d3@18 ~@4]/4", B: "~@3 d3 e3 g3", C: "c4@2 a3@2 c4@2 e4@3 d4 c4@2", D: "c4@2 a3@2 c4 b3",
  E: "[g3@2 ~]/2", F: "~ g3 c4@4", G: "~@2 e4 g4 e4 b3", H: "~@2 f4 a4@2 c4", I: "~ d4 g4 ~ d4 f4", J: "~ g3 c4 e4@3",
  K: "e3 b3@4 b3", L: "f3 c4@2 f4 ~@2", M: "~ d3 g3@4", N: "c3 b2", O: "e3!2", P: "f3!2", Q: "g3@6 a3@3 g3 a3@2",
  R: "d4", S: "a3", T: "b3!2", U: "b3!4 ~@2", V: "c4!4 ~@2", W: "d3 a3 d4 e4@2 d4", X: "g3@2 g3 f#3 d3 f#3",
  Y: "g3!4 ~@2", Z: "d3 a2 d3 f#3 a3 d4", AA: "d4 a3 d4 f#4 a4 d4", AB: "a3 g3 f#3 e3 d3 e3",
  AC: "[f#3 a3 c4 d4@8 a3]/2",
  AD: "[g3@2 d3@2 g3@2 b3@3 a3 g3@4 g3 d3 g3 a3 b3@3 a3 g3@4 f#3@2 g3@2 a3@3 g3 f#3@4 d3@2 e3@2 f#3@2 g3@2 a3@2]/4",
  AE: "[b3@2 f#3@2 g3@2 a3@3 g3 f#3@4 g3 a3 g3 f#3 g3@3 f#3 e3@4 c3@2 d3@2 e3@3 f#3 g3@2]/3", AF: "a3/2",
})).s("gm_tuba").gain(0.3)

// other · tuba · "Euphonium" · soft notes
const tuba_soft = note("<A@8 ~@4 B C D E F C D G H I J K ~@20 L ~ M N O P M Q ~@41 R S T@3>".pickRestart({
  A: "[~@19 c3@27 e3@27 f3@26 g3@27 c3@26 e3@19 ~@21]/8", B: "~ c4@2", C: "~@2 e4@3 ~", D: "~@2 f4@3 f4",
  E: "~@8 d4@9 ~@7", F: "c3 g3 c4 e4@3", G: "~ d4@5", H: "~ a3@2", I: "~ f3@2", J: "~ g3@2", K: "c3@2 c3 ~@3", L: "c4",
  M: "f3", N: "g3 f3", O: "e3", P: "a3", Q: "g3", R: "~@17 g3@4 a3@3", S: "~ b3@4 ~ d4@4 g4@4 ~ e4@4 g4@4 ~",
  T: "[b4@6 a4@2 g4@4 ~ g4@9 e4@8 g4@4 ~ f#4@4 d4@31 ~@2]/3",
})).s("gm_tuba").gain(0.2)

// bass · tuba
const bass_2 = note(`<
  ~@7 A@4 ~@2 B ~ C ~ B ~@5 D E F G@2 H C I J H K L C I M N O I M P Q ~@10 R S T U V W X Y R S T U V W Z AA@2 ~@19 AB AC
  AD@2 ~@4
>`.pickRestart({
  A: "[~@11 f2@31 g2@50 ~@4]/4", B: "e2", C: "g2", D: "~@3 d2 e2 g2", E: "c3@2 a2@2 c3@2 e3@3 d3 c3@2",
  F: "c3@2 a2@2 c3 b2", G: "[g2@2 ~]/2", H: "c3", I: "a2", J: "g2@2 g2 d3@2 d3", K: "b2 e3", L: "c3@2 ~", M: "f2",
  N: "g2@3 a2@2 g2", O: "c2 g2@2 b2 g2 b2", P: "g2@3 b2 g2 b2", Q: "d3", R: "e2@3 e2 ~@2", S: "c2@3 c2 ~@2",
  T: "d2@3 e2@2 d2", U: "g2 f#2", V: "e2@3 g2 ~@2", W: "c2@3 e2 ~@2", X: "d2 a2 d2 f#2 a2 d2", Y: "d2 a2 d2 f#2 a2 d3",
  Z: "d2@3 a2@2 a2", AA: "[d2@11 ~]/2", AB: "e2@13 e2@4 ~@7", AC: "~@3 c2@13 c2@4 ~@4",
  AD: "[~@5 d2@13 e2@9 d2@4 ~ g2@13 ~@3]/2",
})).s("gm_tuba").gain(0.3).pan(0.6)

// bass · tuba · soft notes
const bass_soft_2 = note(`<
// … 76 more lines