Strudelify

Super Mario Bros Medley

Koji Kondo

KeyE♭ majorTempo120 bpm
0:00/0:00
// Super Mario Bros Medley — Koji Kondo
// 120 bpm, 2/2, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/2 at bar 1, 3/4 at bar 61, 2/2 at bar 90, 4/4 at bar 99) are rendered on a constant 2/2 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5496824; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 139 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · french horn · "Horn in F"
const french_horn = note(`<
  A B C D E F G H@2 I J K L M@2 N O P Q R S T U V W X Y Z O AA AB AC AD T AE AF AG@3 AH AI AJ AK AL AM AN ~@3 AO AP AQ@2
  AR ~@2 AS AT AU@2 AV ~ AW AX AY@4 AZ BA@4 BB@2 BC@3 BD BE@4 BF BG@4 BH@2 BI BJ BK BL BM BN BO BP BQ BR BS BT ~@33 BU@2
  ~@2
>`.pickRestart({
  A: "~@20 c4@2 c4@2 ~@3 c4@2 ~@3", B: "c4@2 c4@2 ~@3 f4@3 ~@6 bb3@5 ~@5 bb3@2 ~@4",
  C: "~ g3@2 ~@5 eb3@2 ~@6 ab3@2 ~@2 bb3@5 a3@2 ~ ab3@2 ~@2",
  D: "g3@3 ~ eb4@3 g4@3 ab4@2 ~@3 f4@2 g4@2 ~@3 eb4@2 ~@3 c4@2 d4@2 ~",
  E: "bb3@2 ~@5 bb3@2 ~@5 g3@2 ~@5 eb3@2 ~@5 ab3@2 ~@2",
  F: "~ bb3@5 a3@2 ab3@2 ~@3 g3@3 eb4@3 ~ g4@3 ab4@2 ~@3 f4@2 g4@2",
  G: "~@3 eb4@2 ~@3 c4@2 ~@2 d4@2 ~ bb3@2 ~@7 g4@2 ~ gb4@2 f4@2 ~",
  H: "[d4@2 ~@2 eb4@2 ~@3 g3@2 ~ ab3@2 bb3@2 ~@3 eb3@2 g3@2 ~ ab3@2 ~@5 g4@2 gb4@2 ~ f4@2 d4@2 ~@3 eb4@2 ~@3 bb4@2 ~@2 bb4@2 ~ bb4@2 ~@7]/2",
  I: "~@5 g4@2 ~ gb4@2 f4@2 d4@2 ~@3 eb4@2 ~@3 g3@2 ab3@2 ~ bb3@2 ~@3",
  J: "eb3@2 g3@2 ab3@2 ~@6 b3@2 ~@5 ab3@2 ~@5 g3@2 ~@4", K: "~@18 g4@2 gb4@2 ~ f4@2 d4@2 ~@3 eb4@2",
  L: "~@3 g3@2 ab3@2 ~ bb3@2 ~@2 eb3@2 ~ g3@2 ab3@2 ~@5 g4@2 ~ gb4@2 f4@2 ~",
  M: "[d4@2 ~@2 eb4@2 ~@3 bb4@2 ~@3 bb4@2 bb4@2 ~@13 g4@2 gb4@2 ~ f4@2 d4@2 ~@3 eb4@2 ~@3 g3@2 ab3@2 bb3@2 ~@3 eb3@2 ~ g3@2 ab3@2]/2",
  N: "~@5 b3@2 ~@5 ab3@2 ~@6 g3@2 ~@10", O: "~@7 b3@2 b3@2 ~@3 b3@2 ~@3 b3@2 db4@2 ~@3 bb3@2 g3@2 ~@2",
  P: "~ g3@2 ~ eb3@2 ~@7 b3@2 ~ b3@2 ~@2 b3@2 ~@3 b3@2 ~ db4@2 bb3@2", Q: "~@20 b3@2 b3@2 ~@3 b3@2 ~@3",
  R: "b3@2 db4@2 ~@3 bb3@2 g3@2 ~@3 g3@2 eb3@2 ~@3 eb3@5 c4@2 c4@2 ~@2",
  S: "~ c4@2 ~@3 c4@2 c4@2 ~@3 f4@3 ~@7 bb3@5 ~@4",
  T: "eb4@2 ~ c4@2 ~@3 g3@2 ~@5 g3@2 ~@3 ab3@2 eb4@2 ~@3 eb4@2 ab3@2 ~",
  U: "~@7 bb3@3 ab4@3 ab4@3 ab4@3 ~ g4@3 f4@3 eb4@2 c4@2 ~@2",
  V: "~ ab3@2 ~ g3@2 ~@7 eb4@2 ~ c4@2 ~@2 g3@2 ~@6 g3@2 ~@2",
  W: "ab3@2 ~ eb4@2 ~@3 eb4@2 ab3@2 ~@8 bb3@2 f4@2 ~@3 f4@2 f4@3",
  X: "eb4@3 ~ d4@3 bb3@2 g3@2 ~@3 g3@2 eb3@2 ~@8 b3@2 b3@2 ~@2",
  Y: "~ b3@2 ~@3 b3@2 db4@2 ~@3 bb3@2 ~ g3@2 ~@2 g3@2 ~ eb3@2 ~@7",
  Z: "b3@2 ~ b3@2 ~@3 b3@2 ~@2 b3@2 ~ db4@2 bb3@2 ~@13",
  AA: "~ g3@2 ~ eb3@2 ~@2 eb3@5 c4@2 ~ c4@2 ~@2 c4@2 ~@3 c4@2 ~ c4@2 ~@2",
  AB: "f4@3 ~@7 bb3@5 ~@5 eb4@2 c4@2 ~@3 g3@2 ~@3", AC: "~@2 g3@2 ~@3 ab3@2 eb4@2 ~@3 eb4@2 ab3@2 ~@8 bb3@3 ab4@3",
  AD: "ab4@3 ~ ab4@3 g4@3 f4@3 eb4@2 ~ c4@2 ~@2 ab3@2 ~ g3@2 ~@7",
  AE: "~@7 bb3@2 f4@2 ~@3 f4@2 f4@3 ~ eb4@3 d4@3 bb3@2 g3@2 ~@2",
  AF: "~ g3@2 ~ eb3@2 ~@7 ab4@2 ~@2 ab4@2 ~ ab4@2 ~ f4@2 ab4@2 ~@2 ab4@2 ~",
  AG: "[f4@2 ~ f4@2 ab4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~@2 eb4@2 g4@2 ~ g4@2 ~ eb4@2 g4@2 eb4@2 g4@2 ~ ab4@2 ~ ab4@2 ~@2 ab4@2 ~ f4@2 ab4@2 ~ ab4@2 ~@2 f4@2 ~ f4@2 ab4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~@3 g4@2 ~@2 g4@2 ~ eb4@2 g4@2 ~ g4@2 ~@2 ab4@2 ~ ab4@2, ~@2 ab4@2 ~@53 ab4@2 ~@15 eb4@2 ~@10 eb4@2 ~@8]/3",
  AH: "~@2 ab4@2 ~ f4@2 ab4@2 ~ ab4@2 ~@3 ab4@2 f4@2 ab4@2 ~ g4@2 ~@2 g4@2 ~ g4@2 ~, ~@7 f4 ~@8",
  AI: "~@2 g4@2 ~@2 g4@2 ~ eb4@2 g4@2 ~ g4@2 ~@2 ab4@2 ~ ab4@2 ~@2 ab4@2 ~ f4@2 ab4@2, ~ eb4@2 ~@10 eb4@2 ~@17",
  AJ: "~ ab4@2 ~@3 ab4@2 f4@2 ab4@2 ~ bb3@14 [bb4,bb5]@2 ~@3, ~@5 f4@2 ~@25", AK: "~@25 bb3@2 g3@3 bb3@2",
  AL: "~ eb3@2 g3@3 bb3@3 gb4@8 eb4@8 b3@2 gb3@3 b3@2", AM: "~ eb3@2 gb3@3 b3@3 ab4@8 f4@8 db4@2 ab3@3 db4@2",
  AN: "~ f3@2 ab3@3 db4@3 g4@16 ~@7", AO: "~@19 g3@3 bb3@3 g4@2 eb4@3 f4@2", AP: "~ bb4@3 ~@28",
  AQ: "[~@3 gb4@2 f4@2 e4@2 eb4@4 ~ gb4@4 ~ f4@4 ~@2 b3@4 ~ bb3@4 ~ e4@4 ~@3 a4@2 ab4@2 g4@2 ~ c5@2 b4@2 ~@2 gb4@2 ~ d4@2 ~@2 db4@2, ~@41 eb4@2 ~@5 db5@2 ~@14]/2",
  AR: "~ c4@2 ~@2 b3@2 ~@25", AS: "~@15 g3", AT: "~ bb3@2 g4@3 eb4@3 f4@2 bb4@3 ~@18",
  AU: "[~@14 gb4@2 ~ e4@2 eb4@4 ~@2 gb4@4 ~ f4@4 ~ b3@4 ~@2 bb3@4 ~ e4@4 ~ eb4@2 a4@2 ab4@2 ~ db5@2 c5@2 b4@2, ~@16 f4@2 ~@39 g4@2 ~@5]/2",
  AV: "~ gb4@2 ~@2 d4@2 ~@2 db4@2 ~ c4@2 ~@2 b3@2 ~@14", AW: "~@6 f4@9 bb3@4 g4@13", AX: "~ gb4@13 g4@13 ~@2 bb3@2 ~",
  AY: "[c4@2 d4@2 eb4@2 f4@2 ~ g4@13 gb4@9 ab4@2 ~@2 g4@13 ~@12 bb3@2 f4@13 e4@13 ~ f4@13 ~@2 bb3@2 c4@2 ~ d4@2 eb4@2 e4@2 f4@13]/4",
  AZ: "~ bb3@8 ab4@2 ~@3 g4@13 ~@5",
  BA: "[~@6 bb3@2 ~ bb4@13 bb4@13 bb4@13 ~ bb4@4 c5@2 ~@5 bb4@2 ab4@13 ab4@13 ~ ab4@13 ab4@4 bb4@2 ~@5 ab4@2 g4@13]/4",
  BB: "[~ c4@4 d4@4 ab4@4 ~ g4@2 g4@2 g4@7 d4@2 eb4@13 ~@24]/2",
  BC: "[~@17 f4@8 bb3@4 ~ g4@13 gb4@13 ~ g4@13 ~@2 bb3@2 c4@2 ~ d4@2 eb4@2 f4@2 g4@13]/3",
  BD: "~ gb4@8 ab4@2 ~@3 g4@13 ~@5",
  BE: "[~@6 bb3@2 ~ f4@13 e4@13 f4@13 ~@3 bb3@2 c4@2 d4@2 eb4@2 ~ e4@2 f4@13 bb3@9 ab4@2 ~@3 g4@13 ~@11 bb3@2 bb4@13]/4",
  BF: "~ bb4@13 bb4@13 bb4@4 ~",
  BG: "[c5@2 ~@4 bb4@2 ~ ab4@13 ab4@13 ab4@13 ~ ab4@4 bb4@2 ~@5 ab4@2 g4@13 c4@4 ~ d4@4 ab4@4 ~ g4@2 g4@2 g4@7 d4@2 eb4@13 g3@2 b3@2 ~@3 b3@2 b3@4]/4",
  BH: "[ab3@2 c4@2 ~@3 ab3@2 c4@4 a3@2 db4@2 ~@3 db4@2 db4@4 d4@4 d4@9 ~@13 db4 ~@2 c4 ~@2 b3 ~ c4 ~@2 db4]/2",
  BI: "~@2 d4 ~@2 db4 ~@2 c4 ~ db4 ~@2 c4 ~@2 b3 ~@2 c4 ~@2 db4 ~ d4 ~@2 db4 ~@2 c4 ~",
  BJ: "~ c4 ~@2 b3 ~ c4 ~@2 db4 ~@2 c4 ~@2 db4 ~ c4 ~@2 b3 ~@2 c4 ~@2 b3 ~@2 c4 ~ db4",
  BK: "~@2 c4 ~@2 db4 ~@2 c4 ~@2 b3 ~ e4 ~@2 f4 ~@2 e4 ~@2 eb4 ~@2 e4 ~ eb4 ~@2 d4 ~",
  BL: "~ eb4 ~@2 e4 ~@2 f4 ~ e4 ~@2 eb4 ~@2 e4 ~@2 eb4 ~ d4 ~@2 eb4 ~@2 db4 ~@2 c4 ~@2",
  BM: "b3 ~ c4 ~@2 db4 ~@2 d4 ~@2 db4 ~@2 c4 ~ db4 ~@2 c4 ~@2 b3 ~@2 c4 ~@2 db4 ~ d4 ~",
  BN: "~ db4 ~@2 c4 ~@2 c4 ~ b3 ~@2 c4 ~@2 db4 ~@2 c4 ~@2 db4 ~ c4 ~@2 b3 ~@2 c4 ~@2",
  BO: "b3 ~@2 c4 ~ db4 ~@2 c4 ~@2 db4 ~@2 c4 ~@2 b3 ~ e4 ~@2 f4 ~@2 e4 ~@2 eb4 ~@2 e4",
  BP: "~ eb4 ~@2 d4 ~@2 eb4 ~@2 e4 ~ f4 ~@2 e4 ~@2 eb4 ~@2 e4 ~@2 eb4 ~ d4 ~@2 eb4 ~@2",
  BQ: "ab4@3 eb4@2 c4@3 ab4@3 eb4@2 c4@3 ab4@16", BR: "a4@3 e4@2 db4@3 a4@3 e4@2 db4@3 a4@16",
  BS: "eb4@3 b3@2 gb3@3 eb4@3 b3@2 gb3@3 eb4@2 ~@2 eb4@2 eb4@2 f4@3 f4@2 f4@3", BT: "g4 ~",
  BU: "[ab4@7 ~@3 eb4@3 ~@7 c4@7 db4@13 db4@13 ~@11]/2",
})).s("gm_french_horn").gain(0.3)

