Strudelify

I've Got You Under My Skin

Sinatra

KeyD♭ majorTempo126 bpm
0:00/0:00
// I've Got You Under My Skin — Sinatra
// 126 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 117 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B C D E@2 F G H I H I H 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@2 AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF@2 BG BH BI BJ@2 BH BI BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC
  CD CE CF CG CH CI CJ@2 AR AS AT AU AV AW CK CL CM ~ CN CO CP CQ CR CS@2 CT ~
>`.pickRestart({
  A: "db2@6 ~@4 db2@2 ab2@7 ~@5", B: "eb3@7 ~@3 eb3@2 ab2@8 ~@4", C: "db2@7 ~@3 db2@2 ab2@8 ~@4",
  D: "eb3@3 ~@2 eb3 ab2@4 ~@2", E: "~@4 eb3@2 ab2@6 ~@4 eb3@2 ab2@5 ~", F: "db2@2 ~@3 g2 ab2@2 ~@3 db3",
  G: "eb3@3 ~@7 g2@2 ab2@5 ~ ab2@5 ~", H: "db2@5 ~@5 g2@2 ab2@5 ~@5 db3@2", I: "eb3@3 ~@2 g2 ab2@2 ~ ab2@2 ~",
  J: "eb3@6 ~@4 g2@2 ab2@4 ~@2 ab2@5 ~", K: "eb2@8 ~@4 eb2@7 ~@3 gb2@2", L: "ab2@9 ~@3 ab2@5 ~ c3@4 ~@2",
  M: "db3@9 ~@3 db3@8 ~@4", N: "db3@3 ~@2 db3 ab2@4 ~@2", O: "eb2@8 ~@4 ab2@9 ~@3", P: "eb2@5 ~ ab2@4 ~@2",
  Q: "db2@6 ~@4 g2@2 ab2@7 ~@3 db3@2", R: "eb3@6 ~@4 g2@2 ab2@3 ~@3 ab2@3 ~@3", S: "db2@8 ~@4 ab2@7 ~@3 db3@2",
  T: "eb3@7 ~@3 g2@2 ab2@4 ~@2 ab2@4 ~@2", U: "db2@3 ~@2 g2 ab2@3 ~@2 ab2", V: "eb3@6 ~@4 g2@2 ab2@4 ~@2 ab2@3 ~@3",
  W: "~@6 ab2@3 ~@2 db3", X: "eb3@7 ~@3 g2@2 ab2@4 ~@2 ab2@3 ~@3", Y: "db2@4 ~ g2 ab2@3 ~@2 db3",
  Z: "eb3@7 ~@3 g2@2 ab2@3 ~@3 ab2@3 ~@3", AA: "c2@9 ~@3 c2@7 ~@3 c2@2", AB: "f1@8 ~@4 f1@7 ~@3 f1@2",
  AC: "bb1@8 ~@4 bb1@9 ~@3", AD: "d2@3 ~ d2@3 ~", AE: "eb2@8 ~@4 eb2@7 ~@3 eb2@2", AF: "ab1@8 ~@4 ab1@7 ~@5",
  AG: "db2@5 ~@5 g2@2 ab2@6 ~@4 db3@2", AH: "eb3@7 ~@3 g2@2 ab2@3 ~@3 ab2@5 ~", AI: "db2@5 ab2 db2@5 ab2",
  AJ: "db2@9 ~ ab2@2 db2@10 ab2@2", AK: "db2@9 ~ ab2@2 db2@9 ~ ab2@2", AL: "db2@5 ab2 d2@5 ab2",
  AM: "eb2@7 ~@3 eb2@2 bb1@6 eb2@6", AN: "ab1@7 ~@3 ab1@2 eb2@5 ~ eb2@5 ~", AO: "f2@4 ~@2 f2@4 ~@2 e2@4 ~@2 e2@5 ~",
  AP: "eb2@2 ~ eb2@3 ab1@5 ~", AQ: "[bb2 bb2@9 ~@2 bb2@7 bb2@2 ab2@2 gb2@5 ~@6 gb2@2 ab1@8 ~@4]/2",
  AR: "db2@8 ~@2 db2@2 ab2@7 ~@5", AS: "f3@6 ~@4 f2@2 e2@9 ~@3", AT: "eb2@7 ~@3 eb2@2 ab2@10 ~@2",
  AU: "eb2@7 ~@3 eb2 ~ d2@9 ~@3", AV: "db2@7 ~@3 db2@2 ab2@11 ~", AW: "db2@7 ~@3 db2 ~ db2@4 ~@2 f2@5 ~",
  AX: "gb2@7 ~@3 gb2 ~ gb2@8 ~@4", AY: "gb2@7 ~@3 gb2 ~ gb2@10 ~@2", AZ: "db2@7 ~@3 db2 ~ db2@5 ~ c2@5 ~",
  BA: "b1@5 ~ bb1@4 ~@2", BB: "eb2@6 ~@4 eb2@2 bb2@9 ~@3", BC: "eb3@7 ~@3 a2@2 ab2@9 ~@3", BD: "~ ab2 eb3 ab2, db2@5 ~",
  BE: "~@6 ab2@4 eb3@5 ~ eb3@2 bb2@6, db2 ~",
  BF: "[~@6 ab2@6 eb3@6 ~@12 ab2@4 eb3@3 ~@3 eb3@2 bb2@6, db2@13 ~@5 bb2@9 ~@21, ~@12 db2@5 ~@7]/2",
  BG: "~@6 ab2@6 eb3@5 ~ bb2@6, db2 ~@2", BH: "db2@3 ab2@2 eb3 ~@2 eb3 bb2@3", BI: "db2 ab2 eb3 bb2",
  BJ: "[db2@6 ab2@4 eb3@2 ~@4 eb3@2 ~@6 db2@6 ab2@6 eb3@5 ~ bb2@6, ~@9 bb2@4 ~@11]/2",
  BK: "~@6 ab2@4 eb3@3 ~@3 eb3@2 bb2@3 ~@3, db2 ~@2", BL: "~ bb2@5 bb2@6 eb3@6 bb2@5 ~",
  BM: "bb2@2 ~ bb2@2 eb2 eb3@3 bb2@2 ~", BN: "ab2@5 ~ ab2@5 ~ db3@6 ab2@5 ~", BO: "ab2@4 ~@2 ab2@4 db2@2 db3@6 ab2@5 ~",
  BP: "a2@2 ~ a2@3 eb3@3 a2@2 gb2", BQ: "a2@4 ~@2 a2@5 ~ eb3@6 a2@4 ~@2", BR: "ab2@4 ~@2 ab2@5 ~ db3@5 ~ ab2@4 db2@2",
  BS: "ab2@5 ~ ab2@6 db3@6 ab2@4 ~@2", BT: "c2@5 ~ d2@6 eb2@6 e2@5 ~", BU: "f2@2 c2@2 a1@2 f1@6 a1@6 c2@5 ~",
  BV: "bb1 ~ f1 g1, ~@3 g1@4 ~@5", BW: "bb1@5 ~ c2@6 db2@6 d2@6", BX: "eb2@5 ~ f2@6 gb2@6 bb2@6",
  BY: "ab2@6 eb2@6 ab1@6 eb2@5 ~", BZ: "db2@4 ~ db2 ab2@5 ~", CA: "eb3@3 ~@2 eb3 ab2@2 ~ ab2@2 ~",
  CB: "ab1@4 ~@2 ab1@4 ~@2 ab1@3 ~@3 ab1@3 ~@3", CC: "ab1@3 ~@3 ab1@3 ~@3 ab1@3 ~ eb2 ~ ab1@4 ~@2",
  CD: "ab1 ~ ab1 ~ ab1 ~ ab1 ~", CE: "ab1@3 ~@3 ab1@3 ~@3 ab1@3 ~ d2@2 ab1@4 ~@2",
  CF: "eb2@4 ~@2 eb2@3 ~@3 eb2@4 bb1@2 eb2@4 bb1@2", CG: "ab1@3 ~@3 ab1@3 ~@3 ab1@4 ~@2 ab1@3 c2@2 ~",
  CH: "db2@5 ~ f2@5 ~@2 e2@4 ~@2 e2@4 ~", CI: "eb2@4 ~@2 eb2@5 ~ ab1@5 ~ a1@5 ~",
  CJ: "[bb2 bb2@9 ~@2 bb2@7 bb2@2 ab2@2 gb2@5 ~@6 gb2@2 ab1@9 ~@3]/2",
  CK: "gb2@6 ~@5 db3@5 ~ eb3@3 ~@2 bb2@2, ~@3 bb2@6 ~ db3@2", CL: "gb2@6 ab2@5 a2@6 b2@6 ~",
  CM: "db3@5 ~ db3@6 c3@6 b2@4 bb2@2", CN: "eb2@7 ~@5 eb3@10 bb2@2, ~@5 bb2@2 ~@5", CO: "a2@7 ~@3 a2@2 ab2@7 ~@3 ab2@2",
  CP: "db2@9 ~ ab2@2 bb2@10 ab2@2", CQ: "eb3@5 ab2 bb2@6", CR: "eb2@5 bb2 eb3@5 bb2",
  CS: "[a2@7 ~@3 a2@2 ab2@9 ~ eb3@6 db3@2 bb2@4 ~@2 ab2@4 f2@2 eb2@2 ~@2 db2@2]/2", CT: "~@3 db2@8 ~",
})).s("gm_acoustic_bass").gain(0.14)

// other · flute
const flute = note("<A@2 B@2 A@2 C@2 A@2 C@2 D@3 ~@93 E@4 ~@5>".pickRestart({
  A: "[eb4@11 ~]/2", B: "[eb4@15 ~]/2", C: "[eb4@23 ~]/2", D: "[eb4@49 ~@23]/3", E: "[eb4@47 ab4@45 ~@4]/4",
})).s("gm_flute").gain(0.17)

// other · tenor sax
const tenor_sax = note(`<
  A B C D E F G H I J K L M F ~@6 N O P F Q F R S T U ~@4 V W X Y Z@2 AA@2 AB@2 AC AD ~@11 AE AF@2 ~@26 AG AH ~@20 AI AJ
  AK F ~@5
