Strudelify
New York, New York (theme du film) cover art

Fly Me To The Moon

New York, New York (theme du film)

Frank Sinatra

KeyG minorTempo112 bpm
0:00/0:00
// New York, New York (theme du film) — Frank Sinatra
// 112 bpm, 4/4, key G minor. 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 91 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · "Bass"
const bass = note(`<
  A B C A D E F G H I A B J K B L M N O B 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@3 BK@2 BL@3 BM BN BO BP BQ@2 BR BS@5 BT@4
>`.pickRestart({
  A: "d2@6 ~@6 a1@9 ~ a1@2", B: "d2@6 ~@6 a1@11 ~", C: "d2@7 ~@5 a1@9 ~ a1@2", D: "e2@7 ~@5 a1@9 ~ a1@2",
  E: "e2@6 ~@6 a1@5 ~ a1@5 ~", F: "d2@3 ~@3 a1@5 a1", G: "d2@3 ~@3 a1@4 ~ a1", H: "e2@7 ~@5 a1@9 ~ a1 ~", I: "e2 ~@3",
  J: "e2@7 ~@5 a1@8 ~@2 a1@2", K: "e2@5 ~ a1@5 ~ b1@5 ~ db2@5 ~", L: "d2@9 ~ ab2@2 a2@6 a1@5 ~",
  M: "e2@3 ~@3 a1@4 ~ a1", N: "e2@7 ~@3 ab2 ~ a2@5 ~ a1@5 ~", O: "d2@6 ~@6 a1@9 ~ a1 ~", P: "e2@8 ~@4 a1@9 ~ a1@2",
  Q: "e2@3 ~ e2 ~ a1@5 ~ b1@5 ~ db2@5 ~", R: "d2@6 ~@6 a1@8 ~@2 a1 ~", S: "d2@5 ~ d2@5 ~ a1@5 ~ a1@5 ~",
  T: "d2@5 ~ a2@5 ~ gb2@5 ~ e2@5 ~", U: "d2@5 ~ d2@5 ~ e2@5 ~ gb2@5 ~", V: "g2@5 ~ g2@5 ~ d2@5 ~ d2@5 ~",
  W: "g2@6 bb2@5 ~ a2@5 ~ g2@4 g2 ~", X: "a2@5 ~ a2@5 ~ a2@5 ~ a2@5 ~", Y: "d2@4 d2@2 a2@5 ~ gb2@5 ~ d2@3 ~ d2@2",
  Z: "gb2@5 ~ gb2@5 ~ gb2@4 ~@2 gb2@4 gb2 ~", AA: "b1@5 ~ gb2@5 ~ b2@6 b1@4 b2 ~", AB: "e2@5 ~ b2@6 g2@6 e2@4 e2 ~",
  AC: "a2@4 a1@13 ~ a2@6", AD: "d2@11 ~ a2@9 ~ a2@2", AE: "d2@10 ~@2 a2@6 a1@5 ~", AF: "e2@11 ~ b2@5 ~ e2@4 b1 ~",
  AG: "e2@3 ~ e2 ~ a1@5 ~ b1@5 ~ db2@6", AH: "d2@6 a1@5 a2", AI: "d2@3 ~ d2 ~ db2@6 b1@6 bb1@6",
  AJ: "a1@5 ~ a1@6 a2@6 a2@4 e2@2", AK: "d2!2 e2 gb2", AL: "g2@7 ~@3 g2@2 d2@5 ~ d2@6",
  AM: "g2@6 g2@5 ~ gb2@5 ~ g2@4 g2 ~", AN: "a2@6 a2@6 a1@6 a1@3 ~ a1 ~", AO: "b1@6 gb2@6 b2@6 b1@4 b2 ~",
  AP: "e2@5 ~ e2@5 ~ gb2@5 ~ gb2@5 ~", AQ: "g2@5 ~ g2@6 a2@6 a2@5 ~", AR: "d2@9 ~ d2 ~ a1@8 ~@2 a1 ~",
  AS: "d2@7 ~@3 d2 ~ a2@6 a1@5 ~", AT: "e2 ~ a2 a1", AU: "bb1@5 ~ bb1@6 c2@6 d2@6",
  AV: "eb2@6 eb2@3 ~ eb2 ~ bb1@6 bb1@4 d2 ~", AW: "eb2@6 d2@6 c2@6 bb1@5 ~", AX: "eb2@6 g2@5 ~ bb2@5 ~ bb1@4 d2 ~",
  AY: "eb2!2 f2 g2", AZ: "ab2@6 ab2@4 eb2 ~ eb2@5 ~ eb2@4 g2 ~", BA: "ab2@4 eb3 ~ b2@6 bb2@6 ab2@4 eb2 ~",
  BB: "eb2@6 bb2@6 g2@6 f2@4 f2 ~", BC: "eb2@6 eb2@6 f2@5 ~ gb2@5 ~", BD: "g2@5 ~ g2@5 ~ d2@6 g2@6", BE: "c2 g2 e2 c2",
  BF: "b1@7 ~@5 b1@8 ~@4", BG: "~ bb1@14 ~@5 bb1@4", BH: "~@2 bb1@5 bb1@9 ~@8", BI: "~@8 eb2@7 ~@2 d2@7",
  BJ: "[~@2 c2@8 ~ bb1@6 c2@2 ~ f2@8 ~ f2@3 ab2@3 a2@3 bb2@3 g2@3 f2@3 bb1@3 c2@3 d2@3 eb2@8 ~ bb2@7]/3",
  BK: "[~@2 g2@7 ~@2 eb2@6 eb2@3 f2@8 ~@2 f2@5 ~ c3@2 ~ bb2@8 ~]/2",
  BL: "[bb2@5 ~ bb2@2 ~ eb2@8 ~ eb2@8 ~ bb2@8 ~ g2@8 ~ eb2@9 bb2@9 g2@8 ~]/3",
  BM: "g2@6 ab2@2 ~ bb2@5 ~@2 bb2@2 ~ c3@4 ~", BN: "~ c3@2 ~ db3@3 c3@3 db3@3 d3@3 db3@3 d3@3 eb3@2",
  BO: "~ d3@3 eb3@3 f3@3 e3@3 f3@3 gb3@3 f3@3 gb3@2", BP: "~ g3@3 gb3@3 g3@3 ab3@11 ~@3",
  BQ: "[~ ab2@3 eb2@11 ~@4 g2@2 ~ ab2@10 ~@6 ab2@2 ~ eb2@7]/2", BR: "~@2 ab2@8 ~ bb2@10 ~@3",
  BS: "[~@2 bb2@3 eb2@7 ~@2 bb2@3 a2@3 bb2@3 c3@6 ~@18 f2@6 ~@6 g2@6 ~@6 ab2@7 ~@3 ab2@2 bb2@6 ~@6 eb2@6 ~@6 bb1@10 bb1@2 eb2]/5",
  BT: "[~@11 bb1@9 ~ bb1@2 f2@7 ~@5 bb1@11 ~ b1@31 ~@2 eb2@7 ~@9]/4",
})).s("gm_acoustic_bass").gain(0.34)

