Strudelify
On Broadway cover art

On Broadway

George Benson

KeyG majorTempo135 bpm
0:00/0:00
// On Broadway — George Benson
// 135 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 5 "Trumpet" named as a brass, played on trumpet (its acoustic bass patch is not one); ch 6 "Brass" named as a brass, played on brass section (its pad bowed patch is not one)
// note: duplicate parts dropped: ch 3 "Bass Slap" slap bass 1 (copy of ch 2 "Acoustic Bass" acoustic bass)
// note: Full arrangement: all 109 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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
const piano = note(`<
  A B C D@2 E F G H I J@2 K L M@2 N O N P H I Q G R S T U V W X Y Z O AA P AB AC AD AE AF AG AH AI AJ AK@2 AL AM AN AO
  AP@2 AQ AR AS AT AU AV AW AX AY@2 AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS P BT BU@3 BV BW BX A
  BY@2 BZ CA CB CC BV BW BX A BY@2 BZ CA CB ~@2
>`.pickRestart({
  A: "g2@2 ~ d2 ~ f2@2 g2", B: "~ a#4 [b4,g5]@2 g4@2 [d2,f4]@2 [g4,b4]@2 f4 [f4,g4] d4@2 [g2,a#3]@2, g2@2 ~@3 f2@2 ~",
  C: "b3 g4 ~ d2 ~ [d4,a#4] g4 [g2,f4], g2@2 ~@3 f2@2 ~", // Gm G7
  D: "[d4 c4 a#3@2 ~@2 d2@2 ~@2 g3@2 a#3 ~ g2@2 g2@4 ~@2 d2@2 ~@2 g3 b3!3 [g2,b3,d4]@2, g2@4 ~@6 f2@3 b3@11 ~@2 f2@4 ~@2, ~@7 g4@5 ~@2 d4 ~]/2", // G
  E: "g3 f3!2 [d2,d3] ~@2 g3 [g2,f3], g2 ~ f3 ~, ~@5 f2@2 ~", // D G7
  F: "g3@2 g3@2 ~@2 d2@2 ~@4 [a#5,g6] b5 [g2,g5]@2, g2@2 ~@3 e2@2 ~", // D# G
  G: "g2@2 [b3,d4,g4] d2 ~ f2@2 g2, ~@3 [a3,c4,f4]@5", H: "~ d4 b4 [d2,g4] a4 [f2,d5]@2 [g2,d4,g4,b4], g2 ~@3",
  I: "~ [b3,d4,g4]@2 d2 ~@3 g2, g2@2 ~ [a3,c4,f4]@3 [c4,f4,a4]@2, ~@5 f2@2 ~", // G F
  J: "[[b3,d4,g4]@3 d2 ~@2 [g3,b3] g2 g2@2 [g3,b3] d2 ~ f2@2 g2, g2@2 ~ d4@13, ~@3 [f3,a3]@3 ~ [f3,a3]@3 ~ [f3,a3]@5, ~@5 f2@2 ~@9]/2", // G F
  K: "~ d4 b4 [d2,g4] a4 f2@2 g2, g2@2 ~@3 d5@3", // G5
  L: "[d4,g4,b4] [b3,d4,g4] ~ d2 ~@3 g2, g2@2 ~ [a3,c4,f4]@3 [c4,e4,a4]@2, ~@5 f2@2 ~", // G F Am
  M: "[[b3,d4]@3 d2 ~ f2@2 g2 ~ [b3,d4] ~ d2 ~ f2@2 g2, g4, g2@2 ~ [a3,c4]@5 g2@2 ~ [a3,c4]@5]/2", // Bm Am
  N: "~ c5 e5 [g2,c5] d5 [a#2,g5]@2 [c3,g4,c5,e5], c2 ~@3", O: "~ [e4,g4,c5] ~ g2 ~ a#2@2 c3, c2@2 ~ [f4,a#4,d5]@5",
  P: "c2 [e4,g4,c5] ~ [d2,d3,d4,d5]!2 ~ [f2,f3,f4,f5] [g2,g3,g4,g5]", Q: "[b3,d4]@3 d2 ~ f2@2 g2, g4, g2@2 ~ [a3,c4]@5",
  R: "~ d5 [d5,b5] [d2,g5] [f5,a5] [f2,d6]@2 [g2,d5,g5,b5], g2 ~@3", // G G5 F Dm G
  S: "~ [b4,d5,g5]@2 d2 ~@3 g2, g2@2 ~ [a4,c5,f5]@3 [c5,e5,a5]@2, ~@5 f2@2 ~", // G F Am
  T: "[b4,d5,g5]@3 d2 ~ f2@2 g2, g2@2 ~ [f4,a4,d5]@5", // G Dm
  U: "~@2 [a#4,g5] b4 g4@2 [d2,f4]@2 d4 c4 a#3@2 b3@2 [g2,g4]@2, g2@2 ~@3 f2@2 ~", // D# Dm G
  V: "~ d5 [d5,b5] [d2,g5] [f5,a5] f2@2 g2, g2@2 ~@3 d6@3", // G G5 F
  W: "[d5,g5,b5] [b4,d5,g5]@2 d2 ~@3 g2, g2@2 ~ [a4,c5,f5]@3 [c5,e5,a5]@2, ~@5 f2@2 ~", // G F Am
  X: "g2@4 ~@2 d2@2 ~@4 a#5 b5 g6 b5, [b4,d5,g5]@3 ~, ~@5 f2@2 g2", // G
  Y: "g5 f5 d5 c5 a#4 b4 g5 b4 g4 f4 d4 c4 [a#3,b3] ~ [g2,g4]@2, g2@2 ~ d2 ~ f2@2 ~", // Bmaj7 G
  Z: "[c2,g3,e4]@2 e5 [g2,c5] d5 [a#2,g5]@2 [c3,g4,c5,e5], ~@2 g4@2 [f4,a#4]@3 ~", // C C5 D# C A#5
  AA: "c2@2 e5 [g2,c5] d5 [a#2,g5]@2 [c3,g4,c5,e5], ~@2 g4@2 [f4,a#4]@3 ~", // C5 D# C A#5
  AB: "~@2 g5@2 [a#5,d6] b5 [d2,g5]@2 a5@2 [f2,d6]@4 [g2,d5,b5]@2, g2@4 ~@4 g#5 ~@5 a#5 ~", // A# G5 Dm G
  AC: "~ [b4,d5,g5]@2 d2 ~@3 g2, g2@2 ~ [a4,c5,f5]@3 [c5,a5]@2, ~@5 f2@2 ~", // G F
  AD: "[b4,g5]@3 d2 ~ g4 [b4,d5] [g2,b4,d5], g2@2 ~@3 f2@2 ~, a#4 ~@11 a#4 ~ a#4 ~", AE: "[g2,g4]@2 ~@2 g3 a#3 b3 g4",
  AF: "b3!2 g3 d2 ~ f2@2 g2, g2 ~@3, a#3 ~ a#3 ~@13",
  AG: "~@2 g4@2 [b4,d5]@2 [d2,c5,e5]@2 d5 [g4,b4] f4@2 d4@2 [g2,c4]@2, g2@4 a#4 ~@5 f2@4 ~@2", // Bm C G C5
  AH: "a#3 b3 g4 d2 ~ f2@2 g2, g2 ~@3", AI: "~ g4 g5 [d2,g4] [a#4,d5] g4 [c5,e5] [g2,g4], g2@2 ~@3 f2@2 ~",
  AJ: "[g2,a#4,d5]@2 g4 d2 ~ f2@2 g2", // Gm
  AK: "[~ [d4,f#4,a#4] [c4,f#4,a4] [d2,g3] b3 g4 g3 [g2,a#3] [g2,b3]@2 g3 d2 ~ f2@2 g2, g2@4 ~@4 a#3 ~ f2@4 d4@6 ~@12]/2", // Daug F#dim G5 Gm G
  AL: "~ g4 b4 [d2,d5] g5 f#5 f5 [g2,d#5], g2@4 a#4 ~@5 f2@4 ~@2", // D Cm
  AM: "e5 c6 c5 [g2,a#4] e5 g4 a#4 [c3,g4], c2@2 ~@3 a#2@2 ~", AN: "e4 c5 c4 [g2,a#3] ~ a#2@2 c3, c2 ~@3, d#4 ~@15",
  AO: "[f3,a#3,d4] [g3,c4,e4]!2 g2 [g3,c4,e4] ~ [f3,a#3,d4] c3, c2@2 ~@3 a#2@2 ~", // A# C A#
  AP: "[[c2,f3,a#3,d4] [c3,g3,c4,e4] [g2,g3,c4,e4] c3 [d2,a3,d4,f#4] d3 f2 g2 g2@2 [d4,b4] d2 g3 ~ b3 g2, ~@6 [d4,d5]@4 ~@3 f2@2 ~, ~@28 a#3 ~@3]/2", // A# C D G D
  AQ: "[g2,g3]@2 f3 d2 f3!2 g3 [g2,g3], ~@5 f2@2 ~", AR: "[g2,b3,d4]@2 [b3,d4] d2 ~ f2@2 g2, a#3 ~@3 a#3 ~@11",
  AS: "~ g3 a#3 [d2,b3] d4 g3 [c#4,f4] [g2,d4,f4], g2@2 ~@3 f2@2 ~", // G C# G7
  AT: "~ [c#5,f5] [d5,f5] [d2,d5,f5] [c5,e5] g4 [b4,d5] [g2,g4], g2@2 ~@3 f2@2 ~, ~@12 a#4 ~@3", // C# Dm C Bm G
  AU: "[c#5,f5] [d5,f5]!2 [d2,d5,f5] [c5,e5] g4 [b4,d5] [g2,c#5,f5], g2@2 ~@3 f2@2 ~, ~@12 a#4 ~@3", // C# Dm C Bm Gm7b5
  AV: "[d5,f5]!2 [c5,e5] [d2,g4] [b4,d5] g4 [c#5,f5] [g2,d5,f5], g2@4 ~@4 a#4 ~ f2@4 ~@2", // Dm C G5 Bm C# G7
  AW: "[c5,e5]@2 g4@2 [a#4,b4,d5] ~ [d2,c5,e5]@2 [b4,d5]@2 g4@2 [g4,g5]@2 [g2,b4,d5]@2, g2@4 ~@4 a#4 ~ f2@4 a#4 ~", // C A# C Bm G
  AX: "[g2,g4]@2 g4 d2 ~@2 g4 g2, ~@2 f4 ~, ~@5 f2@2 ~", // G
  AY: "[g2@4 ~@2 d2@2 ~@2 f2@4 g2@2 ~@2 g5 [d5,f5] c5@2 [d2,a#4]@2 b4@2 g4@2 f4@2 [g2,g4]@2, ~@7 [d5,b5]@2 ~@7, ~@8 g2@2 ~@3 f2@2 ~]/2", // Dm Gm G
  AZ: "[d4,b4] g4 [d4,b4] d2 ~@3 g2, g2 ~ g4 f4, ~@5 f2@2 ~", // G
  BA: "[d#4,e4] ~ c5@2 c4@2 g2@2 d4@2 g3@2 [c4,e4]@2 c3@2, c2@2 ~ a#3@2 a#2@2 ~", // Emaj7 C
  BB: "~ g3 [a#3,d4] [g2,c4,e4] ~@2 [g3,g4] c3, c2 ~ [a#3,d4] ~, ~@5 a#2@2 ~", // A# C G A#
  BC: "e5 c6 c5 [g2,a#4] g4 f4 d#4 [c3,e4], c2@2 ~@3 a#2@2 ~, d#5 ~@15", // Gm C
  BD: "[c2,g4]@2 ~ [d2,d3,d4,d5]!2 ~ [f2,f3,f4,f5] [g2,g3,g4,g5]", // C5 D F G
  BE: "g2@2 ~ d2 ~ f2@2 g2, ~@6 [b3,e4,g4]@9 ~, ~@6 a#3 ~@9", // Em
  BF: "g2@2 [c4,e4] [d2,b3,d4] ~@2 f3 [g2,g3], ~@6 a#3 ~ g3@4 ~@4, ~@5 f2@2 ~", // C G
  BG: "g2@2 ~ d2 ~ f2@2 [g2,g4,d5,g5], ~@14 c#5 ~", BH: "g2@2 [g3,c4,e4] d2 ~ f2@2 g2, ~@3 [f3,b3,d4]@5",
  BI: "~ d4 b4 [d2,g4] c4 f2@2 g2, g2 ~ [f4,a4]@2, ~@5 d5@3", // G5 F
  BJ: "[d4,g4,b4] ~ [b3,d4,g4] d2 ~@3 g2, g2@2 ~ [a3,c4,f4]@3 [c4,f4,a4]@2, ~@5 f2@2 ~", // G F
  BK: "[b3,d4,g4]@3 d2 ~ f2@2 g2, g2@2 ~ [f3,a3,d4]@5", // G Dm
  BL: "~ g4 [d5,g5] [d2,g4] [b4,d5] g4 ~ g2, g2@4 c#5 ~@3 a#4 ~ f2@4 ~@2, ~@3 f4", // G5 Bm
  BM: "~ d4 [d4,b4] [d2,g4] c4 f2@2 g2, g2 ~ [f4,a4]@2, ~@5 d5@3", // G G5 F
  BN: "[d4,g4,b4] [b3,d4,g4]@2 d2 ~@3 g2, g2@2 ~ [a3,c4,f4]@3 [c4,f4,a4]@2, ~@5 f2@2 ~", // G F
  BO: "g2@4 ~@2 d2@2 ~@4 b5 g5 f5 d5, [b3,d4,g4]@3 ~, ~@5 f2@2 g2", // G
  BP: "c5 a#4 b4@2 g4@2 [d2,f4]@2 ~@4 [d#4,e4] ~ [g2,g4]@2, g2 ~ c4 ~, ~@5 f2@2 ~", // Dm Emaj7 G
  BQ: "~ g4 e5 [g2,c5] f4 a#2@2 c3, c2 g4 [a#4,d5]@2, ~@5 g5@3", // C5 A#
  BR: "[g4,c5,e5] ~ [e4,g4,c5] g2 ~ a#2@2 c3, c2@2 ~ [f4,a#4,d5]@5", // C A#
  BS: "~ g4 e5 [g2,c5] f4 [a#2,g5]@2 [c3,g4,c5,e5], c2@2 g4@2 [a#4,d5]@3 ~", // C5 D# C A#
  BT: "~ d4 [d4,b4] [d2,g4] c4 [f2,d5]@2 [g2,d4,g4,b4], g2@2 ~@2 [f4,a4]@3 ~", // G G5 Dm G F
  BU: "[~ [b3,d4,g4] ~ d2 ~@3 g2 g2@2 ~ d2 ~ f2@2 g2 g2@2 ~ d2 ~@2 b3 [g2,d4], g2@4 ~@2 [a3,c4,f4]@6 [c4,f4,a4]@8 [b3,d4,g4]@24 a#3 ~@3, ~@5 f2@2 ~@14 f2@2 ~]/3", // G G5 F G
  BV: "[g2,b3]@2 b3 d2 ~@2 [d4,f4,b4] [g2,g4], a#3 ~@3 a#3 ~@5 f2@4 ~@2", // G Bdim G
  BW: "g2@4 ~@2 d2@2 b5 g5 f5 d5 c5 b4 g4 f4, ~@5 f2@2 g2",
  BX: "d4 f4 g4@2 ~@2 d2@2 ~@4 [d4,b4]@2 [g2,g4]@2, g2@2 ~@3 f2@2 ~, ~@12 a#4 ~@3", // G
  BY: "[b5,d6]!3 [d2,b5,d6] [b5,d6]!3 [g2,b5,d6], g2@2 ~@3 f2@2 ~, a#5 ~@15", // Bm G Bm G
  BZ: "[g2,g5]@2 [d6,g6] d2 ~ f2@2 g2, ~@4 c#6 ~@11", CA: "g2@2 ~ d2 ~ d4 f4 [g2,g4], ~@5 f2@2 ~", CB: "[g2,g4] ~@7",
  CC: "g2@2 ~ d2 ~@2 b3 [g2,d4], ~@5 f2@2 ~, ~@12 a#3 ~@3", // G5
})).s("gm_piano").gain(0.76).pan(0.4)

