Strudelify

Bon Jovi Medley

Elia Longo

KeyF majorTempo120 bpm
0:00/0:00
// Bon Jovi Medley — Elia Longo
// 120 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: metre changes (1/4 at bar 1, 4/4 at bar 2, 12/8 at bar 90, 6/8 at bar 118, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5936182; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 200 bars on a 24-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.

// bass · electric bass finger
const bass = note(`<
  ~ A B C D E F G H E F I@2 J K J L M N O P Q N O R S T U@2 V W X Y Z AA AB AC AD AE AB AF AG AH AI AJ AK AH AL@2 AM@2
  ~@3 AN AO AN AO AP ~ AQ AR AS AT AQ AR AU@2 AV AW AX@3 AY AZ@2 BA@3 BB BC BD BE@2 BF@3 BG BH BI BJ@5 BK@6 BL ~@4 BM BN
  BO BP BQ@2 BR BS ~ BT BU@4 BV@7 BW@8 BX BY BZ@4 CA CB CC BY CD@3 CE CA CF CG@3 CH@2 CI@2 CJ@8 CK@3 CL CM CN CO CP CM
  CQ CR CS@5 CT@2 CU@2 CV@2 CW@2 CX@2 CU@2 CY@2 CZ@4
>`.pickRestart({
  A: "g5!3 ab5@4 f5", B: "f5@2 f5 g5 g5@2 f5 eb5", C: "g5 ~@2 g5@6 f5@6 eb5@3 c5@3 c5@3", D: "eb5 c5 c5@4 ~@2",
  E: "[c2,g5]@3 ab1@3 bb1 [c2,eb5], ~@3 f5@4 ~", F: "[bb1,g5] f5 eb5@2 c5@2 bb4 c5, ~@2 bb1 ~ c2@4",
  G: "g5@3 ~ bb1@2 g1 [bb1,eb5], ab1 ~, ~@3 f5@4 ~", H: "g5@3 f5 ~ eb5 c2@6 ~@3 g1@3 bb1@3 b1@3, eb2 c5@3",
  I: "[g5@3 ~ bb1@12, ab1@2 ~ f5@13]/2", J: "c2 g1 bb1 c2 eb2!2 c2 bb1", K: "c2 g1 bb1 c2 eb2!2 c2@2",
  L: "c2 g1 bb1 c2 eb2!2 ~ g4, ~@3 c2", M: "bb4 c5 ~ c5@4 g4", N: "bb4@2 c5@2 eb5@3 c5", O: "eb5!4 c5!2",
  P: "eb5@2 d5@2 c5@2 c5@3 ~@3", Q: "bb4 c5 ~ c5@3 g4!2", R: "eb5@2 d5 c5 c5@2 ~@2",
  S: "f2!3 [f2,eb5] f2!2 [f2,c5]!2, f5@3 ~ c5@2 ~@2", T: "f2!2 [f2,g5] f2!3 gb2!2, f5@2 ~ eb5@2 eb5@3",
  U: "[c2 g1 bb1 c2 eb2!2 c2 bb1 c2 g1 bb1 c2 eb2!2 c2@2, g5]/2", V: "f5@3 eb5 c5@2 c5 f5", W: "f5!2 eb5 f5@3",
  X: "[f1,f5]!4 [f1,eb5] [f1,f5]", Y: "[g1,g5]!3 g5@3, ~@2 g1 ~", Z: "g5!3 ab1@3 bb1 [c2,f5], c2@3 ab5@4 ~",
  AA: "[bb1,f5]@2 [bb1,f5]@2 c2@2 c2 bb1, ~ g5", AB: "g5 ~@2 g5@6 f5@6 eb5@3 [g1,c5]@3 [bb1,c5]@3, ab1@3 bb1@3 ~@2",
  AC: "eb5 c5 c2@3 g1 bb1 b1, eb2 c5@2 ~", AD: "g5 ~@2 g5@6 [ab1,ab5]@9 [bb1,ab5]@3 [c2,ab5]@3, c2@3 ~@5",
  AE: "[bb1,bb5]@2 [bb1,f5]@2 c2@2 c2 bb1, ~ g5", AF: "eb5 c5 c5@6, eb2@2 c2@3 ~@3",
  AG: "[ab1,g5]@3 bb1@3 bb1 [c2,eb5], ~@3 f5@4 ~", AH: "g5 f5 [bb1,eb5]@2 [c2,c5]@2 [c2,bb4] [bb1,c5], bb1 ~@3",
  AI: "[ab1,g5]@3 bb1@3 g1 [bb1,eb5], ~@3 f5@4 ~", AJ: "g5@3 f5 ~ eb5 c5@18, eb2@2 c2@3 ~@3",
  AK: "[g1,g5]@3 ab1@3 bb1 [c2,eb5], ~@3 f5@4 ~", AL: "[[ab1,g5]@3 [bb1,f5]@12 [g1,c5]]/2",
  AM: "[[bb1,eb5] c2@4 ~@3, ~@3 c5@11 ~@10]/2", AN: "c2@2 c2@2 ~ c5 eb5 g5", AO: "ab5 g5", AP: "c2 ~@3",
  AQ: "c2@2 ~@3 c5 eb5 g5, ~ c2@2 c3", AR: "[ab2,ab5]@4 bb2 g2 eb3 c3, ~ g5", AS: "c2 c2@2 c3",
  AT: "ab2@4 bb2 g2 eb3 c3", AU: "c2!4", AV: "ab2!4", AW: "f2@2 f2@2 f2 ~ f2 ~",
  AX: "[~@4 c5@2 d5 ~ c3@3 c3@3 eb5 ~@2 d5@2 c5@2 ~ g2 f2, ~@7 eb5@7 c3@2 ab2@3 ab2@3 ~@2, ~@15 eb5@2 ~@4 bb4@3]/3",
  AY: "eb2@3 ~ g5!4, ~@3 eb2@3 eb2@2",
  AZ: "[[bb2,bb5]@2 [bb2,eb5]@2 [g2,eb5]@2 f5 ~ c3@3 ~ eb5!4, ~@6 bb2@2 ~@3 c3@3 c3@2, ~@7 g5@3 ~@6]/2", // Bb Eb5 Cm
  BA: "[eb5@2 d5 [ab2,c5]@3 [g2,bb4] ab2 bb2 bb2@2 bb2@3 bb2@3 bb2@3 bb2@2 b2@2, ab2@3 ~@4 bb4@7 ~@10]/3", // Ab Gm
  BB: "c3@3 eb5!5, ~@3 c3@3 c3@2", BC: "eb5@2 ~@2 c5@2 g2 f2, ab2@3 ab2@3 ~@2, ~ d5 ~ bb4",
  BD: "eb2@3 eb5 g5!4, ~@3 eb2@3 eb2@2",
  BE: "[[bb2,bb5]@2 [bb2,ab5]@2 [g2,g5]@2 f5 ~ c3@3 ~ eb5!4, ~@6 bb2@2 ~@3 c3@3 c3@2, ~@7 eb5@3 ~@6]/2", // Bb Bb7 G
  BF: "[eb5@2 d5 [ab2,c5]@3 [g2,bb4] ab2 bb2 bb2@2 bb2@3 ~@3 bb2@3 [bb2,d5]@2 b2@2, ab2@3 ~@4 bb4@7 bb2@3 ~@7, ~@8 eb5 ~@3]/3", // Ab Gm Bb
  BG: "[c3,c5]!2 f5 d5", BH: "eb5 c5 d5@2", BI: "bb2",
  BJ: "[bb2@5 bb2@14 bb2@10 g2@5 f2@24 c2@4 f2@24 d5@2 ~ e5@2 f5@14 ~@10 bb2@5, ~@86 d2@5 bb2@24 ~@5, ~@53 e5@7]/5",
  BK: "[[bb2,d5]@14 bb2@10 g2@5 d5@7 a4@2 ~@15 c2@5 f2@24 d2@4 bb4@5 bb4@2 ~ bb4@7 bb4@5 a4@2 g4@7 bb4@2 ~ bb4@5 ~@4 bb4@2 ~ bb4@4 a4@7 ~ g4@2, ~@14 d5@14 ~ f2@24 ~@91, ~@19 c5@24 ~@29]/6", // Bb
  BL: "g4@5 a4@10 ~@9", BM: "~@19 c5@2 ~ d5@2", BN: "c5@19 c5@5", BO: "c5@2 c5@2 ~ c5@5 c5@4 c5@5 c5@5",
  BP: "c5@5 f5@5 f5@7 d5@2 d5@5", BQ: "[d5@10 d5@2 d5@2 d5@7 ~ c5@4 c5@2 ~ c5@5 bb4@7 ~@2 d5@5]/2",
  BR: "c5@5 c5@5 c5@2 bb4@7 a4@5", BS: "f4@7 ~@5", BT: "bb3@2 bb3@7 ~ bb4@4 bb4@2 ~ bb4@7, ~@5 bb1@7",
  BU: "[bb4@5 bb4@5 bb4@4 bb4@5 bb4@5 bb4@5 bb4@5 a4@2 g4@7 [f2,f4]@14 ~ [e2,e4]@24 e1@3 e2@3 b1@3 d2@3 e1@2, bb1@14 c2@14 ~ c2@14 ~@53]/4", // F E
  BV: "~ e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@2",
  BW: "[~ e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 [e1,gb5]@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 [e1,gb5]@3 e2@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 [e1,e5]@3 [e2,e5]@3 [b1,b4]@3 [d2,d5]@3 [e1,e5]@2, ~@10 e5@24 gb5@24 ~@3 g5@45 e5@24 gb5@24 ~@3 g5@21 ~@14]/8", // Esus2 E B D E
  BX: "~ [e1,e5]@3 [b1,b4]@3 [d2,d5]@3 [e1,g5]@3 [e2,g5]@3 [b1,gb5]@3 [d2,e5]@3 [e1,e5]@2", // E B D Em B5 Dsus2 E
  BY: "~ [e1,d5]@3 [b1,e5]@3 [d2,e5]@3 [e1,d5]@3 e2@3 b1@3 d2@3 e1@2, ~@13 b4@11", // E7 E5 Dsus2 E7
  BZ: "[~ e1@3 b1@3 d2@3 [e1,g5]@3 [e2,g5]@3 [b1,gb5]@3 [d2,e5]@3 e1@3 e1@3 b1@3 [d2,gb5]@3 [e1,g5]@3 ~@3 b1@2 ~ d2@3 e1@3 e1@3 b1@3 d2@3 [e1,a4]@3 [e2,g4]@3 b1@3 d2@3 e1@3 e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@2, ~@22 e5@9 ~@6 e2@3 ~@56, ~@19 gb5@2 e5@2 e5@3 b4@3 ~@3 e4@6 ~@10]/4", // Em B5 Dsus2 D Em A5 Em
  CA: "~ e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@2, ~ b4@6 a4@6 b4@11", CB: "~ e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 g2@2",
  CC: "~ gb2@3 g2@6 [e1,g5]@3 [e2,g5]@3 [b1,gb5]@3 [d2,e5]@3 [e1,e5]@2", // Em B5 Dsus2 E
  CD: "[~ e1@3 b1@3 d2@3 [e1,g5]@3 [e2,g5]@3 [b1,gb5]@3 [d2,e5]@3 e1@3 e1@3 b1@3 [d2,gb5]@3 [e1,g5]@3 ~@3 b1@2 ~ d2@3 e1@3 e1@3 b1@3 d2@3 [e1,a4]@3 [e2,g4]@3 b1@3 d2@3 e1@2, ~@22 e5@9 ~@6 e2@3 ~@32, ~@19 gb5@2 e5@2 e5@3 b4@3 ~@3 e4@3 ~]/3", // Em B5 Dsus2 D Em A5 Em
  CE: "~ e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 d2@3 e1@2, ~@13 b4@11",
  CF: "~ e1@3 b1@3 d2@3 e1@3 e2@3 b1@3 [d2,b4]@3 [e1,b4]@2", // G E5
  CG: "[~ [g1,d5]@3 [a1,d5]@3 [b1,d5]@3 c2@3 c2@3 c2@3 d2@3 d2@3 d2@3 d2@3 [d2,gb5]@3 d2@3 d2@3 d2@3 d2@3 e2@3 e2@3 e2 eb2 ~ d2 db2 ~ [c2,g5]@3 [c2,g5]@3 [c2,g5]@3 [d2,gb5]@3 [d2,gb5]@2, ~@10 g5@9 gb5@9 ~@6 gb5@6 g5@6 g5@6 ~@3 g5@3 ~@14]/3", // G5 D5 Bm D C5 D
  CH: "[~ [d2,gb5]@3 [d2,gb5]@3 [a1,gb5]@3 [d2,gb5]@3 [e2,gb5]@3 [gb2,g5]@6 e2@3 e2@3 e2 eb2 ~ d2 db2 ~ [c2,g5]@3 c2@3 c2@3 d2@3 d2@2, ~@22 g5@6 ~@3 g5@3 ~@3 g5@6 gb5@5]/2", // D Esus2 Gmaj7 C5
  CI: "[~ [d2,d5]@3 d2@3 [d2,d5]@3 d2@3 d2@3 d2@3 d2@3 e2@3 e2@3 d2@3 db2@3 c2@3 g1@3 a1@3 c2@5, ~@5 gb5@3 g5@3 g5@3 b4@3 c5@6 ~]/2", // D
  CJ: "[~ g1@3 a1@3 [c2,g5]@3 [d2,g5]@4 [d2,gb5]@4 [d2,e5]@4 [d2,e5]@6 [db2,d2] [b1,c2] bb1 [ab1,a1] [gb1,g1] f1 e1@3 gb1@3 g1@3 c2@6 b1@3 c2@3 [db2,g5]@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 e2@3 gb2@3 g2@3 d2@3 b1@3 c2@6 b1@3 c2@3 db2@3 d2@3 [d2,c5]@3 [d2,b4]@3 [d2,g4]@3 d2@3 d2@3 g1@3 gb1@3 [e1,g4]@3 gb1@3 g1@3 c2@6 b1@3 c2@3 [db2,g4]@3 [d2,g4]@3 [d2,g4]@3 d2@3 d2@3 d2@3 d2@3 e2@3 gb2@3 g2@3 d2@3 b1@3 [c2,e4]@5, ~@34 g5@21 ~@3 g5@6 gb5@6 e5@6 d5@6 d5@9 e5@9 ~@3 c5@6 ~@9 g4@6 a4@6 ~@3 a4@6 g4@9 ~@12 gb4@6 e4@6 d4@6 d4@9 ~@5]/8", // C5 G5 D Dsus2 Dmaj7 Cmaj7 Amaj7 Gmaj7 …
  CK: "[~ b1@3 c2@3 db2@3 d2@3 [d2,c5]@3 [d2,b4]@3 [d2,g4]@3 d2@3 d2@3 [d2,a4]@6 [c2,a4]@3 c2@3 c2@3 c2@3 c2@3 c2@3 [b1,c2] bb1 a1 [g1,ab1] gb1 f1 e1@3 gb1@3 g1@3 c2@5, ~@7 c5@6 ~@9 g4@6 ~@9 g4@18 ~@17]/3", // D7 G G5 D5 F Cmaj7 Abmaj7
  CL: "~ b1@3 c2@3 db2@3 d2@3 d2@3 d2@3 d2@3 gb2@2", CM: "~ d2@3 e2@3 gb2@3 g2@3 d2@3 b1@3 c2@5",
  CN: "~ b1@3 c2@3 e2@3 d2@3 d2@3 d2@3 d2@3 d2@2", CO: "~ d2@3 g1@3 gb1@3 e1@3 gb1@3 g1@3 c2@5",
  CP: "~ b1@3 c2@3 db2@3 d2@3 d2@3 d2@3 d2@3 d2@2", CQ: "~ b1@3 c2@6 e1@3 e1@3 e1@3 e1@3 e1@2",
  CR: "~ e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@3 e1@2",
  CS: "[~ e1@3 a1@3 b1@3 c2@3 c2@3 c2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 d2@3 e2@3 e2@3 d2@3 db2@3 c2@6 ~@3 c2@3 c2@9 ~@3 [d2,a5]@4 [d2,a5]@4 [d2,a5]@4 [d2,a5]@6 c2@3 d2@3 eb2@3 ab2@6 g2@3 ab2@2, ~@5 a5@3 g5@3 g5@3 g5@3 g5@3 g5@3 e5@3 d5@3 c5@12 ~@9 eb5@10]/5", // D5
  CT: "[~ [a2,eb5]@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 c3@3 d3@3 eb3@3 bb2@3 g2@3 ab2@6 g2@3 ab2@2, ~@4 eb5@6 d5@6 c5@6 bb4@6 bb4@9 c5@9 ~@2]/2", // Adim
  CU: "[~ a2@3 bb2@3 [bb2,ab5]@3 [bb2,g5]@3 [bb2,eb5]@3 bb2@3 bb2@3 eb2@3 d2@3 [c2,eb5]@3 d2@3 eb2@3 ab2@6 g2@3 ab2@2, ~ ab5@6 ~@9 eb5@6 f5@6 ~@3 f5@6 eb5@9 ~@2]/2", // Bb7 Eb Eb5 Cm
  CV: "[~ [a2,eb5]@3 [bb2,eb5]@3 [bb2,eb5]@3 bb2@3 bb2@3 bb2@3 bb2@3 c3@3 d3@3 eb3@3 bb2@3 g2@3 ab2@6 g2@3 ab2@2, ~@10 d5@6 c5@6 bb4@6 bb4@9 c5@9 ~@2]/2", // Adim Eb5
  CW: "[~ a2@3 bb2@3 [bb2,ab5]@3 [bb2,g5]@3 [bb2,eb5]@3 bb2@3 bb2@3 [bb2,f5]@6 c2@3 d2@3 eb2@3 ab2@6 g2@3 ab2@2, ~ ab5@6 ~@9 eb5@6 ~@6 eb5@20]/2", // Bb7 Eb Eb5 Bb5
  CX: "[~ [a2,eb5]@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 bb2@3 c3@3 d3@3 eb3@3 bb2@3 g2@3 ab2@6 g2@3 ab2@2, ~@4 eb5@6 d5@6 c5@6 bb4@6 bb5@9 c6@9 ~@2]/2", // Adim
  CY: "[~ [a2,eb5]@3 [bb2,eb5]@3 [bb2,eb5]@3 bb2@3 bb2@3 bb2@3 bb2@3 c3@3 d3@3 eb3@3 bb2@3 g2@3 ab2@6 g2@3 ab2@2, ~@10 d5@6 c5@6 bb4@6 bb5@9 c6@9 ~@2]/2", // Adim Eb5
  CZ: "[~ a2@3 bb2@3 [bb2,ab5]@3 [bb2,g5]@3 [bb2,eb5]@3 bb2@3 bb2@3 [bb2,f5]@6 ab5@6 ab5@3 ab5@6 eb5@3 [ab2,bb5]@30 [eb2,eb5]@6 ~@14, ~ ab5@6 ~@9 eb5@6 ~@6 ab1@9 eb2@9 ~@50]/4", // Bb7 Eb Eb5 Bb5 Absus2 Eb
})).s("gm_electric_bass_finger").gain(0.4)

