Strudelify

The Way You Look Tonight

Sinatra

KeyA♭ majorTempo132 bpm
0:00/0:00
// The Way You Look Tonight — Sinatra
// 132 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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 · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  A B C D A B E F A B G F H@2 E I ~@8 A B G F H@2 E I ~@10 J K L M N O P Q R S T U V F W X G F Y Z ~@16 P Q R S T U V F
  ~@20
>`.pickRestart({
  A: "~@6 [g3,c4,eb4] ~@11 [g3,c4,eb4] ~@5", B: "~@6 [g3,bb3,eb4] ~@11 [g3,bb3,eb4] ~@5",
  C: "~@6 [ab3,c4,eb4]@2 ~@10 [ab3,c4,eb4] ~@5", D: "~@6 [ab3,bb3,d4] ~@11 [ab3,bb3,d4]@2 ~@4",
  E: "~@6 [ab3,c4,eb4] ~@11 [ab3,c4,eb4]@2 ~@4", F: "~@3 [ab3,bb3,d4] ~@5 [ab3,bb3,d4] ~@2",
  G: "~@3 [ab3,c4,eb4] ~@5 [ab3,c4,eb4] ~@2", H: "~@6 [g3,bb3,db4] ~@11 [g3,bb3,db4]@2 ~@4",
  I: "~@6 [ab3,bb3,d4]@2 ~@10 [ab3,bb3,d4] ~@5", J: "~@18 [gb3,ab3,b3,eb4] ~@5",
  K: "~@6 [f3,ab3,b3,d4] ~@11 [f3,ab3,b3,d4]@2 ~@4", L: "~@6 [ab3,bb3,db4] ~@11 [ab3,bb3,db4] ~@5",
  M: "~@6 [gb3,a3,c4,eb4] ~@11 [gb3,a3,c4,eb4] ~@5", N: "~@6 [gb3,ab3,b3,eb4] ~@11 [gb3,ab3,b3,eb4]@2 ~@4",
  O: "~@6 [f3,ab3,b3] ~@11 [f3,ab3,b3]@2 ~@4", P: "~@6 [f3,ab3,bb3,db4] ~@11 [f3,ab3,bb3,db4] ~@5",
  Q: "~@6 [g3,bb3,db4,e4] ~@11 [g3,bb3,db4,e4] ~@5", R: "~@6 [gb3,ab3,b3,eb4] ~@11 [gb3,ab3,b3,eb4] ~@5",
  S: "~@6 [f3,ab3,b3,d4] ~@11 [f3,ab3,b3,d4] ~@5", T: "~@6 [bb3,db4,f4] ~@11 [bb3,eb4] ~@5",
  U: "~@3 [bb3,d4] ~@5 [bb3,eb4] ~@2", V: "~@6 [ab3,c4,eb4] ~@11 [ab3,c4,eb4] ~@5",
  W: "~@3 [g3,bb3,d4,f4] ~@5 [g3,bb3,c4,eb4] ~@2", X: "~@3 [g3,bb3,c4,eb4] ~@5 [g3,bb3,c4,eb4] ~@2",
  Y: "~@6 [f3,g3,bb3,d4]@2 ~@10 [f3,b3,eb4]@3 ~@3", Z: "~@3 [g3,bb3,db4] ~@5 [g3,bb3,db4] ~@2",
})).s("gm_acoustic_guitar_nylon").gain(0.19)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT AU AV
  AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY AR AW BZ CA CB CC CD CE CF CG
  CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV ~@4
>`.pickRestart({
  A: "eb2@9 ~@3 eb2@10 d2 ~", B: "c2@9 ~@3 c2@9 ~ g2@2", C: "f2@10 ~@2 f2@7 ~@3 f2 ~",
  D: "bb1@9 ~@3 bb1@7 ~ f2 ~ bb2@2", E: "eb2@8 ~@4 eb2@9 ~ d2@2", F: "c2@8 ~@4 c2@5 ~@3 eb2@2 g2@2",
  G: "f2@9 ~@3 f2@6 ~@4 f2@2", H: "bb1@5 ~ bb1@5 ~", I: "eb2@7 ~@5 eb2@10 ~@2", J: "c2@8 ~@4 c2@9 ~@3",
  K: "f2@8 ~@4 f2@5 ~@5 f2@2", L: "bb1@3 ~ bb1@3 ~", M: "g2@5 ~ g1@6", N: "c2@11 ~ c2@9 ~ e1 ~", O: "f1@10 ~@2 f1@11 ~",
  P: "bb1@8 ~@4 bb1@8 f2 ~ bb2@2", Q: "eb2@3 ~@3 bb1@4 ~@2", R: "eb2@8 ~@2 bb2 ~ eb2@6 a1@4 ~@2",
  S: "ab1@10 ~@2 g1@3 ~@3 gb1@6", T: "f1@9 ~@3 bb1@7 ~ f2@2 bb2@2", U: "eb2@3 ~@2 eb2 c2@3 ~@3",
  V: "f2@8 ~@4 bb1@5 ~@5 bb1@2", W: "eb2@6 c2@6 b1@2 ~@4 b1@5 ~", X: "bb1@7 ~@5 bb1@10 bb2@2", Y: "eb2@3 ~ eb2@4",
  Z: "c2@9 ~@3 c2@4 ~@6 g2@2", AA: "f2@7 ~@5 f2@5 ~@5 bb2@2", AB: "bb1@2 c2 ~ f2@2 bb1@6 c2@6 d2@3 ~ d2@2",
  AC: "g2@9 ~ bb2@2 g2@10 db2 ~", AD: "c2@5 ~ c2@6", AE: "f2@3 ~ f2@2 ~@2", AF: "bb2@11 ~ bb1@7 ~@3 bb2@2",
  AG: "eb2@11 ~ bb1@9 ~@3", AH: "eb2@5 ~@5 bb2@2 eb2@6 a1@5 ~", AI: "ab1@12 g2@5 ~ gb2@6",
  AJ: "f2@6 ~@4 f2 ~ bb1@3 ~ bb1@2 d2@6", AK: "eb2@12 c2@5 ~@3 eb2@2 g2@2", AL: "f2@6 ~@4 f2 ~ bb1@4 ~@2 bb1@6",
  AM: "eb2@5 ~ c2@5 ~ b1@3 ~@3 b1@5 ~", AN: "bb1@2 ~ bb1@2 ~ bb2@2 bb1 ab2@2 g2", AO: "gb2@6 bb1@5 ~ db2@5 ~ eb2@6",
  AP: "gb2@2 ~ gb2@3 g2@2 ~ g2@2 ~", AQ: "ab2@4 ~@2 ab2@5 ~ eb2@3 ~ ab2@2 d2@5 ~", AR: "db2@5 ~ ab2@6 db3@6 db2@5 ~",
  AS: "bb2@4 ~@2 bb2@6 db2@5 ~ bb2@6", AT: "a2@5 ~ a2@6 a1@6 a2@5 ~", AU: "ab2@3 ~@3 ab2@5 ~ eb2@4 ab2@2 d2@5 ~",
  AV: "db2@4 ~@2 db2@6 ab2@5 ~ db3@6", AW: "bb2@2 ~ bb2@3 bb1@3 bb2@3", AX: "a2@4 ~@2 a2@6 a1@5 ~ a2@5 ~",
  AY: "ab2@4 eb2@2 ab2@6 eb2@5 ~ ab2@4 d2@2", AZ: "db2@6 f2@5 ~ ab2@4 f2@2 db3@3 ~ db3@2",
  BA: "gb2@4 ~@2 gb2@5 ~ db3@6 db2@6", BB: "gb2@5 ~ db3@5 ~ bb2@6 gb2@5 ~", BC: "f2@4 ~@2 f2@3 ~@3 f2@5 ~ bb1@6",
  BD: "~@12 bb1@3 ~ f2@2 bb2@3 ~ bb2@2", BE: "eb2@9 ~@3 eb2@8 ~@4", BF: "c2@8 ~@4 c2@5 ~@5 g2@2",
  BG: "f2@7 ~@5 f2@8 ~@4", BH: "bb1@7 ~@5 bb1@9 ~ ab2@2", BI: "g2@8 ~@4 g2@5 ~ db2@6", BJ: "c2@8 ~@4 c2@7 ~ g2@2 c3@2",
  BK: "f2@7 ~@5 f2@5 ~ e2@6", BL: "f2@9 ~@3 bb1@6 ~@4 bb2 ~", BM: "eb2@6 ~@4 eb2@2 bb1@7 ~@3 bb2@2",
  BN: "eb2@8 ~@4 eb2@4 ~@2 a1@5 ~", BO: "ab1@10 ~@2 g2@5 ~ gb2@6", BP: "f2@10 ~@2 bb1@5 ~@5 bb1@2",
  BQ: "eb2@7 ~@5 bb2@4 ~@2 bb2@5 ~", BR: "eb2@5 ~ g2@6 bb2@5 ~ g2@5 ~", BS: "gb2@5 ~ gb2@6 db2@5 ~ gb2@4 ~@2",
  BT: "gb2@3 bb2@3 g2@2 ~ g2@3", BU: "ab2@4 ~@2 ab2@5 ~ eb2@4 ab2@2 d2@5 ~", BV: "db2@5 ~ ab2@6 db3@5 ~ b2@5 ~",
  BW: "bb2@4 ~@2 bb2@6 bb1@5 ~ eb2@5 ~", BX: "bb2@3 ~@3 bb2@2 ~@2 bb2@2 a2@3 ~@3 a2@5 ~",
  BY: "ab2@5 ~ ab2@5 ~ eb2@4 ab2@2 d2@5 ~", BZ: "a2@5 ~ a1@4 ~@2 a1@6 e2@6", CA: "ab2@5 ~ ab2@6 eb2@4 ab2@2 d2@5 ~",
  CB: "db2@2 ~ db2@3 f2@3 ab2@2 g2", CC: "gb2@5 ~ bb2@6 db3@6 db2@2 gb2@2 db3@2", CD: "gb2@2 ~ gb2@3 db3@3 gb2@3",
  CE: "f2@4 ~@2 f2@4 bb2@2 f2@4 ~@2 f2@5 ~", CF: "bb1@4 ~@2 bb1@6 bb2@11 ~", CG: "e2@4 ~@2 e2@6 b2@6 e2@3 ~ e2@2",
  CH: "db2@2 ~ db2@3 e2@3 db3@3", CI: "gb2@4 ~@2 gb2@6 db3@6 gb2@5 ~", CJ: "b2@3 ~ b2@2 gb2@6 b1@4 ~@2 b1@4 a2@2",
  CK: "ab2@4 ~@2 ab2@6 eb2@4 ab2@2 d2@5 ~", CL: "db2@4 ~@2 db2@6 f2@5 ~ ab2@4 db3@2",
  CM: "gb2@4 ~@2 gb2@6 db3@5 ~ gb2@6", CN: "b1@6 gb2@6 b2@5 ~ b1@5 ~", CO: "e2@2 ~ e2@3 b1@2 ~ b1@2 ~",
  CP: "b1@4 ~@2 e2@5 ~ bb1@4 ~@2 bb1@6", CQ: "a1@9 ~@3 ab1@5 ~ gb1@6", CR: "b1@6 ~@6 b1@7 ~@5",
  CS: "e2@3 ~@3 db2@2 ~@3 ab2", CT: "gb2@6 ~@4 gb2@2 b1@5 ~@5 b1 ~", CU: "e2@7 ~@3 e2@2 db2@6 ~@4 db2@2",
  CV: "gb2@7 ~@5 b1@7 ~@5",
})).s("gm_acoustic_bass").gain(0.33)

