Strudelify

Undertale

Toby Radiation Fox

KeyB♭ majorTempo160 bpm
0:00/0:00
// Undertale — Toby Radiation Fox
// 160 bpm, 4/4, key Bb 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 4 "Violin" named as a string part, played on violin (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1675886; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 320 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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 · pizzicato strings · "Violin"
const pizzicato_strings = note(`<
  ~@2 A B C D E F G H A B C D E F I J K L M N O P Q R K L M N O P Q R ~@8 S T U V W X Y Z T AA AB@2 X AC AD@2 T AA AB@2
  X AC AD@2 AE AF AG AH AE AF AG AI AJ AK AL@2 AJ AK AM AN AJ AK AO@2 AJ AK AP@2 AQ@2 AR@2 AQ@2 AS@2 AT@2 AU@2 AT@2 AV@2
  AW AX AY@2 AZ BA BB@2 ~@163 BC@3 BD@4 BE@4 BF@4 BG BC@3 BD@4 BH@5 BI@3 BJ BC@3 BK@4 BL@4
>`.pickRestart({
  A: "f5 ~ f6 ~", B: "c6 ~", C: "bb5 ~ f6 ~", D: "f5 ~", E: "f5 ~ a5 ~", F: "a6@3 bb6", G: "a6 f6", H: "d6",
  I: "a6 ~ f6 ~", J: "d6 bb5 a5 f5 d5 c5 bb4 f4", K: "f4 f5", L: "c5@3 ~", M: "bb4 f5", N: "f4@3 ~", O: "f4 a4",
  P: "a5@3 bb5", Q: "a5 f5", R: "d5 ~", S: "f5 bb4 c5 bb4", T: "f4 bb4 c5 bb4", U: "f4@2 f4 bb4 c5@2 eb5@2",
  V: "d5@2 eb5@2 d5 c5 bb4@2", W: "f6 bb5 c6 bb5", X: "f5 bb5 c6 bb5", Y: "f5@2 f5 bb5 c6@2 eb6@2",
  Z: "d4@2 eb4@2 d4 c4 bb3@2", AA: "f4@3 bb4@3 ~@3 c5@6 d5 ~ c5 bb4@6",
  AB: "[f4@6 bb4@6 c5@3 eb5@3 ~@3 d5@6 eb5 ~ d5 c5@6 bb4@6 c5@6]/2", AC: "f5@3 bb5@3 ~@3 c6@6 d6 ~ c6 bb5@6",
  AD: "[f5@6 bb5@6 c6@3 eb6@3 ~@3 d6@6 eb6 ~ d6 c6@6 bb5@6 c6@6]/2", AE: "bb5@3 ~@3 bb5 ~@2 c6 ~@2 d6@3 ~@3 bb5@3 ~@3",
  AF: "c6 ~@2 bb5 ~@2 c6 ~@2 d6 ~@2 c6@3 ~@3 bb5@3 ~@3", AG: "d6@3 ~@3 d6 ~@2 eb6 ~@2 f6@3 ~@3 bb6@3 ~@3", AH: "g6 f6",
  AI: "g6 c7", AJ: "gb6 b5 db6 b5", AK: "gb5@3 b5@3 ~@3 db6@6 eb6 ~ db6 b5@6",
  AL: "[gb5@6 b5@6 db6@3 e6@3 ~@3 gb6@6 ab6 ~ gb6 db6@6 b5@6 db6@6]/2", AM: "gb5@2 b5@2 b6 bb6 ~ gb6",
  AN: "gb6 eb6 db6 b5@2 db6 b5 gb5", AO: "[gb5@6 b5@6 db6@3 e6@3 ~@3 eb6@6 e6 ~ eb6 db6@6 b5@6 db6@6]/2",
  AP: "[gb5@2 b5@2 b6 bb6 ~ gb6@2 eb6 db6 b5@2 db6 b5 gb5]/2", AQ: "[~@2 gb4@2 gb4!2 ~ gb4@3 e4@2 eb4@2 e4@2]/2",
  AR: "[gb4@4 b4@2 ~ gb4@7 ~@2]/2", AS: "[gb4 db4 bb3 b3@4 ~]/2", AT: "[~@2 gb5@2 gb5!2 ~ gb5@3 e5@2 eb5@2 e5@2]/2",
  AU: "[gb5@4 b5@2 ~ gb5@8 ~]/2", AV: "[gb5@2 b5@2 bb5@2 b5@9 ~]/2", AW: "~@2 eb5@2 eb5!2 ~ eb5", AX: "eb5 db5 b4 ab4",
  AY: "[~@2 eb5@2 eb5!2 ~ eb5@3 db5@2 eb5@2 gb5@2]/2", AZ: "ab5", BA: "~@2 eb6 b5", BB: "[db5@5 ~@3]/2",
  BC: "[~ d4@2 d4@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 c4@2 c4@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 b3@2 b3@2 d5@2 ~]/3",
  BD: "[~ a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@2 f4@2 d4@2 f4@2 g4@2 bb3@2 bb3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 d4@2 d4@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 c4@2 c4@2 d5@2 ~]/4",
  BE: "[~ a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 b3@2 b3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@2 f4@2 d4@2 f4@2 g4@2 bb3@2 bb3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 d4@2 d4@2 d5@2 ~]/4",
  BF: "[~ a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 c4@2 c4@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 b3@2 b3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@2 f4@2 d4@2 f4@2 g4@2 bb3@2 bb3@2 d5@2 ~]/4",
  BG: "~ a4@3 ~@3 ab4@2 ~@15",
  BH: "[~ a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 b3@2 b3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@2 f4@2 d4@2 f4@2 g4@2 bb3@2 bb3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 c5@4 c5@2 c5@2 ~@2 c5@4 c5@4 a4@4 a4@9]/5",
  BI: "[~ c5@4 c5@2 c5@2 ~@2 d5@4 eb5@4 d5 eb5 c5@2 a4@2 c5@2 d5@6 f5@4 f5@2 f5@2 ~@2 g5@2 ~@2 ab5@2 ~@2 a5@2 ~@2 c6@2 ~@2 a5@6 d6@4 d6@3]/3",
  BJ: "~ d6@2 a5@2 d6@2 c6@17",
  BK: "[~ a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@2 f4@2 d4@2 f4@2 g4@2 bb4@2 c5@2 d5@2 e5@2 f5@2 g5@4 c6@16 ~@2 a3@2 a3@2 a4@2 ~@2 e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 g3@2 g3@2 g4@2 ~]/4",
  BL: "[~ e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 a3@2 a3@2 a4@2 ~@2 e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 a3@2 a3@2 a4@2 ~@2 e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 ~@7]/4",
})).s("gm_pizzicato_strings").gain(0.45)