>`.pickRestart({
  A: "db2@4 ab2 ~ bb2@2 ~@4 eb3@3 ~ ab2@2 bb2@2 ~@4", B: "eb3@4 ab2@2 bb2@3 ~ ab2@3 ~@3 ab2 ~@5 ab2@2",
  C: "db2@4 ab2@2 bb2@2 ~@4 eb3@3 ~ ab2@2 bb2@2 ~@4", D: "eb3@2 ab2 bb2 ~ ab2 ~@6",
  E: "db2@4 ab2 ~ bb2@2 ~@4 eb3@3 ~ ab2 ~ bb2@3 ~@3", F: "eb3@3 ~ ab2@2 bb2@3 ~ ab2@3 ~@11",
  G: "db2@3 ~ ab2@2 bb2@2 ~@4 eb3@4 ab2@2 bb2@3 ~@3", H: "eb3@4 ab2@2 bb2@3 ~ ab2@3 ~@11",
  I: "db2@3 ~ ab2@2 bb2@2 ~@4 eb3@3 ~ ab2 ~ bb2@4 ~@2", J: "eb3@3 ~ ab2@2 bb2@3 ~ ab2@3 ~@9 ab2@2",
  K: "db2@2 ~@2 ab2@2 bb2@2 ~@4 eb3@4 ab2@2 bb2@3 ~@3", L: "eb3@4 ab2@2 bb2@3 ~ ab2@4 ~@10",
  M: "db2@3 ~ ab2@2 bb2@2 ~@4 eb3@3 ~ ab2@2 bb2@2 ~@4", N: "db2@2 ~@2 ab2@2 bb2@3 ~@3 eb3@3 ~ ab2@2 bb2@3 ~@3",
  O: "eb3@3 ~ ab2@2 bb2@2 ~@2 eb3@3 ~@11", P: "db2@4 ab2@2 bb2@3 ~@3 eb3@3 ~ ab2@2 bb2@3 ~@3",
  Q: "db2@2 ~@2 ab2@2 bb2@3 ~@3 eb3@3 ~ ab2@2 bb2@2 ~@4", R: "db2@4 gb2@2 a2@3 ~@13 gb2@2",
  S: "eb3@4 gb2@2 a2@4 ab2@5 ~@9", T: "db2@3 ~ ab2@2 bb2@3 ~@3 eb3@3 ~ ab2@2 bb2@2 ~@4",
  U: "eb3@3 ~ ab2@2 bb2@3 ~ ab2@5 ~@9", V: "eb2@4 ab2 ~ bb2@2 ~@4 eb3@3 ~ ab2@2 bb2@2 ~@4",
  W: "eb3@3 ~ ab2 ~ bb2@2 ~@2 ab2@2 ~@12", X: "db2@4 ab2 ~ bb2@2 ~@4 eb3@4 ab2 ~ bb2@2 ~@4",
  Y: "eb3@3 ~ ab2@2 bb2@2 ~@2 ab2@2 ~@4 bb2@4 ~@4", Z: "[ab2 ~@4 ab2@2 ~@5 ab2@16 ~@6 ab2@11 ~@3]/2",
  AA: "[db3@2 ~@4 db3 ~@5 db3@15 ~@7 d2@13 ~]/2", AB: "[ab2 ~@5 ab2@2 ~@4 ab2@15 ~@7 ab2@11 ~@3]/2",
  AC: "f2@2 ~@4 f2@2 ~@4 e2@7 ~@3 eb2@2", AD: "~@2 eb2 ~@2 eb2 ab2 ~@2 ab2 ~@2",
  AE: "~@4 b2 ~@5 b2@2 bb2 ~@5 bb2@2 ~@4", AF: "[~@12 eb3@2 ~@10 ab2@23 ~, ~@11 bb2 ~@12, ~@23 a2@2 ~@23]/2",
  AG: "db2@3 ab2 ~ bb2@2 ~@5 eb3@4 ab2 ~ bb2@2 ~@4", AH: "eb3@4 ab2 ~ bb2 ~@3 ab2@4 ~@10",
  AI: "eb2@3 ~@3 bb2@2 ~@4 eb3@4 ab2@2 bb2@2 ~@4, ~ ab2 ~@4", AJ: "eb3 ~@11",
  AK: "db2@4 ~@2 bb2@3 ~@3 eb3@4 ab2@2 bb2@2 ~@4, ~@4 ab2@5 ~@15",
})).s("gm_tenor_sax").gain(0.24).pan(0.4)

// chords · muted trumpet · "MT TRUMPET"
const muted_trumpet = note("<~ A B A C ~@11 D E ~@4 F G F H ~@2 F I ~@24 J K L ~@47 M N O ~@10>".pickRestart({
  A: "~@8 [db4,gb4] c4 ~ [b3,e4], ~@18 f4 ~@5", B: "eb4 ~@11, bb3 ~@23", C: "[bb3,eb4] ~@11",
  D: "~@16 [db5,f5,ab5]@2 [c5,eb5,g5] ~@5", E: "[c5,eb5,g5]@3 ~@3 [c5,eb5,g5]@4 [bb4,db5,f5]@14", F: "~@6 ab4 ~@5",
  G: "ab4 ~@9 ab4@3 ~@11", H: "ab4@2 ~@8 ab4@5 ~@9", I: "ab4 ~@4 ab4@3 ~@4", J: "~@4 db5@3 ~@3 bb4 ~ db5@2 ~@10",
  K: "~@4 db5@4 ~@2 a4 ~ db5@3 ~@9", L: "~@4 [bb4,db5,f5]@3 ~@17", M: "~@3 db5@2 ~@4 bb4 ~ db5@4 ~@9",
  N: "~@3 eb5@2 ~@4 db5 ~ eb5@5 ~@8", O: "~@3 f5@6 eb5@2 d5",
})).s("gm_muted_trumpet").gain(0.23).pan(0.6)

// chords · tenor sax
const tenor_sax_2 = note(`<
  ~@22 A@8 ~@3 B C ~ D E F@2 G@2 H@2 I J K L M N O P Q R S T U V W@2 ~@8 X Y Z ~@3 AA@2 AB@4 AC AD AE AF AG AH AI@2 AJ
  AK AL AM AN@2 AO AP K L M N O P Q AQ AR AS AT ~ AU@4 ~@5
