Strudelify

Lone Digger

Caravan Palace

KeyA♭ majorTempo115 bpm
0:00/0:00
// Lone Digger — Caravan Palace
// 115 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Clarinette en Si" named as a reed, played on clarinet (its pizzicato strings patch is not one); ch 5 "Trombone" named as a brass, played on trombone (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5840217; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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.

// chords · piano · "Flûte 1"
const piano = note(`<
  A B A B C D C E F G H I H J@2 I H K L M N O@2 P Q R S T U V W X Y Z AA AB AA AC@2 AB AA AD AE AF AE AG@2 AF AE AH AI
  AJ AK AL AM AN AO AP AQ AR AS AT AU AV AW AX@2 AY AZ BA AA AB AA BB@2 AB AA BC BD BE BF BG BH BI BH BI BJ D C E BK BL
>`.pickRestart({
  A: "[f2,f3]@2 [f3,ab3,c4] ~ [f2,f3]@2 [f3,ab3,c4] ~ [bb2,bb3]@2 [f3,bb3,db4] ~ [bb2,bb3]@2 [f3,bb3,db4] ~", // F Fm F Fm Bb Bbm Bb Bbm
  B: "[db3,db4]@2 [f3,ab3,b3] ~ [b2,b3]@2 [f3,ab3,b3] ~ [c3,c4]@2 [g3,c4,e4] ~ [c3,c4]@2 [g3,c4,e4] ~", // Db Fdim B Fdim C
  C: "[f2,f3]@2 [f3,ab3,c4] ~ [f2,f3]@2 [f3,ab3,c4] ~ bb2@2 [f3,bb3,db4] ~ [bb1,bb2]@2 [f3,bb3,db4] ~, ~@5 [f1,f2] ~ [db2,db3]", // F Fm F Fm Bbm Bb Bbm F …
  D: "db2@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~ [c2,c3,c4]@2 [g3,c4,e4] ~ [c3,c4]@2 [g3,c4,e4] ~, db3 ~", // Fdim C
  E: "[db2,db3]@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~ [db2,db3]@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~", // Db Fdim Db Fdim
  F: "[db2,db3]@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~ db3@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~", // Db Fdim
  G: "[b2,b3,b4] [c3,c4,c5] [ab2,ab3,ab4] [e2,e3,e4] [f2,f3,f4] [c2,c3,c4] [db2,db3,db4] [b1,b2,b3] [c2,c3,c4] [g1,g2,g3] [ab1,ab2,ab3] [f1,f2,f3] ~ [c3,e4,g4,bb4,c5,e5]@3", // B C Ab E F C Db B …
  H: "[f1,f2]@2 [f2,f4,ab4,c5] ~ [f1,f2]@2 [f4,ab4,c5] ~ [c3,db3] db3 [f4,ab4,db5] db3 [db2,db3]@2 [f4,ab4,db5] ~, ~@4 db2 ~@2 db3", // F Fm F Fm Dbmaj7 Db
  I: "[bb1,bb2]@2 [bb2,d4,f4,bb4] ~ [bb1,bb2]@2 [d4,f4,bb4] ~ [b2,c3] c3 [e4,g4,c5] c3 [c2,c3]@2 [e4,g4,c5] ~, ~@4 c2 ~@2 c3", // Bb Cmaj7 C
  J: "[[bb2,bb4] [g2,bb2,g4,bb4]@3 [ab2,ab4] ~ [g2,bb2,g4,bb4] ~ [f2,c3,f4,c5] ~ [e2,db3,e4,db5] ~ [d2,d3,d4,d5] [c2,e3,c4,e5] ~ [f1,f2,f3]@3 [c3,f4,ab4,c5] ~ [f1,f2]@2 [f4,ab4,c5] ~ [c3,db3] db3 [f4,ab4,db5] db3 [db2,db3]@2 [f4,ab4,db5] ~, ~@15 f5 ~@8 db2@2 ~@4 db3@2]/2", // Bb Gm Ab Gm F5 Dbm D C …
  K: "[bb2,bb3,bb4]@2 [f2,f3,f4]@2 [ab2,ab3,ab4]@2 [db3,db4,db5] [c3,c4,c5] ~@6 [c2,c3,c4]@2", // Bb F Ab Db C
  L: "c6@4 bb5@2 ab5@2 bb5 ~ bb5@2 bb5@2 [bb3,c6] ~, [f2,f3,c4,f4,ab4,c5,f5] [bb2,e3,ab3,c4,e4,ab4,c5,e5], ab3@6 ab3 ~@3 bb3 ~@5", // Bbsus2 Fm Caug
  M: "~@2 [ab3,c6] ~ bb5@2 ab5@2 bb5 ~ ab5@2 ab5@2 [g3,ab5] ~, [db3,eb3,g3,bb3,eb4,g4,bb4,eb5] [c3,d3,f3,bb3,d4,f4,bb4,d5], ~@6 ab3 ~@3 g3 ~@5", // Ab Abmaj7 Eb7 Bb
  N: "[b5,c6] ~ [ab3,bb5] ~ bb5 ~ ab3 ~@3 bb5@2 bb5@2 [bb3,c6] ~, [f2,db3,f3,c4,db4,f4,ab4,c5] [bb2,db3,f3,ab3,db4,f4,ab4,db5], ab3@2 ~@3 ab5@2 bb5@3 bb3 ~@5", // Cmaj7 Absus2 Bbsus2 Dbmaj7 Bbm7
  O: "[~@2 ab3 ~@3 ab3 ~ g3@2 g3 ~@3 g3 ~ ab3@2 ab3 ~ bb5 ab5 ab3 ~@3 bb5@2 bb5@2 [bb3,c6] ~, [c3,db3,f3,g3,c4,f4,g4,c5] [c3,e3,e4,g4] [f2,c4,f4] [bb2,c3,ab3,c4,e4], ~@8 [c4,c5]@4 [bb3,bb4]@4 ~@10 bb3 ~@5, ~@14 c6@6 ~@3 bb5@3 ~@6]/2", // Bbsus2 Csus4 C F5 Caug C Bb
  P: "~@2 c6@2 bb5@2 ab3 ab5 bb5@2 ab5@2 ~@2 ab5@2, [eb2,db3,bb3,eb4,g4]@8 ~@2 g3 ~@3 g3 ~, ~@2 ab3 ~@5 [c3,bb3,d4,f4]@8", // Eb7 Bb
  Q: "ab3@2 c6@2 bb5@2 ab3 ab5 bb5!2 bb5@2 bb5@2 c6@2, [db2,f2,c4,f4] [bb2,ab3,db4,f4], ~@2 ab3 ~@7 bb3 ~@3 bb3 ~", // Dbmaj7 Bbm7
  R: "[g3,c4,f4,f5] [g3,c4,e4,c5]", // Csus4 C
  S: "[f1,f2]@2 [f3,ab3,c4] ~ [f1,f2]@2 [f3,ab3,c4] ~ [bb1,bb2]@2 [f3,bb3,db4] ~ [f1,f2,bb2]@2 [f3,bb3,db4] ~", // F Fm F Fm Bb Bbm Bb5 Bbm
  T: "[db1,db2,db3]@2 [db3,f3,b3] ~ [db1,db2,db3]@2 [db3,f3,b3] ~ [c2,c3]@2 [e3,g3,c4] ~ [g1,g2]@2 [e3,g3,c4] ~", // Db Db7 Db Db7 C G C
  U: "[f1,f2]@2 [f3,ab3,c4] ~ [c2,c3]@2 [f3,ab3,c4] ~ [bb1,bb2]@2 [f3,bb3,db4] ~ [bb1,bb2]@2 [f3,bb3,db4] ~", // F Fm C Fm Bb Bbm Bb Bbm
  V: "[db2,db3]@2 [db3,f3,b3] ~ [b1,b2]@2 [db3,f3,b3] ~ c2@2 [e3,g3,c4] ~ [c2,c3]@2 [e3,g3,c4] ~, ~@2 c3 ~", // Db Db7 B Db7 C
  W: "[f2,f3]@2 f5!2 [f2,f3]@2 f5!2 bb2@2 f5!2 [f2,bb2]@2 f5!2", X: "db3@2 f5!2 db3@2 f5!2 c3@2 f5!2 g2@2 f5!2",
  Y: "[f2,f3]@2 f5!2 [f2,c3]@2 f5!2 bb2@2 f5!2 bb2@2 f5!2", Z: "~@2 b2 ~ c3@2 c3 ~, db3 ~",
  AA: "[f1,f2]@2 [f2,f3,ab3,c4,c5] ~ [f1,f2]@2 [f3,ab3,c4,c5] ~ [c3,db3] db3 [f3,ab3,db4,db5] db3 [db2,db3]@2 [f3,ab3,db4,db5] ~, ~@4 db2 ~@2 db3", // F Fm F Fm Dbmaj7 Db
  AB: "[bb1,bb2]@2 [bb2,d3,f3,bb3,bb4] ~ [bb1,bb2]@2 [d3,f3,bb3,bb4] ~ [b2,c3] c3 [e3,g3,c4,c5] c3 [c2,c3]@2 [e3,g3,c4,c5] ~, ~@4 c2 ~@2 c3", // Bb Cmaj7 C
  AC: "[[bb2,bb3,bb4] [bb1,bb2,bb3,g4,g5]@3 [ab1,ab2,ab3,f4,ab4,f5] ~ [g1,g2,g3,g4,bb4,g5] ~ [f1,f2,f3,f4,ab4,c5,ab5] ~ [e1,e2,e3,g4,bb4,db5,bb5] ~ [d1,d2,d3,f4,ab4,b4,d5,b5] [c1,c2,c3,e4,g4,bb4,e5,bb5] ~ [f1,f2,f4,ab4,c5,f5]@3 [f2,f3,ab3,c4,c5] ~ [f1,f2]@2 [f3,ab3,c4,c5] ~ [c3,db3] db3 [f3,ab3,db4,db5] db3 [db2,db3]@2 [f3,ab3,db4,db5] ~, ~@15 ab5 ~@8 db2@2 ~@4 db3@2]/2", // Bb Eb Db Gm Fm Edim Ddim C7 …
  AD: "[b2,b3,b4] [c3,c4,c5] [ab2,ab3,ab4] [e2,e3,e4] [f2,f3,f4] [c2,c3,c4] [db2,db3,db4] [b1,b2,b3] [c2,c3,c4] [g1,g2,g3] [ab1,ab2,ab3] [f1,f2,f3] ~ [c2,c3,e4,g4,bb4,c5,e5]@3", // B C Ab E F C Db B …
  AE: "f5!2 [f2,f4,ab4,c5] ~ [f1,f2,f5]@2 [f4,ab4,c5,ab5] ~ [c3,db3] [db3,b4] [f4,ab4,db5] db3 [db2,db3]@2 [f4,ab4,db5] ~, [f1,f2]@2 ab5@2 ~@3 f5@2 ~ c5@2 bb4@4, ~@4 db2 ~@2 db3", // Fm F Fm Dbmaj7 Db7 Db F
  AF: "f5!2 [bb2,d4,f4,bb4] ~ [bb1,bb2,f5]@2 [d4,f4,bb4,ab5] ~ [b2,c3] [c3,b4] [e4,g4] c3 [c2,c3,bb4]@2 [e4,g4,c5] ~, [bb1,bb2]@2 ab5@2 ~@3 f5@2 ~ c5@2 ~@4, ~@4 c2 ~@2 [c3,e5]", // Bb Bb5 Bb7 Cmaj7 Em C7 C Bb …
  AG: "[[bb2,bb3,bb4] [bb1,bb2,bb3,g4]@3 [ab1,ab2,ab3,f4,ab4] ~ [g1,g2,g3,g4,bb4] ~ [f1,f2,f3,f4,ab4,c5] ~ [e1,e2,e3,g4,bb4,db5] ~ [d1,d2,d3,f4,ab4,b4,d5] [c1,c2,c3,e4,g4,bb4,e5] ~ [f1,f2,f5]@2 f5 [f2,f4,ab4,c5] ~ [f1,f2,f5]@2 [f4,ab4,c5,ab5] ~ [c3,db3] [db3,b4] [f4,ab4,db5] db3 [db2,db3]@2 [f4,ab4,db5] ~, ~@15 [f4,ab4,c5] ~@2 ab5@2 ~@3 f5@2 ~ c5@2 bb4@4, ~@12 db2 ~@2 db3]/2", // Bb Eb Db Gm Fm Edim Ddim C7 …
  AH: "g4 bb4 db5 g4 eb5 d5 [db2,db3,db5] [c2,c3,c5] ~ [gb5,g5] ~ [c5,gb5] ~ [g5,bb5] ~ ab5, [bb1,bb2] [f1,f2] [ab1,ab2] ~@5", // Db C Gmaj7 Cdim Gm Bb F Ab
  AI: "[f3,ab3,c4,f4,ab4,c5,f5] [e3,ab3,c4,e4,ab4,c5,e5]", AJ: "[eb3,g3,bb3,eb4,g4,bb4,eb5] [d3,f3,bb3,d4,f4,bb4,d5]",
  AK: "[db3,f3,ab3,c4,db4,f4,ab4,c5] [db3,f3,ab3,db4,f4,ab4,db5]", // Dbmaj7 Db
  AL: "db3@2 [f4,ab4,b4] ~ b2@2 [f4,ab4,b4] ~@3 [e4,g4,c5] ~ c3@2 [e4,g4,c5] ~, c3@2 c3 ~", // Fdim C
  AM: "[f2,f3,ab3,c4,f4,ab4,c5,f5] [c3,e3,ab3,c4,e4,ab4,c5,e5]", // Fm Caug
  AN: "[eb3,g3,bb3,eb4,g4,bb4,eb5] [c3,d3,f3,bb3,d4,f4,bb4,d5]", // Eb Bb
  AO: "[db3,f3,ab3,c4,db4,f4,ab4,c5] [bb2,db3,f3,ab3,db4,f4,ab4,db5]", // Dbmaj7 Bbm7
  AP: "[g2,c3,f3,g3,c4,f4,g4,c5]@2 [c4,c5] [bb3,bb4], ~ [g2,c3,e3,g3,e4,g4]", // Csus4 C Bb C
  AQ: "~@2 f5!2 f2@2 f5!2 bb2@2 f5!2 f2@2 f5!2, [ab3,c4,f4] ~, f2 ~ [c3,ab3,c4,e4]@2", // Fm Caug
  AR: "db3@2 f5!2 db3@2 f5!2 ~@2 f5!2 g2@2 f5!2, [eb2,bb3,eb4,g4] [c3,bb3,d4,f4]", // Eb Bb
  AS: "f2@2 f5!2 c3@2 f5!2 ~@2 f5!2 bb2@2 f5!2, [db2,ab3,c4,f4] [ab3,db4,f4], ~@2 bb2 ~", // Dbmaj7 Db
  AT: "[db3,f5]@2 f5!2 b2@2 f5!2 c3@2 f5!2 c3@2 f5!2, [g3,c4,f4] [g3,c4,e4,c5]", // Db Csus4 C
  AU: "[f1,f2]@2 [f4,ab4,c5,f5] f5 [f1,f2]@2 [f4,ab4,c5,f5] f5 [db2,bb2,db3]@2 [f4,ab4,db5,f5] f5 [db2,f2,db3]@2 [f4,ab4,db5,f5] f5", // F Fm F Fm Gb Db
  AV: "[bb1,bb2,db3]@2 [d4,f4,bb4,f5] f5 [bb1,bb2,db3]@2 [d4,f4,bb4,f5] f5 [c2,c3]@2 [e4,g4,c5,f5] f5 [c2,g2,c3]@2 [e4,g4,c5,f5] f5", // Bbm Bb Bbm Bb C C5 C
  AW: "[f1,f2]@2 [f4,ab4,c5,f5] f5 [f1,f2,c3]@2 [f4,ab4,c5,f5] f5 [db2,bb2,db3]@2 [f4,ab4,db5,f5] f5 [db2,bb2,db3]@2 [f4,ab4,db5,f5] f5", // F Fm F5 Fm Gb Db Gb Db
  AX: "[[db2,db3,f3]@2 f5 eb5 c5 bb4 [f4,g4] f4!2 ab4 [g4,ab4] g4 bb4 c5 f5 ~@2 f5 db5 c5 ab4 db5 c5 ab4 db5 bb4 g5@3 f5 db5 c5, ~ [db4,f4,b4] [b2,b3] [db4,b4] [c3,c4] [e4,c5] [c3,c4] [e4,g4,c5] f2@4 f2@4, ~@15 ab5@2 ~@15]/2", // Db Fsus2 Abmaj7 Db7 B Db7 C
  AY: "~ f4 ab4@3 f4 d4 c4 bb4 f4 ~ g4 e4 g4!3, db3 d3",
  AZ: "ab5 f5 eb5 f5@2 db5 bb4 ~@2 db5 bb4!3 ab4 f4 db4, db3@7 bb4@2 ~@7, ~ ab2",
  BA: "~ eb4 g4 c5 f5 bb5 eb6 c6 ~@4 [ab1,c3]@2 ~@2, c3 ~", // Ab
  BB: "[[bb2,bb3,bb4] [bb1,bb2,bb3,g4,g5]@3 [ab1,ab2,ab3,f4,ab4,f5] ~ [g1,g2,g3,g4,bb4,g5] ~ [f1,f2,f3,f4,ab4,c5,ab5] ~ [e1,e2,e3,g4,bb4,db5,bb5] ~ [d1,d2,d3,f4,ab4,b4,d5,b5] [c1,c2,c3,e4,g4,bb4,e5,bb5] ~ [f1,f2,f4,ab4,c5,f5]@3 [f2,f3,ab3,c4,c5] ~ [f1,f2]@2 [f3,ab3,c4,c5] ~ [c3,db3] db3 [f3,ab3,db4,db5] db3 [db2,db3]@2 [f3,ab3,db4,db5] ~, ~@12 db2 ~@2 db3]/2", // Bb Eb Db Gm Fm Edim Ddim C7 …
  BC: "f6 db6 a5 c6 bb5 f5 ab5 g5 c5 f5 eb5 bb4 c5 bb4 ab4 f4, bb2 [db4,f4] f2 [bb3,db4] c3 [e3,g3] g2 [c3,e3]", // Db Bbm Em C
  BD: "ab4 f4 [f3,ab3,c4] ~ [f2,eb5]@2 [f3,ab3,c4] ~ bb2@2 [f3,bb3,db4] f5 [bb2,ab5]@2 [f3,bb3,db4,f5] ab5, f2 ~@2 f5 ~@4", // Fm F7 Fm Bbm Bb7 Bbm
  BE: "f4 c5 [f3,ab3,b3] ~ [b2,eb5]@2 [f3,ab3,b3] ~ c3@2 [g3,c4] ~ [c3,ab5]@2 [g3,c4,e4] ~, db3 f5 ~ f5 ~ e5 ~ f5", // Fdim B Fdim C5 Fm C
  BF: "ab5 f5 [f3,ab3,c4,c5] ~ [f2,eb5]@2 [f3,ab3,c4] ~ bb2@2 [f3,bb3,db4] f5 [bb2,ab5]@2 [f3,bb3,db4,f5] ab5, f2 ~@2 f5 ~@4", // Fm F7 Fm Bbm Bb7 Bbm
  BG: "f4 c5 [f3,ab3,b3] ~ [b2,eb5]@2 [f3,ab3,b3] ~ c3@2 [g3,c4,e4] ~ [c3,ab5]@2 [g3,c4,e4] ~, db3 f5 ~ f5 ~ e5 ~ f5", // Fdim B Fdim C Fm C
  BH: "f2@2 [f3,ab3,c4] ~ f2@2 [f3,ab3,c4] ~ bb2@2 [f3,bb3,db4] ~ bb2@2 [f3,bb3,db4] ~, f3 ~@3 f3 ~@3 bb3 ~@3 bb3 ~@3", // Fm Bbm
  BI: "db3@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~ c3@2 [g3,c4,e4] ~ c3@2 [g3,c4,e4] ~, db4 ~@3 b3 ~@3 c4 ~@3 c4 ~@3", // Fdim C
  BJ: "f2@2 [f3,ab3,c4] ~ f2@2 [f3,ab3,c4] ~ bb2@2 [f3,bb3,db4] ~ [bb1,bb2]@2 [f3,bb3,db4] ~, f3 ~@3 f3 ~@5 [f1,f2]@2 ~@2 [db2,db3]@2", // Fm Bbm Bb Bbm F Db
  BK: "[db2,db3]@2 [f3,ab3,b3] ~ b2@2 [f3,ab3,b3] ~ eb5!2 [f3,ab3,b3,db5] ~@2 ab5 [f3,ab3,b3,f5] db5, ~@8 db3@2 ~ f5@2 ~@3, ~@6 b2 ~", // Db Fdim Db7 Fdim
  BL: "[b2,b3,b4,b5] [c3,c4,c5,c6] [ab2,ab3,ab4,ab5] [e2,e3,e4,e5] [f2,f3,f4,f5] [c2,c3,c4,c5] [db2,db3,db4,db5] [b1,b2,b3,b4] [c2,c3,c4,c5] [g1,g2,g3,g4] [ab1,ab2,ab3,ab4] [f1,f2,f3,f4] ~@4", // B C Ab E F C Db B …
})).s("gm_piano").gain(0.27)