// other · pizzicato strings · "Violin" · soft notes
const pizzicato_strings_soft = note(`<
  ~@34 A@2 B@2 C@2 D E ~@93 F G H I J K L M N O P Q R S T U@2 V W X Y Z AA AB N O P Q R S T U@2 V W X AC@2 AD@19 AE ~@31
  AF@3 ~@26 AG AH AI AJ AK AL AH AI AJ AK AL AH AI AJ AK AL AM@3 ~@48
>`.pickRestart({
  A: "c4!2", B: "d4!2", C: "eb4!2", D: "f4!2", E: "g4!2", F: "~@4 gb4@3 gb4 ~@7 gb4@3 gb4 ~@5",
  G: "~@2 gb4@3 gb4 ~@7 gb4@3 gb4 ~@7", H: "gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@2", I: "~ gb4 ~@7 gb4@3 gb4 ~@7 gb4@3 gb4",
  J: "~@7 gb4@3 gb4 ~@7 gb4@3 gb4 ~@2", K: "~@5 gb4@3 gb4 ~@7 gb4@3 gb4 ~@4", L: "~@3 gb4@3 gb4 ~@7 gb4@3 gb4 ~@6",
  M: "~ gb4@3 gb4 ~@12 gb5@3 gb5 ~@3", N: "~@4 gb5@3 gb5 ~@7 gb5@3 gb5 ~@5", O: "~@2 gb5@3 gb5 ~@7 gb5@3 gb5 ~@7",
  P: "gb5@3 gb5 ~@7 gb5@3 gb5 ~@7 gb5@2", Q: "~ gb5 ~@7 gb5@3 gb5 ~@7 gb5@3 gb5", R: "~@7 gb5@3 gb5 ~@7 gb5@3 gb5 ~@2",
  S: "~@5 gb5@3 gb5 ~@7 gb5@3 gb5 ~@4", T: "~@3 gb5@3 gb5 ~@7 gb5@3 gb5 ~@6",
  U: "[~ gb5@3 gb5 ~@7 gb5@3 gb5 ~@7 gb5@3 gb5 ~@7 gb5@3 gb5 ~@7 gb5@3]/2", V: "gb5 ~@7 gb5@3 gb5 ~@7 gb5@2 gb5 ~@2",
  W: "~@6 gb5@2 gb5 ~@8 gb5@2 gb5 ~@4", X: "~@4 gb5@2 gb5 ~@8 gb5@2 gb5 ~@6", Y: "~@2 gb5@2 gb5 ~@8 gb5@2 gb5 ~@8",
  Z: "gb5@2 gb5 ~@8 gb5@2 gb5 ~@7 gb5@3", AA: "gb5 ~@7 gb5@3 gb5 ~@7 gb5@3 gb5 ~",
  AB: "~@6 gb5@3 gb5 ~@7 gb5@3 gb5 ~@3", AC: "[~@2 gb5@2 gb5 ~@8 gb5@2 gb5 ~@2 db6@8 b5@8 ~ db6@5 f5 ~@2 f5 ~@4]/2",
  AD: "~@4 f5 ~@2 f5 ~@8 f5 ~@2 f5 ~@4", AE: "~@4 f5 ~@2 f5 ~@16", AF: "[~@11 eb5@20 ~@5]/3", AG: "~@13 f5 ~@2 f5 ~@7",
  AH: "f5 ~ f5 ~@8 f5 ~ f5 ~@8 f5 ~", AI: "f5 ~@7 f5 ~@2 f5 ~@7 f5 ~@2 f5 ~", AJ: "~@6 f5 ~@2 f5 ~@7 f5 ~@2 f5 ~@3",
  AK: "~@4 f5 ~@2 f5 ~@7 f5 ~@2 f5 ~@5", AL: "~@2 f5 ~@2 f5 ~@7 f5 ~@2 f5 ~@7",
  AM: "[f5 ~ f5 ~@8 f5 ~ f5 ~@8 eb5@44 ~@6]/3",
})).s("gm_pizzicato_strings").gain(0.2)