// other · piano
const piano = note(`<
  A B C D C@2 E@3 F A B G H I J K L ~@3 M N O P@2 Q ~@7 R S T@2 U V W X Y@2 Z@2 ~@2 C AA AB AC AD AE AF AG AH@2 AI AJ AK
  AL AM AN AO ~ AP@5 ~ AQ AR ~@2 AS ~ AT AU AV AW AX@4 AY AZ BA@3
>`.pickRestart({
  A: "[d5,gb5]@2 ~@4 [d5,gb5]@2 ~@4 [db5,gb5]@3 ~ d5@2 b4@2 ~@4, ~@16 gb5@5 ~@3", // D Gb5
  B: "[d5,gb5] ~@2 [d5,gb5] ~@2 [db5,gb5]@2 d5 b4 ~@2, ~@4 gb5 ~", C: "d4 ~@5 d4 ~@5 db4@4 d4@2 b3 ~@5",
  D: "d4@2 ~@4 d4 ~@5 db4@4 d4@2 b3 ~@5", E: "d4 ~@5 d4 ~@5 db4@4 d4@2 a3 ~@5", F: "d4 ~@11",
  G: "[d5,e5,g5]@2 ~@4 [d5,e5,g5]@2 ~@4 [db5,e5,g5]@3 ~ d5@2 b4@4 [db4,db5]@2, ~@8 g5@3 ~", // Em7 Dbdim Db
  H: "[d4,d5]@2 ~@4 [a3,db5]@4 ~@2 [b3,d5,a5]@4 ~@2 [db4,e5,a5] ~@5", // D A Bm7 A
  I: "[d5,gb5]@2 ~@4 [d5,gb5]@2 ~@4 [db5,gb5]@4 d5 ~ b4 ~@5, ~@4 gb5 ~", // D Gb5
  J: "[d5,gb5]@2 ~@4 [d5,gb5]@2 ~@4 [db5,gb5]@3 ~ d5 ~ b4@2 ~@4, ~@4 gb5 ~", // D Gb5
  K: "[d5,e5,g5]@2 ~@4 [d5,e5,g5]@2 ~@4 [db5,e5,g5]@3 ~ d5@2 b4@4 [db4,db5]@2, ~@16 g5@5 ~@3", // Em7 Dbdim Db
  L: "[d4,d5]@4 ~@2 d5@5 ~ [a4,db5]@5 ~@7, ~@4 a3 ~@3", // D A
  M: "~@6 b4@2 ~ gb5@2 b5!2 ~ e6 gb6 ~ b6 [f6,d7] ~ gb6 g6 ~ ab6, ~@4 e5 ~@7", // Dm
  N: "a6@3 ~ f6 gb6 a5@2 ~@2 eb6 e6 d6@2 ~@9 e6",
  O: "db6 [db6,e6] a5 ~ gb5 ~ eb5 ~@3 e5@2 db5@2 d5@2 b4 ~ db5@2 ~@2 [bb4,b4] ~", // Dbm Bmaj7
  P: "[~@4 e4 ~@5 d4@2 e4@2 ~@2 gb3@2 a3@2 ~@2 a3@8 g3@6 e3@6 d3@5 ~]/2", Q: "d3 ~",
  R: "[gb3,b3,e4,a5,d6]@3 ~ [gb3,b3,e4,a5,d6] ~ gb4@4 e4@5 ~ gb4 e4 [gb3,a3,b3,e4,a5,d6]@3 ~ [gb3,b3,e4,a5,d6] ~", // Bm7
  S: "e4@4 d4@6 [gb3,b3,e4,a5,d6] ~ a3@4 [gb3,b3,e4,a5,d6] ~@7, ~@8 d4 ~@3", // Bm7
  T: "[~@4 [b3,d4,gb4,d6]@2 b5 d6 b5@2 g5@2 ~ g3@2 ~ [g3,db4,gb4,a4,a5] ~ c4@4 b3@7 ~ db4@6 d4@6 e4@6, ~@4 g3 ~ e4@4 gb4@6 ~@32, ~@4 [db4,gb5] ~@11]/2", // Bm Gbm Gb5
  U: "gb4 ~@10 db3", V: "d3 ~@5 db3@5 ~ d3@6 eb3@6", W: "c4@12 c4@3 ~ c4 ~ c4@2 ~@4", X: "c4 ~@23",
  Y: "[~@6 d4 ~@5 d4@9 ~ e4@14 d4@6 e4@6]/2", Z: "[~@6 gb4 ~@5 d4@9 ~ eb4@7 ~ eb4@2 ~@16]/2",
  AA: "d4 ~@5 d4 ~@5 db4@4 d4@2 b3@2 ~@4", AB: "d4 ~@5 d4 ~@5 db4@4 d4@2 b3@4 db4@2",
  AC: "d4 ~@5 d4@3 ~ d4@2 eb4@3 ~ eb4@2 f4 ~@5", AD: "bb3 ~@5 a3@4 bb3@6 a3@2 bb3@2 ~@4", AE: "bb3 g3@5",
  AF: "~@4 eb4 ~@5 c4@2 bb3@6 d4@6", AG: "db4 ~@11", AH: "~@5 eb4 ~@6", AI: "~@6 eb3@3 ~ eb3@5 ~ eb3 ~ eb3@2 ~@4",
  AJ: "eb3 ~@11", AK: "~@16 g3 ~ g3@2 ~@4", AL: "c4@2 ~@14 c4 ~ c4 ~@5", AM: "b3 ~@5 b3@6", AN: "~ bb3@14 ~@5 bb3@3 ~",
  AO: "~@2 bb3@4 ~ bb3@3 ~@14",
  AP: "[~@17 d4@5 ~ d4@9 c4@3 bb3@6 c4@3 eb4@6 ab3@31 ~@8 d4@6 c4@3 d4@6 c4@3 bb3@2 ~@7 eb4@2 ~@2]/5",
  AQ: "~@9 f4@2 ~@13", AR: "~@18 eb4@2 ~ g4@2 ~", AS: "~ ab3@2 ~ ab3@4 ~@2 ab3@12 g3@2", AT: "~@19 ab3@2 ~@3",
  AU: "~@5 ab3@6 ~", AV: "~@4 ab3 ~@7", AW: "~@10 bb3 ~",
  AX: "[~@11 bb3@3 bb3@9 db4@2 ~@22 f3@5 ~@7 g3@5 ~@7 ab3@5 ~@7 bb3@5 ~@7 eb4]/4",
  AY: "~@5 eb4 ~@5 d4@4 eb4@2 c4 ~@5 eb4", AZ: "~@5 eb4 ~@5 d4@4 eb4@2 c4@2 ~@4 eb4",
  BA: "[~@5 eb4 ~@5 d4@4 eb4@2 c4@2 ~@4 eb4@31 ~@2 eb3@5 ~@11]/3",
})).s("gm_piano").gain(0.26)

