Strudelify
I Will Survive cover art

Gloria Gaynor

I Will Survive

Gloria Gaynor

KeyA minorTempo113 bpm
0:00/0:00
// I Will Survive — Gloria Gaynor
// 113 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 4 "Guitar" named as a guitar, played on electric guitar clean (its pizzicato strings patch is not one); ch 9 "Bass" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 146 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(113/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@3 C D E F G H I J K L M@2 N O P Q R S T U V W X@2 Y@2 Z AA AB@2 AC@2 AD@2 AE AF@2 AG AH@2 AI AJ AK AL AM AN AO
  AP AQ AR AS AT AU@2 AV AW AX AY AZ BA BB BC BD BE BF BG BH@2 BI BJ BK BL@3 BM BN BO@2 BP BQ BR BS BT BU BV BW BX BY BZ
  CA CB@2 CC@2 CD CE@2 CF CG@2 CH CI CJ CK@3 CL CM CN CO CP CQ CR@2 CS CT CU CV CW CX CY CZ DA DB@3 DC@2 DD@2 DE DF@2 DG
  DH DI DJ DK@4
>`.pickRestart({
  A: "c#-1",
  B: "[[e2,e3]@8 ~@4 d4@2 d4 ~ d5 ~@15 g#4@2 ~@8 d3@5 ~, ~@8 f3@5 ~@4 f5@6 ~@4 g#5@3 d5@5 ~@3 g#3@8 ~@2, ~@10 g#3@3 ~@2 [g#4,b4]@3 g#5@3 f6@6 ~@2 f5@3 ~@2 f4@2 b3@8 ~@4, ~@11 b3@2 ~ f4@4 ~ b5@5 ~ b5@6 b4@4 d4@9 ~@4, ~@20 d6@2 ~ d6@8 ~@8 f3@7 ~@2]/3", // E G#m
  C: "[a2,a3,c4,e4]@15 ~", D: "[a3,d4,f4]@13 ~@3, d3@3 ~@5", E: "[g3,b3,d4]@15 ~", F: "[g3,b3,c4,e4]@13 ~@3",
  G: "[f3,a3,c4,e4]@15 ~", H: "[f3,a3,b3,d4]@15 ~", I: "[e3,a3,b3,e4]@7 ~", J: "[g#3,b3,e4]@7 ~, e3",
  K: "[a3,c4,e4]@10 a3 ~ [a3,c4,e4]@3 ~, a2@3 ~", L: "[a3,d4,f4]@10 a3 ~ [a3,d4,f4]@3 ~, d3@15 ~",
  M: "[[g3,b3,d4]@10 g3 ~ [g3,b3,d4]@2 ~@2 [b3,c4,e4]@9 ~ [g3,b3,c4,e4] ~@2 [g3,b3,c4,e4]@2 ~, g2@13 ~ g3@10 ~@8, ~@16 c3@13 ~@3]/2", // G Cmaj7
  N: "[a3,c4,e4]@12 ~@2 c4 e4, f3@10 ~@2 f3@3 ~, ~@13 a3@2 ~", O: "~ a3@7, [f3,b3,d4]",
  P: "~@2 [a3,b3]@8 d3 ~ a3@2 b3@2, ~ e4@6 ~, ~@2 e3@7 ~ e3@5 ~, ~@12 b3 ~@3", // Asus2
  Q: "[b3,e4]@10 g#3 ~ [b3,e4]@2 g#3 ~, e3@7 ~, g#3@8 ~@4 g#3 ~@3", // E5
  R: "[a3,c4,e4]@10 a3 ~ [a3,c4,e4]@2 a3 ~, a2, a#3 ~@15", // Am
  S: "[a3,d4,f4]@6 ~@4 e4 ~ c5@3 ~, d3@3 ~@3 d3@9 ~, ~@8 f3@7 ~, ~@9 a3@6 ~, ~@11 f4@4 ~", // Dm
  T: "[g3,d4,g4,b4]@6 d4@2 ~@6 b3 ~, ~ g3, ~@5 b3@2 ~, ~@11 [d4,g4]@5", // G G5
  U: "[c4,e4]@6 ~@6 e4@3 ~, c3@13 ~@3, ~@6 b3@9 ~, ~@8 g3@7 ~, ~@10 c4@5 ~", // C
  V: "[a3,c4,e4]@11 ~ [a3,c4,e4]@4, f3@9 ~@2 f3@4 ~", W: "a3@10 ~@3 d4@3, [b3,d4]@11 a3@4 ~, f3@4 ~ f3@3, ~@12 b3@3 ~",
  X: "[~@2 a3@4 ~@8 b4 ~@5 g#4@2 e4@2 ~ f#4 ~@2 e4@2 b3@2, [b3,e4]@8 ~ a3@4 a4@2 e5@7 ~@4 g#4@5 ~, e3@3 ~ e3@11 ~, ~@10 b3@8 b4@4 ~@3 b4@6 ~, ~@11 e4@9 ~@4 b3@5 ~@3]/2", // E5
  Y: "[~@2 [c4,e4,a4] ~@2 [c4,e4,a4] ~@2 [c4,a4]@5 c#4 b3 c4 ~@14 a3@2, a3@7 ~ d3@8, ~@8 e4@3 ~@3 e4@4 a3@6 d4@6 ~@2, ~@21 f4@11, ~@21 c4@6 ~ c4@4]/2", // Am F
  Z: "[g3,b3]@4 ~@5 a4 [c#5,d#5] g5@3 ~@2, d4@3 g3@5, ~@7 b3@9, ~@8 d4@7 ~, ~@5 b4@3", // G C#sus2
  AA: "e5@4 ~ b4 ~@2 b4 g4@2 ~ e4@3 ~, c4@9 ~@2 c4@5, ~@4 g4@2 e5@5 ~@5, ~@7 c5@3 ~@6",
  AB: "[~@2 c4@9 ~@3 e4@5 ~@5 b3@2 ~@2 b3@2 a3@2, a3@9 ~@2 a3@11 ~@10, ~@12 c4@9 ~@5 d4@6]/2",
  AC: "[~@2 a3@3 ~@8 e5@2 ~@11 e4 ~ [e4,b4,e5]@4, [b3,e4]@6 ~@2 a3@3 a4 b4@3 ~ [b4,e5]@11 ~@5, e3@2 ~ e3@5 g#4@4 g#3@4, ~@9 b3@10 ~@4 e3@9, ~@10 e4@11 ~ e4@3 ~ b3@4 ~@2]/2", // E5
  AD: "[~@2 [e4,a4,c5]@6 ~@2 a3@2 b3 ~@15 c4@3 ~, a3@7 ~@5 e4@4 ~@2 f4@14, ~@13 c4@3 ~@2 c4@8 a3@6, ~@7 a3@5 d3@4]/2", // Am
  AE: "[b3,d4]@5 ~@4 a4 ~ g5@4 ~, g3@3 ~@3 g3@10, ~@7 b3@9, ~@8 d4@7 ~, ~@10 b4@5 ~", // Bm
  AF: "[c4@2 d4 e4@2 d4@2 c4@2 b3@4 ~@3 [c4,e4]@5 ~ [f3,a3,c4,e4] ~@2 [f3,a3,c4,e4] ~@2 [f3,a3,c4,e4]@4, ~@2 g4@11 ~@2 [f3,a3]@6 ~@11]/2", // C Fmaj7 F
  AG: "~@6 [f3,a3,b3,d4] ~@2 [f3,a3,b3,d4] ~@2 [f3,a3,b3,d4]@2 ~@2", // Bm7b5
  AH: "[~@3 e4@5 ~@6 b4@2 ~@5 b5 g#5 ~ b5 g#5 e5 ~@2 e5 b4@2, e3@3 ~ e3@12, ~ a3@6 ~@2 a3@4 a4@3 e5@8 ~@3 b4@2 ~@3, ~@2 b3@5 ~@3 b3@6 ~@16, ~@11 e4@9 e6@2 ~@6 g#5@2 ~@2]/2",
  AI: "~@3 b4 c5 e5 ~@3 a3@3 [b3,e4]@2 c4 ~, ~ a4 ~ c5 e4 ~@3, ~@7 a4@2 ~@7", // E5
  AJ: "~ a3@3 ~@2 a4 f4, c4@5 a3@3, f4@8 ~@3 c4@4 ~, d3@3 ~ d3@4",
  AK: "[d4,g4]@6 ~@2 a4 b4 a4 ~@2 g3@3, g3@2 ~@4 g3@5 ~ d4@3 ~, ~@7 d4@4 g4@5, ~ d5", // G5
  AL: "~@8 b4@7 ~, c4@13 ~@3, ~@4 e4@11 ~, ~@3 g4@5", AM: "~@9 e5@6 ~, f3@5 a4@11, ~ a3@6 c5@9, ~ c4@6 ~, ~@3 e4@13",
  AN: "~@5 d4 b3 ~, ~@2 f3@11 ~@3, ~@3 a3@9 ~@4, ~@4 b3@7 ~@5, ~@5 d4@2 f4@5 ~@4",
  AO: "~@7 e5@4 ~@5, ~@4 e4@5 ~@7, ~@5 a4@6 ~@5, ~@6 b4@5 ~@5", AP: "~ g#6 e6 b5 e6 b5 g#5 ~ g#5 e5@2 g#5 b4 e5 g#4 b4",
  AQ: "~@2 b4@2 ~@3 e4@5 a3 b3 c4@2, a4@4 c5@7 ~@5, ~@2 e5@4 a4@5 ~@2 e4@3",
  AR: "~@5 a4@2 ~ e4 ~ c5@6, d3@13 ~@3, ~ a3@12 ~@3, ~ c4@2 ~@5, ~@3 f4@4 ~@2 f4@7",
  AS: "~@6 a4@3 ~@5 d4@2, ~ g3@12 ~@3, ~ d4@5 g4@2, ~@3 d5@5, ~@6 e5 ~@2 b4@7",
  AT: "~@4 b4@2 e4 c4, ~ c4@5 ~@2, ~@4 e4@7 ~@5, ~@6 g4@7 ~@3",
  AU: "[~@9 c5@2 a4@2 ~ [g4,c5]@6 ~@4 b3 ~@4 f4@3, f3@15 ~@7 f3@10, ~ a3@14 ~@8 a3@8 ~, ~@2 c4@5 e5@4 ~@2 c4@2 ~@10 b3@7, ~@3 a4 c5 g5@6 ~@16 d4@4 ~]/2", // C5
  AV: "~@13 e5@3, e4@5 a4@3, ~@6 e3@5 b4@5, ~@7 a3@6 ~@3, ~@8 b3@5 ~@3",
  AW: "~ e4 ~@2 f5 ~ b5 ~@2 g#5 ~ b5 g#5 ~ b4 g#4, ~@2 g#4@7 ~@7, ~@3 b4@6 ~ e5@2 ~ e5@2 ~, ~@2 e5@2 b5 ~@3, ~@5 g#5@2 e6@2 ~@7",
  AX: "~@2 b4 ~@4 g5@7 ~@2, a4@5 ~@3, ~@3 c5@11 ~@2, ~@5 e5@9 ~@2",
  AY: "~@2 d4 e4 f4@2 ~@3 c5@5 f4 d4, ~@3 a4@3 d4@8 ~@2, ~@7 f4@6 ~@3",
  AZ: "~@2 a4 ~@2 g5@5 ~@2 a4 b4 a4 g4, g3@7 ~@3 g3@4 ~@2, ~ d4@7 ~@3 d4@2 ~@3, ~@3 b4@8 ~ d5@3 ~",
  BA: "~@4 e4 ~@3 g3@6 ~@2, e5@7 b3@7 ~@2, ~ c5@8 ~@7, ~@2 b4@3 c4@9 ~@2, ~@3 g4@6 ~@7",
  BB: "~@3 a3@2 [c4,e4,g4] ~ [f3,a3] [c4,e4,g4]@2 [f3,a3] [a3,c4,e4]@2 ~ [a3,c4]@2, ~@2 f3@4 ~@5 b3 ~ f3@3", // C F C F Am
  BC: "~@6 [a3,b3,d4] f3 [a3,b3,f4]!2 ~ [a3,b3,d4]@3 f3@2", BD: "e3 [b3,e4,f4] ~ e3 [b3,e4]@6 ~@6, ~ a3 ~@2",
  BE: "g#6 e6 b5 ~ b5 g#5 e5 g#5 b4 e5 g#4 b4 e4 g#4 b3@2, ~@3 e6@2 ~@11",
  BF: "~@6 e4@3 ~@2 a3 b4 c5@3, a3@3 ~@5, ~@2 b3@7 ~@7, ~@4 c4@5 ~@3 e5@4",
  BG: "~@9 a4@2 a3@5, d3@7 c5@4 ~@5, ~ a3@8 ~@7, ~@2 a4@3 f5@6 ~@5, ~@3 c5 g5@7 ~@5",
  BH: "[~@6 d4@3 ~@3 a4 ~ g5@4 ~@3 b4@2 ~@4 g4@2 e4 ~@2, ~@3 g3@2 b3@4 ~@2 d4@4 ~@3 c4@10 ~@4, ~@4 a3@4 ~@2 g3@5 ~@5 g4@5 b4@7, ~@13 b4@5 ~ e4@6 ~@7, ~@23 d5@9]/2",
  BI: "~@5 [e4,g4]!3 ~ [e4,g4] ~@4 f3@2, ~@2 f3@7 ~@4 a3@3, ~@3 a3@6 ~@3 c4@4, ~@4 c4@4 ~@3 [e4,g4]@5", // Em
  BJ: "~@6 b3 [a3,b3,f4] ~ [a3,b3,d4] ~ f3 [a3,b3,f4] f3 [a3,b3,d4] f3, ~ f3 ~@2, ~@5 a3@2 ~@9", // Bm7b5 Bm7 Bm7b5 Bm7
  BK: "~@7 b3@2 ~@3 e3@3 ~, ~ e5 a4@4 ~@2, ~@3 b4@10 ~@3, ~@6 e4@7 ~@3, ~@9 a3@5 ~@2", BL: "[[b3,e4]@2 ~, e2@15 ~]/3",
  BM: "[a3,c4,e4]@8 ~@3 b3 ~ g4@3, a2@4 ~@5 a2@7, ~@5 e3@3, ~@3 c4, ~@13 a4 ~@2", // Am
  BN: "[a3,f4]@6 ~@4 [f4,a4,c5] ~@2 [d4,g4,b4] ~@2, d3@4 ~@3 d3@8 ~, ~@8 a3@7 ~", // Dm F G
  BO: "[[b3,d4,g4]@6 ~@3 a4@2 ~@3 g4@6 ~@8 e4@2 ~@2, ~@6 g3@10 ~@6 e4@5 ~@5, ~@7 d4@9 ~@4 c4@10 ~@2, ~@11 b4@10 g4@4 ~ g4@6, ~@23 [b4,d5]@9]/2", // G Bm
  BP: "~@3 [e4,g4] ~ [e4,g4] ~ [e4,g4]@2 [c4,e4] ~ e4@2 [a3,c4]@3, f3@9 ~@7, ~ a3@6 ~@9, ~@2 c4@5 ~@4 c4 ~@4", // Em C Am
  BQ: "~@3 [f3,a3,b3,e4] ~@4 [a3,b3,f4]@3 ~ [a3,b3,d4]@3 ~, ~@8 f3@7 ~", // Fmaj7 Bm7b5 Bm7
  BR: "~@2 e3 a3 b3 e4 ~@4 a4@4 ~@2, ~@3 a3@3 ~@2, ~@7 b3@6 ~@3, ~@4 e4@3 ~",
  BS: "~@2 e5 b4 g#4 b4 e5 g#5 b4 e5 g#5 b5 e5 g#5 b5 e6, ~ g#5@4 ~@11",
  BT: "c6@2 b5 ~@3 e5@2 a4@2 b4 ~@2 e4@3, ~@3 c6@5 ~@3 c5@5, ~@5 a5@3 ~@2 e5@2 a4@4",
  BU: "~@5 g4 ~@4 a3@4 ~@2, ~ d3@6 ~, ~@3 a3@6 ~@7, ~@4 c4@5 c4@7, ~@7 f4@9",
  BV: "~ a3@2 ~@4 g4@5 a4@2 g4@2, g3@15 ~, ~@3 b3@12 ~, ~@5 d4@2 a4 ~@4 d4@4, ~@7 b4@9",
  BW: "~@3 b4@2 [e4,g4,b4,d5]@2 ~ [e4,g4,b4,d5] ~ [e4,g4] ~ e4 ~ e4@2, c4@7 ~@5 [c4,g4]@4, ~ e4@4 ~@11, ~@2 g4@3 ~@5 b4@2 ~@4", // Em7 Em C5
  BX: "~@3 e4@4 ~@3 [e5,g5] ~ [c5,e5] [a4,c5]@3, f3, ~ a3@15, ~ c4@7", // Em C Am
  BY: "~@3 [a4,b4,d5,f5] ~@10 f4@2, ~@3 [b4,d5,f5]@5, ~@6 a4@7 d4@3, ~@3 b3", // Bm7b5 Bdim
  BZ: "~@2 [a4,b4,e5]@6 ~@3 e5@3 ~@2, ~@2 e4@3 ~@3 e4@8, ~@9 a4@7, ~@10 b4@3 ~@3", // Asus2
  CA: "e5 f#5 g#5 a5 g#5 f#5 e5 d5@2 b4@2 g#4@2 e4@3",
  CB: "[~@2 [e4,a4] a3@2 c4@2 ~@3 b3 c4@2 ~ e3@2 [c4,f4]@7 ~@8 a3, ~@10 e4@3 a3@9 ~@3 a3@5 ~@2, ~@16 d3@4 ~@3 d3@8 ~, ~@26 c4@3 ~ c4@2, ~@27 g4@5]/2", // A5 F5
  CC: "[~ [a3,b3] ~@3 d4@3 e4 ~@2 a4@2 [g4,b4]@2 ~@6 e4@2 c4@2 ~@2 g3@3 ~@2, g3@7 ~@2 g3@6 ~@2 c5@8 b3@5 ~@2, ~@3 b3@5 ~@2 d4@5 c4@3 b4@14, ~@11 d5@4 ~ e5@16, ~@19 g4@13]/2", // Asus2 G
  CD: "~@3 e4@2 c4@2 ~ [f3,c4]@6 a3 f3, ~@3 g4@12 ~, ~@5 e4@9 ~@2, ~@8 a3@5 ~@3", // F5
  CE: "[~ [a3,b3,d4,f4] ~ f3 [a3,b3,d4]@6 ~@3 b3@2 ~ a3 b3 e4 a3 b3 ~@2 a4@5 ~@4, ~@4 f4@11 ~@6 e4@9 ~@2, ~@10 f3@4 ~ e3@2 ~@15, ~@11 a3@4 ~@7 b3@8 ~@2]/2", // Bm7b5 Bm7
  CF: "g#6 e6 b5 ~@2 g#6 ~@5 e5@3 ~@2, ~@3 g#5@4 g#6@2 b5@2 ~@5, ~@2 [b5,e6] b6 e6 g#5@2 ~", // E5
  CG: "[~@2 b4 c5 b4 ~@4 a3@3 [a3,b3] ~@4 [c4,g4] ~@2 [c4,g4]@2 ~ [c4,f4]@2 ~ [c4,e4,f4] ~@3 a3@2, ~@2 e5@7 ~@23, ~@5 a4@4 ~@5 a3@7 ~ a3@2 ~ a3@4 ~@3, ~@3 e4 ~@2 e4@2 ~@6 [c4,f4]@2, ~@7 c4@4 ~@2 c4@3 d3@5 ~@11]/2", // Asus2 C5 F5 Fmaj7 F5
  CH: "~@5 d4@4 g3 ~ g3 [b3,d4,g4]@2 g3@2, g3@7 ~@9, ~ a3@8 ~@7, ~@3 b3@6 ~@7", // G
  CI: "~ [d4,e4,g4] ~ [c3,g3] [d4,e4,g4] ~ [c3,g3] [g4,b4,d5] ~ [g4,b4] ~ [e4,g4] ~ [c4,e4]@3, c3 ~@7", // Em7 C5 Em7 C5 G Em C
  CJ: "f3 [a3,c4] ~ [c4,e4] ~ [c4,e4,g4] ~ [c4,e4] ~ [c4,e4] [a3,c4]@2 f3@2 [a3,c4] ~", // Am C Am
  CK: "[[a3,b3,d4,f4]!2 ~@2 [a3,b3,d4]@4 ~@3 d4@3 ~@5 g4 ~@10 e5 ~@7 b4 ~ e4 g#4 b4 e5 g#4 ~ e5 g#5, ~@3 f3@3 ~@2 f3@4 ~@3 e3@4 a4@8 a3@2 e4@5 g#3@3 g#4@2 e5@2 ~@4 b4@2 ~, ~@4 f4@11 ~@3 e4@8 e3@4 ~@3 e3@5 ~@10, ~@9 a3@5 ~@2 a3@4 b4@8 b3@3 e5@4 ~ e4@2 ~@10, ~@10 b3@4 ~@3 b3@4 e5@9 b4@5 b3@3 ~@10]/3", // Bm7b5 Bm7
  CL: "[c5,e5,a5]@7 ~@9, a4@5 ~@11", CM: "[d3,d4,f4,a4] ~@3", CN: "[g3,b3,d4,g4] ~@3", CO: "[g3,b3,c4,e4,g4]@3 ~@13",
  CP: "[f3,a3,c4,e4,g4]@3 ~@13", CQ: "[f3,a3,b3,d4,f4] ~@3",
  CR: "[[a3,b3]@10 ~@2 a3@2 ~@2 [e3,g#3]@2 ~@11 b4@3, e4@7 b3@3 e3 b3 g#4 b3@3, e3@9 ~ e3@5 ~ e4@4 ~ g#3@2 e4@2 g#3@7, ~@27 e4@5, ~@7 g#4]/2", // Asus2 E
  CS: "~@2 [c4,e4,a4]@11 ~@3, a3@9 ~@7", CT: "[d3,a3,d4,f4]@5 ~@11", CU: "[g3,b3,d4,g4] ~",
  CV: "c4 ~@6 [b4,d5] ~ [g4,b4] ~ [e4,g4] ~ [c4,e4]@3, [g3,b3]@3 ~, e4@5 ~@11, ~@2 c4@9 ~@5", // Bm G Em C G
  CW: "~@2 [e4,g4] [c4,e4] ~ [a3,c4] ~ c4@2 ~ [c4,e4]@3 [a3,c4,g4]@2 ~, ~@7 f3@9, ~@7 a3@5 ~ e4 ~@2", // Em C Am C Am7
  CX: "[b3,d4,f4]@6 ~ d4, a3@11 ~ a3@2 ~@2, ~@13 b3@3", // Bdim
  CY: "~@2 b3 ~ a3 ~ e4 a4 ~@2 c5 ~@2 b4 a4 e4, e3@4 ~@5 a4@2 e5@5, ~ a3@2 e4@2 b3@2 ~ e4@2 b4@2 ~@4",
  CZ: "g#4 b4 e5 g#4 b4 e5 g#5 b4 e5 g#5 b5 e5 ~@2 e6 ~, ~@6 g#5 ~, ~@13 b5@2 ~",
  DA: "~@2 [c4,e4,a4] ~@2 [b3,d4,a4] ~@2 [a3,c4,e4] ~ b3 ~@3 e3@2, ~@10 e4@3 a3@3, ~@11 c4@5", // Am Bm7 Am
  DB: "[~@5 e4@2 ~ [a3,c4,g4]@2 ~ [c4,f4]@3 a3 ~@8 g4@2 ~@2 a3 ~ a3 b3 ~@6 d4@3 ~ b4@2 [g4,b4]@2 [e4,g4]@3, d3@14 ~@7 d4@4 d4@4 ~@2 d4@2 ~@2 b3@4 ~@2 d5 ~@6, ~ f3@5 ~@9 g3@12 ~ g3@4 c3@12 ~@4, ~@2 a3@5 ~@4 a3@2 ~@4 a3@9 ~@7 e3@12 ~@3, ~@3 c4@4 ~ [d4,a4] ~@10 b3@6 ~ b3@2 ~@6 g3@11 ~@3]/3", // Am7 F5 G Em D5
  DC: "[~@4 [c4,e4] ~@8 e4@3 ~@2 [c4,f4]@8 ~@2 c4 ~@2 a3, ~@5 a3@5 f3@6 ~@16, ~@7 [c4,e4]@4 a3@15 ~ a3@2 ~ c4@2, ~@12 c4@5 ~@11 f4@4]/2", // C F5 C
  DD: "[~@2 [e3,a3]@4 ~@3 b3@4 ~@4 g#6 e6 b5 e6 b5 g#5 b5 g#5 e5 g#5 e5 b4 ~@2 e5, ~@2 [b3,e4]@5 a3@6 ~@3 [g#3,b3]@12 ~ g#4@3, ~@6 e3@5 ~@4 e3@13 ~@2 b4@2]/2", // A5 E5 G#m
  DE: "~@2 e5 ~@9 b4 ~ a4@2, a5@9 ~@7, a4@3 c5@6 ~@3 e5@4, ~@5 a4@6 ~@2 c5@3, ~@7 a3@7 ~@2",
  DF: "[~@3 g5@2 ~ c5 a4 ~@4 c4 c4@2 ~@9 d4@2 ~@4 g3@2, d4@7 ~ d4@3 f4@3 ~@4 a3@8 ~@6, ~ a4@5 ~@3 d3@6 g3@9 ~@2 g3@2 ~@4, ~@2 c5@3 f5@3 ~@2 g4@5 ~@6 b3@5 ~ [b3,d4,g4]@5]/2", // G
  DG: "~@3 [b4,d5]@2 b4@2 [e4,g4] ~ [c4,e4]@5 ~@2, ~@5 g4 ~@3 g4 ~@6", // Bm Em C
  DH: "~@2 [f3,a3,c4,e4] ~@2 [f3,a3,c4,e4] ~ f3 [a3,c4,e4,g4]@2 f3 [a3,c4,e4]@2 ~ [a3,c4]@2, ~@13 f3@3", // Fmaj7 Am7 Am
  DI: "~@2 [a3,b3]@8 ~@3 d4@3, ~@2 [d4,f4]@9 a3@5, ~@5 f3@3, ~@3 b3", // Asus2 Dm
  DJ: "~@2 [b3,e4]@6 ~@2 c#4 e4@2 ~@3, ~@2 a3@5 ~@2 a3@6 ~, ~@2 e3@3 ~@3 e3@6 ~@2, ~@10 b3@3 ~@3", // E5
  DK: "[[e3,b3]@16 ~@6 f#4@2 ~@8 e2@21 ~@11, g#3@9 b3@5 ~ b3@10 ~@7, ~@16 e3@13 ~@35, ~@20 e4@6 ~ e4@23 ~@14, ~@24 g#4@25 ~@15]/4", // E5
})).s("gm_piano").gain(0.4).pan(0.3)

// chords · brass section · "Brass"
const brass_section = note(`<
  ~@21 A B C D E F G H I B C D E F G J ~@16 I B C D E F G K I B C D E F G K ~@34 L M N O P Q R S ~@16 T U V W E X Y Z T
  U AA AB AC AD AE AF ~@3
