Strudelify

Luck Be a Lady

Sinatra

KeyD♭ majorTempo163 bpm
0:00/0:00
// Luck Be a Lady — Sinatra
// 163 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 206 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(163/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 · "A.PIANO 1"
const piano = note("<~@97 A B C D E@3 ~@33 F@3 G@7 ~@17 H@5 I J ~@35>".pickRestart({
  A: "~@15 [f5,c6]@5 ~@4, ~@13 db5@4 ~@7", B: "~@4 bb5 ~, ~@7 db5@2 ~@3, ~@5 f5 ~@2",
  C: "~@17 a5@4 ~@3, ~@15 db5@5 ~@4, ~@16 f5@3 ~@5", D: "~@16 f5@2 ab5@3 ~@3, ~@15 db5@4 ~@5",
  E: "[~@6 eb5@3 ~ db5@2 c5@3 ~ bb4@2 ~ ab4@8 ~@2 bb4 b4 c5@7 ~@4 g4@12 ~@18]/3",
  F: "[~@16 [db4,gb4,a4]@18 ~@6 [a3,db4,e4,gb4,a4]@19 ~@5 [bb3,d4,e4,g4]@8, ~@15 [g3,b3]@19 ~@38]/3", // Gbm Gbm7 Em7b5 G
  G: "[~@17 [a3,db4]@18 ~@6 [bb3,d4,e4,g4]@18 ~@7 [a3,db4]@18 ~@6 [bb3,d4,e4,g4]@18 ~@6 [a3,db4,e4,gb4,a4]@19 ~@6 [bb3,d4,e4,g4]@18 ~@11, ~@16 [e4,gb4,a4]@19 ~@30 [e4,gb4,a4]@19 ~@84]/7", // A Em7b5 A Em7b5 Gbm7 Em7b5 Gbm7
  H: "[~@21 c6@5 ~@20 bb5@4 ~@21 a5@4 ~@20 ab5@3 ~@9 eb5@3 ~ db5@2 ~ c5@3 ~ bb4@2, ~@19 db5@4 ~@20 db5@4 ~@21 db5@5 ~@20 db5@4 ~@23, ~@20 f5@4 ~@21 f5@3 ~@22 f5@3 ~@21 f5@3 ~@23]/5",
  I: "~ ab4@8 ~@2 [bb4,b4] c5@7 ~@5", J: "g4 ~",
})).s("gm_piano").gain(0.36).pan(0.6)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@44 A@4 B C D E F G H@4 I@4 J K L M N O P@2 Q@5 R S T U V W@5 X@4 Y Z AA AB AC AD AE AF AG@5 AH@2 AI AJ AK AL AM@2
  AN@3 AO@3 AP AQ AR AS AT AU AV@4 AW@4 AX AY AZ BA BB BC@2 BD@3 BE@7 BF@4 BG@8 BH@5 BI@6 BJ BK BL BM BN BO BP BQ@7 BR
  BS BT BU@2 BV@4 BW ~ BX@2 BY BZ CA CB CC CD CE@2 ~