// other · slap bass 2 · "Tromba in Si♭"
const slap_bass_2 = note(`<
  ~ A B C D E F E G E F H@2 ~@3 I J K L M N K L O P Q R@2 S T U V A W C D X Y C Z E F E G E F AA@2 AB@2 ~@3 AC AD AC AD
  ~@2 AC AD ~@2 AC AD AE@2 AF AG AH@3 AI AJ@2 AK@2 AL AM AN@2 AO@2 AK@2 AP AQ AR AS@5 ~@9 AT AU AV AW ~@6 AX AY ~@12
  AZ@8 BA ~@3 BB@5 ~@3 BC@8 BD@3 BE@8 BF@3 ~@8 BG@5 BH@2 BI@2 BJ@2 BK@2 BH@2 BI@2 BL@2 BM@4
>`.pickRestart({
  A: "g4!3 ab4@4 f4", B: "f4@2 f4 g4 g4@2 f4 eb4", C: "g4 ~@2 g4@6 f4@6 eb4@3 c4@3 c4@3", D: "eb4 c4 c4@4 ~@2",
  E: "g4@3 f4@4 eb4", F: "g4 f4 eb4@2 c4@2 bb3 c4", G: "g4@3 f4 ~ eb4 c4@18", H: "[g4@3 f4@13]/2", I: "~@7 g3",
  J: "bb3 c4 ~ c4@4 g3", K: "bb3@2 c4@2 eb4@3 c4", L: "eb4!4 c4!2", M: "eb4@2 d4@2 c4@2 c4@3 ~@3",
  N: "bb3 c4 ~ c4@3 g3!2", O: "eb4@2 d4 c4 c4@2 ~@2", P: "a4@3 g4 f4@2 c4!2", Q: "f4@2 g4 eb4@2 eb4@3", R: "g4/2",
  S: "a4@3 g4 f4@2 f4!2", T: "f4!2 eb4 f4@3", U: "f4!4 eb4 f4", V: "g4!3 g4@3", W: "f4!2 g4@2",
  X: "g4 ~@2 g4@6 ab4@9 ab4@3 ab4@3", Y: "bb4 f4 g4@2", Z: "eb4 c4 c4@6", AA: "[g4@9 f4@36 c4@2 ~]/2",
  AB: "[eb4@3 c4@11 ~@10]/2", AC: "~@5 eb5!3", AD: "eb5 d5", AE: "g4", AF: "ab4", AG: "f4@4 f4 ~ f4 ~",
  AH: "[~@4 eb4@2 f4 g4@7 g4 ab4@2 ab4@2 ab4@2 g4@3]/3", AI: "~@4 g4!4", AJ: "[bb4@2 bb4@2 bb4@2 ab4 g4@3 ~@2 g4!4]/2",
  AK: "[ab4@2 ab4 ab4@3 g4 f4@7 ~@2]/2", AL: "~@4 c4@2 d4 eb4", AM: "eb4@3 g4!5",
  AN: "[g4@2 f4@2 eb4@2 f4 g4@4 eb4 g4!4]/2", AO: "[bb4@2 ab4@2 g4@2 f4 eb4@3 ~@2 g4!4]/2", AP: "g4 ~ ab4 ~",
  AQ: "g4!2 ~@2", AR: "~@6 d5 e5", AS: "[f5@14 e5@14 ~ d5@24 a4@5 c5@4 a4@48 ~@10]/5",
  AT: "bb4@5 bb4@5 bb4@10 ~@2 bb4@2", AU: "bb4@5 a4@2 g4@7 bb4@5 bb4@5", AV: "~@2 bb4@2 ~ bb4@5 a4@2 g4@7 g4@5",
  AW: "f4@5 d4@2 c4@17", AX: "~@14 eb5@5 d5@5", AY: "bb4@5 f4@19",
  AZ: "[~@10 e5@24 gb5@24 gb5@3 g5@45 e5@24 gb5@24 gb5@3 g5@21 e5@3 e5@3 b4@3 d5@3 e5@2]/8",
  BA: "~ e5@3 b4@3 d5@3 ~@14", BB: "[~@5 e5@12 gb5@12 g5@24 ~@7]/5",
  BC: "[~@10 e5@24 gb5@24 g5@48 c5@9 d5@12 d5@3 d5@6 e5@6 e5@9 e5@3 c5@9 d5@12 d5@3 d5@6 e5@6 e5@2]/8",
  BD: "[~@7 e5@3 c5@9 d5@12 d5@3 d5@6 e5@6 e5@6 d5@6 c5@12 ~@2]/3",
  BE: "[~@7 g5@3 g5@4 gb5@4 e5@4 e5@6 ~@6 g5@21 g5@3 g5@6 gb5@6 e5@6 d5@6 d5@9 e5@9 ~@3 c5@6 c5@3 b4@3 g4@3 g4@6 a4@6 g4@3 a4@6 g4@9 ~@3 g4@3 g4@3 g4@3 gb4@6 e4@6 d4@6 d4@9 e4@5]/8",
  BF: "[~@7 c5@6 c5@3 b4@3 g4@3 g4@6 a4@6 a4@3 g4@18 ~@17]/3",
  BG: "[~ g5@3 g5@3 g5@3 a5@9 g5@15 g5@3 g5@3 g5@6 g5@6 ~@3 e5@3 g5@4 g5@4 e5@4 g5@4 e5@4 g5@4 a5@4 a5@4 a5@4 a5@6 eb5@20]/5",
  BH: "[~ eb5@3 eb5@6 d5@6 c5@6 bb4@6 bb4@9 c5@9 ~@2]/2",
  BI: "[~ ab5@6 ab5@3 g5@3 eb5@3 eb5@6 f5@6 eb5@3 f5@6 eb5@9 ~@2]/2",
  BJ: "[~ eb5@3 eb5@3 eb5@3 d5@6 c5@6 bb4@6 bb5@9 c6@9 ~@2]/2", BK: "[~ ab5@6 ab5@3 g5@3 eb5@3 eb5@6 f5@6 eb5@20]/2",
  BL: "[~ eb5@3 eb5@3 eb5@3 d5@6 c5@6 bb4@6 bb4@9 c5@9 ~@2]/2",
  BM: "[~ ab5@6 ab5@3 g5@3 eb5@3 eb5@6 f5@6 ab5@6 ab5@3 ab5@6 ab5@3 bb5@30 eb5@6 ~@14]/4",
})).s("gm_lead_8_bass_lead").gain(0.4)