// other · french horn · "Horn in F" · soft notes
const french_horn_soft = note(`<
  ~@102 A B C D A B C E F G H I A B C J K L M N O L M P ~@4 O L M Q R ~ S@3
>`.pickRestart({
  A: "bb3@2 c4 db4", B: "d4@8 g4@4 bb4@3 bb4", C: "ab4 bb4 c5 f4", D: "ab4@2 g4 d4", E: "ab4@8 g4@4 bb4@3 bb4",
  F: "b4@4 f4@3 ab4", G: "ab4@8 ab4@3 g4@2 f4@3 g4@8 c5@6 c5@2", H: "c5@4 ab4@3 b4", I: "bb4@2 ab4 d4",
  J: "ab4@2 g4 bb3", K: "ab4@2 bb3 b3", L: "c4@2 f4 ab4", M: "f4 c4 bb3 db4", N: "eb4 eb3 eb4 bb3", O: "ab3@2 bb3 b3",
  P: "eb4 eb3!2 ~", Q: "[bb3,db4]", R: "c4", S: "[~@21 c4@3 ~ bb3@3 c4@47 ~@21]/3",
})).s("gm_french_horn").gain(0.2)

// chords · trumpet · "Trombone"
const trumpet = note(`<
  A B C D E F G H I J K L M N O P Q@2 R@2 S T@3 U V@2 W@3 X@3 Y@3 Z AA@2 AB AC AD AE AF AG AH AI AJ AK AL AM ~@2 AJ AN
  AO AP AQ AR ~ AS@2 AT AU AV@3 AW AX AY@3 AZ BA@4 BB AU BC@3 BD BE BF@4 BG@3 BH BI@6 BJ BK BL BM ~@33 BN@2 ~@2
>`.pickRestart({
  A: "~@20 [f3,a4]@2 [f3,a4]@2 ~@3 [f3,a4]@2 ~@3", // F
  B: "[f3,a4]@2 [f3,a4]@2 ~@3 [bb4,d5]@3 ~@6 [bb3,bb4]@5 ~@5 [eb3,g4]@2 ~@4", // F Bb Eb
  C: "~ [eb3,eb4]@2 ~@5 [eb3,bb4]@2 ~@6 [ab3,eb4]@2 ~@2 [bb3,f4]@5 [a3,e4]@2 ~ [ab3,eb4]@2 ~@2", // Eb Eb5 Ab5 Bb5 A5 Ab5
  D: "[eb3,eb4]@3 ~ bb4@3 d5@3 [g3,eb5]@2 ~@3 c5@2 d5@2 ~ ab3@2 c5@2 ~@3 [a3,g4]@2 ab4@2 ~", // Eb Cm A7
  E: "bb3@5 ~@2 [eb3,g4]@2 ~@5 [eb3,eb4]@2 ~@5 [eb3,bb4]@2 ~@3 ab3@2 eb4@2 ~@2, f4 ~@15", // Eb Eb5
  F: "~ [bb3,f4]@5 [a3,e4]@2 [ab3,eb4]@2 ~@3 [eb3,eb4]@3 bb4@3 ~ [eb3,d5]@3 [g3,eb5]@2 ~@3 c5@2 d5@2", // Bb5 A5 Ab5 Eb Ebmaj7 Cm
  G: "ab3@2 ~ [g3,c5]@2 ab3@2 ~ [c4,g4]@2 ~@2 ab4@2 ~ f4@2 ~@3 eb3@2 ~@5 bb3@2 ~@3, ~@12 bb3@5 ~@15", // C5
  H: "~@2 eb4@2 ~@3 ab3@2 ~@5 eb4@2 eb4@2 ~@3 ab3@2 ~@3 eb3@2 ~@4",
  I: "~ g3@2 ~@5 bb3@2 ~ eb4@2 ~@3 [eb4,ab5]@2 ~@2 [eb4,ab5]@2 ~ [eb4,gb5]@2 f5@2 ~ [bb3,eb5]@2 c5@2", // Ab5 Ebm Eb5
  J: "eb3@2 ~@6 bb3@2 ~@5 eb4@2 ~@3 ab3@2 ~@5 eb4@2 eb4@2 ~",
  K: "~@2 ab3@2 ~@3 eb3@2 ~@3 [b3,eb5]@2 ~@5 [db4,db5]@2 ~@5 eb4@2 ~@4", // B Db
  L: "~ bb3@2 ~ bb3@2 ~@2 eb3@2 ~@3 eb3@2 ~@5 bb3@2 ~@6 eb4@2 ~@2",
  M: "ab3@2 ~@6 eb4@2 eb4@2 ~@3 ab3@2 ~@3 eb3@2 ~@5 g3@2 ~@3",
  N: "~@2 bb3@2 eb4@2 ~@3 [eb4,ab5]@2 ~@3 [eb4,ab5]@2 [eb4,gb5]@2 ~ f5@2 [bb3,eb5]@2 ~ c5@2 eb3@2 ~@4", // Ab5 Ebm Eb5
  O: "~ bb3@2 ~@5 eb4@2 ~@3 ab3@2 ~@5 eb4@2 ~ eb4@2 ~@3 ab3@2 ~@2",
  P: "eb3@2 ~@3 [b3,eb5]@2 ~@5 [db4,db5]@2 ~@6 eb4@2 ~@5 bb3@2 bb3@2 ~", // B Db
  Q: "[~@2 eb3@2 ~@3 b3@19 bb3@19 b3@17 bb3 ~]/2",
  R: "[~@5 bb3@14 ~ b3@19 bb3@12 ~@2 [f3,c4]@5 [f3,a4]@2 [f3,a4]@2 ~@2]/2", // F5 F
  S: "~ [f3,a4]@2 ~@3 [f3,a4]@2 [f3,a4]@2 ~@3 [bb4,d5]@3 ~@7 bb3@5 ~@4", // F Bb
  T: "[eb3@2 ~@6 a3@2 bb3@2 ~@3 eb4@2 ~@3 ab3@2 ~@2 ab3@2 ~@3 eb4@2 ~ eb4@2 ab3@2 ~@3 f3@2 ~@5 ab3@2 bb3@2 ~@3 ab4@5 bb3@2 ~@3 bb3@2 ~@3 eb4@2 eb4@2 bb3@2 ~@3 eb3@2 ~@5 a3@2 ~ bb3@2 ~@3 eb4@2 ~@2, g4@19 ~ ab4@19 bb4@14 d4@2 ~@3 g4@19 g4@19]/3",
  U: "ab3@2 ~@3 ab3@2 ~@3 eb4@2 eb4@2 ~ ab3@2 ~@3 [bb3,bb4]@2 ~@5 [bb3,bb4]@2 [bb3,bb4]@3, ab4@19 ~@13", // Bb
  V: "[[c4,c5]@3 ~ [d4,d5]@3 [eb4,eb5]@2 ~@3 bb3@2 ~@2 eb3@2 ~@8 b3@19 bb3@19]/2", // C D Eb
  W: "[b3@17 bb3 ~@6 bb3@14 ~ b3@19 bb3@12 ~@2 [f3,c4]@5 [f3,a4]@2 ~ [f3,a4]@2 ~@2 [f3,a4]@2 ~@3 [f3,a4]@2 ~ [f3,a4]@2 ~@2]/3", // F5 F
  X: "[[bb4,d5]@3 ~@7 bb3@5 ~@5 eb3@2 ~@5 a3@2 bb3@2 ~@3 eb4@2 ~@3 ab3@2 ~@3 ab3@2 ~@2 eb4@2 ~ eb4@2 ab3@2 ~@3 f3@2 ~@5 ab3@2 ~ bb3@2 ~@2 ab4@5 bb3@2 ~@3 bb3@2 ~@3 eb4@2 eb4@2 ~ bb3@2 ~@2, ~@20 g4@19 ab4@19 bb4@14 d4@2 ~@3 g4@19]/3", // Bb
  Y: "[eb3@2 ~@6 a3@2 bb3@2 ~@3 eb4@2 ~@3 ab3@2 ~@2 ab3@2 ~@3 eb4@2 ~ eb4@2 ab3@2 ~@3 [bb3,bb4]@2 ~@5 [bb3,bb4]@2 [bb3,bb4]@3 ~ [c4,c5]@3 [d4,d5]@3 [eb4,eb5]@2 ~@3 bb3@2 ~@3 eb3@2 ~@7 [f3,f4]@2 ~@5 [c4,c5]@2 ~@3 [f4,f5]@2 ~@5, g4@19 ~ ab4@19 ~@57]/3", // Bb C D Eb F C F
  Z: "~@2 [c4,c5]@2 ~ [f4,f5]@2 ~@2 [eb3,eb4]@2 ~@4 [bb3,bb4]@2 ~@4 [eb4,eb5]@2 ~@6 [bb3,bb4]@2 ~", // C F Eb Bb Eb Bb
  AA: "[~ [eb4,eb5]@2 ~ [f3,f4]@2 ~@5 [c4,c5]@2 ~@3 [f4,f5]@2 ~@7 [c4,c5]@2 ~ [f4,f5]@2 ~ [eb3,eb4]@2 ~@5 [bb3,bb4]@2 ~@3 [eb4,eb5]@2 ~@7 [bb3,bb4]@2 ~ [eb4,eb5]@2 ~@2 [f3,f4]@2 ~@3]/2", // Eb F C F C F Eb Bb …
  AB: "~@2 [c4,c5]@2 ~@3 [f4,f5]@2 ~@6 [c4,c5]@2 ~@2 [f4,f5]@2 ~ [eb3,eb4]@2 ~@5 [bb3,bb4]@2 ~", // C F C F Eb Bb
  AC: "~@2 [eb4,eb5]@2 ~@7 [bb3,bb4]@2 ~ [eb4,eb5]@2 ~@2 [f3,f4]@2 ~@5 [c4,c5]@2 ~@3 [f4,f5]@2", // Eb Bb Eb F C F
  AD: "~@3 [c4,c5] ~ [f4,f5] ~@10", AE: "~@9 bb2@2 g2@3 bb2@3 eb2@2 g2@3 bb2@3 bb3@2 eb4@3 g4@2, ~@25 g3@7",
  AF: "~ bb4@2 eb5@3 g5@3 b2@2 gb2@3 b2@3 eb2@2 gb2@3 b2@3 b3@2 eb4@3 gb4@2, ~ eb3@8 b5@8 gb5@8 gb3@7",
  AG: "~ b4@2 eb5@3 gb5@3 db3@2 ab2@3 db3@3 f2@2 ab2@3 db3@3 db4@2 f4@3 ab4@2, ~ eb3@8 db6@8 ab5@8 ab3@7",
  AH: "~ [f3,db5]@2 [f3,f5]@3 [f3,ab5]@3 [eb3,bb5]@16 ~@7", AI: "~@9 eb4@2 eb4@3 c4@3 c4@2 db4@3 db4@3 ~@7",
  AJ: "~@19 eb4@3 eb4@3 c4@2 c4@3 db4@2", AK: "~ db4@3 ~@26 ab3@2",
  AL: "~ ab3@2 f3@3 f3@3 gb3@2 gb3@3 ~@5 g4@3 bb4@3 g5@2 eb5@3 f5@2",
  AM: "~ bb5@3 ~@5 ab3@2 ab3@3 f3@3 f3@2 gb3@3 gb3@3 ~@7", AN: "~ db4@3 ~@26 eb4@2",
  AO: "~ eb4@2 c4@3 c4@3 db4@2 db4@3 ~@18", AP: "~@9 ab3@2 ab3@3 f3@3 f3@2 gb3@3 gb3@3 ~@5 g4@2",
  AQ: "~ bb4@2 g5@3 eb5@3 f5@2 bb5@3 ~@5 ab3@3 ab3@3 f3@2 f3@3 gb3@2", AR: "~ gb3@3 ~@28",
  AS: "[~@30 f4@4 e4@4 ~ eb4@4 d4@4 ~ eb4@4 e4@4 ~ f4@2 f4@2 f4@2 ~]/2",
  AT: "~ [bb3,g4]@2 ~@3 [bb3,ab4]@9 ~@4 eb3@4 ~ [g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@2", // Eb Bb7 Gm Eb5
  AU: "~ d3@4 [g3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 eb3@4 [g3,bb3]@2 ~@3 [bb3,eb4]@2 ~@2 g3@4 ~", // Gm Bb Gm Eb5
  AV: "[[g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@3 eb3@4 [g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@3 d3@4 [g3,bb3]@2 ~@3 [bb3,d4]@2 ~@2 eb3@4 ~ [g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@3 g3@4 [g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@3 f3@4 [f3,bb3]@2 ~@3 [bb3,d4]@2 ~@2 e3@4 ~ [e3,a3]@2 ~@2 [a3,db4]@2 ~@3 f3@4 [f3,bb3]@2 ~]/3", // Gm Eb5 Gm Eb5 Gm Bb Gm Eb5 …
  AW: "~ [bb3,d4]@2 ~@3 d3@4 [f3,bb3]@2 ~@3 [bb3,d4]@2 ~@2 f3@4 ~ [f3,bb3]@2 ~@2 [bb3,d4]@2 ~@2", // Bb Bb5 Bb Bb5 Bb
  AX: "~ d3@4 [f3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 eb3@4 [g3,bb3]@2 ~@3 [bb3,eb4]@2 ~@2 g3@4 ~", // Bb5 Bb Gm Eb5
  AY: "[[g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@3 eb3@4 [g3,bb3]@2 ~@2 [eb4,g4]@2 ~@3 d3@4 [f3,bb3]@2 ~@3 [d4,f4]@2 ~@2 db3@4 ~ [e3,bb3]@2 ~@2 [db4,e4]@2 ~@3 e3@4 [g3,bb3]@2 ~@2 [e4,g4]@2 ~@3 f3@4 [ab3,c4]@2 ~@3 [f4,ab4]@2 ~@2 e3@4 ~ [ab3,c4]@2 ~@2 [e4,ab4]@2 ~@3 eb3@4 [ab3,c4]@2 ~]/3", // Gm Eb5 Gm Eb Bb5 Dm Edim Dbm …
  AZ: "~ [eb4,ab4]@2 ~@3 d3@4 [f3,bb3]@2 ~@3 [f4,ab4]@2 ~@2 eb3@4 ~ [g3,bb3]@2 ~@2 [eb4,g4]@2 ~@2", // Ab5 Bb5 Fm Gm Eb
  BA: "[~ ab3@4 [bb3,d4]@2 ~@2 [bb3,d4]@2 ~@3 [ab3,g4]@2 [ab3,g4]@2 [ab3,g4]@7 [d3,eb4]@2 [eb3,bb4]@13 ~ f4@4 e4@4 eb4@4 ~ d4@4 eb4@4 ~ e4@4 f4@2 f4@2 ~ f4@2 ~@2 [bb3,g4]@2 ~@3 [bb3,ab4]@9 ~@4 eb3@4 [g3,bb3]@2 ~@3 [bb3,eb4]@2 ~@2 d3@4 ~ [g3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 eb3@4 [g3,bb3]@2 ~]/4", // Bb Abmaj7 Ebmaj7 Eb5 Eb Bb7 Gm Eb5 …
  BB: "~ [bb3,eb4]@2 ~@3 g3@4 [g3,bb3]@2 ~@3 [bb3,eb4]@2 ~@2 eb3@4 ~ [g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@2", // Eb5 Gm Eb5 Gm Eb5
  BC: "[[g3,bb3]@2 ~@2 [bb3,eb4]@2 ~@3 f3@4 [f3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 e3@4 [e3,a3]@2 ~@3 [a3,db4]@2 ~@2 f3@4 ~ [f3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 d3@4 [f3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 f3@4 [f3,bb3]@2 ~@3 [bb3,d4]@2 ~@2 d3@4 ~ [f3,bb3]@2 ~@2 [bb3,d4]@2 ~@3 eb3@4 [g3,bb3]@2 ~]/3", // Gm Eb5 Bb5 Bb A5 A Bb5 Bb …
  BD: "~ [bb3,eb4]@2 ~@3 g3@4 [g3,bb3]@2 ~@3 [bb3,eb4]@2 ~@2 eb3@4 ~ [g3,bb3]@2 ~@2 [eb4,g4]@2 ~@2", // Eb5 Gm Eb5 Gm Eb
  BE: "~ d3@4 [f3,bb3]@2 ~@2 [d4,f4]@2 ~@3 db3@4 [e3,bb3]@2 ~@3 [db4,e4]@2 ~@2 e3@4 ~", // Bb5 Dm Edim Dbm
  BF: "[[g3,bb3]@2 ~@2 [e4,g4]@2 ~@3 f3@4 [ab3,c4]@2 ~@2 [f4,ab4]@2 ~@3 e3@4 [ab3,c4]@2 ~@3 [e4,ab4]@2 ~@2 eb3@4 ~ [ab3,c4]@2 ~@2 [eb4,ab4]@2 ~@3 d3@4 [f3,bb3]@2 ~@2 [f4,ab4]@2 ~@3 eb3@4 [g3,bb3]@2 ~@3 [eb4,g4]@2 ~@2 ab3@4 ~ [bb3,d4]@2 ~@2 [bb3,d4]@2 ~@3 [ab3,g4]@2 [ab3,g4]@2 [ab3,g4]@7 [d3,eb4]@2 [eb3,bb4]@13 [g3,d4]@13]/4", // Gm Em Ab Fm Ab E Ab Ab5 …
  BG: "[[ab3,eb4]@13 [a3,e4]@13 [bb3,f4]@4 [bb3,f4]@9 ~@13 gb3@22 f3@11 ~ a3@10, ~@13 a4@11]/3", // Ab5 A5 Bb5
  BH: "~ [ab4,bb4] ab4 bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4], ~ ab3@22 g3@9", // Absus2
  BI: "[bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [bb4,c5] d5 [c5,d5] c5 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 c5 [c5,d5] d5 [c5,d5] gb3@22 f3@11 ~ a3@11 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 [ab4,bb4] ab4 bb4 [ab4,bb4] ab4 [bb4,c5] d5 [c5,d5] c5 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 c5 [c5,d5] d5 [c5,d5] c5 [c5,d5] d5 [c5,d5] c5 d5 [c5,d5], ~@2 db4@11 c4@11 ~ g3@11 gb3@11 g3@11 a4@45 ab3@22 g3@11 db4@11 c4@11 ~ g3@11 gb3@11 g3@11]/6", // Absus2 Bbsus2 Csus2 Absus2 Bbsus2 Csus2
  BJ: "[ab3,c4]@16 [ab3,c4]@2 ~@2 [ab3,c4]@2 [ab3,c4]@2 [ab3,c4]@3 [ab3,c4]@2 [ab3,c4]@3", // Ab
  BK: "[a3,db4]@16 [a3,db4]@2 ~@2 [a3,db4]@2 [a3,db4]@2 [a3,db4]@3 [a3,db4]@2 [a3,db4]@3", // A
  BL: "b4@3 gb4@2 eb4@3 b4@3 gb4@2 eb4@3 [b3,b4]@2 ~@2 [b3,b4]@2 [b3,b4]@2 [db4,db5]@3 [db4,db5]@2 [db4,db5]@3, b3 ~", // B Db
  BM: "[eb4,bb4] ~", BN: "[c5@7 ~@3 ab4@3 ~@7 eb4@7 ab4@13 a4@13 ~@11]/2",
})).s("gm_trumpet").gain(0.3)