// other · tremolo strings · "Flûte 2"
const tremolo_strings = note(`<
  ~@10 A B C D C B C E F G H ~ I J K ~@9 L M L N L M L ~ O P O Q@2 P O ~@9 R@7 S@2 T U V L M L N L M L W X Y Z Y ~@8 AA
  AB
>`.pickRestart({
  A: "~@2 ab4@2 ~@2 ab4 ~@3 f5 ~@3 f5 ~", B: "~@2 d5 ~@3 d5 ~@3 e5 ~@3 e5 ~", C: "~@2 ab4 ~@3 ab4 ~@3 f5 ~@3 f5 ~",
  D: "bb4 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5", E: "bb4@2 f4@2 ab4@2 db5 c5 ~@8",
  F: "c5@4 bb4@2 ab4@2 bb4 ~ bb4@2 bb4@2 c5 ~", G: "~@2 c5 ~ bb4@2 ab4@2 bb4 ~ ab4@2 ab4@2 ab4 ~",
  H: "[b4,c5] ~ bb4 ~ bb4 ab4@2 bb4@3 bb4@2 bb4@2 c5 ~", I: "c5@4 bb4 ab4 ~ bb4@3 bb4@2 bb4@2 c5 ~",
  J: "~@2 c5@2 bb4@3 ab4 bb4@2 ab4@2 ~@2 ab4@2", K: "~@2 c5@2 bb4@3 ab4 bb4!2 bb4@2 bb4@2 c5@2",
  L: "~@2 ab4 ~@3 ab4 ~@3 ab4 ~@3 ab4 ~", M: "~@2 f4 ~@3 f4 ~@3 g4 ~@3 g4 ~",
  N: "bb4 g4@3 f4 ~ g4 ~ ab4 ~ bb4 ~ b4 bb4 ~ ab4", O: "f5!2 ab5@2 f5@2 ab5 f5@2 b4 c5@2 bb4@4",
  P: "f5!2 ab5@2 f5@2 ab5 f5@2 b4 c5@2 bb4@2 e5@2",
  Q: "[bb4 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5@2 f5 ab5@2 f5@2 ab5 f5@2 b4 c5@2 bb4@4]/2",
  R: "~@2 f4!2 ~@2 f4!2 ~@2 f4!2 ~@2 f4!2",
  S: "[~@2 db5 bb4 g4 f4 db4!2 c4 f4 e4!2 g4!2 c5 f5@2 db5 ab4!2 f4 ab4!2 f4 bb4 g4 db5@3 db5 bb4 ab4]/2",
  T: "~ c5 f5@3 d5 ab4!2 g4 d5 ~ d5 bb4!2 eb5 bb4", U: "f5 db5 bb4 db5@2 bb4 f4 eb4@2 bb4 f4 eb4 f5 eb5 db5 bb4",
  V: "~ bb4 eb4 g4 c5 f5 bb5 g5 ~@8", W: "f6 db6 a5 c6 bb5 f5 ab5 g5 c5 f5 eb5 bb4 c5 bb4 ab4 f4",
  X: "ab4 f4 ~@2 eb5@2 f5@2 ~@3 f5 ab5@2 f5 ab5", Y: "f4 c5 f5@2 eb5@2 f5@2 ~@2 e5@2 ab5@2 f5@2",
  Z: "ab5 f5 c5 ~ eb5@2 f5@2 ~@3 f5 ab5@2 f5 ab5", AA: "~@8 eb5!2 db5 f5@2 ab5 f5 db5",
  AB: "b5 c6 ab5 e5 f5 c5 db5 b4 c5 g4 ab4 f4 ~@4",
})).s("gm_tremolo_strings").gain(0.27)