// other · violin
const violin = note(`<
  ~ A B C B C B D E F B C B C B D G H I@2 J@2 K@2 L@2 M@2 N@2 O@2 P@2 Q R S T U V W X Y Z AA AB AC AD AE ~ AF@2 AG@2
  AH@2 AI AJ AF@2 AG@2 AH@2 AI AJ AK@2 AL@2 AK@2 AL@2 AM AN AO@2 AM AN AP AQ AR AS AT@2 AR AS AU@2 ~@8 AV@2 AW@2 AX AY
  AZ@2 BA BB BC@2 BD BE BF@2 ~@179 BG@3 BH@2 BI@2 BJ@5 BK@3 BL BM@3 BN BO@3 BP@4
>`.pickRestart({
  A: "g4", B: "f5 ~@2 f5 ~@5 f5 ~@2 f5 ~@2 f5 ~@5 f5 ~@2", C: "f5 ~@2 f5 ~@5 f5 ~@2 f5 ~@2 f5 ~@2 f5 ~@2 g5 ~@2",
  D: "f5 ~@2 f5 ~@5 f5 ~@2 f5 ~@2 f5 ~@2 f5 ~@2 f5 ~@2", E: "d5 ~@2 d5 ~@5 d5 ~@2 d5 ~@2 d5 ~@5 d5 ~@2",
  F: "d5 ~@2 d5 ~@5 d5 ~@2 d5 ~@2 d5 ~@2 d5 ~@2 d5 ~@2", G: "a5 f5", H: "f4 bb4 c5 f5 d5 c5 bb4 f4",
  I: "[[eb2,eb3]!2 ~ [eb2,eb3] [eb2,eb3,eb4]!2 ~ [eb2,eb3] [eb2,eb3] [eb2,eb3,eb4] eb4 [eb2,eb3]!3 f3!2, eb4@2 eb4@2 ~@3 eb4@2 ~@3 eb4@2 eb4@2]/2", // Eb
  J: "[[g2,g3]!2 ~ [g2,g3] [g2,g3,f4]!2 ~ [g2,g3] [g2,g3] [g2,g3,f4] f4 [g2,g3]!3 [f2,f3,f4] [f2,f3,eb4], f4@2 f4@2 ~@3 f4@2 ~@3 f4@2 ~@2]/2", // G G7 G G7 G F F7
  K: "[[eb2,eb3]!2 ~ [eb2,eb3] [eb2,eb3,f4,c5]!2 ~ [eb2,eb3,c5] [eb2,eb3,c5] [eb2,eb3,f4,c5] [f4,c5] [eb2,eb3]!3 f3!2, [f4,c5]@2 [f4,c5]@2 ~@3 f4@2 ~@3 [f4,c5]@2 [f4,c5]@2]/2", // Eb F7 Cm F7 F5 Eb F5
  L: "[[g2,g3]!2 ~ [g2,g3] [g2,g3,d4,f4]!2 ~ [g2,g3,a4] [g2,g3,a4] [g2,g3,d4,f4] [d4,f4] [g2,g3]!3 [f2,f3]!2, [d4,a4]@2 [d4,a4]@2 ~@3 f4@2 ~@3 [d4,a4]@2 [d4,a4]@2]/2", // G G7 Gsus2 G7 Dm G F D5
  M: "[[eb2,eb3] ~@2 [eb2,eb3] eb4!2 ~ [eb2,eb3] [eb2,eb3] eb4!2 [eb2,eb3] eb4@2 ~ [eb2,eb3], eb4@2 eb4@2 ~@3 eb4@2 ~@5 eb4@2]/2", // Eb
  N: "[[g2,g3]!2 ~ [g2,g3] [g2,g3,f4]!2 ~ [g2,g3] [g2,g3] [g2,g3,f4] f4 [g2,g3]!3 f4 [g2,g3,eb4], f4@2 f4@2 ~@3 f4@2 ~@3 f4@2 ~@2]/2", // G G7 G G7 G Cm
  O: "[[c2,c3]!2 ~ [c2,c3] [c2,c3,f4,c5]!2 ~ [c2,c3,c5] [eb2,eb3,c5] [eb2,eb3,f4,c5] [f4,c5] [eb2,eb3]!3 ~ [eb2,eb3], [f4,c5]@2 [f4,c5]@2 ~@3 f4@2 ~@3 [f4,c5]@2 [f4,c5]@2]/2", // C F5 C Cm F7 F5 Eb F5
  P: "[[g2,g3]!2 ~ [g2,g3] [g2,g3,d4,f4]!2 ~ [g2,g3,a4] [g2,g3,a4] [g2,g3,d4,f4] [d4,f4] [g2,g3]!3 [d4,a4]@2, [d4,a4]@2 [d4,a4]@2 ~@3 f4@2 ~@3 [d4,a4]@2 ~@2]/2", // G G7 Gsus2 G7 Dm G D5
  Q: "[eb2,eb3]!4, g3!2", R: "[eb2,eb3]!3 [f2,f3], g3!2", S: "[g2,g3]!4, bb3!2", T: "[g2,g3]!2 [f2,f3]!2, bb3!2",
  U: "[eb2,eb3]!4, bb3!2", V: "[eb2,eb3]!3 [f2,f3], bb3!2", W: "[d2,d3]!4, c4!2", X: "[g2,g3]!4, d4!2",
  Y: "eb2 eb3 eb2 eb3 eb2 eb3 eb2 eb3, f4 bb3 c4 bb3", Z: "eb2 eb3 eb2 eb3 f2 f3 f2 f3, bb3!2 c4 bb3",
  AA: "g2 g3 [g2,bb3] [g3,bb3] g2 g3 g2 g3, bb3 ~ c4 eb4", AB: "g2 g3 g2 g3 [g2,d4] [g3,c4] f2 f3, d4 eb4 ~ bb3",
  AC: "eb2 eb3 eb2 eb3 eb2 eb3 eb2 eb3, f5 bb4 c5 bb4", AD: "eb2 eb3 eb2 eb3 f2 f3 f2 f3, f4 bb4 c5 bb4",
  AE: "bb2 bb3 [bb2,f4] [bb3,bb4] bb2 bb3 eb5@2, f4 ~ c5 ~", AF: "[eb2,eb3,c4]!4", AG: "[f2,f3,d4]!4",
  AH: "[eb2,eb3,eb4]!4", AI: "[d2,d3,f4]!3 [f2,f3,f4]", AJ: "[g2,g3,g4]!4", AK: "[eb4!4 eb4!4, [eb2,eb3]@23 ~]/2",
  AL: "[f4!4 g4!4, [f2,f3]@23 ~]/2", AM: "[gb2,gb3,gb5] [gb2,gb3,b4] [gb2,gb3,db5] [gb2,gb3,b4]",
  AN: "gb4@3 b4@3 ~@9 eb5 ~ db5 [gb2,gb3,b4]@6, [gb2,gb3]!3 ~, ~@3 db5@2 ~@3", // B5 Gb
  AO: "[[eb2,eb3,gb4]@6 [eb2,eb3,b4]@6 db5@3 e5@3 ~@9 e5 ~ eb5 [eb2,eb3,db5]@6 [eb2,eb3,b4]@6 [eb2,eb3,db5]@6, ~@2 [eb2,eb3]!2 [eb2,eb3] ~@3, ~@7 eb5@2 ~@7]/2", // Ebm Abm Eb7 Abm Eb7 Eb
  AP: "[gb2,gb3,gb4]@2 [gb2,gb3,b4]@2 b5 bb5 ~ gb5, ~@2 [gb2,gb3]!2", // Gb B5 Gb
  AQ: "gb5 eb5 db5 ~@2 db5 b4 gb4, [ab2,ab3]!4, ~@3 b4@2 ~@3", AR: "gb5 b4 db5 b4",
  AS: "gb4@3 b4@3 ~@3 db5@6 eb5 ~ db5 b4@6", AT: "[gb4@6 b4@6 db5@3 e5@3 ~@3 eb5@6 e5 ~ eb5 db5@6 b4@6 db5@6]/2",
  AU: "[gb4@2 b4@2 b5 bb5 ~ gb5@2 eb5 db5 b4@2 db5 b4 gb4]/2", AV: "[~@2 gb4@2 gb4!2 ~ gb4@3 e4@2 eb4@2 e4@2]/2",
  AW: "[gb4@4 b4@2 ~ gb4@8 ~]/2", AX: "~@2 gb4@2 gb4!2 ~ e4", AY: "gb4 e4 eb4 e4", AZ: "[gb4@2 b4@2 bb4@2 b4@9 ~]/2",
  BA: "~@2 b4@2 b4!2 ~ b4", BB: "b4 bb4 ab4 eb4", BC: "[~@2 bb4@2 bb4!2 ~ bb4@3 bb4@2 bb4@2 eb5@2]/2", BD: "b4",
  BE: "~@2 eb5 b4", BF: "[db5@5 ~@3]/2",
  BG: "[~ a4@2 a4@2 a5@2 ~@2 e5@3 ~@3 eb5@2 ~@2 d5@4 c5@2 c5@2 a4@2 b4@2 c5@2 g4@2 g4@2 a5 ~@3 e5@2 ~@4 eb5@4 d5@4 g5@4 e5@2 eb5@2 d5@2 gb4@2 gb4@2 a5 ~@2]/3",
  BH: "[~ e5@2 ~@4 eb5@4 d5@4 c5@4 a4@2 c5@2 d5@2 eb5@2 d5@2 c5@2 d5@4 c5@2 a4@2 c5@2 c5@4 b4@3]/2",
  BI: "[~ a4@4 ab4@4 a4@2 a4@2 a5@2 ~@2 e5@3 ~@3 eb5@2 ~@2 d5@4 c5@2 c5@2 a4@2 b4@2 c5@2 g4@2 g4@2 a5 ~@2]/2",
  BJ: "[~ e5@2 ~@4 eb5@4 d5@4 g5@4 e5@2 eb5@2 d5@2 gb4@2 gb4@2 a5 ~@3 e5@2 ~@4 eb5@4 d5@4 c5@4 a4@2 c5@2 d5@2 eb5@2 d5@2 c5@2 d5@4 c5@2 a4@2 c5@2 c5@4 b4@4 a4@4 ab4@4 c5@4 c5@2 c5@2 ~@2 c5@4 c5@4 a4@4 a4@9]/5",
  BK: "[~ c5@4 c5@2 c5@2 ~@2 a4@4 bb4@4 a4!2 g4@2 e4@2 a4@2 bb4@6 f5@4 f5@2 f5@2 ~@2 g5@2 ~@2 ab5@2 ~@2 a5@2 ~@2 c6@2 ~@2 a5@6 ~@7]/3",
  BL: "~@17 c5@7",
  BM: "[~ c5@4 c5@2 c5@2 ~@2 c5@4 c5@4 a4@4 a4@10 c5@4 c5@2 c5@2 ~@2 d5@4 eb5@4 d5@2 c5@2 a4@2 b4@2 d5@4 eb5@2 a5@4 e5@3]/3",
  BN: "~ d5@4 c5@4 c6@4 b5@4 a5@4 g5@3",
  BO: "[~ f5@4 g5@2 a5@2 ~@2 c6@4 b5@16 ~@2 a3@2 a3@2 a4@2 ~@2 e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 g3@2 g3@2 g4@2 ~]/3",
  BP: "[~ e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 a3@2 a3@2 a4@2 ~@2 e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 a3@2 a3@2 a4@2 ~@2 e4@3 ~@3 eb4@2 ~@2 d4@2 ~@2 c4@4 a3@2 c4@2 d4@2 ~@7]/4",
})).s("gm_violin").gain(0.4)