// chords · trumpet · "Trombone" · soft notes
const trumpet_soft = note(`<
  ~@6 A@3 B@2 C D@3 ~ E@2 F@2 ~@5 G@2 H@3 ~@71 I J K L M J K L N O P Q R J K L S T U V W T U V X Y Z AA AB T U V AC AD
  AE@4
>`.pickRestart({
  A: "[~@20 bb4@19 ab4@14 bb4@2 ~@3 eb5@19 ~@19]/3", B: "[eb5@19 ~ ab4@19 ~@25]/2", C: "~@13 bb4@19",
  D: "[ab4@14 ~ bb4@2 ~@3 eb5@19 ~@19 eb5@19 ab4@19]/3", E: "[~@7 gb4@19 g4@19 gb4@17 g4 ~]/2",
  F: "[~@5 g4@14 ~ gb4@19 g4@12 ~@13]/2", G: "[~@26 gb4@19 g4@19]/2", H: "[gb4@17 g4 ~@6 g4@14 ~ gb4@19 g4@12 ~@26]/3",
  I: "~@3 [d3,d4]", J: "[eb3,eb4]@2 [f3,f4] [gb3,gb4]", K: "g3 eb3 [c4,c5] [bb3,eb5], g4 ~",
  L: "[ab3,c5] [g3,g4] [f3,f4] [ab3,ab4]", M: "[bb3,bb4] [d3,bb3] [eb3,bb4] [d3,f4]",
  N: "[bb3,bb4] [d3,bb3] [eb3,bb3] d3", O: "g3 a3 b3 d4, d5 b4", P: "c4 b3 c4 bb3", Q: "ab3 bb3 b3 ab3, eb5 b4",
  R: "bb3 bb2 bb3 d3", S: "[bb3,bb4] [d3,bb3] [eb3,bb3] [g3,g4]", T: "[ab3,eb4]@2 [bb3,f4] [b3,gb4]",
  U: "c4@4 ab3@4 [f4,c5]@4 [eb4,eb5]@3 eb5, g4 ~", V: "[db4,db5] [c4,eb5] [bb3,f5] [db4,bb4]",
  W: "eb4 g3 [ab3,c5] [g3,g4], db5 ~", X: "eb4@4 g3@4 [ab3,c5]@4 [g3,eb5]@3 eb5, db5 ~",
  Y: "c4@2 d4@2 e4@2 ~ db5, e5@4 bb4@3 ~, ~@3 g4", Z: "[f4,db5]@8 db5@3 c5@2 bb4@3 [f4,c5]@8 [eb4,f5]@6 f5@2, ~ e4 ~@2",
  AA: "db4@2 eb4@2 e4@2 ~ e5, f5@4 db5@3 ~, ~@3 db4", AB: "eb4 eb3 [eb4,db5] [g3,g4], eb5 ~",
  AC: "[e2,e4]@3 [g2,g4]@2 [bb2,bb4]@3 [c3,c5]@3 [e3,e5]@2 [g3,g5]@3 [bb3,bb5]@8 [g3,g5]@3 [g3,g5]@2 [g3,g5]@3", // E G Bb C E G Bb G
  AD: "[ab3,ab5]@8 [ab2,ab4]@3 [ab2,ab4]@2 [ab2,ab4]@3 [ab2,ab4]@16", // Ab
  AE: "[eb3@7 ~@3 c3@3 ~@7 ab2@7 db3@13 a2@13 ~@27 ab2@27 ~@21, ~@53 ab4@53 ~@22]/4",
})).s("gm_trumpet").gain(0.2)

stack(french_horn, french_horn_soft, trumpet, trumpet_soft)

More by Koji Kondo