>`.pickRestart({
  A: "[~@16 db2@5 ~@2 ab2@5 ~ db3@5 ~ ab2@5 ~ d2@5 ~ a2@5 ~ gb2@5 ~ d2@4 ~@2 db2@5 ~ ab2@6 db3@5 ~ db3@3 ~@2 db3@2 d3@6]/4",
  B: "d2@6 d3@5 ~ d2@4 ~@2 db2@5 ~", C: "ab2@5 ~ db3@4 ab2 ~ db2@4 ~@2 d2@5 ~", D: "~ a2@5 ~ d3@4 a2@2 d2@4 ~@2 db2@5",
  E: "~ ab2@4 ~@2 db3@4 ab2@2 db2@5 ~ ab2@5", F: "~@2 ab1@5 ~ ab2@5 ~ d2@5 ~ db2@4",
  G: "~@2 f2@5 ~ ab2@5 ~ db3@5 ~ d3@4",
  H: "[~@3 a2@5 ~ gb2@5 ~ d2@4 ~@2 db2@5 ~ f2@5 ~ ab2@5 ~ bb2@3 ~ ab2 ~ d2@6 gb2@5 ~ a2@5 ~@2 d2@4 ~@2 db2@5 ~ f2@5 ~ ab2@5 ~ db3@4 ~@2 d3@2]/4",
  I: "[~@2 d3@2 d2@6 d3@6 c3@5 ~@2 db3@5 ~ ab2@5 ~ f2@5 ~ ab2@5 ~ gb2@5 ~ a2@6 d2@4 ~@2 c2@5 ~ db2@5 ~@2 f2@5 ~ ab2@6 db3@4 ~@2]/4",
  J: "d3@5 ~ e3@5 ~ gb3@2 ~@2 gb3 ~ d2@4 ~@2", K: "db2@6 f2@5 ~@2 ab2@5 ~ f2@2 ab2@2 b2",
  L: "~ [e2,b2]@6 [e2,b2]@5 ~ ab1@5 ~ e2@5", M: "~ eb2@5 ~ bb2@5 ~ gb2@6 ~ eb2@2 ~@2",
  N: "eb2 ~ d2@5 ~ a2@5 ~ gb2@4 ~@2 d2@4", O: "~@2 db2@5 ~ f2@5 ~@2 ab2@5 ~ db2@3",
  P: "[~@3 d2@5 ~ gb2@5 ~ a2@5 ~ d2@5 ~ db2@5 ~ f2@4 ~@2 ab2@5 ~ db3@3]/2",
  Q: "[~@4 a2@6 a1@6 a2@5 ~ db3@5 ~ d3@3 ~ d3 ~ d2@6 d3@6 a2@5 ~ bb2@5 ~@2 eb2@5 ~ g2@5 ~ eb2@5 ~ d2@5 ~ a2@5 ~ gb2@5 ~ d2@5 ~ eb2@6 ~ c3@5 ~ bb2@5 ~]/5",
  R: "a2@5 ~ d2@5 ~ gb2@5 ~ a2@4 ~@2", S: "c3@5 ~ bb2@5 ~ g2@5 ~@2 eb2@5", T: "~ a1@5 ~ d2@6 a2@5 ~ d3@5",
  U: "~ e3@5 ~ eb3@5 ~ g3@4 ~@2 bb2@5", V: "~@2 eb3@3 ~ eb3@2 d3@5 ~ gb3@5 ~ d3@3 ~",
  W: "[a2@2 gb2@5 ~ f2@5 ~ b2@5 ~ c3@6 f3@5 ~@2 e2@5 ~ b2@4 ~@2 g2@6 e2@5 ~ c2@6 c3@5 ~ b2@5 ~ b1@5 ~ e2@6 gb2@5 ~@2 g2@5 ~ b2@5 ~ bb2@5 ~ eb2@5 ~ bb2@2]/5",
  X: "[~@4 a1@6 d2@4 ~@2 a2@5 ~@2 a1@4 ~@2 a2@5 ~ d2@4 ~@2 a2@5 ~ a1@6 a2@5 ~ e2@4 ~@2 e2@5 ~ a2@5 ~ e2@5 ~@2 d2@5 ~ a2@5 ~]/4",
  Y: "a2@5 ~@7 eb2@7 ~ a2 ~ bb2 ~", Z: "eb2@7 ~@4 eb2 bb1@9 ~@3", AA: "~ bb1@8 a2 ~ bb2 ~ eb2@7 ~@3 eb2",
  AB: "~ bb1@9 ~@3 eb2@6 ~@2 ab2 ~ a2", AC: "~@2 bb2@6 bb1@5 ~ bb1@10", AD: "~@2 bb2@5 ~ bb1@4 ~@2 bb1@9 ~",
  AE: "bb2@2 ~ eb2@8 ~@2 a2@2 f2@9", AF: "~ db2@2 c2@9 ~ gb2 ~ f2@8 b2",
  AG: "[~ c3@2 f2@5 ~@2 f2@3 ~ a1@2 bb1@10 ~@2 bb2@9 ~@3 bb1@11 ~ bb2@7 ~@3 f2@2 ~ bb1@10 ~@2 bb2@8 ~@2 f2@2 bb1@11 ~ g2@5 ~ c2@5 ~ f2@7]/5",
  AH: "[~@4 ab2@2 f2@8 ~@2 db2@2 c2@8 ~@4 c2@7 ~@3 g2@2 eb2@5 ~]/2", AI: "f2@5 ~@2 gb2@5 ~ bb2@5 ~ ab2@5",
  AJ: "~ eb2@5 ~ ab2@3 ~ ab2 ~ ab1@6 db2@4 ~", AK: "~ f2@5 ~ ab2@5 ~@2 db3@4 ~@2 d3@3 ~",
  AL: "d3 ~ d2@5 ~ b2@5 ~ a2@5 ~ d2@4", AM: "[~@2 db2@5 ~ f2@6 ~ ab2@5 ~ a2@5 ~ gb2@5 ~ d2@5 ~ c2@5 ~ db2@3]/2",
  AN: "[~@3 f2@5 ~ ab2@5 ~ f2@3 ~@2 ab2 ~ d2@5 ~ gb2@5 ~ a2@5 ~ d2@5 ~ db2@5 ~ f2@5 ~ ab2@5 ~ db3@4 ~@2 d3@2]/3",
  AO: "[~@3 d3 ~ d2@5 ~ d3@5 ~ d2@5 ~ db2@5 ~ ab2@5 ~ f2@5 ~ a2@5 ~ d2@5 ~ a2@5 ~@2 gb2@4 a2 ~ d2@5 ~]/3",
  AP: "db2@5 ~ f2@4 ~@2 ab2@5 ~ db3@5 ~", AQ: "d3@5 ~ d2@5 ~ gb3@6 ~ gb3@4 d2",
  AR: "~ db2@4 ~@2 f2@5 ~ ab2@5 ~ f2@3 ~ a2", AS: "~ d2@5 ~ a2@5 ~ gb2@5 ~ ab1@4 ~",
  AT: "~@2 db2@5 ~ f2@5 ~ ab2@5 ~ db2@4", AU: "~@2 d2@5 ~ a2@5 ~ gb2@5 ~ ab1@4",
  AV: "[~@2 db2@5 ~@2 f2@5 ~ ab2@5 ~ f2@5 ~ d2@5 ~ d3@5 ~ a1@5 ~ d2@5 ~ db2@5 ~ ab2@5 ~@2 db3@4 ab2 ~ db2@5 ~ d2@5 ~ a2@5 ~ d3@4 a2 ~ d2@2]/4",
  AW: "[~@4 db2@5 ~@2 ab2@5 ~ db3@5 ~ ab2@5 ~ d2@5 ~ a2@5 ~ d3@5 ~ d2@5 ~ db2@5 ~ ab2@3 ~@3 db3@5 ~ b2@4 ~@3 a2@4 ~@2 ab2@5 ~ gb2@5 ~]/4",
  AX: "d2@6 db2@5 ~ f2@5 ~ ab2@5 ~", AY: "db2@4 ~@3 d2@5 ~ a2@5 ~ gb2@5", AZ: "~ d2@5 ~ eb2@5 ~ gb2@5 ~ bb2@5",
  BA: "~ gb2@4 ~ bb2 b2@5 ~@2 b1@5 ~ b2@4", BB: "~@2 b1@4 ~@2 db2@5 ~ f2@5 ~ e2@4",
  BC: "[~@2 e2@3 ~ ab2@2 eb2@4 ~@2 eb2@3 ~@2 ab2 ~ d2@5 ~ d2@4 ~@2 db2@4 ~@2 c2@4 ~@2 b1@3]/2",
  BD: "[~ bb1@4 ~@2 a1@20 ~ a2@5 ~ d2@16 ~@2 a2@6 d2@14]/3",
  BE: "[~@5 a2@6 d2@16 ~@2 a2@6 d2@17 ~ a2@6 d2@17 ~@2 a2@6 d2@16 ~@2 a2@6 d2@17 ~@2 a2@6 d2@21 ~ a2@2 d2@5 ~ d2@5]/7",
  BF: "[~ a1@6 ~ a2@5 ~ d2@6 a1@6 d2@4 a2@2 d2@5 ~ g2@2 ~@2 g2@2 b1@6 d2@6 g2@4 ~ d2@2 c2@5 ~ c3@6 g2@5 ~ c2@5 ~ d2@5 ~ a2@3]/4",
  BG: "[~@3 gb2@6 d2@5 ~ eb2@5 ~@2 bb2@6 eb2@5 ~ eb2@5 ~ d2@5 ~ a2@5 ~ a1@5 ~ a2@6 d2@5 ~ a2@5 ~@2 a1@6 a2@5 ~ e2@5 ~ e2@5 ~ a1@5 ~ a1@5 ~ d2@5 ~ a2@3 ~ bb1@14 ~ eb2@9 ~@3 eb2@8 ab2 ~ a2 ~ bb2@11 ~ bb1@10 ~ d3 ~ eb3@5]/8",
  BH: "[~ f3@5 ~ g3@8 ~@2 eb3 ~ bb1@10 ~ bb2@2 eb2@7 ~ ab2 ~ a2 ~ bb2@11 ~ bb1@9 ~ a2 ~ bb2@9 ~ bb2 ~ eb2@8 ~@2 gb2 ~ f2@8 ~@3 f2 ~ c3@5 ~ c2@5 ~ f2@3]/5",
  BI: "[~@3 c3@5 ~ a2@5 ~ f2@3 ~ a1@2 bb1@10 ~@3 bb2@11 ~ bb1@11 ~ bb2@7 ~@3 bb2 ~ bb1@11 ~@2 bb2@8 ~@2 bb2@2 bb1@10 ~@2 c2@11 ~ f2@8 ~@2 ab2 ~@2 f2@8 ~@2 db2@2]/6",
  BJ: "c2@9 ~@3 c2@8 f2 ~ bb2 ~", BK: "eb2@6 f2@5 ~ gb2@5 ~@2 bb2@3 ~@2", BL: "ab2@4 ~ ab2@2 eb2@6 ab2@4 ab2@2 d2@4 ~",
  BM: "~ db2@5 ~ f2@6 ab2@5 ~ db3@5", BN: "~@2 d3@6 d2@5 ~ d3@6 d3@4", BO: "~ db3 ~ db3 ab2@3 f2@3 ab1@2",
  BP: "~@2 d3@3 ~ d3@2 ~ d2@5 ~ d3@5 ~ d3@3",
  BQ: "[~@3 db3@5 ~ ab2@5 ~ f2@5 ~ ab2@5 ~ d2@5 ~ a2@6 ~ gb2@5 ~ d2@5 ~ db2@5 ~ db2@5 ~ bb1@5 ~ a1@5 ~ ab1@5 ~ a1@5 ~ d2@5 ~@2 ab1@4 d2 ~ db2@4 ~@2 f2@6 ab2@5 ~ f2@4 db2 ~ bb1@5 ~ bb2@6 bb1@6 bb2@3 ~ bb2@2 ~ eb2@5 bb2@5 ~@2 gb2@5 ~]/7",
  BR: "eb2@5 ~ bb1@6 bb2@6 bb1@6", BS: "bb2@3 ~ bb2@2 ~ eb2@5 ~ eb2@5 ~ bb2@5", BT: "~ bb2@5 ~ eb2@5 ~ bb2@5 ~ ab2@5",
  BU: "[~ f2@6 eb2@5 ~@2 f2@6 gb2@6 bb2@6 eb3@6 bb2@5 ~ f3@4]/2",
  BV: "[~@2 f3@5 ~ e3@6 b2@5 ~ g2@6 b2@5 ~@2 e2@5 ~ d2@6 b1@5 ~ g1@5 ~ e1@5 ~ e1@4 ~@2 e1@5 ~ b1@6 ~ e2@5 ~ d2@5 ~ b1@2]/4",
  BW: "~@2 g2 ~ b2@4 eb2@4 ~@12", BX: "[~@5 d2@3 ~ eb2@3 ~@3 eb2 ~ eb2@3 ~@3 eb2@3 ~ eb2@4 ~@2 eb2 ~@2 ab1@5 ~@7]/2",
  BY: "~@2 db2", BZ: "ab2@3 ~@3 db2@3 ~@3 d2@5 ~ d2@5 ~", CA: "~ a2@3 ~ a2 ~ d2@4 ~@2 db2@5 ~ f2@5",
  CB: "~ ab2@4 ~@2 f2@5 ~ d2@5 ~ d2@5", CC: "~ a2@5 ~ d2@4 ~@3 db2@5 ~ db2@4", CD: "~@2 f2@5 ~ ab2@5 ~ d2@5 ~ b2@4",
  CE: "[~@2 gb2@5 ~ d2@4 ~@2 db2@2 ~@5 d2@13 ~@3 c3@2 db3@3 ~ db2@5]/2",
})).s("gm_acoustic_bass").gain(0.21).pan(0.4)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@71 A B@3 C D E F G H I J@3 K ~@3 L M N O P Q R S@5 T U V W X ~@32 Y@2 Z@7 ~@9 AA AB AC AD AE AF AG AH AI@5 AJ AK AL
  AM ~@33
>`.pickRestart({
  A: "~@4 [a3,b3,d4]@3 ~@3 [gb3,a3,b3,d4]@3 ~@9 [gb3,a3,b3,d4]@2", // Bm7
  B: "[~@5 [g3,c4,eb4]@2 ~@4 [g3,c4,eb4]@3 ~@3 [g3,c4,eb4]@3 ~@3 [g3,c4,eb4]@3 ~@3 [a3,b3,d4]@3 ~@3 [gb3,a3,b3,d4]@3 ~@9 [gb3,a3,b3,d4]@3 ~@4 bb3@2 ~@4 [g3,bb3,c4]@3 ~@3 [g3,bb3,c4]@3 ~@3, ~@53 [g3,c4]@2 ~@17]/3", // Cm Bm7 C7 C5
  C: "[g3,bb3,c4] ~ [gb3,a3,b3,d4] ~ [gb3,a3,b3,d4] ~@3", // C7 Bm7
  D: "[gb3,a3,b3,d4]@3 ~@3 [g3,c4,eb4]@2 ~@5 [g3,c4,eb4]@3 ~@3 [g3,c4,eb4]@3 ~@2", // Bm7 Cm
  E: "~ [g3,c4,eb4]@3 ~@3 [a3,b3,d4]@3 ~@3 [gb3,a3,b3,d4]@3 ~@8", // Cm Bm7
  F: "~ [gb3,a3,b3,d4]@3 ~@3 [g3,c4,eb4]@2 ~@4 [g3,c4,eb4]@3 ~@4 g3@3 ~, ~@19 [c4,eb4]@3 ~@2", // Bm7 Cm
  G: "~@2 [g3,c4,eb4]@3 ~@9 [a3,b3,d4,gb4]@2 ~@4 [a3,b3,d4,gb4]@3 ~", // Cm Bm7
  H: "~@2 [a3,b3,d4,gb4]@4 ~@2 [bb3,eb4,g4]@4 ~@2 [a3,eb4,g4]@5 ~ [eb4,g4]@4", // Bm7 Eb Am7b5 Eb
  I: "~@3 [a3,eb4,g4]@3 ~@3 [b3,d4,gb4]@4 ~@2 [b3,d4,gb4]@4 ~@5", // Am7b5 Bm
  J: "[~@3 [b3,d4,gb4]@4 ~@2 [bb3,d4,e4,g4]@4 ~@2 [bb3,d4,e4,g4]@5 ~ [a3,eb4,gb4]@5 ~ [a3,eb4,gb4]@4 ~@3 b3@4 ~@2 [b3,d4,g4]@5 ~ [b3,d4,g4]@4 ~@2 [b3,d4,g4]@4 ~@2 [bb3,d4,g4]@5 ~ [bb3,d4,g4]@5 ~@3, ~@33 [d4,g4]@4 ~@35]/3", // Bm Em7b5 Ebdim G Gm G5
  K: "~ [bb3,d4,g4] ~@4", L: "~@12 [g3,eb4]@4 ~@3 [g3,bb3,eb4]@4 ~",
  M: "~ [g3,eb4]@4 ~@2 [g3,bb3,eb4]@4 ~@2 [b3,d4]@4 ~@2 [ab3,b3,d4]@4 ~", // Cm Eb Bm Abdim
  N: "~ [b3,d4]@4 ~@2 [ab3,b3,d4]@3 ~@3 g3@3 ~@3 [g3,bb3,eb4]@4 ~", // Bm Abdim Eb
  O: "~ [g3,eb4]@2 ~ [g3,bb3,eb4]@2 ~ [g3,eb4]@2 ~ [g3,bb3,eb4]@2", // Cm Eb Cm Eb
  P: "~ [g3,eb4]@2 ~ [g3,bb3,eb4]@2 ~ [db4,f4]@2 ~ [ab3,db4,f4]@2", // Cm Eb Db
  Q: "~@2 [db4,f4]@4 ~@3 [ab3,db4,f4]@5 ~ [ab3,db4,f4]@4 ~@2 [ab3,db4,f4]@3", // Db
  R: "~@3 [g3,db4,f4]@4 ~@2 [g3,db4,f4]@4 ~@2 [f3,a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@3", // Gm7b5 F7 Adim
  S: "[~@3 [a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@3 [f3,a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@2 [c4,db4,f4]@4 ~@2 [c4,db4,f4]@4 ~@2 [c4,db4,f4]@4 ~@2 [c4,db4,f4]@4 ~@4 f4@3 ~@2 [bb3,db4,f4]@5 ~ [db4,f4]@4 ~@2 [bb3,db4,f4]@4 ~@2 [a3,db4,f4]@5 ~ [a3,db4,f4]@5 ~ [a3,db4,f4]@4 ~@2 [a3,db4,f4]@4 ~@2 [db4,f4]@4 ~@3, ~@65 [bb3,db4]@4 ~@51]/5", // Adim F7 Adim Dbmaj7 Bbm Db Bbm Aaug …
  T: "[ab3,db4,f4]@3 ~@3 [g3,bb3,e4]@4 ~@2 [g3,bb3,e4]@5 ~ [c4,eb4,g4]@4 ~@2", // Db Edim Cm
  U: "[ab3,c4,eb4,g4]@3 ~@3 [c4,eb4,f4]@4 ~@2 [ab3,c4,eb4,f4]@3 ~@3 e4@4 ~@2", // Abmaj7 F7 Fm7
  V: "[bb3,db4,e4,g4]@4 ~@2 [db4,e4,g4]@4 ~@3 [bb3,db4,e4,g4]@3 ~@3 db4@4 ~", // Bbdim Dbdim Bbdim
  W: "~ [bb3,db4,gb4]@4 ~@2 [db4,f4]@4 ~@2 [bb3,db4,f4]@4 ~@2 [bb3,db4,f4]@5", // Gb Db Bbm
  X: "~ [bb3,db4,f4]@4 ~@2 [bb3,c4,eb4]@4 ~@2 [bb3,c4,eb4]@3 ~@8", // Bbm Cm7
  Y: "[~@17 gb4@17 ~@8 e4@6, ~@15 a3@20 ~@4 bb3@9, ~@16 db4@19 ~@5 d4@8]/2",
  Z: "[~@18 gb4@17 ~@8 e4@17 ~@6 gb4@17 ~@8 e4@17 ~@7 gb4@17 ~@8 e4@17 ~@11, ~@16 a3@20 ~@4 bb3@20 ~@4 a3@20 ~@5 bb3@20 ~@4 a3@20 ~@5 bb3@20 ~@10, ~@17 db4@19 ~@5 d4@18 ~@6 db4@19 ~@6 d4@18 ~@6 db4@19 ~@6 d4@18 ~@11]/7",
  AA: "~@9 [g3,eb4]@2 ~", AB: "[g3,bb3,eb4]@4 ~@2 [g3,eb4]@4 ~@3 g3@3 ~@3 [b3,d4]@4 ~, ~@3 [bb3,eb4] ~@2",
  AC: "~ [ab3,b3,d4]@4 ~@2 [b3,d4]@4 ~@2 [ab3,b3,d4]@3 ~@3 g3@3 ~@2", // Abdim Bm Abdim
  AD: "~ [g3,bb3,eb4]@4 ~@2 [g3,eb4]@4 ~@2 [g3,bb3,eb4]@4 ~@3 g3@4, ~@19 eb4@4 ~", // Eb Cm Eb
  AE: "~ [g3,bb3,eb4]@2 ~ [g3,eb4]@2 ~ [g3,bb3,eb4]@2 ~ [db4,f4]@2", // Eb Cm Eb Db
  AF: "~@2 [ab3,db4,f4]@4 ~@2 [db4,f4]@4 ~@2 [ab3,db4,f4]@5 ~ [ab3,db4,f4]@4", // Db
  AG: "~@3 [ab3,db4,f4]@4 ~@2 [g3,db4,f4]@4 ~@2 [g3,db4,f4]@4 ~@2 [f3,a3,c4,eb4]@3", // Db Gm7b5 F7
  AH: "~@3 [a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@2 [f3,a3,c4,eb4]@3", // Adim F7
  AI: "[~@3 [a3,c4,eb4]@4 ~@2 [a3,c4,eb4]@4 ~@3 [a3,c4,eb4]@4 ~@2 [c4,db4,f4]@4 ~@2 [c4,db4,f4]@4 ~@2 [c4,db4,f4]@4 ~@2 [c4,db4,f4]@4 ~@2 [bb3,db4,f4]@4 ~@2 [bb3,db4,f4]@5 ~ [db4,f4]@4 ~@2 [bb3,db4,f4]@4 ~@3 f4@4 ~@2 [a3,db4,f4]@5 ~ [a3,db4,f4]@4 ~@2 [a3,db4,f4]@4 ~@2 [db4,f4]@4 ~@2 [ab3,db4,f4]@3 ~@3 [g3,bb3,e4]@4 ~@2 [g3,bb3,e4]@5 ~@2, ~@14 [a3,db4] ~@9]/5", // Adim Dbmaj7 Bbm Db Bbm Aaug Db Edim …
  AJ: "[c4,eb4,g4]@4 ~@2 [ab3,c4,eb4,g4]@3 ~@3 [c4,eb4,f4]@4 ~@2 [ab3,c4,eb4,f4]@3 ~@3", // Cm Abmaj7 F7 Fm7
  AK: "e4@4 ~@2 [bb3,db4,e4,g4]@4 ~@2 [db4,e4,g4]@4 ~@2 [bb3,db4,e4,g4]@3 ~@3", // Bbdim Dbdim Bbdim
  AL: "db4@4 ~@3 [bb3,db4,gb4]@4 ~@2 [db4,f4]@4 ~@2 [bb3,db4,f4]@4 ~", // Gb Db Bbm
  AM: "~ [bb3,db4,f4]@5 ~ [bb3,db4,f4]@4 ~@2 [bb3,c4,eb4]@4 ~@2 [bb3,c4,eb4]@3 ~@2", // Bbm Cm7
})).s("gm_electric_guitar_jazz").gain(0.08).pan(0.7)