// other · violin · soft notes
const violin_soft = note(`<
  ~@142 A@2 B C D E F G H I J K L M N O P@2 B C D E F G H I J K L Q@2 ~@15 R S@8 T U V W X Y Z AA T U V W X Y Z AA T U V
  W X Y Z AA T U V AB@3 ~@26 AC AD AE Z AF U AD AE Z AF U AD AE Z AF U AG@3 ~@15 AH@6 ~@27
>`.pickRestart({
  A: "[~@12 gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@3]/2", B: "gb4 ~@7 gb4@3 gb4 ~@7 gb4@2 gb4 ~@2",
  C: "~@6 gb4@2 gb4 ~@8 gb4@2 gb4 ~@4", D: "~@4 gb4@2 gb4 ~@8 gb4@2 gb4 ~@6", E: "~@2 gb4@2 gb4 ~@8 gb4@2 gb4 ~@8",
  F: "gb4@2 gb4 ~@8 gb4@2 gb4 ~@7 gb4@3", G: "gb4 ~@7 gb4@3 gb4 ~@7 gb4@3 gb4 ~", H: "~@6 gb4@3 gb4 ~@7 gb4@3 gb4 ~@3",
  I: "~@4 gb4@3 gb4 ~@7 gb4@3 gb4 ~@5", J: "~@2 gb4@3 gb4 ~@7 gb4@3 gb4 ~@7", K: "gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@2",
  L: "~ gb4 ~@7 gb4@3 gb4 ~@7 gb4@3 gb4", M: "~@7 gb4@3 gb4 ~@7 gb4@3 gb4 ~@2", N: "~@5 gb4@3 gb4 ~@7 gb4@3 gb4 ~@4",
  O: "~@3 gb4@3 gb4 ~@7 gb4@3 gb4 ~@6", P: "[~ gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@3 gb4 ~@7 gb4@3]/2",
  Q: "[~@7 gb4@3 gb4 ~@7 db4@8 b3@8 ~ db4@5 ~@8]/2", R: "~@16 f4 ~@2 f4 ~@4", S: "~@4 f4 ~@2 f4 ~@8 f4 ~@2 f4 ~@4",
  T: "~@3 f4 ~@2 f4 ~@8 f4 ~ f4 ~@6", U: "~@2 f4 ~@2 f4 ~@7 f4 ~@2 f4 ~@7", V: "f4 ~@2 f4 ~@8 f4 ~@2 f4 ~@7 f4",
  W: "~@2 f4 ~@7 f4 ~@2 f4 ~@8 f4 ~", X: "f4 ~@8 f4 ~@2 f4 ~@7 f4 ~@2 f4", Y: "~@8 f4 ~ f4 ~@8 f4 ~@2 f4 ~",
  Z: "~@6 f4 ~@2 f4 ~@7 f4 ~@2 f4 ~@3", AA: "~@5 f4 ~@2 f4 ~@7 f4 ~@2 f4 ~@4",
  AB: "[~@2 f4 ~@7 f4 ~@2 f4 ~@8 eb4@40 ~@10]/3", AC: "~@13 f4 ~@2 f4 ~@7", AD: "f4 ~ f4 ~@8 f4 ~ f4 ~@8 f4 ~",
  AE: "f4 ~@7 f4 ~@2 f4 ~@7 f4 ~@2 f4 ~", AF: "~@4 f4 ~@2 f4 ~@7 f4 ~@2 f4 ~@5",
  AG: "[f4 ~ f4 ~@8 f4 ~ f4 ~@8 c4@44 ~@6]/3", AH: "[~@17 a3@32 g3@32 c4@32 bb3@16 ~@15]/6",
})).s("gm_violin").gain(0.2)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@2 A B C D E F G H A B C D E F I J K L M N O F G H K L M N O F G H P Q R S P Q R S ~@4 T U V ~@7 W@2 U X Y@2 Z ~@3 AA
  AB AC AD AA AB AC AE ~@4 AF AG AH AI ~@2 AJ@2 AF AG AH AI ~@15 AK ~@3 AL AM ~ AN@2 ~@50 AO@2 AP@2 AQ ~ AR AS@2 ~@114
  AT@6 ~@4 AU AV ~@4 AW AX AY AZ BA BB@2 BC BD AX BE ~@6