// chords · tuba · "Tromba in Si♭"
const tuba = note(`<
  ~ A B C D E F G H I F J@2 K L M N O P Q R S T U V W X Y@2 Z AA AB AC AD AE AF AG AH AI AF AJ G F G H AK AL AM@2 AN ~@4
  AO AP AO AP AQ ~ AR AS AT AU AR AS AV AW AX AY AZ@3 BA BB@2 BC BD ~ BE BF BG BH@2 BC BD BI AT BJ BK@6 BL@4 ~@28 BM@7
  ~@5 BN@5 ~@3 BO@7 BP@4 BQ BR@8 BS@2 ~@8 BT@7 BU@8 BV@8
>`.pickRestart({
  A: "eb4!3 eb4@4 f4", B: "d4@2 d4 g4 eb4@2 f4 eb4", C: "eb4 ~@2 eb4@6 d4@6 eb4@3 c4@3 c4@3", D: "eb4 c4 c4@4 ~@2",
  E: "g3@2 g3 ~ eb3@2 eb3 eb4, g4@3 f4@4 ~", F: "[f3,g4] f4 [f3,eb4]@2 [g3,c4]@2 [g3,bb3] c4",
  G: "eb3@2 eb3 ~ f3@2 f3 eb4, g4@3 f4@4 ~", H: "g4@3 f4 ~ eb4 g3@6 g3@3 ~@3 g3@3 ~@3, bb3 c4@3",
  I: "g3@2 g3 ~ eb3@2 ~ eb4, g4@3 f4@4 ~, ~@3 eb3",
  J: "[eb3@6 eb3 ~@2 f3@9 f3@3 ~@3 f3@3 ~@3 f3@6 f3@3 ~@3 f3@3 ~@3, g4@3 f4@13]/2",
  K: "c3@3 bb2@3 bb2@6 eb3 ~@2 eb3@3 c3@6", L: "c3@2 bb2@2 eb3!2 c3@2", M: "c3@6 bb2@6 eb3 ~@2 eb3@3 c3@3 bb2 ~@2",
  N: "c3@6 bb2@6 eb3 ~@2 eb3@3 ~@3 g3@3, ~@3 c3",
  O: "[c3,bb3]@3 [bb2,c4]@3 ~@6 eb3 ~@2 eb3@3 ~@3 g3@3, ~ bb2 ~ c3, ~@3 c4@4 ~", // C7 Bbsus2
  P: "[c3,bb3]@6 [bb2,c4]@6 eb3 ~@2 eb3@3 ~@3 c4@3, ~@4 eb4@3 ~, ~@3 c3", // C7 Bbsus2
  Q: "eb4@4 ~@4 eb4@4 eb4@3 ~@3 c3@2 ~ bb2 ~@2, c3@6 bb2@6 eb3 ~@2 eb3@3 ~@6, ~ eb4 ~@2 c4!2",
  R: "eb4@4 ~@4 c4@4 eb3 ~@2 eb3@3 c3@6, c3 bb2 ~@2, ~@2 d4@2 ~@2 c4@3 ~@3",
  S: "bb3@3 c4@3 ~@6 eb3 ~@2 eb3@3 g3@3 g3@3, c3 ~@2 bb2 ~@2 bb2@6 ~@6 c3 ~@2 bb2 ~@2, ~@3 c4@3 ~@2",
  T: "c3 ~@2 bb2@3 [bb2,c4]@6 eb3 ~@2 eb3@3 ~@3 c4@3, bb3@2 ~@2 eb4@3 ~, ~@3 c3", // Bbsus2
  U: "eb4@3 bb2 eb4@4 ~ c3 ~@2 eb4@3 ~@3 c3 ~@2 bb2 ~@2, c3 ~@7 eb4@4 eb3 ~@2 eb3@3 ~@6, ~@4 c4!2",
  V: "[c3,eb4]@6 d4@3 c4@3 eb3 ~@2 eb3@3 c3@6, ~ bb2 c4 ~", // Cm
  W: "c3@6 c3@3 [c3,eb4]@3 c3 ~@2 c3 ~@2 c4@3 c4@3, f4@9 ~@3 c4@6 c3 ~@2 c3 ~@2", // Cm
  X: "[c3,f4]@6 g4@3 c3 ~@8 gb3@6, ~@6 c3 ~@2 eb4@6 eb4@9, ~@2 f3 ~", // F5
  Y: "[c3 ~@2 bb2 ~@2 bb2@6 eb3 ~@2 eb3 ~@2 c3@6 c3 ~@2 bb2@3 bb2@6 eb3 ~@2 eb3@3 c3@6, g4]/2",
  Z: "f3@6 f3@3 [f3,eb4]@3 f3 ~@2 f3 ~@2 c4@3 f4@3, f4@9 ~@3 c4@6 f3 ~@2 f3 ~@2", // F7
  AA: "d4@4 d4@4 c4@4 f3@3 g3@3 eb3@3 d3@3, ~ d4", AB: "c4!6", AC: "d4@4 d4@4 d4@4 d3@3 d3@3 d3@3 d3@3, ~ eb4",
  AD: "eb4!2 [g3,eb4] ~ eb3@2 eb3 f4, g3@2 ~ eb4@4 ~", AE: "d4@2 [f3,d4]@2 g3@2 g3 ~, f3 ~@3 eb4@4",
  AF: "eb4 ~@5 eb3@3 ~@6 eb4@3 [f3,c4]@3 c4@3, eb3 ~ f3 ~, ~ eb4@2 d4@2 ~@3", AG: "eb4 c4 g3@2 g3 ~ g3 ~, bb3 c4@2 ~",
  AH: "eb4 ~@5 g3@3 ~@3 eb3@6 eb4@3 eb4@3, g3 ~@2 eb3, ~ eb4@2 eb4@3 ~@2", AI: "g4@2 [f3,d4]@2 g3@2 g3 ~, f3 ~@3 eb4@4",
  AJ: "eb4 c4 g3@2 g3 ~ g3 ~, bb3 c4@3", AK: "[eb3,g4]@9 f3@4 ~@5 f3@3 eb4@3, ~@3 f4@4 ~",
  AL: "[bb2,g4] f4 [bb2,eb4]@2 c4@2 [bb2,bb3] c4, ~@4 bb2 ~@3", AM: "[[ab2,g4]@9 [bb2,f4]@36 c4@2 ~]/2",
  AN: "eb4@3 c4@5 ~@4", AO: "[g3,c4]@2 [g3,c4]@2 ~ c4 eb4 g4", AP: "ab4 g4", AQ: "[g3,c4] ~@3",
  AR: "[g3,c4]@2 [g3,c4]@2 ~ [g3,c4] eb4 g4, ~@3 [g3,c4]", // C5
  AS: "[ab3,eb4,ab4]@4 [bb3,f4] [g3,d4] [eb3,bb3] [c3,g3], ~ g4", AT: "[g3,c4]!2 ~@2",
  AU: "[ab3,eb4]@4 [bb3,f4] [g3,d4] [eb3,bb3] [c3,g3]", AV: "[eb3,eb4] [eb3,c4]!2 [eb3,c4]@3 [eb3,c4]!2",
  AW: "[d3,bb3] [eb3,c4]!2 [eb3,c4]@3 [eb3,c4]!2", AX: "[f3,eb4] [f3,c4] [f3,c4]@2 [f3,c4]@2 [f3,c4]!2",
  AY: "[f3,bb3] [f3,c4] [f3,c4]@2 [f3,c4]@4", AZ: "[~@4 c4@2 d4 eb4@7 eb4 eb4@2 d4@2 c4@2 bb3@3]/3", BA: "~@4 g4!4",
  BB: "[bb4@2 eb4@2 eb4@2 f4 ~@5 eb4!4, ~@7 g4@3 ~@6, ~ [eb3,c4]]/2", BC: "eb4@2 d4 c4@3 bb3!2, eb3, c4@3 ~@5",
  BD: "[d3,bb3]", BE: "~@3 eb4!5, [eb3,c4]", BF: "eb4 d4 c4 bb3, eb3, c4 ~", BG: "[eb3,bb3]@2 ~ eb4 g4!4",
  BH: "[bb4@2 ab4@2 [g3,eb4,g4]@2 [f3,d4,f4] c4 ~@4 eb4!4, ~@7 eb3@9, ~@7 eb4@3 ~@6, ~ c4]/2", // Cm Dm
  BI: "[g3,eb4] ~ [ab3,d4] ~", BJ: "~@6 d4 e4", BK: "[f4@14 e4@14 ~ d4@24 a3@5 c4@4 a3@48 d4@2 ~ e4@2 f4@14 ~ e4@14]/6",
  BL: "[d4@14 d4@14 ~ d4@7 a3@2 c4@48 ~@10]/4",
  BM: "[~@10 [g3,c5]@24 [a3,d5]@24 [a3,d5]@3 [b3,e5]@45 [g3,c5]@24 [a3,d5]@24 [a3,d5]@3 ~@11]/7", // C5 D5 E5 C5 D5
  BN: "[~@5 [g3,c5]@12 [a3,d5]@12 [b3,e5]@24 ~@7]/5", // C5 D5 E5
  BO: "[~@10 [g3,c5]@24 [a3,d5]@24 [b3,e5]@48 [e3,c4,e4]@9 d4@12 [b2,b3,d4]@3 [d3,d4]@6 [e3,e4]@6 [b2,b3]@6 ~@3 [e3,e4]@3 [e3,e4]@3 [e3,e4]@3 [e3,e4]@3 [d3,d4]@3 [d3,d4]@2, ~@115 d3@9 ~@18 e4@9 ~@3 c4@9 ~@5]/7", // C5 D5 E5 C Bm D E B …
  BP: "[~ [d3,d4]@3 [d3,d4]@3 [b2,b3,d4]@3 [d3,d4]@3 [d3,d4]@3 [e3,e4]@6 e4@9 [e3,e4]@3 [e3,e4]@3 [e3,e4]@6 d3@6 [b2,b3]@3 ~@3 [b2,b3,d4]@3 [d3,d4]@6 [e3,e4]@6 [b2,b3,e4]@6 [a2,a3,d4]@6 [a2,a3]@3 [g2,g3]@9 ~@2, ~@22 e3@6 ~@6 c4@9 d4@12 ~@27 c4@12 ~@2]/4", // D Bm D E B Bm D E …
  BQ: "~@7 [g3,g4]@3 [g3,g4]@4 [gb3,gb4]@4 [e3,e4]@4 [e3,e4]@2", // G Gb E
  BR: "[~@10 b2@9 ~@12 g4@3 g4@6 gb4@6 e4@6 d4@6 [d3,b4]@9 c5@9 ~@9 c5@3 b4@3 g4@3 g4@6 a4@6 g4@3 a4@6 g4@9 ~@3 g4@3 g4@3 g4@3 gb4@6 e4@6 d4@6 [d3,b4]@9 c5@9 ~@9 c5@3 b4@3 g4@3 g4@2, ~@10 g4@21 ~@48 c5@6 ~@90 c5@6 ~@11, ~@19 g3@15 a3@24 ~@9 g3@15 a3@24 b2@9 g3@15 a3@24 ~@9 g3@15 a3@14]/8", // G
  BS: "[~@4 a4@6 [a3,a4]@3 [g3,g4]@18 ~@17]/2", // A G
  BT: "[~ g5@3 g5@3 g5@3 a3@6 ~@6 g3@6 g3@6 e5@3 e5@3 [g3,e5]@6 [e3,e5]@6 ~@3 e5@3 g5@4 g5@4 e5@4 g5@4 e5@4 g5@4 [a3,a5]@4 [a3,a5]@4 [a3,a5]@4 [a3,a5]@6 [g2,g3]@9 eb3@3 ~@9 eb5@3 eb5@6 d5@6 c5@6 bb4@6 [bb2,bb3,g5]@9 eb3@3 eb3@8, ~@10 gb5@9 e5@15 ~@66 eb5@21 ~@36 ab5@9 ~@2, ~@16 g3@6 ~@12 g3@6 ~@12 d3@6 c3@24 ~@27 eb4@15 ~@33 eb4@11, ~@28 eb3@3 [f3,f4]@6 ~@5]/7", // C E A G Eb F
  BU: "[~@7 ab5@3 g5@3 eb5@3 eb5@6 f5@6 eb5@3 f5@6 eb3@3 ~@9 eb5@3 eb5@3 eb5@3 d5@6 c5@6 bb4@6 [bb2,bb3,g5]@9 eb3@3 ~@15 ab5@3 g5@3 eb5@3 eb5@6 f5@6 [g2,g3]@9 eb3@3 ~@9 eb5@3 eb5@6 d5@6 c5@6 bb4@6 [bb2,bb3,g5]@9 eb3@3 eb3@8, ~ ab5@6 ~@30 eb4@15 ~@33 eb4@15 ~@33 eb4@15 ~@33 eb4@11, ~@4 [f3,f4]@24 [g2,g3]@9 eb5@9 ~@39 ab5@9 ~@3 ab5@6 ~@21 eb5@21 ~@36 ab5@9 ~@2, ~@10 eb3@3 [f3,f4]@6 ~@3 eb3@3 [f3,f4]@6 ~@3 eb3@3 [f3,f4]@6 ~@5]/8", // Eb G Eb F G F
  BV: "[~@7 ab5@3 g5@3 eb5@3 eb5@6 f5@6 eb5@3 f5@6 eb3@3 ~@9 eb5@3 eb5@3 eb5@3 d5@6 c5@6 bb4@6 [bb2,bb3,g5]@9 eb3@3 ~@15 ab5@3 g5@3 eb5@3 eb5@6 f5@6 [ab2,ab3,ab5]@6 [ab2,ab3,ab5]@3 [ab2,ab3,ab5]@6 [g2,g3,g5]@3 [eb3,eb5]@30 [bb2,bb3,eb5]@6 ~@14, ~ ab5@6 ~@30 eb4@15 ~@33 eb4@15 ~@92, ~@4 [f3,f4]@24 [g2,g3]@9 eb5@9 ~@39 ab5@9 ~@3 ab5@6 ~@89, ~@10 eb3@3 [f3,f4]@6 ~@3 eb3@3 [f3,f4]@6 ~@17]/8", // Eb Ab G Eb Eb5 F G F
})).s("gm_tuba").gain(0.4)