// chords · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@71 A ~ B ~ C ~ D ~@2 E F@2 ~ G@2 ~@3 H I J K L M ~@4 N O P Q R S ~@51 T U V W X Y ~@4 Z AA@2 AB AC AD ~@34
>`.pickRestart({
  A: "~@8 gb3 ~@3", B: "~@17 gb3@2 ~@5", C: "~@9 gb3 ~@2", D: "~@19 gb3@2 ~@3", E: "~@5 bb3",
  F: "[~@21 [b3,d4,gb4]@5 ~@22]/2", G: "[~@22 [bb3,d4,g4]@5 ~@21]/2", H: "~@3 bb3 ~@2", I: "~ bb3@4 ~@8 ab3@4 ~@7",
  J: "~ ab3@4 ~@8 [bb3,eb4]@3 ~@8", K: "~ bb3@2 ~@4 bb3@2 ~@3", L: "~ bb3@2 ~@4 ab3@2 ~@3", M: "~@3 ab3@4 ~@17",
  N: "~@5 bb3@4 ~@15", O: "~@17 ab3@4 ~@3", P: "~@9 ab3@2 ~", Q: "~@3 ab3@2 ~@4 [bb3,db4,g4]@2 ~",
  R: "~@6 bb3@4 ~@9 [bb3,gb4]@4 ~", S: "~@7 bb3@4 ~@13", T: "~@9 bb3@2 ~", U: "~@6 bb3@4 ~@9 ab3@4 ~",
  V: "~@7 ab3@4 ~@8 [bb3,eb4]@3 ~@2", W: "~@7 bb3@4 ~@8 bb3@4 ~", X: "~@2 bb3 ~@2 ab3", Y: "~@2 ab3 ~@3",
  Z: "~@5 bb3@2 ~@5", AA: "[~@23 ab3@4 ~@21]/2", AB: "ab3 ~@2 ab3 ~@2", AC: "[bb3,db4,g4] ~@2 bb3 ~@2",
  AD: "[bb3,gb4]@4 ~@9 bb3@4 ~@7", // Ebm
})).s("gm_electric_guitar_jazz").gain(0.06).pan(0.7)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  A@4 B@8 C@4 D E@5 F@5 G@3 H@5 I@3 J@6 ~@45 K@5 L@3 M@4 N@5 ~@31 O@2 ~ P@2 Q@3 R S ~@9 T@5 U@3 V@6 W X Y ~@33
>`.pickRestart({
  A: "[~@10 ab5@11 ~ b5@10 ~ ab5@21 ab5@11 ~@12 ab5@19, ~@21 ab3@44 c6@12 ~@19, ~@67 ab2@29]/4",
  B: "[~@4 ab5@11 ~ eb6@11 db6@12 ~@12 bb5@11 ab5@11 db5@34 ~ b4@21 ~@2 f4@22 [db3,eb4,ab4]@22 ~ [db2,ab4]@5 ~@11, ~@16 db2@90 ~ [ab2,ab4]@45 ~@40, ~@40 c6@13 ~@54 e4@22 ~ c5@23 ~@22 ab5@7 ~@10]/8", // Dbsus2 Db5 Ab
  C: "[~@7 b4@21 ~ [f4,c5]@23 [db3,eb4,ab4]@23 [db2,db4,db5]@6 ~@15, ~@2 [ab2,ab4]@15 ~@15, ~@6 e4@23 ~@67]/4", // F5 Dbsus2 Db Ab
  D: "~ eb4@11, ~ [gb2,eb3]@23", // Ebm
  E: "[[g2,e3,e4]@22 [ab2,f3,f4]@15 [g2,db4,f4,bb4]@14 ~@19 gb2@37 ~ [gb2,db4]@5 ~@7, ~@51 [gb2,eb5]@19 db5@35 ~@2 bb5@5 ~@8, ~@26 [e4,ab4]@27 ~@7]/5", // C Db Gm7b5 Gb5 Ebm E
  F: "[~@6 [e4,b4]@19 [f4,c5]@19 eb4@19 db4@18 ~ e4@18 [f4,c5]@20, ~@6 [ab2,ab4]@37 ~ [db2,f4,ab4]@37 b4@19 ~@20, ~@41 [ab2,ab4]@19]/5", // E5 F5 Ab Db Ab
  G: "[[eb4,ab4]@19 ~ d4@10 db4@9 ~ [gb2,eb4]@15 [g2,e4]@17, [db2,f4]@5 ~@4, ~@19 bb4@19 ~ gb4@16 ~@17]/3", // Ab5 Ebm C Db
  H: "[~ [ab2,f4]@17 [g2,db4,f4,bb4]@23 ~ bb4@9 ~@17 [gb2,db5]@9 [bb4,d5]@9 [d5,f5]@9 [d5,f5,bb5]@11 [db5,e5,a5]@14, ~@41 eb5@28 ~@51, ~@42 eb4@35 ~@43, ~@42 gb2@26 ~@9 g2@18 c2@25, ~@51 ab4@26 ~@43]/5", // Db Gm7b5 Gb5 Bb Dm Bb A
  I: "[[e4,g4]@14 ~ [d4,f4]@16 ~ [f4,g4]@19 [g4,eb5]@21, [f2,c5]@31 bb4@20 bb4@11 ~@10, ~@4 db2@5]/3", // Em Dm Fsus2 Cm F5
  J: "[~ [e4,g4]@17 ~ f4@17 ~ [e4,db5]@9 [a4,gb5]@9 ~ ab5@10 ~@2 db5@10 [db5,bb5]@25 ~@41, ~ [f2,c5]@36 a2@41 ab2@54 ~@12, ~@18 d4@18 ~@19 b4@10 ~ a5@12 ~@66]/6", // Em Dbm D Gb F5
  K: "[~@12 [c5,g5]@18 ~ ab5@6 [b4,g5]@18 [ab4,f5]@6 [g4,eb5]@24 [bb4,g5]@12 ~ [g4,eb5]@12 [db5,f5,bb5]@10, ~@12 eb5@24 ~ d5@24 ~@59, ~@30 c5@6 ~@25 c5@49 ~@10]/5", // C5 Em Db Cm Eb Cm Bbm
  L: "[~@2 [bb4,db5,f5]@12 ab5@12 ~ g5@12 [db5,gb5]@12 [c5,f5]@12 [gb5,a5,db6]@9, ~@14 [db5,f5]@24 ~ eb5@24 ~@9]/3", // Bbm Gb5 F5 Gbm Db
  M: "[~@4 [f5,c6]@12 c6@24 bb5@24 ~ a5@24 [f5,ab5]@7, ~@16 f5@73 ~@7, ~@16 db5@49 db5@31]/4", // F5 Fm
  N: "[~@5 [e5,g5]@12 ~ g5@12 f5@12 [c5,e5,g5]@24 ~ gb5@12 f5@12 [db5,f5]@12 [c5,eb5]@12 ~@5, ~@18 [c5,eb5]@24 ~@24 [bb4,db5]@24 ~ ab4@24 ~@5]/5", // Em C Db Cm Bbm
  O: "[~@15 [g3,b3,db4,gb4,a4]@19 ~@14]/2", P: "[~@16 a4@6 a5@6 d6@7 g6@6 a6@7]/2", Q: "[c7@6 a6@55 ~@5 a5@6]/3",
  R: "g6@7 a6@6 c7@6 a6@5", S: "~ g6@6 a6@17",
  T: "[~@18 [c5,g5]@18 [c5,ab5]@6 ~ b4@18 [ab4,f5]@6 [g4,eb5]@24 [bb4,g5]@12 [g4,eb5]@12 ~ [db5,f5,bb5]@4, ~@18 eb5@24 d5@24 ~ c5@49 ~@4, ~@7 g5@3 ~@10]/5", // C5 Fm Db Cm Eb Cm Bbm
  U: "[~@8 [bb4,db5,f5]@12 ab5@12 g5@12 ~ [db5,gb5]@12 [c5,f5]@12 [gb5,a5,db6]@3, ~@20 [db5,f5]@24 ~ eb5@24 ~@3]/3", // Bbm Gb5 F5 Gbm Db
  V: "[~@9 [f5,c6]@12 ~@25 bb5@24 ~@25 [f5,ab5]@12 [e5,g5]@12 g5@12 f5@12 ~, ~@21 c6@24 ~@25 a5@24 ~@50, ~@22 f5@73 ~@24 [c5,eb5]@24 ~, ~@22 db5@49 db5@49 ~@24]/6", // F5 Fm Em Cm
  W: "[c5,e5,g5]", X: "gb5 f5, [bb4,db5]", Y: "~ [db5,f5]@12 [c5,eb5]@11, ~ ab4@23",
})).s("gm_string_ensemble_2").gain(0.28).pan(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~ A@6 B@5 C@4 D E@5 F@5 G@8 H@8 ~@46 I@7 ~ J@5 ~@54 K@7 ~ L@5 ~@37>".pickRestart({
  A: "[~@8 db5@6 c5@6 b4@11 c5@5 b4@6 ~ bb4@11 b4@5 bb4@6 a4@11 ~ b4@5 ab4@7 a4@11 ~ bb4@11 eb5@11 db5@11 [c4,eb4,c5]@10]/6", // Cm
  B: "[~ [bb3,db4,bb4]@34 ab3@24 d3@22 ~ [db3,bb3]@23 ~@15, ~@81 f3@23 ~@16]/5", // Bbm Gb
  C: "[~@7 ab3@22 d3@23 [db3,f3,bb3]@23 ~@21]/4", D: "~ eb4@23",
  E: "[~ e4@21 f4@15 bb4@14 bb4@19 ab4@19 bb4@19 ~@12]/5",
  F: "[~@6 b3@18 ~@39 bb3@18 b3@19 ~ c4@19, ~@6 gb3@37 f3@38 gb3@39, ~@25 c4@38 ~@57]/5",
  G: "[[f3,b3]@40 eb3@15 e3@17 ~ f3@17 [bb3,db4]@23 ~ [e3,bb3]@26 bb3@9 ~ d4@8 f4@9 [f4,bb4]@11 [e4,a4]@14, ~@40 bb3@50 ~@59 bb3@42 ~]/8", // Fdim Bbm Edim Bb5 A5
  H: "[[a3,c4]@31 ~ [f3,b3,eb4]@41 [a3,c4]@36 ~@9 e4@31 ~ [db4,f4]@25 ~@17, ~@110 [a3,db4]@41 ~@41]/8", // Am Fm7b5 Am Db A
  I: "[~@12 [bb3,eb4]@24 ~ [ab3,b3,d4]@24 f4@24 eb4@24 ~ ab4@36 g4@12 ~@10, ~@12 g4@49 [bb3,g4]@49 [db4,f4]@49 ~@9]/7", // Eb5 Abdim Eb Db
  J: "[~@16 bb4@49 a4@24 ab4@12 g4@12 ~@7]/5",
  K: "[~@18 [bb3,eb4]@24 [ab3,b3,d4]@24 ~ f4@24 eb4@24 ~ ab4@36 g4@12 ~@4, ~@18 g4@49 [bb3,g4]@49 [db4,f4]@49 ~@3]/7", // Eb5 Abdim Eb Db
  L: "[~@21 bb4@49 a4@24 ~ ab4@12 g4@12 ~]/5",
})).s("gm_string_ensemble_1").gain(0.17).pan(0.7)