// bass · acoustic bass
const bass = note(`<
  ~@8 A@2 B C@2 D E F@2 G@5 E H@2 I J@2 K D L@2 M@6 N O@2 P Q@2 O R O S T@2 U V W@2 X@3 Y Z AA@3 AB S AC@2 AD@4 AE@3 AF
  E O AG D AH S AI AJ@5 AK AL@2 AM@2 AN D AO@2 AP@2 AQ@2 AR@2 AS D AO@2 AT@2 AU ~
>`.pickRestart({
  A: "[g1@7 g1@2 g1@2 d2@2 f1!2 g1]/2", B: "g1@3 d2@2 f1!2 g1", C: "[g1@2 g1 d2@2 f1@2 g1@5 g1@2 f1@2]/2",
  D: "g1 g1@2 d2@2 f1!2 g1", E: "g1@3 d2@2 f1@2 g1", F: "[g1 g1@2 d2@2 f1@2 g1@7 a#1 c2]/2",
  G: "[~ c2@2 g1@2 a#1@2 c2@7 a1 c2@2 e1@2 d2 d2@2 f1 g1@5 d2@2 g#1 g1@2 g1@2 d2@2 f1!2 g1]/5",
  H: "[g1@2 b1 d2@2 f1@2 g1@5 g1@2 f1 g1]/2", I: "~ g1@2 d2@2 f1!2 g1", J: "[g1@3 d2@2 f1@2 g1@2 g1@7]/2",
  K: "g1@2 g1 f1", L: "[g1@3 d2@2 f1@7 c2@2 d2@2]/2",
  M: "[c2@3 g1 f1 a#1@2 c2@2 c2@2 g1@2 a#1@2 c2@4 g1 f1 a#1@2 c2@2 e1@2 d2 d2@2 f1 g1@5 g1@2 g#1 g1@2 g1@2 d2@2 f1!2 g1]/6",
  N: "g1@3 d2@3 f1 g1", O: "g1", P: "g1@2 b1 d2@5", Q: "[g1@5 a1 g1 f1]/2", R: "a#1 g1 d1@5 g1", S: "g1@3 e1",
  T: "[c2@7 b1]/2", U: "c2!2 g1@2 g1@2 a#1@2", V: "c2!2 g1@2 d2@2 f1 g1", W: "[g1@7 d2]/2",
  X: "[g1@12 g1@2 f1 g1@2 g1@2 d2@3 f1@2]/3", Y: "g1 g1@2 d2@3 f1 g1", Z: "g1 g1@5 f1 g1",
  AA: "[g1@3 d2@3 f1 g1@13 g1@2 e1 g1]/3", AB: "g1!2 g1@6", AC: "[b1@4 g1@2 a#1@5 g1@2 a#1 a#1@2]/2",
  AD: "[b1@10 c2 d2 d2@2 f1 g1@4 b1@2 f1@2 g1@4 d2@4 ~]/4", AE: "[g1@6 f#1 g1@3 g1 d2@2 f1@2 g1@5 c2 f1@2 g1]/3",
  AF: "g1@2 b1 d2@2 f1!2 g1", AG: "g1@2 d2@2 c2 f1@2 g1", AH: "g1@3 d2@2 f1@3", AI: "g1@2 b1 g1 f1 a#1@2 c2",
  AJ: "[c2@2 e1 g1@2 a#1@2 c2@4 g1 f1 a#1@2 c2@2 e1@2 d2 d2@2 f1 g1@5 c2 f1@2 g1@2 g1@2 d2@2 f1!2 g1]/5",
  AK: "g1@2 b1 d2@2 f1@2 g1", AL: "[g1@3 d2@2 f1@5 b1@2 g1@2 f1@2]/2", AM: "[g1@6 e1 f1]/2", AN: "g1@3 f#1",
  AO: "[g1 g1@2 d2@2 f1!2 g1@9]/2", AP: "[g1@6 g1 e1]/2", AQ: "[g1@3 d2@2 f1@5 g1@2 e1@2 f1@2]/2", AR: "[f1@6 e1 f1]/2",
  AS: "f#1@2 e1 f#1", AT: "[g1@7 e1]/2", AU: "g1 ~@15",
})).s("gm_acoustic_bass").gain(0.55)