// other · vibraphone
const vibraphone = note(`<
  ~@45
  [~@4 f4 ~ gb4 ~ a4 ~ c5 ~ f5@2 ~@2 e5@2 eb5@3 ~ d5@2]
  [db5 ~@11]
  ~@51
  [~@4 ab5 ~@7 b5@3 ~@9]
  ~
  [~@2 eb5 ~@3 b4@2 ~@4]
  ~@5
>`).s("gm_vibraphone").gain(0.27)

// chords · alto sax
const alto_sax = note(`<
  A B C D E F G H A B C I J K L M@2 ~@3 N O P Q A B C I J K L M@2 ~@3 N O P Q ~@16 R S T U V W X Y Z ~@3 AA AB AC AD AE
  AF AG AH AI@2 ~@6 AJ AK AL AM AN AO ~ AP AQ ~ AR ~@9 AS AT
>`.pickRestart({
  A: "[c4,f4] ~@4 [eb4,g4] ~@6", // F5 Eb
  B: "~@4 [eb4,bb4]@2 [g3,c4]@3 ~ [ab3,d4]@2 [bb3,eb4]@4 [b3,f4]@2 c4@2 ~@4, ~@18 g4 ~@5", // Eb5 C5 Abdim Eb5 Bdim
  C: "[c4,f4] ~@9 bb4@2 ~@12, ~@10 c4 ~@13", // F5
  D: "~@4 d4@2 [f3,c4]@3 ~ f3@2 [g3,eb4]@3 ~ [ab3,f4]@2 [bb3,g4]@2 ~@4, ~@4 bb4 ~@5 d4 ~@13", // F5 Cm Db Eb
  E: "f4@2 ~@8 [eb4,g4] ~@13, c4 ~@23", // Eb
  F: "~@4 [eb4,bb4] ~ [g3,c4]@3 ~ [ab3,d4]@2 [bb3,eb4]@4 [b3,f4]@2 g4@2 ~@4, ~@18 c4 ~@5", // Eb5 C5 Abdim Eb5 Bdim
  G: "f4 ~@4 bb4 ~@6, c4 ~@9 c4 ~@13",
  H: "~@4 [d4,bb4] ~ [f3,c4]@3 ~ f3@2 [g3,eb4]@4 [ab3,f4]@2 [bb3,g4]@2 ~@4, ~@10 d4 ~@13", // Gm F5 Cm Db Eb
  I: "~@2 [d4,bb4] [f3,c4]@2 [f3,d4] [g3,eb4]@2 [ab3,f4] [bb3,g4] ~@2", J: "bb3 ~@4 [g4,db5] ~@6, f4 ~@23",
  K: "~@4 [db4,bb4]@2 [g3,e4]@4 [ab3,f4]@2 [bb3,g4]@3 ~ [c4,ab4]@2 [db4,bb4]@2 ~@4", // Gb C Db Eb Fm Gb
  L: "ab4@2 ~@8 [eb4,c5] ~@13, c4 ~@23", // Cm
  M: "[~@6 [ab3,ab4]@3 [c5,db5] [f4,d5]@4 [g4,eb5] [f4,d5] [ab3,ab4]@2 [f4,d5]@3 ~ [f4,eb5]@14 d5 db5 b4 bb4 [ab4,a4] g4 gb4 [e4,f4] eb4 d4 db4 ~, ~@22 d5 ~@14 c5@2 ~@9]/2", // Ab Dbmaj7 Dm Cm Dm Ab Dm F7 …
  N: "~@2 [bb3,ab4]", O: "[ab3,f4] ~@7 [ab3,gb4]@4", P: "[g3,eb4] ~@7 [eb3,db4]@4", Q: "[f3,d4] ~@11",
  R: "~@6 [f3,bb3]@4 [d4,g4]@4 gb4 f4 d4@2 [g3,eb4]@3 ~@3, ~@16 f3 ~@7", // Bb5 G5 Cm
  S: "[g3,bb3,c4]@4 [bb3,c4,eb4]@2 [c4,eb4,g4]@4 [eb4,g4,c5]@2 ~@4 [c4,eb4,g4]@2 [bb3,c4,eb4]@3 ~@3", // C7 Cm7 Cm Cm7
  T: "~@6 [ab3,ab4]@3 ~ ab4@2 [g3,c4,g4]@4 [c3,f3] [bb3,b3,eb4] [f3,c4,f4]@3 ~@3, ~@6 eb4@6 ~@4 c4@2 e4 ~@5, ~@10 ab3 ~@13", // Ab C5 F5 Bmaj7 F5
  U: "[d3,ab3,d4]@3 ~ [c4,f4] ~ [ab3,d4,ab4]@4 [c4,c5]@2 ~@4 [ab3,d4,ab4]@2 ~@6, ~@4 f3@2 ~@4 f4 ~@13", // Ddim F5 Abdim C Abdim
  V: "~@6 [d3,g3,d4]@4 [bb3,f4,bb4]@4 a4 [a3,ab4] ab3 ~@2 [eb3,ab3]@3 ~@2, ~@16 [g3,d4]@2 eb4@3 ~@3, ~@17 d3@2 ~@5", // G5 Bb5 Amaj7 Ab5 G5
  W: "~ e3@3 [g3,db4]@2 [bb3,e4,bb4]@4 [db4,db5]@2 ~@4 [bb3,e4]@2 ~@6, [bb3,e4]@4 g4 ~@5 g4 ~@5 bb4 ~@7", // Gdim Bbdim Db Bbdim
  X: "[ab3,eb4]@3 ~ [bb3,e4]@2", Y: "[c4,f4]@3 ~@13 [bb3,gb4]@8", Z: "[bb3,eb4] ~@7",
  AA: "~@6 [g3,eb4]@4 f4@2 [eb4,bb4]@4 [g3,eb4] ~ [bb3,f4]@4 [eb4,bb4]@2, ~@10 bb3 ~@13", // Cm Eb5 Cm Bb5 Eb5
  AB: "[g3,eb4]@4 [bb3,f4] ~ [eb4,bb4]@4 [g3,eb4] ~ [bb3,f4]@4 [eb4,bb4]@2 [g3,eb4]@3 f4 bb3 ab4", // Cm Bb5 Eb5 Cm Bb5 Eb5 Cm
  AC: "bb4@7 ~@4 [ab4,a4] bb4@6 ~@5 ab4, a4 ~@23", AD: "bb4@5 ~@6 [ab4,a4] bb4@5 ~@5 ab4 a4, a4 ~@23",
  AE: "bb4@3 ~@3 db5@10 a4 bb4 b4@6", AF: "ab4@23 ~", AG: "f4 ~@5 ab4@9 gb4@8 ~", AH: "f4@12 gb4@10 [db5,d5] ~",
  AI: "[eb5@15 ~]/2", AJ: "~@6 [c4,eb4]@3 ~ g4@2 ~@4 eb4@2 [eb4,g4] ~@5, ~@10 eb4 ~@5 c4 ~@7",
  AK: "[g4,bb4] ~@2 [g4,bb4]@3 ~@6", AL: "~@4 [ab4,b4]@2 ~@6 [ab4,b4]@3 ~@9",
  AM: "~@6 [b3,e4]@3 ~ db4@2 [db4,g4]@4 [b3,e4] ~ [db4,g4]@3 gb4 g4@2, ~@10 g4 ~@13", AN: "e4 ~@11",
  AO: "~@4 [eb4,ab4]@3 ~@3 [eb4,ab4] ~ [eb4,ab4]@3 ~@3 [eb4,ab4]@2 ~@4", // Ab5
  AP: "~@6 [b3,f4]@4 [eb4,ab4] ~ [eb4,ab4]@4 [b3,f4] ~ [eb4,ab4]@3 ~ ab4@2", AQ: "gb4 ~@11",
  AR: "~@6 b4@4 b4 ~@5 b4 d5 e5@3 ~@3, ~@18 eb5 ~@5", AS: "~@21 ab4@2 a4", AT: "bb4 b4@17 ~@6",
})).s("gm_alto_sax").gain(0.33).pan(0.3)