// chords · string ensemble 1 · "Strings1"
const string_ensemble_1 = note(`<
  ~@2 A@2 B@2 C@2 D E ~@6 F G H I J K L M N@2 O P Q@2 R S T U V W X@2 Y Z AA AB AC@2 AD@2 AE AF AG AH AI AJ AK AL@2 AM
  AN AO AP AQ AR AS AT AU AV ~ AW@5 ~ AX@4 AY AZ BA@8 BB@5
>`.pickRestart({
  A: "[[d3,a5]@2 ~@4 [gb3,a3,a5]@2 ~@4 db5@4 [a3,d5]@2 b4 ~@5 [d3,a3,a5]@2 ~@4 [a3,a5] ~@5 db5@4 [gb3,a3,d5]@2 b3@5 gb4, gb4@42 b4 ~@5, [gb3,a3] ~@11 a2@2 ~@2 gb3 ~@7 gb3 ~@5 gb3@2 ~@4 a2@2 ~@10]/2", // D5 Gbm D5 A D Gbm
  B: "[[e3,a5]@2 ~@4 [g3,a3,a5] ~@5 db5@4 [g3,a3] ~ b4 ~@5 [e3,a5]@2 ~@4 [g3,a3,a5] ~@5 db5@4 [a3,d5]@2 b4 ~@5, g4@7 ~, [g3,a3] ~@11 a2@2 ~@2 d5@2 ~@6 [g3,a3] ~@11 a2@2 ~@2 g3 ~@7]/2", // A5 Gsus2 A5 Gsus2 D5 Gsus2
  C: "[[d3,gb3,a3,a4] ~@5 [gb3,a4]@2 ~@4 db5@4 [gb3,a3] ~ b4 ~@5 [d3,gb3,a3,a4] ~@5 [gb3,a4]@2 ~@4 db5@4 [a3,d5]@2 b3@5 ~, gb4@21 b4 ~@2, ~@6 a3 ~@5 a2@2 ~@2 d5@2 ~@12 a3 ~@5 a2@2 ~@2 gb3 ~@7]/2", // D Gbm D Gbm D5
  D: "[e3,g3,a3,gb4,a4] ~@5 [g3,a3,a4] ~@5 db5@4 [g3,a3] ~ b4 ~@5, g4, ~@6 a2 ~ d5 ~@3", E: "[e3,g3,a3,a4] ~@11",
  F: "~@4 d4 ~@5 b3@2 db4@4 d4@2 b3@4 db4@2", G: "d4@3 gb4 g4@8 gb4@6 f4@6",
  H: "e4 ~@5 e4@4 b3@2 d4@4 e4@2 b3@3 ~ d4@2", I: "e4@4 a4@15 ~@5", J: "~@4 gb4 ~@5 e4 ~ e4@4 gb4@2 e4@4 b3@2",
  K: "gb4@4 g4@6 ~ e4 b3@2 ~@4 db4@2 ~@4, ~@10 gb4@2 d4 ~@11", L: "d4@2 ~@4 d4@4 a4@5 ~ a4@2 gb4@4 e4@2",
  M: "a4@2 ~@10 a4@10 bb4 b4",
  N: "[~@4 e5 ~@5 d5@2 e5@4 gb4@2 a4@4 [c5,e5]@8 [b4,d5]@6 [g4,b4]@6 [gb4,a4]@6, c5@19 ~@29]/2", O: "d4, b4 ~", P: "e4",
  Q: "[gb4@36 ab4@6 a4@5 ~]/2", R: "a4@16 db5 ~@5 db4 ~", S: "ab4@4 b4@6 bb4@2 [ab4,a4] g4@11",
  T: "~@4 gb4 ~@5 e4 ~ gb4@4 b4@2 gb4@4 e4@2", U: "gb4 ~@3", V: "~@6 d4@3 ~ db4@5 ~ d4 db4 a3@2 ~@4",
  W: "db4@4 b3@6 ~@2 gb3@3 ~ b3@2 ~@6", X: "[~@6 d4@3 ~ db4@6 gb4 ~ a3@4 g3@7 ~ [a3,db4]@6 [b3,d4]@6 [db4,e4]@6]/2",
  Y: "[d4,gb4]@3 ~@3 f4@4 gb4@2 ~@4 f4@2 gb4@2 ~@2 ab5 ~", Z: "a5 ~@5 [db4,db5]@6 [d4,d5]@6 [eb4,eb5]@6",
  AA: "[e3,e4,e5]@11 f4 [e3,b5]@4 b5@2 e3@2 ~@2 gb4 f4, ~@4 g4@3 ~, ~@12 gb4 ~@3 e3 ~ a5 ~@5", // E E5
  AB: "[d3,b5] ~@5 e4@3 eb4@3, e4@7 ~@17", // G
  AC: "[~@6 [gb3,d6]@2 ~@4 [gb3,b3]@9 ~@3 e4@12 [bb3,gb4]@6 [g3,bb3,g4]@6, d4 ~, ~@6 b3 ~@15 [g3,bb3]@13 ~ g3@4 ~@8]/2", // D B5 Ebm Gm
  AD: "[~@6 [a3,d4] ~@5 [gb3,a3]@9 ~@9 [gb3,b3]@3 ~@15, a4@4 c5@3 ~, ~@6 d6@2 ~@14 [gb3,b3]@7 ~@19]/2", AE: "gb4 e4",
  AF: "d4@11 e4 gb4@11 ~, ~@12 f4 ~@11", AG: "[d4,d5] ~@5 [d4,d5] ~@5 [db4,db5]@4 [d4,d5]@2 [b3,b4]@2 ~@4",
  AH: "[d4,d5] ~@5 [d4,d5] ~@5 [db4,db5]@4 [d4,d5]@2 [b3,b4] ~@5", // D Db D B
  AI: "[d4,d5] ~@5 [d4,d5] ~@5 [db4,db5]@4 [d4,d5]@2 [b3,b4]@4 [db4,db5]@2", // D Db D B Db
  AJ: "d5@2 ~@4 [d4,d5]@4 [d4,d5]@2 [eb4,eb5]@3 ~ [eb4,eb5]@2 [f4,f5]@3 ~@3, d4 ~@23", // D Eb F
  AK: "g4 ~@2 [gb4,gb5]@2 [g4,g5]@3 [gb4,gb5] g4 ~@2, g5 ~@17 g5 ~@5", // Gb G Gb
  AL: "[[g4,g5]@4 bb4@6 g4@8 eb5@4 ~@6 [eb3,g5] ~@5 [ab4,f5]@2 g4@4 eb4@2 [eb3,d4,c6]@6, ~ bb5@5 ~@6, ~@22 bb4@12 eb3 ~ [eb3,eb5]@6 ~@6]/2", // G Eb Db Cm Eb
  AM: "[eb3,db4,bb5] ~@11", AN: "~@12 d4 eb4@11, c4@11 db4@2 ~@11, ~@5 g3 ~@6", AO: "f4@5 f3 g4@3 ab4@3",
  AP: "bb4@3 f5@2 [f4,bb5]@3 g5 f4 ~@2, ~@16 f4 ~ f5 ~@5", AQ: "bb5 ~@2 eb4@3 f4@3 gb4@3, f4 ~@23",
  AR: "f4@11 ~@5 [g2,f4,g5] ~ [g2,f4]@2 ~@4, ~@18 bb5 ~@5", // G7
  AS: "[c3,d6]@3 ~@13 [e3,g4,g5] ~ [e3,g4]@2 ~@4, g4@12 ~@6 bb5 ~@5", AT: "[b2,ab4] ~@5 [b2,ab4,ab5]@6, ab5 ~@23",
  AU: "~ [bb2,g4,g5]@16 ~@3 [bb2,g4]@4, ~@10 g5 ~", AV: "~@2 [bb2,g4]@5 [bb2,g4,eb6]@3 ~@14, ~ bb5 ~@10",
  AW: "[~@17 [eb3,d4,f5]@5 ~ [d4,f5]@9 [c4,eb5]@3 [bb3,c5]@6 [eb3,c4,eb5]@2 d4 [f3,eb4,g5]@6 f3@12 bb2@18 ~@9 [eb3,d4,f5]@6 [c4,eb5]@3 [eb3,d4,f5]@6 [c4,eb5]@3 [eb3,bb3,c5]@3 ~@6 [f3,eb4,g5]@2 ~@2, ~@23 eb3@8 ~ eb3@2 ~ eb3@5 ~@10 [ab3,c5]@30 ~@15 eb3@2 ~@7 eb3@2 ~@14]/5", // Dm Cm Bbsus2 Cm Dm Cm Dm Cm …
  AX: "[~@9 bb3@18 ~@15 bb3@2 ~ d4@18 eb4@18 [db4,f4]@15, ~@3 g3@12 ~@17, ~@9 bb5@2 ~@16 c4@18 bb3@36 ~@15, ~@42 g5 ~@2 bb5@2 ~@49]/4", // Db
  AY: "~ [eb4,gb4] [e4,g4] ~ ab5@6 [bb2,bb5]@12 [bb2,c6]@2, ~ [bb2,f5]@2 [f4,ab4]@19 [ab4,c5] ~, ~ bb2 ~@4", // Ebm Em Bb Bbsus2 Bb5 Fm Ab
  AZ: "~@7 [g4,bb4]@9 [f4,ab4]@8", // Gm Fm
  BA: "[~ [eb4,g4]@9 ~@9 [ab2,eb5]@2 ~@13 ab2@12 ~@10 f5@2 ~@34 [bb2,g5]@2 ~@13 bb2@2 ~ bb2@9 [c3,e4,ab4,ab5]@3 ~@21 f2@6 [eb4,eb5]@5 ~ g2@5 ~ [f4,f5]@5 ~ ab2@6 [g4,g5]@5 ~ bb2@6 [g4,bb5]@5 ~ [eb3,eb5], ~@10 [c4,eb4]@36 [b3,f4]@36 ~ [eb4,g4]@36 ~@73, ~@107 g5@12 ~@73]/8", // Eb Ab5 Eb Caug Eb F G Gm …
  BB: "[~@5 [g4,eb5]@3 ~@3 [g4,d5]@4 eb5@2 [g4,c5]@2 ~@4 [eb3,eb5]@2 ~@4 eb5@2 ~@4 [bb2,g4]@3 ~ eb5@2 [g4,c5] ~@5 [ab4,eb5] ~@5 [ab4,eb5]@2 ~@4 [bb2,ab4,d5]@4 eb5@2 [ab4,c5] ~@5 [b2,gb4,eb5]@33 [eb2,eb4]@4 ~@12, ~@11 bb2@2 ~@2 g4 ~@7 g4 ~@5 g4 ~@5 d5@4 g4 ~@7 f3@2 ~@14 ab4 ~@56]/5", // Cm G5 C5 Eb C5 Ab5 Bb7 Ab …
})).s("gm_string_ensemble_1").gain(0.35)