// chords · trumpet
const trumpet = note("<~@27 A ~@3 B C D E F G@2 H ~@33 I J K L M N O P Q R S T U V W X ~@21>".pickRestart({
  A: "[b3,d4,g4]!2 ~ [b3,d4,g4] ~@2 [c4,f4,a4]@6 ~@2 [c4,f4,a4] ~", B: "[g3,b3,d4] ~@7",
  C: "[g3,c4,e4]@3 [c4,d4,g4] [d4,f4,a#4] [a#3,d4,f4,g4]@2 [g3,c4,e4]", // C Csus2 A# Gm7 C
  D: "[g3,c4,e4]@3 [a#3,d4,f4]@2 [d4,f4,a#4]@2 [a#3,d4,f4]", // C A#
  E: "~@3 [g3,c4,d4] [a#3,d4,f4] [d4,f4,g4,a#4]@2 [c4,e4,g4]", // Gsus4 A# Gm7 C
  F: "[g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [a#3,d4,g4] ~@3 [a#3,d4,g4] ~ [c4,d#4,g4]!2", // C Gm Cm
  G: "[[b3,d4,g4]@7 [g3,b3,d4]@2 [g3,b3,d4]@2 [a3,c4,f4]@2 [a3,c4,f4]!2 [c4,e4,a4]]/2", // G F Am
  H: "[b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,f#4] [b3,d4,g4]", // G Bm G
  I: "[b3,d4,f4]!2 ~ [b3,d4,f4] ~ [b3,d4,f4] [b3,d4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@4 [d4,f4,a4] ~", // Bdim F Dm
  J: "[g3,b3,d4]@2 [g3,b3,d4] [c4,f4,a4]@2 [c4,f4,a4] [a3,c4,f4] [c4,f4,a4]", // G F
  K: "[b3,d4,g4]@3 [a3,d4,f4]@2 [d4,f4,a4]@2 [a3,d4,f4]", L: "[g3,b3,d4,g4,b4,d5]",
  M: "[g3,b3,d4]!2 ~ [g3,b3,d4] ~ [g3,b3,d4] [g3,b3,d4]@2 [a3,c4,f4]@2 [d4,f4,a4]@4 [a3,d4,f4] ~", // G F Dm
  N: "[g3,b3,d4] [b3,d4,g4]@2 [c4,f4,a4]@2 [a3,c4,f4] [c4,f4,a4]!2", O: "[g3,b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]@3",
  P: "~@2 [b3,d4,g4,b4,d5,g5]@3 [b3,d4,g4,b4,d5,g5]!2 ~ [b3,d4,g4,b4,d5,g5] ~ [b3,d4,g4,b4,d5,g5] ~ [b3,d4,g4,b4,d5,g5]@4", // G
  Q: "[g3,e4,c5]!3 ~ [c4,e4,g4,c5]@2 [g3,g4,c5]@2 [c4,f4,a#4]@2 [d4,g4,c5]@4 [d4,g4,a#4]@2", // C C5 Fsus4 Csus2 Gm
  R: "[c4,e4,g4]@3 [g3,c4,e4] [c4,e4,g4] ~ [d4,f4,a#4] ~@3 [a#3,d4,f4] ~ [a#3,d4,f4] ~ [d4,f4,a#4]!2", // C A#
  S: "[e4,g4,c5]@3 [g3,c4,d4] [a#3,d4,f4] [a#3,d4,g4]@2 [c4,e4,g4]", // C Gsus4 A# Gm C
  T: "~ [c5,e5,g5]@2 [g4,d5,g5] [d5,g5]@2 [d5,g5] [c5,d#5,g5], ~@4 d6@3 ~", // C G5 Cm
  U: "[c4,d#4,g4]!2 [g3,d4,g4] ~ [b3,d4,f#4,a4] ~ [a3,d4,g4]@2 [a3,c4,f4]@2 [a3,d4,f4]@4 [b3,d4,g4] [g3,b3,d4]", // Cm G5 Bm7 Dsus4 F Dm G
  V: "~ [g3,b3,d4]@2 [c4,f4,a4]@2 [c4,f4,a4]!2 [a3,c4,f4]", // G F
  W: "[a3,c4,f4]@2 [g3,b3,d4] [b3,d4,g4]@2 [b3,d4,g4]@2 [g3,b3,d4]", // F G
  X: "[g3,b3,d4,g4,b4,d5]@3 [b3,d4,g4,b4,d5,g5]@2 [b3,d4,g4,b4,d5,g5]@3", // G
})).s("gm_trumpet").gain(0.54)