// chords · alto sax
const alto_sax_2 = note(`<
  A B C D E F G H A B C I J K L M@2 ~@3 N O P Q A B C I J K L M@2 ~@3 N O P Q ~@16 R S T U V W X Y Z ~@3 AA AB ~@14 AC
  AD AE AF AG AH ~ AI ~@2 AJ ~@11
>`.pickRestart({
  A: "[g3,eb4]@2 ~@8 [c4,eb4,bb4]@3 ~@11, bb3 ~@23", // Cm Cm7
  B: "~@2 g4 [eb3,bb3]@2 [f3,bb3] [g3,c4]@2 ab3 [bb3,eb4] ~@2, ~@4 c4 ~@11 d4 ~@7", C: "[ab3,eb4] ~@4 [ab3,eb4] ~@6",
  D: "~@4 [bb3,f4]@2 [c3,ab3]@4 [d3,ab3]@2 [eb3,bb3]@3 ~ [f3,c4]@2 [g3,d4]@2 ~@4", // Bb5 Fm Ddim Eb5 F5 G5
  E: "[bb3,eb4] ~@4 [c4,eb4,bb4] ~@6, g3 ~@23", // Eb5 Cm7
  F: "~@2 c4 [eb3,bb3]@2 f3 [g3,c4]@2 [ab3,d4] [bb3,eb4] ~@2, ~@4 g4 ~@5 bb3 ~@13", // Eb5 C5 Abdim Eb5
  G: "eb4 ~@4 [ab3,eb4] ~@6, ab3 ~@23", // Ab5
  H: "~@4 [bb3,f4] ~ [c3,ab3]@4 [d3,ab3]@2 [eb3,bb3]@4 f3@2 [g3,d4]@2 ~@4, ~@16 c4 ~@7", // Bb5 Fm Ddim Eb5 G5
  I: "~@4 [bb3,f4]@2 [c3,ab3]@3 ~ [d3,ab3]@2 [eb3,bb3]@4 [f3,c4]@2 [g3,d4]@2 ~@4", // Bb5 Fm Ddim Eb5 F5 G5
  J: "[g3,db4] ~@4 bb4 ~@6, ~@10 f4 ~@13", K: "~@4 f4 ~ bb3@4 c4@2 db4@4 e4@2 g4@2 ~@4", L: "[eb4,f4] ~@4 [f4,ab4] ~@6",
  M: "[~@6 [d3,c4]@4 [bb3,ab4]@4 [c4,bb4] [bb3,ab4] [d3,c4]@2 [bb3,ab4]@4 [db4,g4]@14 f4 e4 ~ [c4,d4] ~ b3 a3 g3 f3 e3 ~@2]/2", // D7 Bb7 C7 Bb7 D7 Bb7 Dbdim Csus2
  N: "~@2 [db4,e4]", O: "~ [c4,eb4]@2 ~@13 [b3,d4]@7 ~", P: "[bb3,c4] ~@7 [g3,a3]@4", Q: "[ab3,bb3] ~@11",
  R: "~@6 [bb2,d3,g3]@4 [g3,bb3]@5 [a3,e4] ~ f3 ~ g3@2 ~@3, ~@10 f4@4 ~ eb4@2 bb3@2 ~@5, ~@8 [d3,ab3] [eb3,c4] ~@2", // Gm A5 Ddim Cm
  S: "[c3,eb3]@3 ~ [eb3,g3]@2 [g3,bb3]@4 c4@2 ~@4 g3@2 [eb3,g3]@3 ~@3, ~@10 eb4 ~@5 bb3 ~@7", // Cm Eb Gm Eb
  T: "~@7 c4@3 [c4,f4]@2 [bb3,eb4]@4 ~ db4 [ab3,eb4]@3 ~@3, ~@6 f4@2 ~@8 [eb3,ab3]@2 d4 ~@5", // F5 Eb5 Ab5
  U: "[f3,c4]@3 ~ d4@2 [c4,f4]@4 ab4@2 ~@4 c4@2 ~@6, ~@4 ab3 ~@5 d4 ~@5 f4 ~@7", // F5
  V: "~@6 [f3,bb3]@4 ~@4 gb4 f4 bb3@2 ~ f3 ~@4, ~@5 g4@2 ~@5, ~@11 d4@5 f3 ~ b3@2 ~@4", // Bb5
  W: "[g3,db4]@3 ~ bb3@2 [db4,g4]@3 ~ bb4@2 ~@4 db4@2 ~@6, ~@4 e4 ~@5 e4 ~@5 g4 ~@7", X: "f3@5 ~@11 [g3,db4]@8, c4 ~@7",
  Y: "[ab3,eb4]@3 ~@5 [ab3,d4]@4", Z: "[g3,db4] ~@5",
  AA: "~@6 [f3,bb3]@4 [g3,c4]@2 [c4,f4]@3 ~ bb3@2 [g3,c4]@4 [c4,f4] ~, ~@16 f3 ~@7", // Bb5 C5 F5 C5 F5
  AB: "[f3,bb3]@4 [g3,c4]@2 [c4,f4]@3 ~ bb3@2 [g3,c4]@4 c4@2 [f3,bb3]@4 [g3,c4] ~, ~@10 f3 ~@5 f4 ~@7", // Bb5 C5 F5 C5 Bb5 C5
  AC: "~@6 [f3,ab3]@3 ~ [ab3,c4]@2 ~@4 [f3,ab3] ~ [ab3,c4]@2 ~@4", AD: "[bb3,d4]@2 ~@4 [bb3,d4]@5 ~@13",
  AE: "~@2 [e4,gb4] ~@3 [e4,gb4] ~@5", // Esus2
  AF: "~@6 [ab3,db4]@4 [b3,e4] ~ [b3,e4]@4 ab3@2 [b3,e4]@3 ~ [b3,e4] ~, ~@16 db4 ~@7", AG: "[gb3,db4] ~@7",
  AH: "~@2 [a3,db4] ~@2 db4 [a3,db4] ~@2 [a3,db4] ~@2, ~@10 a3 ~@13", // A
  AI: "~@6 [ab3,eb4]@4 [b3,f4] ~ [b3,f4]@4 eb4@2 [b3,f4]@3 ~@3, ~@16 ab3 ~@7", // Ab5 Bdim
  AJ: "~@6 [d4,gb4]@3 ~ [d4,gb4]@2 ~@4 [d4,gb4]@2 [ab4,db5]@4 ~@2", // D Db5
})).s("gm_alto_sax").gain(0.33).pan(0.2)