>`.pickRestart({
  A: "~@2 c5 [a4,e5] ~ [a4,c5,e5] ~@2 [a4,c5,e5] ~@7", B: "~@2 [a4,d5,f5] ~@2 [a4,d5,f5] ~@2 [a4,d5,f5] ~@7",
  C: "~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@7", D: "~@2 [g4,b4,c5,e5] ~@2 [g4,b4,c5,e5] ~@2 [g4,b4,c5,e5] ~@7",
  E: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@7", // Fmaj7
  F: "~@2 [f4,a4,b4,d5] ~@2 [f4,a4,b4,d5] ~@2 [f4,a4,b4,d5] ~@7", G: "~@2 [e4,a4,b4] ~@2 [e4,a4,b4] ~@2 [e4,a4,b4] ~@7",
  H: "~@2 [g#4,b4,e5] ~@2 [g#4,b4,e5] ~@2 [g#4,b4,e5] ~@7", I: "~@2 [a4,c5,e5] ~@2 [a4,c5,e5] ~@2 [a4,c5,e5] ~@7",
  J: "~@2 [g#4,b4,e5] ~@2 [g#4,b4,e5] ~@2 [g#4,b4] ~@7, ~@4 e5 ~@3", // E G#m
  K: "~@2 [e4,g#4,b4] ~@2 [e4,g#4,b4] ~@2 [e4,g#4,b4] ~@7", L: "~@8 a4@2 b4 c5 ~ b4 a4 ~", M: "f4@3 ~",
  N: "~@8 g4@2 a4 b4@2 a4 g4 ~", O: "e4@7 ~ e5@2 d5@2 c5@2 b4@2", P: "a4@9 b4@3 c5@3 ~", Q: "d5@8 a4@7 ~", R: "b4",
  S: "e5", T: "~@2 [a4,c5,e5] ~@2 [a4,c5,e5] ~@2 [a4,c5,e5]@2 ~@6",
  U: "~@2 [a4,d5,f5] ~@2 [a4,d5,f5] ~@2 [a4,d5,f5]@2 ~@6", V: "~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5]@2 ~@6",
  W: "~@2 [g4,b4,c5,e5] ~@2 [g4,b4,c5,e5] ~@2 [g4,b4,c5,e5]@2 ~@6", // Cmaj7
  X: "~@2 [f4,a4,b4] ~@2 [f4,a4,b4,d5] ~@2 [f4,a4,b4,d5]@3 ~@5", // Bm7b5
  Y: "~@2 [e4,a4,b4] ~@2 [e4,a4,b4] ~@2 [e4,a4,b4]@3 ~@5", Z: "~@2 [g#4,b4,e5] ~@2 [g#4,b4,e5] ~@2 [g#4,b4,e5]@5 ~@3",
  AA: "~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4] ~@7, ~@4 d5 ~@3", // G
  AB: "~@2 [g4,b4,c5,e5] ~@2 [g4,b4,c5,e5] ~@2 [g4,b4,c5,e5]@3 ~@5", // Cmaj7
  AC: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5]@3 ~@5", // Fmaj7
  AD: "~@2 [f4,a4,b4,d5] ~@2 [f4,a4,b4,d5] ~@2 [f4,a4,b4,d5]@3 ~@5", // Bm7b5
  AE: "~@2 [e4,a4,b4] ~@2 [e4,a4,b4] ~@2 [e4,a4,b4]@8", AF: "g#4 ~@15",
})).s("gm_brass_section").gain(0.29).pan(0.6)

// chords · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  ~@5 A B@3 C D E@2 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@3 AL AM AN AO AP AQ AR AS
  AT AU AV AW AX@2 AY AZ BA BB BC BD BE BF BG BH BI@3 BJ@8 BK BL BM BN BO F BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD
  CE CF CG CH CI CJ CK CL CM CN CM CO CM CP ~@2 CQ CR CS CO CT CO ~@2 CU CV CW CX CY CZ DA DB DC DD DE DF DG DH DI DJ
  ~@3
>`.pickRestart({
  A: "~@9 a4 c5 a4 g4 e4 d4 e4",
  B: "[c4 d4@5 ~@3 a4@3 g4@2 a4@5 a4 ~@3 g4 a4 g4 e4 d4 c4 ~ d4 e4@2 c4@3 ~@3 a3@7 ~@2, ~@18 a3 ~@5, ~@37 c4@4 ~@7]/3",
  C: "~@9 [c5,e5]@2 [a4,c5]@2 ~ f4@2, ~@13 a4@2 ~", D: "[d4,f4]@6 [f4,a4]@4 [f4,b4]@5 ~",
  E: "[~@6 e4@2 d4 b3 a3@2 ~@14 e3@3 ~@3, ~@3 b3@2 e4@2 ~, ~@14 e3@11 ~@7, ~@11 b3@3 ~@2]/2",
  F: "~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~ [e4,a4,c5]!3", // Am
  G: "~ a4 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~ [d4,f4,a4]!3", // Dm
  H: "~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~ [d4,g4,b4]!3", // G
  I: "~@2 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] ~ [c4,e4,g4,b4] [c4,e4,g4,b4]@2", // Cmaj7
  J: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~ [f4,a4,c5,e5]!3", // Fmaj7
  K: "~@2 [d4,f4,g4,b4] ~@2 [d4,f4,a4,b4] ~@2 [d4,f4,a4,b4] ~ f4 [d4,f4,a4,b4] ~ [d4,f4,a4,b4]!3", // G7 Bm7b5
  L: "~@2 [e4,a4,b4] ~@2 [e4,a4,b4] ~@2 [e4,a4,b4,e5] ~@2 [e4,a4,b4,e5] ~ [e4,b4,e5]!3", // Esus4 E5
  M: "~@2 [e4,b4,e5] ~@2 [e4,b4,e5] ~ [e4,b4,e5]!2 ~ [b4,e5] [e4,b4,e5] ~ [e4,b4,e5]!2 ~", // E5
  N: "~@2 [c4,e4,a4] ~@2 [c4,e4,a4] ~@2 [e4,a4,c5] ~@2 [c4,e4,a4] ~ [c4,e4,a4]!3", // Am
  O: "~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~ [d4,f4,a4] [d4,f4,g4,a4] ~", // Dm
  P: "~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~ [d4,g4,b4] [d4,g4,b4]@2", // G
  Q: "~@2 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] ~@2 [g4,b4,d5] ~@2 [e4,g4,b4] ~ [e4,g4] c4 ~", // Cmaj7 G Em
  R: "~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~@2 [c5,e5,g5] ~ e5 [f4,c5,e5] ~ [f4,a4,c5]@2 ~", // Fmaj7 C Fmaj7 F
  S: "~@2 [d4,f4,g4,a4] ~@2 [d4,f4,a4,b4] ~@2 [d4,f4,a4,b4] ~ [d4,f4,a4] [d4,f4,a4,b4] ~ [d4,f4,a4,b4]!2 ~", // Dm Bm7b5 Dm Bm7b5
  T: "~@2 [e4,a4,b4,e5] ~@2 [e4,a4,b4,e5] ~ a4 [e4,a4,b4,e5] ~ [e4,a4,b4] [e4,a4,b4,e5] ~ [e4,a4,b4,e5]!3", // Esus4
  U: "~@2 [e4,g#4,e5] ~@2 [e4,g#4,e5] ~ [e4,g#4,e5]!2 ~ [e4,g#4,e5]!2 ~ [e4,g#4,e5]!2 ~", // E
  V: "~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~ a4 [e4,a4,c5] ~ [e4,a4,c5]!2 ~ [e4,a4,c5]!3", // Am
  W: "~@2 [d4,f4,a4] ~ a4 [d4,f4,a4,c5] ~@2 [d4,f4,a4] ~ [f4,a4] [d4,f4,a4] ~ [d4,f4,a4]!3", // Dm Dm7 Dm F Dm
  X: "~@2 [d4,g4,b4] ~ [g4,b4] [d4,g4,b4] ~@2 [d4,g4,b4] ~ [d4,g4,b4]!2 ~ [d4,g4,b4]!2 ~", // G
  Y: "~@2 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] ~ c4 [b4,d5]@2 c4 [g4,b4]@2 c4 [e4,g4]@2", // Cmaj7 Bm G Em
  Z: "~@2 [c5,e5] ~@2 [f4,a4,c5] ~ [c4,c5] [f4,a4,c5] ~ [c4,f4,a4,c5]!2 ~ [c4,f4,a4,c5]!3", // C F C F
  AA: "~@2 [d4,f4,a4,b4] ~@2 [d4,f4,a4,b4] ~ d4 [f4,a4,b4] ~ d4 [f4,a4,b4] ~ [f4,a4,b4]!3", // Bm7b5
  AB: "~@2 [e4,a4,b4,e5] ~@2 [e4,a4,b4,e5] ~ [a4,b4,e5] [e4,a4,b4,e5] ~ [e4,b4] [e4,a4,b4,e5] ~ [e4,a4,b4,e5]!3", // Esus4 Asus2 Esus4 E5 Esus4
  AC: "~@2 [e4,g#4,b4,e5] ~@2 [e4,g#4,b4,e5] ~ e4 [e4,b4,e5] ~ b4 [e4,b4,e5] ~ [e4,b4,e5]!2 ~", // E E5
  AD: "~@2 [e4,a4,c5] ~ [e4,a4,c5] [e4,a4] ~ [e4,a4,c5]!2 ~ [e4,a4,c5]!6", // Am A5 Am
  AE: "~@2 [d4,f4,a4] ~ [d4,f4] [d4,f4,a4] ~ [d4,f4,a4]!2 ~ [d4,f4,a4]!2 ~ [d4,f4,a4]!3", // Dm
  AF: "~@2 [d4,g4,b4] ~@2 [d4,g4,b4] ~ [d4,g4,b4]!2 ~ [d4,g4,b4]!2 ~ [d4,g4,b4]!3", // G
  AG: "~@2 [c4,g4,a4,b4] ~ c4 [c4,e4,g4,b4] ~ c4 [e4,g4,b4] ~ c4 [e4,g4,b4] c4 [b4,d5]@2 ~", // Cmaj7 Em Bm
  AH: "~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [a4,c5] ~@3 e5 [c5,e5]@2 ~, ~@11 [e5,g5]@2 ~@3", // F Am C Em
  AI: "~@5 [a4,b4] ~ [a4,b4]!2 ~ [a4,b4] [a4,b4,d5] ~ [a4,b4,d5]!2 ~", // Asus2 Bm7
  AJ: "~@2 [b4,e5] ~ a4 [a4,b4,e5] ~ [a4,b4,e5]!2 ~ [a4,b4,e5] [a4,b4] ~ [a4,b4,e5]!3", // E5 Asus2
  AK: "[e4 [b4,e5]!3 e4 [b4,e5] ~ e4 [b4,e5] ~ [b4,e5] [e4,b4,e5] ~ [e4,b4,e5]!2 ~@3 [e4,a4,c5] ~@2 [c4,e4,a4] ~ c4 [e4,a4,c5] ~ a4 [c4,e4,a4] ~ [c4,e4,a4]@2 ~@3 [d4,a4] ~@2 [d4,f4,a4] ~ [d4,f4,a4]!2 ~ [d4,a4] [d4,f4,a4] ~ [d4,f4,a4]!3, ~@11 f4@24 ~@13]/3", // E5 Am D5 Dm D5 Dm
  AL: "~@2 [g4,b4] ~ [d4,g4,b4]!2 ~ [d4,g4,b4]!2 ~ [g4,b4] [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4]", // G
  AM: "~@2 [c4,e4,g4,b4] ~@2 [c4,e4,g4,b4] ~@2 [b4,d5]@2 ~ [g4,b4]@2 [e4,g4]@3", // Cmaj7 Bm G Em
  AN: "~@2 [c4,f4] ~@2 [c4,e4,f4,a4] ~@2 [f4,a4,c5,e5] ~@2 [f4,a4,c5,e5] ~ [f4,a4,c5,e5]@3", // F5 Fmaj7
  AO: "~@2 [f4,a4,b4,d5] ~@2 [f4,a4,b4,d5] ~ [f4,a4,b4,d5]!2 ~ [f4,a4,b4,d5]!2 ~ [f4,a4,b4,d5]!3", // Bm7b5
  AP: "~@2 [e4,a4,b4,e5] ~@2 [e4,a4,b4,e5] ~ [e4,a4,b4,e5]!2 ~@2 [e4,a4,b4,e5] ~ [e4,a4,b4,e5]!3", // Esus4
  AQ: "~@2 [e4,b4,e5] ~@2 [e4,b4,e5] ~ e4 [g#4,b4,e5] ~ e4 [g#4,b4,e5] ~ e4 [g#4,b4,e5] e4", // E5 E
  AR: "~@2 [c4,e4,a4] ~@2 [c4,e4,a4] ~@2 [c4,e4,a4] ~ c4 [c4,e4,a4] ~ [c4,e4,a4]@3", // Am
  AS: "~@2 [d4,f4,a4] ~ f4 [d4,f4,a4] ~@2 [d4,f4,a4] ~ [d4,f4] [d4,f4,a4] ~ [d4,f4,a4]@3", // Dm
  AT: "~@2 [d4,g4,b4] ~ [d4,g4,b4]!2 ~ [d4,g4,b4]!2 ~ [d4,g4,b4]!2 ~ [d4,g4,b4]@3", // G
  AU: "~@2 [c4,e4,g4,b4] ~ [c4,e4,g4] [c4,e4,g4,b4] ~ [c4,e4,g4,b4]!2 ~ c4 [b4,c5,d5] ~ c4 [g4,b4]@2", // Cmaj7 C Cmaj7 Bm G
  AV: "~@2 [f4,a4,c5] ~@2 [f4,c5,e5] ~@2 [f4,a4,c5,e5] ~ [f4,a4,c5,e5] [f4,a4,c5] ~ [e5,g5]@2 [c5,e5]", // F Fmaj7 F Em C
  AW: "~@2 [g4,b4] ~@2 [f4,a4,b4] ~ f4 [a4,b4,d5]!2 f4 [a4,b4,d5] ~ [f4,a4,b4,d5]!3", // G Bm7b5 Bm7 Bm7b5
  AX: "[~@2 [e4,b4,c5,e5] ~ [e4,b4,e5]!2 ~ [e4,b4,c5,e5] ~@2 [e4,b4,e5] ~@2 [e4,b4,e5] ~ e4 ~@2 e4@2 ~ [e4,b4,e5] ~ e4 [b4,e5]!2 e4 [b4,e5]!2 e4 [b4,e5] e4, ~@5 c5@10 ~, ~@4 [b4,e5] ~@3]/2", // Cmaj7 E5 Cmaj7 E5
  AY: "~@2 [e4,a4,c5] ~@2 [e4,a4,c5] ~ [e4,a4,c5]!2 ~@2 [e4,a4,c5] ~ [e4,a4,c5]!3", // Am
  AZ: "~@2 [d4,f4,a4] ~@2 [d4,f4,a4] ~ d4 [f4,a4] ~ [d4,f4,a4]!2 ~ [d4,f4,a4]!3", // Dm F Dm
  BA: "~@2 [d4,g4,b4] ~@2 [d4,g4,a4,b4] ~ d4 [d4,g4,b4] a4 d4 [d4,g4,b4] ~ [d4,g4,b4]@2 ~", // G
// … 282 more lines

More by Gloria Gaynor