// other · oboe · "Hautbois"
const oboe = note(`<
  ~@10 A B A C@2 B A D ~@3 E ~@3 F ~@3 G ~@4 A B A H@2 B A I A B A J@2 B A D ~@3 E ~@3 F ~@3 E ~@8 A B A H@2 B A ~@13 K
  L
>`.pickRestart({
  A: "f4 ~ f4 ~@5 c5 db5 ~ db5 ~@2 db5@2", B: "bb4 ~ bb4 ~@5 b4 c5 ~ c5 ~@2 c5@2",
  C: "[eb4 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5@3 c5 ~@5 c5 db5 ~ db5 ~@2 db5@2]/2", D: "bb4@2 f4@2 ab4@2 db5 c5 ~@8",
  E: "~@2 [e5,f5] ~ f5@2 ab5@2 bb5@2 f5@2 eb5 f5@3", F: "~@2 [g5,ab5] ~ ab5@3 ab5 ab5@2 f5 eb5 f5@2 c5@2",
  G: "~@2 [e4,f4] ~ f4@2 ab4@2 bb4@2 f4@2 eb4 f4@3", // Fmaj7
  H: "[bb5 bb5@3 ab5 ~ g5 ~ f5 ~ e5 ~ d5 c5 ~ f4@3 f4 ~@5 c5 db5 ~ db5 ~@2 db5@2]/2",
  I: "b5 c6 ab5 e5 f5 c5 db5 b4 c5 g4 ab4 f4 ~ c5@3",
  J: "[bb3 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5@3 c5 ~@5 c5 db5 ~ db5 ~@2 db5@2]/2",
  K: "~@8 eb5!2 db5 f5@2 ab5 f5 db5", L: "b5 c6 ab5 e5 f5 c5 db5 b4 c5 g4 ab4 f4 ~@4",
})).s("gm_oboe").gain(0.18)