// chords · tuba · "Tromba in Si♭" · soft notes
const tuba_soft = note("<~@23 A ~@6 B C D ~@56 E@3 F@3 G@3 H ~@34 I@2 J ~@64>".pickRestart({
  A: "~@2 bb2 ~@5", B: "f3!2 eb3 ~@3", C: "f3!6", D: "g3!3 ~@3", E: "[d3@14 c3@14 ~ bb2@24 a2@5 c3@14]/3",
  F: "[a2@14 c3@14 ~ eb3@14 d3@14 ~ c3@14]/3", G: "[bb2@14 bb2@14 ~ c3@14 a2@14 ~ c3@14]/3", H: "eb3@7 ~@5",
  I: "[~@13 [b3,e5]@21 [e3,e4,e5]@3 [e3,e4,e5]@3 [b2,b3,b4]@3 [d3,d4,d5]@3 [e3,e4,e5]@2]/2", // E5 E B D E
  J: "~ [e3,e4,e5]@3 [b2,b3,b4]@3 [d3,d4,d5]@3 ~@14", // E B D
})).s("gm_tuba").gain(0.2)

// other · clarinet · "Clarinetto in Si♭"
const clarinet = note(`<
  ~ A B C D E F E G E F H@2 ~@3 I J K L M N K L O P Q R@2 S T U V A W C D X Y C Z E F E G E F AA@2 AB ~@4 AC AD AC AD
  ~@2 AC AD ~@2 AC AD ~@4 AE@3 AF AG@2 AH@2 AI AJ AK@2 AL@2 AH@2 AM AN ~ AO@6 AP@4 ~@28 AQ@8 AR ~@3 AS@5 ~@3 AT@8 AU@3
  AV@8 AW@3 ~@8 AX@5 AY@2 AZ@2 BA@2 BB@2 AY@2 AZ@2 BA@2 BC@4
>`.pickRestart({
  A: "g4!3 ab4@4 f4", B: "f4@2 f4 g4 g4@2 f4 eb4", C: "g4 ~@2 g4@6 f4@6 eb4@3 c4@3 c4@3", D: "eb4 c4 c4@4 ~@2",
  E: "g4@3 f4@4 eb4", F: "g4 f4 eb4@2 c4@2 bb3 c4", G: "g4@3 f4 ~ eb4 c4@18", H: "[g4@3 f4@13]/2", I: "~@7 g3",
  J: "bb3 c4 ~ c4@4 g3", K: "bb3@2 c4@2 eb4@3 c4", L: "eb4!4 c4!2", M: "eb4@2 d4@2 c4@2 c4@3 ~@3",
  N: "bb3 c4 ~ c4@3 g3!2", O: "eb4@2 d4 c4 c4@2 ~@2", P: "a4@3 g4 f4@2 c4!2", Q: "f4@2 g4 eb4@2 eb4@3", R: "g4/2",
  S: "a4@3 g4 f4@2 f4!2", T: "f4!2 eb4 f4@3", U: "f4!4 eb4 f4", V: "g4!3 g4@3", W: "f4!2 g4@2",
  X: "g4 ~@2 g4@6 ab4@9 ab4@3 ab4@3", Y: "bb4 f4 g4@2", Z: "eb4 c4 c4@6", AA: "[g4@9 f4@36 c4@2 ~]/2",
  AB: "eb4@3 c4@5 ~@4", AC: "~@5 eb5!3", AD: "eb5 d5", AE: "[~@4 eb4@2 f4 g4@7 g4 ab4@2 ab4@2 ab4@2 g4@3]/3",
  AF: "~@4 g4!4", AG: "[bb4@2 bb4@2 bb4@2 ab4 g4@3 ~@2 g4!4]/2", AH: "[ab4@2 ab4 ab4@3 g4 f4@7 ~@2]/2",
  AI: "~@4 c4@2 d4 eb4", AJ: "eb4@3 g4!5", AK: "[g4@2 f4@2 eb4@2 f4 g4@4 eb4 g4!4]/2",
  AL: "[bb4@2 ab4@2 g4@2 f4 eb4@3 ~@2 g4!4]/2", AM: "g4 ~ ab4 ~", AN: "g4!2 ~@2", AO: "[f4@29 f4@29 a4@57 f4@29]/6",
  AP: "[f4@29 a4@58 ~@9]/4", AQ: "[~@10 c5@24 d5@24 d5@3 e5@45 c5@24 d5@24 d5@3 e5@21 e5@3 e5@3 b4@3 d5@3 e5@2]/8",
  AR: "~ e5@3 b4@3 d5@3 ~@14", AS: "[~@5 c5@12 d5@12 e5@24 ~@7]/5",
  AT: "[~@10 c5@24 d5@24 e5@48 c4@9 d4@12 d4@3 d4@6 e4@6 e4@9 e4@3 c4@9 d4@12 d4@3 d4@6 e4@6 e4@2]/8",
  AU: "[~@7 e4@3 c4@9 d4@12 d4@3 d4@6 e4@6 e4@6 d4@6 c4@12 ~@2]/3",
  AV: "[~@7 g4@3 g4@4 gb4@4 e4@4 e4@6 ~@6 g4@21 g4@3 g4@6 gb4@6 e4@6 d4@6 b4@9 c5@9 ~@3 c5@6 c5@3 b4@3 g4@3 g4@6 a4@6 g4@3 a4@6 g4@9 ~@3 g4@3 g4@3 g4@3 gb4@6 e4@6 d4@6 b4@9 c5@5]/8",
  AW: "[~@7 c5@6 c5@3 b4@3 g4@3 g4@6 a4@6 a4@3 g4@18 ~@17]/3",
  AX: "[~ g5@3 g5@3 g5@3 gb5@9 e5@15 e5@3 e5@3 e5@6 e5@6 ~@3 e5@3 g5@4 g5@4 e5@4 g5@4 e5@4 g5@4 a5@4 a5@4 a5@4 a5@6 eb5@20]/5",
  AY: "[~ eb5@3 eb5@6 d5@6 c5@6 bb4@6 g5@9 ab5@9 ~@2]/2",
// … 390 more lines