// other · string ensemble 2 · "Strings2"
const string_ensemble_2 = note(`<
  ~@18 A B C D E F G@2 ~@3 H I J K L ~@14 M N O P Q R S T ~@2 U V ~@6 W@3 X@2 ~@20
>`.pickRestart({
  A: "gb5@2 ~@4 gb5@4 d5 ~@13", B: "gb5@2 b5@7 ~@3", C: "~@4 e5 ~@5 db5 ~ db5@4 e5@2 db5@4 d5@2",
  D: "e5@4 a5@7 g5 e5@2 ~@4 e5 ~@5, ~@12 gb5 ~@11", E: "gb5@2 ~@4 gb5@3 ~ db6@5 ~ db6@2 a5@4 gb5@2",
  F: "db6@2 ~@10 b5@10 db6 [d6,eb6]", G: "[e6@17 ~@5 e6@8 d6@5 ~ b5@6 a5@6]/2", H: "~@12 d5@5 ~ d5@6",
  I: "gb5@15 ~ e6 ~@5 a5 ~", J: "a5@3 ~ a5@19 ~", K: "~@4 g5 ~@5 gb5 ~ g5@4 b5@2 g5@4 ~@2", L: "g5 ~@7",
  M: "gb5@2 ~@4 gb5 ~@5 gb5@4 gb5 ~ gb5 ~@5", N: "gb5 ~@5 gb5 ~@5 gb5@3 ~ gb5 ~ gb5 ~@5",
  O: "g5 ~@5 g5 ~@5 g5@3 ~ g5@2 e5@3 ~ e5@2", P: "f5@2 ~@4 f5@3 ~ f5@2 ab5@3 ~ ab5 ~ ab5@2 ~@4",
  Q: "bb5 ~@2 a5@2 bb5@3 a5 bb5 ~@2", R: "bb5 ~@11", S: "~@5 c6 bb5@2 g5 f5@3", T: "eb5 ~@11",
  U: "~@10 g5@5 ~ g5 ~ g5@2 ~@4", V: "g5 ~@11", W: "[~@17 f5@5 ~ f5@9 eb5@3 d5@6 eb5@2 ~ f5@6 ~@22]/3",
  X: "[~@17 f5@5 ~ eb5@3 f5@6 eb5@3 d5@2 ~@7 f5@3 ~]/2",
})).s("gm_string_ensemble_2").gain(0.19)