// other · clarinet · "Clarinette en Si"
const clarinet = note(`<
  A B A C D E D F@2 ~ G H G I@2 H G J ~@3 K ~@3 L ~@3 M ~@4 G H G N@2 H G O G H G N@2 H G J ~@3 K ~@3 L ~@3 K ~@3 P@2 Q
  R S G H G T@2 H G ~@5 U V U W X E D F@2 Y
>`.pickRestart({
  A: "ab5 f5 c5@2 f2@2 ~@2 bb5 e5 f5@2 bb2@2 ~@2, f2@2 ~@2 c5 ~@3 bb2@2 ~@2 db5 ~@3",
  B: "eb5!2 db5 f5 ~ ab5 f5 db5 c5 e5 c5 g4 ~ g5 e5 c5, db3 ~ b2 ~ c3 ~ c3 ~",
  C: "eb5!2 db5 f5 ~ ab5 f5 db5 c5 d5 eb5 e5 ~ ab4 c5 f5, db3 ~ b2 ~ c3 ~ c3 ~",
  D: "ab5 f5 c5@2 f2@2 ~@2 bb5 e5 f5@2 db5 ~@3, f2@2 ~@2 c5 ~@11",
  E: "eb5!2 db5 f5 ~ ab5 f5 db5 c5 e5 c5 g4 ~ g5 e5 c5, ~@4 c3 ~ c3 ~",
  F: "eb5!2 db5 f5@2 ab5 f5 db5 eb5!2 db5 f5@2 ab5 f5 db5", G: "f4 ~ f4 ~@5 c5 db5 ~ db5 ~@2 db5@2",
  H: "bb4 ~ bb4 ~@5 b4 c5 ~ c5 ~@2 c5@2",
  I: "[eb4 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5@3 c5 ~@5 c5 db5 ~ db5 ~@2 db5@2]/2",
  J: "g4 bb4 db5 g4 eb5 d5 db5 c5 ~ [gb5,g5] ~ [c5,gb5] ~ [g5,bb5] ~ ab5", // Gmaj7 Cdim Gm
  K: "~@2 [e5,f5] ~ f5@2 ab5@2 bb5@2 f5@2 eb5 f5@3", L: "~@2 [g5,ab5] ~ ab5@3 ab5 ab5@2 f5 eb5 f5@2 c5@2",
  M: "~@2 [e4,f4] ~ f4@2 ab4@2 bb4@2 f4@2 eb4 f4@3", // Fmaj7
  N: "[bb3 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5@3 c5 ~@5 c5 db5 ~ db5 ~@2 db5@2]/2",
  O: "b4 c5 ab4 e4 f4 c4 db4 b3 c4 g3 ab3 f3 ~ c4@3",
  P: "[~@2 db5 bb4 g4 f4 db4!2 c4 f4 e4!2 g4!2 c5 f5@2 db5 ab4!2 f4 ab4!2 f4 bb4 g4 db5@3 db5 bb4 ab4]/2",
  Q: "~ c4 f4@3 d4 ab3!2 g3 d4 ~ d4 bb3!2 eb4 bb3", R: "f5 db5 bb4 db5@2 bb4 f4 eb4@2 bb4 f4 eb4 f4 eb4 db4 bb3",
  S: "~ bb3 eb4 g4 c5 f5 bb5 g5 ~@8",
  T: "[bb5 bb5@3 ab5 ~ g5 ~ f5 ~ e5 ~ d5 c5 ~ f4@3 f4 ~@5 c5 db5 ~ db5 ~@2 db5@2]/2",
  U: "[f2,ab5] f5 c5@2 [f2,c5] ~@3 [bb2,bb5] e5 f5@2 [bb2,db5] ~@3", // Fm F5 Bb Bbm
  V: "[db3,eb5] eb5 db5 f5 b2 ab5 f5 db5 [c3,c5] e5 c5 g4 c3 g5 e5 c5", // Dbsus2 C
  W: "[db3,eb5] eb5 db5 f5 b2 ab5 f5 db5 [c3,c5] d5 eb5 e5 c3 ab4 c5 f5", // Dbsus2 C
  X: "[f2,ab5] f5 c5@2 [f2,c5] ~@3 bb5 e5 f5@2 db5 ~@3", Y: "b4 c5 ab4 e4 f4 c4 db4 b3 c4 g3 ab3 f3 ~@4",
})).s("gm_clarinet").gain(0.4)