>`.pickRestart({
  A: "f4 ~ f5 ~", B: "c5 ~", C: "bb4 ~ f5 ~", D: "f4 ~", E: "f4 ~ a4 ~", F: "a5@3 bb5", G: "a5 f5", H: "d5",
  I: "a5 ~ f5 ~", J: "d5 bb4 a4 f4 d4 c4 bb3 f3", K: "f4 f5", L: "c5@3 ~", M: "bb4 f5", N: "f4@3 ~", O: "f4 a4",
  P: "f4 bb3 c4 bb3", Q: "f3 bb3 c4 bb3", R: "f3@2 f3 bb3 c4@2 eb4@2", S: "d4@2 eb4@2 d4 c4 bb3@2", T: "f5 bb4 c5 bb4",
  U: "f4 bb4 c5 bb4", V: "f4@2 f4 bb4 c5@2 eb5@2", W: "[~@21 g4@6 a4 ~ g4 f4@6 eb4@6 f4@6]/2",
  X: "f4@3 bb4@3 ~@3 c5@6 d5 ~ c5 bb4@6", Y: "[f4@6 bb4@6 c5@3 eb5@3 ~@3 d5@6 eb5 ~ d5 c5@6 bb4@6 c5@6]/2",
  Z: "f5 bb5 c6 bb5", AA: "bb5 ~@5 bb5 ~", AB: "~@6 c6 ~@11 bb5@3 ~@3", AC: "~@3 bb5", AD: "g5 f5", AE: "g5 c6",
  AF: "gb5 b5 db6 b5", AG: "gb5@3 b5@3 ~@3 db6@6 db5 ~ db6 b5@6", AH: "gb5@2 b5@2 b5 bb5 ~ gb5",
  AI: "gb5 eb5 db5 b4@2 db5 b4 gb4", AJ: "[~@21 eb5@6 e5 ~ eb5 db5@6 b4@6 db5@6]/2", AK: "b4@7 ~", AL: "~ db5 eb5 gb5",
  AM: "ab5", AN: "[db4@5 ~@3]/2", AO: "[~@16 eb5@5 db5@5 ~ gb4@5 ~@16]/2", AP: "[~@12 gb4@5 b4@5 ~ gb4@5 ~@20]/2",
  AQ: "~@8 b4@5 bb4@5 ~ gb4@5", AR: "~@4 gb4@5 b4@5 ~ eb5@5 ~@4",
  AS: "[~@2 gb4@5 b4@5 ~ eb5@5 db5@8 b4@8 ~ db5@5 ~@8]/2", AT: "[~@17 a4@32 g4@32 f4@32 e4@16 ~@15]/6", AU: "~@17 b4@7",
  AV: "~ a4@8 ~@15", AW: "~ b4@8 a4@8 a4@2 a4@2 a5@3", AX: "~ e5@2 a5@4 ~@17", AY: "~ g4@2 g4@2 a5@4 e5@2 a5@4 ~@9",
  AZ: "~@9 f4@2 f4@2 a5@4 e5@2 a5@4 ~", BA: "~@17 a4@2 a4@2 a5@3",
  BB: "[~ e5@2 a5@4 g5@2 g5@2 g5@2 g5@2 g5@2 g5@2 g5@2 g5@2 g5@2 a4@2 a4@2 a5@4 e5@2 a5@4 ~@9]/2",
  BC: "~@9 g4@2 g4@2 a5@4 e5@2 a5@4 ~", BD: "~@17 f4@2 f4@2 a5@3", BE: "~ a4@2 a4@2 a5@4 ~@15",
})).s("gm_trumpet").gain(0.25)

// other · french horn · "Horn in F"
const french_horn = note(`<
  ~ A ~@14 B C ~@12 D E F G ~@4 H I J K ~@26 L M ~@2 L N ~@7 O ~@27 P Q ~@7 R@8 ~ S@5 T@2 U@3 V@2 W@6 X@2 Y Z@2 AA AB@4
  AC AD@2 AE AF@2 AG AH AI@3 AJ@3 AK AL AM@2 ~@130 AN AO AP@3 AQ AR@3 AS@3 ~@5