// other · french horn · "FR.HORN"
const french_horn = note(`<
  ~@39 A B C D E F G H@2 I J K L M N O@2 ~@13 P Q R S I T U V@2 I J K L M W X Y Z@2 AA D K AB AC AD AE AF ~@2 AG AH AI
  AJ ~@2 AK AL
>`.pickRestart({
  A: "~@3 bb3@2 c4 d4@2 c4 d4@2 f4", B: "ab4 gb4", C: "f4@12 e4@11 ~", D: "eb4", E: "d4", F: "db4", G: "c4",
  H: "[b3@43 ~@5]/2", I: "ab4", J: "g4", K: "gb4", L: "f4@23 ~", M: "f4 eb4", N: "d4 eb4", O: "g4/2", P: "~@23 ab4",
  Q: "a4 bb4@6 ~@4 ab4 bb4@5 ~@5 ab4 ~, ~@12 a4 ~@11", R: "bb4@6 ~@4 ab4 a4 bb4@5 ~@5 ab4 a4, a4 ~@23",
  S: "bb4@2 ~@4 db5@10 a4 bb4 b4@6", T: "f4 ~@5 ab4@9 gb4@8 ~", U: "f4@12 gb4@10 [db5,d5] ~", V: "[eb5@47 ~]/2",
  W: "d4@12 eb4@11 ~", X: "g4 ~", Y: "~@6 bb3@4 c4@2 d4@3 ~ f4@2 g4@4 bb4@2", Z: "[b4@47 ~]/2", AA: "e4@11 ~", AB: "f4",
  AC: "gb4@6 ab4@5 ~ a4@6 ab4@6", AD: "gb4 ab4 a4 b4", AE: "db5", AF: "~@2 c5 ~@3 c5@6", AG: "~ b3 eb4@2",
  AH: "db4@2 e4 gb4", AI: "eb4 b3", AJ: "db4 ab4", AK: "~ b3 db4 e4 gb4 ab4 b4 db5", AL: "e5@3 ~",
})).s("gm_french_horn").gain(0.38).pan(0.7)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@20 A B C D ~@12 A B C D ~@6 E F ~@6 G H ~@8 I J ~@4 K L M N O P Q R S ~@5 G T U V W X ~ Y Z ~ AA AB ~@10
>`.pickRestart({
  A: "~@2 ab4", B: "f4 ~@7 gb4@4", C: "eb4 ~@15 db4@8", D: "d4 ~@11", E: "~@6 eb5@3 ~@2 gb5@3 ~@2 eb5@2 gb5@3 ~@3",
  F: "~@6 f5@3 ~@2 ab5 ab5@4 f5@2 ~ ab5@3 ~@2", G: "~@3 eb5@2 g5 ~@2 eb5 g5 ~@2",
  H: "bb5@2 ~@4 bb5@5 ~ [g5,ab5,a5] f5 [d5,e5] c5 [a4,b4] [f4,g4] e4 [c4,d4] b3 a3 ~@2", // Dsus2 Asus2 Fsus2 Csus2
  I: "~@6 g5@4 bb5 ~ bb5@3 ~ g5 ~ bb5@3 ~ bb5@2", J: "g5@3 ~@7 bb5@2 ~@12", K: "~@2 ab5 ~@5 gb5 ~@3",
  L: "~@4 f5@2 ~@10 e5 ~@7", M: "~@5 eb5 ~@6", N: "~@6 d5@3 ~ f5 ~ f5@3 ~ d5 ~ f5@3 ~ f5@2", O: "db5 ~@4 gb5 ~@6",
  P: "~@4 db5@2 ~@4 db5 ~ d5@3 ~@3 d5@3 ~@3",
  Q: "[eb4,eb5]@4 [gb4,gb5]@2 [bb4,bb5]@3 ~ [bb4,bb5]@5 a5 [a4,ab5] ab4 [eb4,eb5]@4 [gb4,gb5]@2", // Eb Gb Bb Amaj7 Eb Gb
  R: "[bb4,bb5]@4 [b4,b5]@2 [bb4,bb5]@3 ~ [bb4,bb5]@3 ~@3 [b4,f6]@5 [d6,e6] c6 [a5,b5], ~@16 [eb6,e6] ~@7", // Bb B Bb Bdim Dsus2 Asus2 Emaj7
  S: "[f5,g5] e5 ~@22", T: "bb5@2 ~@4 bb5@5 ~@13", U: "~@4 [b4,b5]@3 ~@5 [b4,b5]@3 ~@9",
  V: "~@6 e5@4 g5 ~ g5@4 e5@2 g5@3 ~ g5@2, ~@22 gb5 ~", W: "e5 ~@11",
  X: "~@4 [eb4,eb5]@3 ~@3 [eb4,eb5] ~ [eb4,eb5]@2 ~@4 [eb4,eb5]@2 ~@4", Y: "~@3 f5@2 ab5 ab5@2 f5 ab5@2 ab5",
  Z: "gb5 ~@7", AA: "~@6 b5@3 ~ b5@2 ~@4 b5@2 e6@5 ~", AB: "~@4 e5 ~@7 e5@9 ~@3",
})).s("gm_brass_section").gain(0.44)

// chords · trumpet
const trumpet = note(`<
  ~@16 A B ~@14 A B ~@9 C D ~ E F ~@3 G H ~ I J ~@14 K L M N O P Q R S ~@2 G H ~ I T U V W X ~ Y Z ~ AA AB ~@10