// other · tenor sax · "Saxophone Alto"
const tenor_sax = note(`<
  ~@9 A B@3 C B@3 D ~@3 E ~@3 F ~@3 G ~@3 H I J K L@2 M N ~ B@3 C B@3 D ~@3 O ~@3 F ~@3 O ~@7 H I J K L@2 M N ~@12 P Q A
>`.pickRestart({
  A: "b4 c5 ab4 e4 f4 c4 db4 b3 c4 g3 ab3 f3 ~@4", B: "f5 ~ f5 ~@13", C: "bb3 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5",
  D: "[g3,g4] [bb3,bb4] [db4,db5] [g3,g4] [eb4,eb5] [d4,d5] [db4,db5] [c4,c5] ~ [gb4,g4,gb5,g5] ~ [c4,gb4,c5,gb5] ~ [g4,bb4,g5,bb5] ~ [ab4,ab5]", // G Bb Db G Eb D Db C …
  E: "~@2 [e4,f4,e5,f5] ~ [f4,f5]@2 [ab4,ab5]@2 [bb4,bb5]@2 [f4,f5]@2 [eb4,eb5] [f4,f5]@3", // Fmaj7 F Ab Bb F Eb F
  F: "~@2 [g3,ab3,g5,ab5] ~ [ab3,ab5]@3 [ab3,ab5] [ab3,ab5]@2 [f3,f5] [eb3,eb5] [f3,f5]@2 [c3,c5]@2", // Abmaj7 Ab F Eb F C
  G: "~@2 [e3,f3,e4,f4] ~ [f3,f4]@2 [ab3,ab4]@2 [bb3,bb4]@2 [f3,f4]@2 [eb3,eb4] [f3,f4]@3", // Fmaj7 F Ab Bb F Eb F
  H: "~@12 [bb3,bb4] [ab3,ab4] [bb3,bb4] [ab3,ab4]", // Bb Ab Bb Ab
  I: "[b3,b4] [c4,c5] [b3,b4] [bb3,bb4] [ab3,ab4] [f3,f4] [c3,c4] [f3,f4] [eb4,eb5] [ab3,ab4] [eb4,eb5] [ab3,ab4]!2 [f3,f4] [ab3,ab4] [f3,f4]", // B C B Bb Ab F C F …
  J: "[bb3,bb4] ~ [bb3,bb4] ~ [eb4,eb5]!2 ~ [f3,f4] [c4,c5]!2 [bb3,bb4] [c4,c5] [bb3,bb4] [c4,c5] [e4,e5]@2", // Bb Eb F C Bb C Bb C …
  K: "[f4,f5] ~ [c4,c5] ~ [b3,c4,b4,c5] [ab3,ab4] [f3,f4] [ab3,ab4] [db4,db5]!2 ~ [db4,db5] [ab3,ab4] [f3,f4] [c4,c5]@2", // F C Cmaj7 Ab F Ab Db Ab …
  L: "[[bb2,bb3] [g3,g4]@3 [ab3,ab4] ~ [bb3,bb4] ~ [c4,c5] ~ [db4,db5] ~ [d4,d5] [e4,e5] ~ [f4,f5]@3 [b3,b4] [bb3,bb4] [ab3,ab4] [f3,f4] [c3,c4] [f3,f4] [ab3,ab4]!5 [f3,f4] [ab3,ab4] [f3,f4]]/2", // Bb G Ab Bb C Db D E …
  M: "[bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4]!2 ~ [ab3,ab4] [c4,c5]!2 ~ [c4,c5] ~ [e3,e4] [e4,e5] ~", // Bb Ab C E
  N: "[bb3,bb4] [ab3,ab4] [bb3,bb4] [ab3,ab4] [bb3,bb4] ~ [bb3,bb4] [ab3,ab4] [bb3,bb4] [ab3,ab4] [bb3,bb4] [ab3,ab4] [bb3,bb4] ~ [c4,c5]@2", // Bb Ab Bb Ab Bb Ab Bb Ab …
  O: "~@2 [e3,f3,e5,f5] ~ [f3,f5]@2 [ab3,ab5]@2 [bb3,bb5]@2 [f3,f5]@2 [eb3,eb5] [f3,f5]@3", // Fmaj7 F Ab Bb F Eb F
  P: "~@8 [eb4,eb5]!2 [db4,db5] [f4,f5]@2 [ab4,ab5] [f4,f5] [db4,db5]", // Eb Db F Ab F Db
  Q: "[eb3,eb5]!2 [db3,db5] [f3,f5]@2 [ab3,ab5] [f3,f5] [db3,db5] [eb3,eb5]!2 [db3,db5] [f3,f5]@2 [ab3,ab5] [f3,f5] [db3,db5]", // Eb Db F Ab F Db Eb Db …
})).s("gm_tenor_sax").gain(0.34)