// other · flute
const flute = note("<A@6 B@3 ~@2 C ~@3 D ~@5 E ~@17 F@4 ~@65 G@3 ~ H@4 I@3 ~@26 J@3 K@2 L M ~@51 N@2 ~>".pickRestart({
  A: "[~@34 db5@4 c5@7 b4@10 ~ c5@5 ~ b4@5 bb4@11 ~ b4@6 bb4@5 ~ a4@11 b4@5 ab4@6 ~ a4@11 bb4@11 eb5@8, ~@21 e5@46 f5@46 eb5@22 ~@9]/6",
  B: "[~@3 db5@11 c5@11 bb4@34 ~@13, ~@14 f5@45 ~@13]/3", C: "~@5 [c6,db6] eb6 f6 ab6@4 ~@12",
  D: "[d6,eb6] f6 g6 bb6@4 ~@17", E: "~@9 f6 gb6 [ab6,bb6] db7@3 ~@9",
  F: "[~@5 f5@9 gb5@9 a5@9 b5@12 db6@10 db6@25 ~@17]/4",
  G: "[~@7 db5@2 b4@3 ~@2 ab4@4 ~@3 gb4@5 ~@2 ab4@3 ~@2 b4@4 ~@2 gb4@4 ab4@24 ~@5, ~@19 ab4 ~@16]/3",
  H: "[~@8 ab4@2 ~ b4@3 ~ db5@2 b4@3 ~ ab4 ~ b4@3 ~ db5@2 b4@3 ~ db5 ~ e5@4 db5 ~ b4@3 ~ ab4@6 ~@2 db5@3 ~ eb5@2 db5@3 ~@3 db5@4 ~ db5@25 ~]/4",
  I: "[~@6 db5@4 eb5@2 ~ db5@3 ~@2 db5@3 ~@2 db5@8 b4@3 ab4 ~@2 b4@3 ~ ab4@2 gb4@3 ~ ab4@9 ~@16]/3",
  J: "[~@23 d4@2 e4@2 ~ gb4 e4 d4 e4@4 gb4@18 ~@2 e4@4 ~@3 gb4@3 ~ d4@2 e4@4]/3",
  K: "[d4@2 ~@4 e4@2 ~ d4@3 gb4@19 ~ e4@3 ~@4 f4@4 d4@2 e4@3]/2", L: "~ d4@6 ~@2 e4@3 ~@3 gb4@2 ~@2 d4@3 ~@2",
  M: "~ b3 ~@2 d4@4 ~@16", N: "[~@21 gb5@12 ~@4 [e5,e6]@2 [f5,f6]@4 [db5,db6]@4 ~, ~@20 gb6@13 ~@15]/2",
})).s("gm_flute").gain(0.22).pan(0.3)