// chords · brass section · "Brass"
const brass_section = note(`<
  ~@27 A ~@3 B C D E F G@2 H ~@33 I J K L M N O P Q R S T U V W X ~@4 Y Z AA ~@7 Y AB AC ~@4
>`.pickRestart({
  A: "[b3,d4,g4]!2 ~ [b3,d4,g4] ~@2 [c4,f4,a4]@6 ~@2 [c4,f4,a4] ~", B: "[g3,b3,d4] ~@7",
  C: "[g3,c4,e4]@3 [c4,d4,g4] [d4,f4,a#4] [a#3,d4,f4,g4]@2 [g3,c4,e4]", // C Csus2 A# Gm7 C
  D: "[g3,c4,e4]@3 [a#3,d4,f4]@2 [d4,f4,a#4]@2 [a#3,d4,f4]", // C A#
  E: "~@3 [g3,c4,d4] [a#3,d4,f4] [d4,f4,g4,a#4]@2 [c4,e4,g4]", // Gsus4 A# Gm7 C
  F: "[g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [a#3,d4,g4] ~@3 [a#3,d4,g4] ~ [c4,d#4,g4]!2", // C Gm Cm
  G: "[[b3,d4,g4]@7 [g3,b3,d4]@2 [g3,b3,d4]@2 [a3,c4,f4]@2 [a3,c4,f4]!2 [c4,e4,a4]]/2", // G F Am
  H: "[b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,f#4] [b3,d4,g4]", // G Bm G
  I: "[b3,d4,f4]!2 ~ [b3,d4,f4] ~ [b3,d4,f4] [b3,d4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@4 [d4,f4,a4] ~", // Bdim F Dm
  J: "[g3,b3,d4]@2 [g3,b3,d4] [c4,f4,a4]@2 [c4,f4,a4] [a3,c4,f4] [c4,f4,a4]", // G F
  K: "[b3,d4,g4]@3 [a3,d4,f4]@2 [d4,f4,a4]@2 [a3,d4,f4]", L: "[g3,b3,d4,g4,b4,d5]",
  M: "[g3,b3,d4]!2 ~ [g3,b3,d4] ~ [g3,b3,d4] [g3,b3,d4]@2 [a3,c4,f4]@2 [d4,f4,a4]@4 [a3,d4,f4] ~", // G F Dm
  N: "[g3,b3,d4] [b3,d4,g4]@2 [c4,f4,a4]@2 [a3,c4,f4] [c4,f4,a4]!2", O: "[g3,b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]@3",
  P: "~@2 [b3,d4,g4,b4,d5,g5]@3 [b3,d4,g4,b4,d5,g5]!2 ~ [b3,d4,g4,b4,d5,g5] ~ [b3,d4,g4,b4,d5,g5] ~ [b3,d4,g4,b4,d5,g5]@4", // G
  Q: "[g3,e4,g4,c5,e5,c6]!3 ~ [c4,e4,g4,c5,e5,g5,c6]@2 [g3,g4,c5,g5,c6]@2 [c4,f4,a#4,c5,f5,a#5]@2 [d4,g4,c5,d5,g5,c6]@4 [d4,g4,a#4,d5,g5,a#5]@2", // C C5 Fsus4 Csus2 Gm
  R: "[c4,e4,g4,c5,e5,g5]@3 [g3,c4,e4,g4,c5,e5] [c4,e4,g4,c5,e5,g5] ~ [d4,f4,a#4,d5,f5,a#5] ~@3 [a#3,d4,f4,a#4,d5,f5] ~ [a#3,d4,f4,a#4,d5,f5] ~ [d4,f4,a#4,d5,f5,a#5]!2", // C A#
  S: "[e4,g4,c5,e5,g5,c6]@3 [g3,c4,d4,g4,c5,d5] [a#3,d4,f4,a#4,d5,f5] [a#3,d4,g4,a#4,d5,g5]@2 [c4,e4,g4,c5,e5,g5]", // C Gsus4 A# Gm C
  T: "~ [c5,e5,g5]@2 [d5,g5,d6] [d5,g5,d6]@2 [d5,g5,d6] [c5,d#5,g5]", // C G5 Cm
  U: "[c4,d#4,g4]!2 [g3,d4,g4] ~ [b3,d4,f#4,a4] ~ [a3,d4,g4]@2 [a3,c4,f4]@2 [a3,d4,f4]@4 [b3,d4,g4] [g3,b3,d4]", // Cm G5 Bm7 Dsus4 F Dm G
  V: "~ [g3,b3,d4]@2 [c4,f4,a4]@2 [c4,f4,a4]!2 [a3,c4,f4]", // G F
  W: "[a3,c4,f4]@2 [g3,b3,d4] [b3,d4,g4]@2 [b3,d4,g4]@2 [g3,b3,d4]", // F G
  X: "[g3,b3,d4,g4,b4,d5]@3 [b3,d4,g4,b4,d5,g5]@2 [b3,d4,g4,b4,d5,g5]@3", Y: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3@2 b2@2 d3 ~",
  Z: "d3 ~ d3 ~ d3 ~ d3!2 ~ d3@2 b2@2 ~ d3@2", AA: "[g2,a2] ~@15", AB: "d3 ~ d3 ~ d3 ~ d3!2 ~ d3@2 ~ b2@2 d3@2",
  AC: "g2 ~@7, a2 ~@15",
})).s("gm_brass_section").gain(0.56).pan(0.6)