// other · violin
const violin = note(`<
  ~@9 A ~@3 B C D C ~@9 E F G ~ H I J K L M L N L M L ~ O@3 P@2 O@2 ~ Q R S ~ T U V ~ Q W X ~ Y I J ~@5 L M L N L M L
  ~@14 Z
>`.pickRestart({
  A: "b5 c6 ab5 e5 f5 c5 db5 b4 c5 g4 ab4 f4 ~@4", B: "bb4 bb4@3 ab4 ~ g4 ~ f4 ~ e4 ~ d4 c4 ~ f4",
  C: "~@2 f4 ~@3 f4 ~@3 db5 ~@3 db5 ~", D: "~@2 bb4 ~@3 bb4 ~@3 c5 ~@3 c5 ~",
  E: "bb4@4 bb4@2 ab4@2 bb4 ~ bb4@2 bb4@2 c5 ~", F: "~@2 c5 ~ bb4 ab4@2 bb4@3 ab4@2 ab4@2 ab4@2",
  G: "~@2 c5 ~ bb4@2 ab4@2 bb4 ~ bb4@2 bb4@2 c5 ~", H: "~@2 c5 ~ bb4@2 ab4@2 bb4 ~ bb4@2 bb4@2 bb4@2",
  I: "bb4 ~ bb4@2 bb4@2 ab4@2 bb4 ~ ab4@2 ab4@2 ab4 ~", J: "~@2 [b4,c5] ~ bb4@2 ab4 ~@3 bb4!2 bb4@2 bb4 ~",
  K: "db5@2 c5 ~", L: "~@2 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~", M: "~@2 d4 ~@3 d4 ~@3 e4 ~@3 e4 ~",
  N: "bb3 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5", O: "f5 ~ f5 ~@13",
  P: "[bb3 g4@3 ab4 ~ bb4 ~ c5 ~ db5 ~ d5 e5 ~ f5@2 ~ f5 ~@13]/2", Q: "c5@4 bb4@2 ab4@2 bb4 ~ bb4 ~ bb4@2 c5 ~",
  R: "~@2 c5 ~ bb4 ab4@2 bb4@3 ab4@2 ab4@2 ab4 ~", S: "~@2 c5 ~ bb4@2 ab4@2 bb4@2 bb4@2 bb4@2 c5 ~",
  T: "~@2 c5@2 bb4 ab4@2 bb4@3 bb4@2 bb4@2 c5@2", U: "~@2 c5@2 bb4@3 ab4 bb4@2 ab4@2 ~@2 ab4@2",
  V: "~@2 [b4,c5] ~ bb4@3 ab4 bb4!2 bb4@2 bb4@2 c5 ~", W: "~@2 c5 ~ bb4@2 ab4@2 bb4 ~ ab4@2 ab4@2 ab4 ~",
  X: "~@2 [b4,c5] ~ bb4@3 ab4 bb4@2 bb4@2 bb4@2 c5 ~", Y: "~@2 [b4,c5] ~ bb4@2 ab4@2 bb4 ~ bb4 ~ bb4@2 bb4@2",
  Z: "b4 c5 ab4 e4 f4 c4 db4 b3 c5 g4 ab4 f4 ~@4",
})).s("gm_violin").gain(0.4)