// chords · french horn · "FR.HORN"
const french_horn = note(`<
  A@8 B@4 C@4 D@6 E@5 F@2 ~@7 G ~@2 H@6 I@2 J K L M N O ~@15 P ~ Q ~@67 R S@8 ~@59
>`.pickRestart({
  A: "[~@19 [c4,e4] ~ [db4,f4] ~ [d4,gb4]@44 ~ [c4,f4]@44 ~@2 db4@44 ~ c4@10 ~ bb3@22, ~@11 ab3@10 ab3@45 ~ gb3@45 bb3@45 ~@2 f4@33, ~@113 [g3,e4]@45 f3@34]/8", // C Db D F5 C
  B: "[~@12 b3@22 ~ c4@22 [f3,bb3]@22 eb4@5 ~@12, ~@11 e4@23 f4@23 eb4@20 ~@19, ~@4 gb3@15 ~@13]/4", // Bb5
  C: "[~@7 b3@22 [c4,f4]@23 [f3,bb3]@23 eb4@5 ~@16, ~@6 e4@23 ~@23 eb4@21 ~@23, ~@7 gb3@45 ~@44]/4", // F5 Bb5
  D: "[~ bb3@60 db4@14 b3@19 bb3@37 ~ bb4@7 ~@5]/6", E: "[~@6 gb4@37 ~ f4@37 gb4@38 ~]/5", F: "[f4@3 ~]/2",
// … 367 more lines

More by Sinatra