// chords · brass section · "Brass"
const brass_section = note(`<
  ~@2 A@2 B@2 C@3 ~@15 D@2 E F@3 G H@3 ~@4 I J K L M N O P@2 Q R@4 S T@2 U V W X@2 Y@2 Z AA AB ~ AC@5 ~ AD@6 AE@6 AF
  AG@6
>`.pickRestart({
  A: "[~@16 b4 ~@23 b4 ~ b4@6, gb5@7 ~]/2", B: "[~@16 b4 ~@23 b4 ~@7, g5@47 ~]/2", C: "~@16 b3 ~@7",
  D: "[~@4 c5 ~@5 c5 ~ c5@2 ~@8 c5@8 ~@6 g4@6 gb4@6, ~@5 b4@2 ~]/2", E: "g4 ~", F: "[~@23 a4@36 ~ b4@6 c5@6]/3",
  G: "db5", H: "[~@12 g4@11 gb4@29 ~@20]/3", I: "~@22 f5 ~", J: "gb5@2 ~@4 db5@6 d5@6 eb5@5 ~",
  K: "e5@12 e5@3 ~ e5 ~ e5@2 ~@4, c5@5 ~ g5@6", L: "e5@3 eb5, gb5 ~@23", M: "~@3 g5 ~@8, d5@23 ~", N: "e5",
  O: "~@2 a5 ~@5, gb5", P: "[g5@23 gb5@12 ~ e5@12]/2", Q: "d5 gb5",
  R: "[a4@2 ~@4 a4 ~@5 a4@3 ~ a4 ~ a4 ~@5 a4 ~@5 a4 ~@5 a4@3 ~ a4 ~ a4 ~@5 b4 ~@5 b4 ~@5 a4@4 b4@2 g4@4 a4@2 ab4@2 ~@4 ab4@3 ~ ab4@2 [c5,eb5]@3 ~ c5 ~ f5@3 ~@3, d5@73 ~@5 d5 ~@11 c5 ~@5]/4", // Cm
  S: "[c5,g5] ~@5 gb5@4 [c5,g5]@5 ~ c5 ~ g5@2 ~@4, ~@6 c5@2 ~@7 gb5@3 c5 ~@5", // C5
  T: "[c5 ~@3 eb5@20 ~@4 eb5 ~@5 c5@2 bb4@6 [d5,f5]@6, g5@41 ~@7]/2", U: "~@11 db5@12 ~", V: "c5", W: "b4",
  X: "[~@6 d5@4 g5@6 eb5@2 d5 ~@5 g5@2 ~@4 g4@6 ab4@5 ~ a4@6, bb4@5 ~@3]/2",
  Y: "[~@16 d5 ~ d5 ~@5 e5@2 ~@14 e5 ~ e5 ~@5, bb4@47 ~]/2", Z: "b4@5 ~@7 [b4,eb5]@12, eb5 ~@11",
  AA: "~ [bb4,d5]@15 ~@4 [g4,g5]@4", AB: "~@2 bb4@4 ~ [eb5,eb6]@4 ~@13, ~ bb5@3 ~@20",
  AC: "[~@17 d5@5 ~ d5@9 c5@3 ~@6 c5@3 eb5@6 ab4@30 ~@9 d5@6 c5@3 d5@6 c5@4 ~@8 eb5@2 ~@2]/5",
  AD: "[~@9 bb4@17 ~@16 eb5 ~@2 d5@18 ~ eb5@18 ~@15 db5@2 ~ f5@5 ~ f5@12 c6@10 bb5@8 ab5@8, ~@9 g5 ~@17 c5@18 g5@2 ~@35 f5@18 ab5@18 g5@2 ~@24]/6",
  AE: "[~ g5@9 ~@9 c5@2 ~@35 eb5@2 ~@34 f5@2 ~@13 f5@3 eb5@9 [e5,ab5]@2 ~@23, ~@10 eb5@36 f5@36 ~ g5@35 ~@26]/6", // E
  AF: "~@5 c5@4 ~@8 d5@4 ~@3",
  AG: "[~@5 eb5@5 ~@7 eb5@4 ~@2 bb4 ~@5 bb4 ~@5 bb4@3 ~ bb4 ~ bb4 ~@5 bb4 ~@5 bb4 ~@5 bb4@3 ~ bb4 ~ bb4 ~@5 c5 ~@5 c5 ~@5 bb4@4 c5@2 ab4@2 ~@5 [eb5,gb5]@32 [eb2,eb3,eb4]@6 ~@10, ~@23 g5@47 ~ ab5@23 ~ [b3,gb4,b4]@32 ~@17]/6", // Ebm Eb B5
})).s("gm_brass_section").gain(0.46).pan(0)