// other · pizzicato strings
const pizzicato_strings = note("<A B A B A B A B C ~ D E D ~@5 F G F G F G F ~@57 A B A B A B A B C ~>".pickRestart({
  A: "~@2 c4 ~@3 c4 ~@3 db4 ~@3 db4 ~", B: "~@2 b3 ~@3 b3 ~@3 e4 ~@3 e4 ~", C: "~@2 b3 ~@3 b3 ~@3 b3 ~@3 b3 ~",
  D: "~@2 f4 ~@3 f4 ~@3 db5 ~@3 db5 ~", E: "~@2 bb4 ~@3 bb4 ~@3 c5 ~@3 c5 ~", F: "~@2 f4 ~@3 f4 ~@3 f4 ~@3 f4 ~",
  G: "~@2 f4 ~@3 f4 ~@3 e4 ~@3 e4 ~",
})).s("gm_pizzicato_strings").gain(0.3)

// other · violin
const violin_2 = note(`<
  ~@9 A ~@3 B C D C ~@9 E F G ~ H I J K L D L M L D L ~ N@3 O@2 N@2 ~ P Q R S P T U P V W X ~ Y Z J ~@5 L D L M L D L
  ~@14 A
>`.pickRestart({
  A: "b4 c5 ab4 e4 f4 c4 db4 b3 c5 g4 ab4 f4 ~@4", B: "bb4 bb4@3 ab4 ~ g4 ~ f4 ~ e4 ~ d4 c4 ~ f4",
  C: "~@2 c4 ~@3 c4 ~@3 ab4 ~@3 ab4 ~", D: "~@2 f4 ~@3 f4 ~@3 g4 ~@3 g4 ~",
// … 89 more lines