// bass · baritone sax · "Bari Sax"
const bass_2 = note("<~@48 A B A C D ~@11 A B A C E ~@2 F ~@20 G H I ~@7 G J K ~@4>".pickRestart({
  A: "c2", B: "b1@2 c2!2 g1@2 g1@2", C: "c2!2 g1@2 d2!2 f1@2", D: "g1", E: "g1 ~@3", F: "~@2 g1!2 ~@4",
  G: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2 b1@2 d2 ~", H: "d2 ~ d2 ~ d2 ~ d2!2 ~ d2@2 b1@2 ~ d2@2", I: "[g1,a1] ~@15",
  J: "d2 ~ d2 ~ d2 ~ d2!2 ~ d2@2 ~ b1@2 d2@2", K: "g1 ~@7, a1 ~@15",
})).s("gm_baritone_sax").gain(0.64).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@8 A@7 B C A@6 D E A@14 C D@2 E@2 D F C G A@27 H A@3 I A@7 J@20 K L>".pickRestart({
  A: "x!2", B: "~ x!2 ~ x!2 ~@2", C: "x ~@2 x ~@2 x ~ x ~@5 x ~", D: "x ~@2 x!2 ~@3", E: "x ~@2 x!2 ~@2 x",
  F: "x ~@2 x ~@2 x ~ x ~@7", G: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", H: "~@5 x ~ x ~ x ~ x!2 ~@3", I: "x!16",
  J: "x!2 ~ x!3 ~ x!3 ~ x!3 ~ x", K: "x!4", L: "x",
})).gain(0.44)