>`.pickRestart({
  A: "g4", B: "a4 ~ f4 ~", C: "d5 bb4 a4 f4 d4 c4 bb3 f3", D: "f4 a4", E: "f5@3 bb4", F: "a4 f4", G: "d5",
  H: "f4 bb3 c4 bb3", I: "f3 bb3 c4 bb3", J: "f3@2 f3 bb3 c4@2 eb4@2", K: "d4@2 eb4@2 d4 c4 bb3@2", L: "~@3 bb4",
  M: "g4 f4", N: "g4 c5", O: "gb4 eb5 db5 b4@2 db5 b4 gb4", P: "~ db4 eb4 gb4", Q: "ab4",
  R: "[~@6 f4@26 f3@19 eb3@6 ~ f4@25 f3@19 bb2@2 c3@2 ~ eb3@2 f4@25 f3@19 ~ eb3@6 f4@26 ~@6, ~@53 d3 ~@42]/8",
  S: "[~@21 gb3@5 db4@5 ~ b3@5 gb3@5 ~ bb3@8 bb3@8 b3@5 ~@6 gb3@5 ~ b3@5 gb3@5 ~ bb3@8 bb3@8 b3@5 ~ gb3@5 db4@5 ~]/5",
  T: "[b3@5 gb3@5 ~ bb3@8 bb3@8 b3@5 ~@6 gb3@5 b3@5]/2",
  U: "[~ eb4@5 db4@8 ~ b3@8 db4@5 gb3@5 ~ db4@5 b3@5 ~ gb3@5 bb3@8 ~ bb3@8 b3@5]/3",
  V: "[~@6 gb3@5 b3@5 ~ gb3@5 bb3@8 bb3@8 ~ b3@5 gb3@4]/2",
  W: "[~@2 db4@5 b3@5 ~ gb3@5 bb3@8 bb3@8 ~ b3@5 ~@5 gb3@5 ~ b3@5 eb4@5 ~ db4@8 b3@8 db4@5 ~ gb3@5 db4@5 ~ b3@5 gb3@5 ~ bb3@8 bb3@8 b3@5 ~@6 gb3@5 ~ b3@5]/6",
  X: "[gb3@5 ~ bb3@8 bb3@8 b3@5 ~ gb3@5 db4@5 ~ b3@5 gb3@4]/2", Y: "~@2 bb3@8 bb3@8 b3@5 ~",
  Z: "[~@5 gb3@5 ~ b3@5 eb4@5 db4@8 ~ b3@8 db4@5 gb3@5]/2", AA: "~ db4@5 b3@5 ~ gb3@5 bb3@7",
  AB: "[~@2 bb3@8 b3@5 ~@6 gb3@5 b3@5 ~ gb3@5 bb3@8 bb3@8 ~ b3@5 gb3@5 ~ db4@5 b3@5 ~ gb3@5 bb3@8 bb3@7]/4",
  AC: "~@2 b3@5 ~@6 gb3@5 b3@5 ~", AD: "[eb4@5 db4@8 b3@8 db4@5 ~ gb3@5 db4@5 ~ b3@5 gb3@5]/2",
  AE: "~ bb3@8 bb3@8 b3@5 ~@2", AF: "[~@4 gb3@5 ~ b3@5 gb3@5 ~ bb3@8 bb3@8 b3@5 ~ gb3@5]/2",
  AG: "db4@5 ~ b3@5 gb3@5 ~ bb3@7", AH: "~ bb3@8 b3@5 ~@6 gb3@4",
  AI: "[~@2 b3@5 eb4@5 ~ db4@8 b3@8 db4@5 ~ gb3@5 db4@5 b3@5 ~ gb3@5 bb3@8 ~ bb3@7]/3",
  AJ: "[~ b3@5 ~@6 gb3@5 b3@5 ~ gb3@5 bb3@8 ~ bb3@8 b3@5 gb3@5 ~ db4@5 b3@5 ~ gb3@5]/3", AK: "bb3@8 bb3@8 ~ b3@5 ~@2",
  AL: "~@4 gb3@5 b3@5 ~ eb4@5 ~@4", AM: "[~@2 gb3@5 b3@5 ~ eb4@5 db4@8 b3@8 ~ db4@5 ~@8]/2", AN: "~@17 e4@4 e4@3",
  AO: "~ e4@2 e4@2 ~@2 e4@4 e4@4 e4@2 e4@2 e4@2 e4@3",
  AP: "[~ d4@4 d4@4 d4@2 d4@2 ~@2 d4@4 d4@4 d4@2 d4@2 d4@2 d4@4 db4@4 db4@4 db4@2 db4@2 ~@2 db4@4 db4@4 db4@2 db4@2 db4@2 db4@4 c4@4 c4@3]/3",
  AQ: "~ c4@2 c4@2 ~@2 c4@4 c4@4 c4@2 c4@2 c4@2 c4@3",
  AR: "[~ d4@2 d4@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 c4@2 c4@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 b3@2 b3@2 d5@2 ~]/3",
  AS: "[~ a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@2 f4@2 d4@2 f4@2 g4@2 bb3@2 bb3@2 d5@2 ~@2 a4@3 ~@3 ab4@2 ~@2 g4@2 ~@2 f4@4 d4@2 f4@2 g4@2 ~@15]/3",
})).s("gm_french_horn").gain(0.4)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note(`<
  ~@90 A ~ B ~ A ~ C ~@4 D@5 ~@2 E ~@95 F@3 G H I J K@4 G H I J K@4 G H ~@28 L M N O@2 P M N O@2 P M N O@2 P Q@3 ~@15
  R@6 ~@21 S T U V W X