>`.pickRestart({
  A: "[[gb3,bb3,db4]@45 ~@3 [f3,ab3,bb3]@43 ~@5 db4@34 ~@2 c4@10 ~@2 [f3,ab3,bb3]@47 ~, eb4, ~@48 [gb3,a3]@23 ~@25]/8", // Gb Bb7 Gbm
  B: "[bb3,d4] ~@5 a4@4 g4@3 ~@11, a4 ~@2 [bb3,d4]@3 ~@6", C: "~@12 [gb3,ab3,bb3] ~@9 [gb3,ab3,bb3] ~, ~@6 eb4 ~@4 eb4",
  D: "~@12 [f3,ab3,bb3,eb4] ~@11", E: "[f3,ab3,bb3,eb4] ~@9 [f3,ab3,bb3] ~@13, ~@5 eb4 ~@6",
  F: "[[gb3,bb3,db4,eb4] db4 ~@3 [gb3,bb3] [gb3,db4,eb4] ~@5 [gb3,bb3,db4,eb4]@14 ~@8 [gb3,bb3,db4,eb4]@11 ~@3]/2", // Ebm7 Gb Ebm7
  G: "[[f3,ab3,db4] ~@5 [f3,ab3,bb3,db4] ~@5 [f3,ab3,bb3,db4]@17 ~@5 [f3,ab3,b3,d4]@9 ~@5]/2", // Db Bbm7 Fdim
  H: "[[gb3,bb3,db4,eb4] ~@5 [gb3,bb3,db4] ~@5 [gb3,bb3,db4,eb4]@16 ~@6 [gb3,ab3,c4]@12 ~@2, ~@3 eb4 ~@20]/2", // Ebm7 Gb Ebm7 Ab7
  I: "[bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~@5 [ab3,b3,d4,ab4]@8 ~@2 [gb3,db4,ab4] ~, ~@11 bb3", // Bbm7 Abdim Gbsus2
  J: "~@4 [gb3,bb3,db4,ab4]@2 ~@4 [gb3,bb3,db4,ab4] ~ [c4,ab4]@3 ~@3 [bb3,c4,ab4]@2 ~@4, ~@12 [gb3,bb3] ~@5 gb3 ~@5", // Gb Fm Gb
  K: "f4", L: "gb4 e4", M: "eb4 db4", N: "eb4@11 ~ db4@12", O: "~ db4@2 c4@3", P: "db4 c4", Q: "~ c4@2 bb3@2 ~",
  R: "eb4@3 ~@3 eb4@3 ~ d4@12 ~@2", S: "~@4 [eb3,gb3,bb3,db4] ~@7 [eb3,gb3,bb3,db4] ~@11",
  T: "~@4 [eb3,gb3,a3] ~@7 [eb3,gb3,a3] ~@11, ~@2 db4 ~@3 db4 ~@5", U: "~@2 [ab3,db4] ~@9, ~@4 [f3,bb3] ~@19",
  V: "~@4 [f3,ab3,b3] ~@5 [ab3,b3,eb4] ~ [f3,ab3]@2 ~@4 [ab3,b3,d4]@2 ~@4, ~@4 eb4@2 ~@6 d4 ~@5 f3 ~@5", // Fdim Abm Fm Abdim
  W: "[~@12 [eb3,gb3,bb3,db4] ~@9 [eb3,gb3,a3,db4]@26]/2", // Ebm7 Ebm7b5
  X: "[f3,ab3,db4] ~@4 [db3,f3,ab3] [f3,ab3] ~ [ab3,bb3] [db3,f3,ab3] ~@2, ~@12 bb3 ~@3 f3 ~@7", // Db Fm Absus2 Db
  Y: "~@5 [db3,f3,ab3] [f3,ab3,bb3] ~ [f3,ab3,bb3] [f3,ab3,eb4] ~@2", // Db Bb7 Fm7
  Z: "[f3,ab3,db4] ~@4 [db3,f3,ab3] [f3,ab3,bb3] ~ [f3,ab3,bb3] [db3,f3,ab3] ~@2", AA: "eb4/2", AB: "[db4@23 ~]/4",
  AC: "~@6 f4@3 ~ f4 ~ f4@3 ~ c4 ~ f4@3 ~ f4 ~", AD: "f4@3 ~ c4@2 f4@3 ~ f4 ~ f4@3 ~ c4@2 ~@4 f4 ~",
  AE: "g4@3 ~@3 g4@3 ~ g4 ~ g4@3 ~ f4 ~ g4@3 ~ g4 ~", AF: "g4@3 ~ f4 ~ g4@3 ~ g4 ~ g4@4 f4@2 ~@6",
  AG: "ab4@2 ~@4 ab4@3 ~ ab4 ~ ab4@3 ~ eb4 ~@5 ab4 ~", AH: "ab4@3 ~ eb4 ~ ab4@3 ~ ab4 ~ ab4@4 eb4@2 ab4@3 ~ ab4 ~",
  AI: "[ab4@23 ~]/2", AJ: "[gb3,bb3,eb4] ~@5 [gb3,bb3,eb4] ~@5 [gb3,bb3,db4,eb4]@12",
  AK: "~@10 [gb3,bb3,db4,eb4] ~ [gb3,bb3,db4,eb4]@3 ~ [gb3,bb3,db4,eb4] ~ [db4,eb4]@2 ~@4, ~@18 [gb3,bb3] ~@5", // Ebm7 Dbsus2 Gb
  AL: "~@3 [bb3,f4] ~@2 [ab3,bb3,db4,f4]@6, ~@6 [ab3,db4] ~@17", // Bb5 Bbm7 Db5
  AM: "~@10 [ab3,bb3,db4,f4] ~ [ab3,b3,db4,f4]@3 ~ [ab3,b3,d4,f4] ~ [ab3,b3,d4,f4]@3 ~@3", // Bbm7 Db7 Abdim
  AN: "[[bb3,db4,gb4] ~@5 [bb3,db4,eb4,gb4] ~@5 [bb3,db4,eb4,gb4]@16 ~@6 [bb3,db4,eb4,gb4] ~ [bb3,db4,eb4,gb4]@2 ~@2 [bb3,db4,eb4,gb4] ~ [bb3,db4,eb4] ~@5, ~@21 gb4 ~@2]/2", // Gb Ebm7 Eb7
  AO: "[eb4,ab4] ~@2 [f3,c4,eb4,ab4] ~@2 [b3,d4,ab4]@6, [f3,c4] ~@11 e3@10 ~@2", // Ab5 Fm7 Abdim F5
  AP: "~@4 [bb3,db4,ab4]@2 ~@4 [bb3,db4] ~ [ab2,db4]@2 ~@4 [ab2,bb3,ab4]@3 ~@3, ~@4 eb3 ~@5 ab4@5 ~@9, ~@10 eb3@2 bb3 ~@5 db4 ~@5", // Bbm7 Bbm Db5 Absus2
  AQ: "eb4@4 ~@2 eb4@3 ~ d4@13 ~", AR: "~@4 [eb3,gb3,bb3] ~@7 [eb3,gb3,bb3]@7 ~@5",
  AS: "~@4 [eb3,gb3] ~@7 [eb3,gb3,a3]@6 ~@6, ~@2 a3 ~@9", AT: "~@6 [db3,f3,ab3]@15 ~ [f3,ab3]@2, ~@22 d3 ~",
  AU: "[bb3@23 ~ a3@23 ~ f3@47 ~, gb3@47 ab3@48 ~]/4",
})).s("gm_tenor_sax").gain(0.2)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@2 B@4 C@2 D@2 E@2 F@2 G H I J K L@3 ~@8 M N O P@3 Q@3 ~@7 R@2 S@6 T@2 U ~@3 V@4 W@4 X@4 Y@7 Z@5 AA@4 AB ~@7 AC@2
  AD@6 AE@3 ~@8 AF@2
>`.pickRestart({
  A: "[[ab3,bb3]@11 ~]/2", B: "[gb3@46 ~@2 f3@43 ~@5, bb3@31 ~]/4", C: "[gb3@23 ~]/2", D: "[[f3,ab3,bb3]@23 ~]/2",
  E: "[[gb3,ab3,bb3]@11 ~]/2", F: "[ab3,bb3]/2", G: "[bb3,db4]", H: "[b3,d4] [c4,eb4]", I: "[e4,g4] [f4,ab4]",
  J: "[g4,bb4] [ab4,c5]", K: "db5@3 [bb4,db5], bb4@2 ~", L: "[db4 d4 [f3,ab3,eb4]@4, bb3]/3", M: "[bb4,d5]",
  N: "[a4,d5,g5]", O: "~ [bb4,d5], [c5,e5,a5] ~, ~@10 g5@13 ~",
  P: "[~ g5 [ab4,db5]@4, [d5,a5,c6]@6 bb5@7 ~@23, ~@10 c5@11 ~@3 eb4@46 ~@2]/3", // Db5 D7
  Q: "[[bb3,eb4]@49 ~@23, ab4@47 ~@25]/3", R: "[[db5,bb5]@47 ~, f5 ~]/2",
  S: "[[c5,eb5]@12 [bb4,db5]@12 [c5,eb5]@12 bb4@11 ~ bb4@11 ~ [ab4,c5]@12 [bb4,db5]@12 c5@12 eb5@11 ~ db5@12 eb5@12 [f5,c6]@12, ab5@61 ~@11, ~@36 db5@24 ~@24 ab4@59 ~]/6", // Cm Bbm Cm Ab Bbm F5
  T: "[db6 eb6, gb5@47 ~]/2", U: "[ab5,f6]", V: "[[db3,eb4,ab4]@47 ~]/4", W: "[[db4,f4,eb5,ab5]@31 ~]/4",
  X: "[db5,f5,eb6,ab6]/4", Y: "[~ gb4@47 [f4,ab5]@48 [gb4,a5]@48 [f4,ab5]@24, eb5, bb5@47 ~@121, ~ db5@167]/7",
  Z: "[~@12 g4@11 ~@25 g4@12, ~@23 bb5@97, ~ f5@4, ~@24 eb5@47 ~ d5@48, ~@2 a4@2 ~]/5",
  AA: "[gb4@47 ~@46 db4@2 ~, eb5, db5@47 ~, ~@48 ab5@47 ~]/4", AB: "eb4@4 eb4@3 ~@2 eb4@2 ~@13",
  AC: "[[db5,bb5], f5 ~]/2", // Gb
  AD: "[~@12 [bb4,db5]@12 [c5,eb5]@12 bb4@11 ~ bb4@11 ~ [ab4,c5]@12 [bb4,db5]@12 c5@12 eb5@11 ~ db5@12 eb5@12 [f5,c6]@12, ab5@61 ~@11, [c5,eb5]@14 ~@22 db5@24 ~@24 ab4@59 ~]/6", // Bbm Cm Ab Bbm F5 Cm
  AE: "[[bb4,db6]@23 ~ [a4,eb6]@23 ~ db5@21 d5 ~@2, [eb5,gb5]@47 [ab5,f6]@25, ~@2 bb4]/3", // Bbm Adim Ebm Db
  AF: "[~@6 [db3,g4,bb4]@41 ~]/2", // Gdim
})).s("gm_string_ensemble_1").gain(0.16).pan(0.4)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note(`<
  A@2 B@4 C@2 ~@4 D@2 ~@33 E ~@5 F ~@6 G@4 ~@22 H@2 ~@9 E ~@5 F ~@11 I@2
>`.pickRestart({
  A: "[f3@11 ~]/2", B: "[ab3@31 ~]/4", C: "[[ab3,bb3]@15 ~]/2", D: "[f3@47 ~]/2", E: "gb5", F: "bb5@13 ~@11",
  G: "[~ f3@46 ~]/4", H: "[f4@47 ~]/2", I: "[~@7 b3@40 ~]/2",
})).s("gm_string_ensemble_1").gain(0.08).pan(0.4)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@46 A ~ B C D E F G H I ~@2 J@2 ~@4 K L M N O P Q R S T U V W X Y Z AA AB AC@2 AD AE AF@2 ~@7 AG AH AI AJ AK AL AM AN
  AO AP AQ AR ~@10