// drums · rim
const rim = s("rim").struct("<~@7 [x!4] ~@101>").gain(0.33)

// drums · clap
const clap = s("cp").struct("<~@8 [~ x ~ x]!97 ~@4>").gain(0.49)

// drums · snare
const snare = s("sd").struct(`<
  ~@15 A B ~@6 C D ~@14 E D C D@3 F@2 B ~@27 G ~@11 H@2 I J H K J L M N I@2 O H P I@2 P L P ~@2
>`.pickRestart({
  A: "x ~@2 x", B: "~ x", C: "~@5 x ~@2", D: "~@3 x", E: "x!2 ~@2", F: "~@7 x", G: "x", H: "~@2 x ~@3 x ~@3 x ~@3 x!2",
  I: "~ x ~ x ~ x ~ x", J: "~@2 x ~@3 x!2 ~@2 x ~@3 x ~", K: "~@2 x ~@2 x!2 ~@3 x ~@3 x ~",
  L: "~@2 x ~@3 x!2 ~@2 x ~@2 x!2 ~", M: "~@2 x ~@3 x ~@2 x!2 ~@3 x ~", N: "~@2 x!2 ~@2 x ~@3 x ~@3 x ~",
  O: "~@2 x!2 ~@2 x ~@3 x ~@3 x!2", P: "~@2 x ~@3 x ~@3 x!2 ~@2 x ~",
})).gain(0.49)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@16 A ~@7 B ~@14 C D ~ B E D ~@2 F ~@31 G ~@7 H I J D I K D L@3 J M ~ I N O J N L N ~@2
// … 70 more lines

More by George Benson