>`.pickRestart({
  A: "bb3", B: "b3", C: "db4", D: "gb4/5", E: "eb5",
  F: "[~@10 bb3@6 ~@6 bb3@6 ~@5 bb3@6 ~@5 bb3@6 ~@6 bb3@6 ~@5 bb3@5]/3", G: "~@6 bb3@6 ~@5 bb3@6 ~",
  H: "~@5 bb3@6 ~@5 bb3@6 ~@2", I: "~ bb3@2 ~@2 bb3@2 ~", J: "~@2 bb3@6 ~@5 bb3@6 ~@5",
  K: "[bb3@6 ~@6 bb3@6 ~@5 bb3@6 ~@5 bb3@6 ~@6 bb3@6 ~@5 bb3@6 ~@5 bb3@6 ~@6 bb3@6 ~@5 bb3@5]/4", L: "~@18 c4@5 ~",
  M: "~@5 c4@5 ~@6 c4@5 ~@3", N: "~@3 c4@5 ~@6 c4@5 ~@5", O: "[~ c4@5 ~@6 c4@5 ~@6 c4@5 ~@6 c4@5 ~@5 c4@4]/2",
  P: "~@7 c4@5 ~@6 c4@5 ~", Q: "[~@5 c4@5 ~@6 c4@5 ~ ab4@44 ~@6]/3", R: "[~@17 a4@32 g4@32 f4@32 e4@16 ~@15]/6",
  S: "~@17 c4@7", T: "~@9 c4@8 ~@7", U: "~ c4@8 ~@8 c4@7", V: "~ b3@8 ~@8 b3@7", W: "~@9 b3@8 ~@7", X: "~ d4@8 ~@15",
})).s("gm_french_horn").gain(0.2)

// other · trombone
// … 224 more lines

More by Toby Radiation Fox