>`.pickRestart({
  A: "~@4 [ab2,db3] ~@19", B: "~@4 [ab2,db3,f3,c4] ~@11 [ab2,db3,f3] ~@7, ~@8 bb3 ~@3",
  C: "~@4 [ab2,db3,c4] ~@11 [g2,db3,e3,bb3] ~@7, ~@2 f3 ~@9", // Dbmaj7 Gdim
  D: "~@4 [ab2,eb3,gb3] ~@11 [ab2,eb3,gb3] ~@7, ~@2 db4 ~@5 c4 ~@3", // Ab7
  E: "~@2 [ab2,db4] ~@5 [d3,gb3,c4] ~@3, ~@4 [eb3,gb3] ~@11 ab2 ~@7", // Db5 D7 Ebm
  F: "~@4 [ab2,db3,f3,c4] ~@11 [f3,bb3]@2 ~@6, ~@16 [ab2,db3] ~@7", // Dbmaj7 Bb5 Db5
  G: "[bb2,eb4]@2 ~@4 [bb2,ab3,eb4]@3 ~ [db2,ab3,b3,d4]@11 ~@3, [ab3,c4] ~@5 c4 ~@17", // Eb5 Ebsus4 Abdim Ab
  H: "~@4 db4@2 ~@4 bb3 ~ db4@2 ~@10", I: "~@2 db4 ~@2 a3 db4 ~@5", J: "[~@12 eb3 ~@9 ab2@24 ~@2]/2",
  K: "eb3 ~@5 ab2@2 ~@4 bb2@8 ~@4", L: "ab2@2 ~@4 ab2@3 ~ bb2@2 ~@4 bb2@2 eb3@3 ~@3", M: "db3 ~@2 ab2 ~@2 bb2@4 ~@2",
  N: "ab2@2 ~@4 ab2@3 ~ bb2@2 ~@4 bb2@2 eb3@4 ~@2", O: "db3@2 ~@4 ab2@2 ~@4 bb2@7 ~@5",
  P: "ab2@3 ~@3 ab2@3 ~ bb2@2 ~@4 bb2@2 eb3@3 ~@3", Q: "db3@3 ~@3 ab2@2 ~@4 bb2@8 ~@4",
  R: "ab2@3 ~@3 ab2@3 ~@3 [eb4,eb5]@2 [f4,f5]@2 [gb4,gb5]@2 [g4,g5]@2 [ab4,ab5]@2 [a4,a5]@2", // Eb F Gb G Ab A
  S: "[eb5,gb5,bb5]@3 ~ [eb5,gb5,bb5]@3 ~@17", // Ebm
  T: "~@10 [db5,eb5,gb5,ab5]@5 ~ [gb4,bb4,db5,eb5] ~ [bb4,db5,f5] ~@5, ~@8 gb5 ~@3", // Dbsus4 Ebm7 Bbm
  U: "[ab4,bb4,db5,f5]@5 ~@19, f4 ~@7", V: "~@9 [db5,f5,ab5]@2 ~, ~@9 ab4 ~@2",
  W: "[a4,db5,eb5,gb5,a5]@3 ~ [a4,db5,eb5,gb5,a5]@2 ~@18", // Ebm7b5
  X: "~@16 [eb5,ab5] ~ [a4,eb5,gb5]@2 ~@2 [db5,eb5,f5] ~, ~@8 gb5 ~@3", // Ab5 Ebdim Db
  Y: "[a4,c5,e5]@6 [bb4,db5,f5] ~@3 [bb4,db5,f5]@3 ~@11", Z: "~@9 [ab4,db5,f5]@2 ~",
  AA: "[g5,bb5]@4 ~@2 [eb5,g5,bb5]@3 ~ [eb5,g5,bb5] ~ [eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5] ~ [eb5,g5,bb5]@5 ~", // Gm Eb
  AB: "[eb5,g5,bb5]@5 ~ [c5,eb5,f5]@2 ~@4 [c5,eb5,f5]@3 ~ [bb4,eb5]@2 [a4,c5,d5]@3 ~@3, ~@16 c5 ~@7", // Eb F7 Eb5 D7
  AC: "[[g4,a4,db5]@6 [g4,bb4,d5]@2 ~@2 [g4,bb4,d5]@3 ~@9 [g4,bb4,d5]@18 ~@2 [f4,bb4,d5]@5 ~]/2", // A7 Gm Bb
  AD: "[ab4,bb4,db5]@3 ~@3 [bb4,db5,eb5]@3 ~ [bb4,db5,eb5] ~ [bb4,db5,eb5]@2 ~@2 [bb4,db5,eb5] ~ [bb4,db5,eb5]@4 ~@2", // Bbm7 Eb7
  AE: "[bb4,c5,eb5]@11 ~ [gb4,bb4,db5]@4 [ab4,c5]@2 [eb4,gb4,bb4]@2 ~@4, ~@16 eb4 ~@7", AF: "[[ab3,ab4]@7 ~]/2",
  AG: "~@2 db5 ~@2 db5 ab4 ~@2 ab4 ~@2", AH: "~@4 [db4,f4,ab4] ~@11 [ab4,bb4]@2 ~@6, ~@4 bb4@2 ~@10 [db4,f4] ~@7",
  AI: "~@4 [db4,eb4,ab4,bb4] ~@11 [ab4,bb4]@2 ~@6, ~@16 [db4,e4] ~@7", // Dbsus2 Absus2 Dbm
  AJ: "~@4 [ab4,eb5]@2 ~@4 [f4,ab4,c5,eb5] ~ [f4,bb4,db5] ~@5 [ab4,bb4,db5]@2 ~@4, ~@4 [f4,c5] ~@7 ab4@2 ~@4 f4 ~@5", // Ab5 Fm7 Bbm Bbm7 F5
  AK: "~@2 [f4,ab4,eb5] ~@5 [g4,bb4,db5] ~@3, ~@4 c5 ~@11 e4 ~@7", // Fm7 Gdim
  AL: "~@4 [eb4,gb4,bb4] ~@11 [bb4,c5]@2 ~@6, ~@4 db5@2 ~@10 [eb4,gb4] ~@7", // Ebm Bbsus2 Ebm
  AM: "~@4 [eb4,gb4,bb4] ~@5 [eb4,gb4,bb4,db5] ~ [eb4,gb4,bb4,c5] ~@5 [eb4,gb4,bb4] ~@5, ~@2 db5 ~@6 c5 ~@2", // Ebm Ebm7 Cm7b5 Ebm
  AN: "~@4 [db4,f4,ab4] ~@11 [db4,f4,ab4] ~@7, ~@2 c5 ~@5 bb4 ~@3", // Db
  AO: "[bb3,ab4,c5,eb5]@3 ~@3 [bb3,c5,eb5]@3 ~ [db3,d5]@12 ~@2, ~@6 ab4 ~@3 [ab4,b4]@10 ~@4", // Ab Cm7 Dmaj7 Abm
  AP: "~@4 [db4,gb4,bb4,db5] ~@5 [eb4,gb4,bb4]@2 [gb4,bb4,db5]@7 ~@5, ~@10 bb3 ~ db4@4 ~@8", // Gb Ebm Gb
  AQ: "~@2 [eb4,gb4,a4,eb5] ~@2 [db4,gb4] [eb4,gb4,a4]@3 ~@3, ~@10 db5 ~ eb5@8 ~@4", // Ebdim Gb5 Ebdim
  AR: "~@3 [f4,ab4,db5,f5]@6 [gb4,b4,eb5] ~ [d4,f4,bb4,d5], ~@18 eb4 ~@5", // Db B Bb
})).s("gm_brass_section").gain(0.23).pan(0.7)
// … 114 more lines

More by Sinatra