// chords · brass section · "Brass" · soft notes
const brass_section_soft = note("<~@6 A@2 B@2 ~@14 C@2 D@2 ~@3 E ~@23 F ~@10 G@7 ~@18>".pickRestart({
  A: "[gb4@42 b3@5 ~]/2", B: "[g4@13 ~@11]/2", C: "[~@21 e5@9 d5@5 ~@7 a4@6]/2", D: "[b4@23 bb4@24 ~]/2",
  E: "~ ab4@11 ~@12", F: "eb5@11 ~@13", G: "[~@17 bb4@135 ~@16]/7",
})).s("gm_brass_section").gain(0.27).pan(0)

// other · trumpet · "Tenor Sax"
const trumpet = note(`<
  ~@2 A@2 B C D@2 E F ~@7 G H I J K L M N@2 O P Q@2 R S T U ~@4 V W X Y Z ~ Z ~ AA AB AC AD AE AF AG AH AI AJ ~@2 AK AL
  AM AN AO AP AQ ~ AR@5 ~ AS AT ~@2 AU ~ AV ~ AW AX AY ~ AZ BA@2 BB@4
>`.pickRestart({
  A: "d5 ~@5 d5 ~@9 a4@2 gb4 ~@5", B: "d5 ~@5 d5@2 ~@8 a4@2 g4 ~@5", C: "d5 ~@5 d5 ~@9 a4@2 g4 ~@5",
  D: "d5 ~@5 d5 ~@9 a3@2 gb3 ~@5", E: "d5 ~@5 d5 ~@9 a3@2 g3 ~@5", F: "d5 ~@11", G: "~@2 d4 c4",
  H: "b3 ~@2 b3@2 gb3 a3@2 b3 gb3@2 a3", I: "b3@3 ~ gb4@14 ~@6", J: "~@4 d4 ~@5 b3 ~ b3@4 db4@2 b3@4 g3@2",
  K: "d4@3 ~ e4@6 d4 db4 g3@2 ~@4 g3@2 ~@4, ~@12 b3 ~@11", L: "b3@2 ~@4 b3@3 ~ gb4@5 ~ gb4@2 d4@4 db4@2",
  M: "gb4@2 ~@10 gb4@11 [g4,ab4]", N: "[~@4 gb4 ~@5 gb4 ~ gb4@3 ~@7 a4@8 g4@6 e4@5 ~ e4@6, a4@3 ~@5]/2", O: "b3",
  P: "bb3", Q: "[a3@6 ~ gb4, ~@18 f4@5 ~]/2", R: "e4@12 ~@4 a4 ~@7", S: "eb4@4 gb4@7 [e4,f4] eb4@11 ~",
  T: "~@4 d4 ~@5 db4 ~ d4@4 gb4@2 d4@4 d4@2", U: "db4@5 ~@19", V: "~@22 c5 ~", W: "db5@2 ~@4 a3@4 ~@2 a3@5 ~ a3@6",
  X: "c4@10 ~ [db4,d4] ~@4 c5 ~ c5 ~@3 eb4 d4, ~@4 c5 ~@3, ~@13 e4@9 ~@2", Y: "c4 ~@5, c5 ~@23", Z: "~@3 gb5 ~@8",
  AA: "d4 db4", AB: "b3@11 c4 db4 d4@11", AC: "gb4 ~@5 gb4 ~@5 gb4@4 gb4 ~ gb4@2 ~@4",
  AD: "gb4 ~@5 gb4 ~@5 gb4@3 ~ gb4 ~ gb4 ~@5", AE: "g4 ~@5 g4 ~@5 g4@3 ~ g4 ~ g4@3 ~ g4@2",
  AF: "f4 ~@5 f4@3 ~ f4@2 ab4@3 ~ ab4 ~ ab4@2 ~@4", AG: "bb4@2 ~@4 a4@4 bb4@6 a4@2 bb4 ~@5", AH: "bb4 ~@3 bb4@20",
  AI: "~@4 bb4 ~@5 ab4@2 g4@6 ab4@6", AJ: "g4 ~@11", AK: "~@6 bb4@3 ~ [eb4,bb4]@5 ~ [eb4,bb4] ~ [eb4,bb4]@2 ~@4",
  AL: "bb4 ~@2 bb3@3 c4@3 db4@3, eb4 ~@23", AM: "d4@11 ~@5 [d4,bb4] ~ d4@2 ~@4, ~@18 bb4 ~@5",
  AN: "e4@12 ~@4 [e4,c5] ~ e4@2 ~@4, c5@2 ~@16 c5 ~@5", AO: "eb4 ~@5 [eb4,b4]@6, b4 ~@23",
  AP: "~ [d4,ab4]@15 ~@4 d4@3 ~", AQ: "~@2 d4@4 ~ d4@3 ~@14",
  AR: "[~@17 g4@5 ~ g4@8 ~ g4@2 ~ g4@5 ~ g4@2 ~ ab4@6 f4@31 ~@8 g4@6 g4@2 ~ g4@5 ~ g4@2 ~ g4@4 ~@5 ab4@2 ~@2]/5",
  AS: "~@9 bb4@2 ~@13", AT: "~@18 bb4@2 ~ d5@2 ~", AU: "~ f4@2 ~ ab4@6 bb4@12 db5@2", AV: "~@19 eb4@2 ~@3",
  AW: "~@4 b4 ~@7", AX: "~@10 bb4 ~", AY: "~@11 bb4@12 bb4", AZ: "~@5 [c4,ab4]@5 ~@7 [d4,bb4]@5 ~@2",
  BA: "[~@5 [eb4,c5]@5 ~@7 [eb4,c5]@4 ~@2 eb4@2 ~@4 eb4@2 ~@4 [d4,g4]@4 eb4@2 [c4,g4]@2 ~@4 [eb4,g4], ~@23 g4 ~@5 g4 ~@9 g4 ~@8]/2", // Cm G5 C5 Eb
  BB: "[~@5 [eb4,g4] ~@5 [d4,g4]@4 eb4@2 [c4,g4] ~@5 eb4@2 ~@4 eb4@2 ~@4 [d4,ab4]@4 eb4@2 [c4,ab4]@2 ~@4 [eb4,gb4]@32 ~@17, ~@15 g4 ~@7 ab4 ~@5 ab4 ~@9 ab4 ~@56]/4", // Eb G5 C5 Ddim Fm Ebm
})).s("gm_trumpet").gain(0.43)

// other · baritone sax
const baritone_sax = note(`<
  ~@18 A B C D E F G@2 H@2 I@2 J K L M ~@3 N O P Q R ~@4 S T U V W X Y Z@2 AA AB AC AD AE AF AG AH AI AJ ~ AK@5 ~ AL@5
  AM AN@5 AO@8
>`.pickRestart({
  A: "a3 ~@5 a3@4 a3@2 gb3@4 a3@2 d3@4 gb3@2", B: "a3@2 d4@7 ~@3", C: "~@4 b3 ~@5 g3 ~ g3@4 b3@2 g3@4 gb3@2",
  D: "b3@4 db4@6 ~ a3 g3@2 ~@4 g3@2 ~@4, ~@5 b3 ~@6", E: "a3 ~@5 a3@3 ~ d4@5 ~ d4@2 b3@4 a3@2",
  F: "e4@2 ~@10 d4@11 [e4,f4]", G: "[gb4@17 ~@5 gb4@7 ~ gb4@6 c4@5 ~ c4@5 ~]/2", H: "g3@23 ~",
// … 92 more lines

More by Frank Sinatra