>`.pickRestart({
  A: "~@6 [bb3,g4]@4 bb4@2 [db4,bb4]@3 ~ [bb3,g4] ~ [db4,bb4]@3 ~ [db4,bb4]@2, ~@6 gb4 ~@3 db4 ~@13", // Eb Gb Eb Gb
  B: "bb3 ~@4 [db4,bb4] ~@6, g4 ~@23", C: "~@5 db4 d4@3 ~ f4 ~ f4@3 ~ d4 ~ f4@3 ~ f4 ~", D: "db4 ~@11",
  E: "~@6 eb5@3 ~@2 gb5@2 ~@3 eb5@2 ~ gb5@3 ~@2", F: "~@6 f5@3 ~ ab5 ~ ab5@4 ~ f5@2 ab5@3 ~@2",
  G: "~@6 d4@3 ~ f4 ~ f4@3 ~ d4 ~ f4@3 ~ f4@2", H: "db4 ~@7", I: "~@3 [c5,eb5] ~ [eb5,g5] ~@2 [c5,eb5] [eb5,g5] ~@2",
  J: "bb5@2 ~@4 [g5,bb5]@5 a5 [e5,f5,g5] d5 [c5,d5,e5] [a4,b4,c5] [g4,b4] [f4,a4] [d4,e4,f4,g4] [c4,e4] d4 [b3,c4] ~@2, g5 ~@12 f5@2 ~@9", // Gm Em C Am G F Em7 C …
  K: "~@2 ab5 ~@5 gb5 ~@3", L: "~@2 f5 ~@5 e5 ~@3", M: "~@5 eb5 ~@6", N: "~@6 d5@3 ~ f5 ~ f5@3 ~ d5@2 f5@3 ~ f5 ~",
  O: "db5@3 ~@7 gb5@2 ~@12", P: "~@4 db5 ~@5 db5 ~ d5@3 ~@3 d5@3 ~@3",
  Q: "eb5@4 gb5@2 bb5@3 ~ bb5@5 b5 ~@2 eb5@4 gb5@2, ~@17 bb5@2 ~@5",
  R: "bb5@4 ~ bb5@3 ~@2 bb5@3 ~@3 eb6 f6@5 [d6,e6] [b5,c6], ~@2 b5 ~@5 e6 ~@3", S: "a5 [f5,g5] e5 ~@21",
  T: "bb5@2 ~@4 [g5,bb5]@5 ~@13, g5 ~@23", U: "~@4 [ab5,b5]@2 ~@6 [ab5,b5]@3 ~@9",
  V: "~@6 [db5,e5]@3 ~ [e5,g5] ~ [e5,g5]@4 [db5,e5] ~ [e5,g5]@3 ~ [e5,gb5] ~, ~@11 g5", W: "[db5,e5] ~@7",
// … 128 more lines

More by Sinatra