Strudelify
Unchain My Heart cover art

1992

Unchain My Heart

Joe Cocker

KeyA minorTempo120 bpm
0:00/0:00
// Unchain My Heart — Joe Cocker
// 120 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 119 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 3"
const piano = note(`<
  ~ A B@2 C@2 D@2 E@2 F G H I J K L M N@2 O@2 P@2 Q@2 F R H S J T U V W@2 X@2 Y@2 Z AA@8 AB F AC AD AE AF AG L AH AI@8
  AJ AK AL AM AN@2 AO@2 AP@2 Z AQ AR@2 AS@2 AT@2 AU@2 AV AW AX AY J AZ L BA BB BC BD BE BF BE BG BH BI BC BJ BE BF BE BK
  BL BM BN BO@4 BP@2 BQ
>`.pickRestart({
  A: "~@8 e4@2 a1 ~ a2@4",
  B: "[[a1,a2]@10 a2@2 a1 ~@3 a1@6 ~@2 [a1,g3,a3,c4,e4]@2 [a2,a3,e4]@2 [a3,d4,f#4]@2 [a2,e4]@2, [g3,a3,c4,e4]@22 ~@4 g4 ~@5, ~@14 a2@8 ~@6 a1 ~@3]/2", // A Am7 A5 D A5 Am7
  C: "[[b3,d#4] ~@9 a2@2 a1 ~@3 a1@6 ~@2 a1@2 ~@4 c2@2, [a3,g4]@26 ~@3 [c4,g4,a4]@2 ~, a1@5 ~@11, a2@4 ~@3 a2@6 ~ c3@2, ~ [c4,e4]@26 ~ e4@2 ~@2]/2", // B A7 Am7 C
  D: "[d2@10 d3@2 d2 ~@3 d2@6 ~@2 d2@2 d3@2 ~@2 a2@2, [c4,d4,f4,a4]@8 [a3,c4,d4,f4]@7 ~, d3@4 ~@3 d3@6 ~@3]/2", // Dm7
  E: "[[a1,a2]@9 ~ a2@2 ~@4 a1@10 a2@2 a1@2 a2@2, [g3,a3,c4,e4]@31 ~, ~@7 a2@5 ~@4]/2", // A Am7
  F: "[d2,a3,c4,d4,f4]@10 d3@2 [d2,a3,c4,d4,f4]@3 ~, d3 ~", G: "[a1,g3,a3,c4,e4]@5 a2 [a1,g3,a3,c4,e4] a2, a2 ~",
  H: "[d2,a3,c4,d4,f4]@5 d3 [d2,a3,c4,d4,f4] d3, d3 ~", // Dm7
  I: "[a1,g3,a3,c4,e4]@10 a2@2 [a1,e4,a4]@2 [d4,f4] ~, a2@8 ~@4 c4 ~ a2@2", // Am7 A5 Dm
  J: "[f2,f3,a3,c4,d#4]@11 ~ [f2,f3,c4,d#4,f4,a4]@3 ~", K: "[e2,e3,g#3,b3,d4,e4,g4]@9 ~ [e2,e3]@2 [e4,e5]@4",
  L: "a2 a1 [g3,c4,e4] a2 [g3,c4,e4] [a3,d4] a1 [a2,g3,c4,e4], ~@10 f#4 ~@5", // C D5 Am7
  M: "a1@4 ~@2 a1@2 [c4,c5]@2 [d4,d5] ~ [d#4,d#5]@2 [g4,g5]@2, a2@2 g2 g#2, ~ [g3,c4,e4] ~@2", // C D D# G C
  N: "[[a1,a2,a4,e5,a5]@10 [a2,a3,d4,f#4]@2 a1 ~@3 a1@6 ~@2 [a1,d4,f#4]@2 a2@2 [d4,f#4]@2 [a2,a3]@2, ~@14 [a2,g3,c4,e4]@9 ~ a3 ~ a3 ~ [a1,a3] ~@3]/2", // A5 D A Am7 A
  O: "[~@4 [b3,d#4] [c4,e4]@3 ~@2 [a2,b3,d4,f4]@2 a1 ~@7 d4 d5 [d4,d5]@2 [c4,c5] ~ [a3,a4] ~ [g3,g4] ~ [c2,a3,a4]@2, a1@5 ~@3 a1@3 ~ a1 ~@3, a2@4 ~@3 a2@6 ~ c3@2, ~@2 [a3,g4]@2 ~@3 [a3,c4,e4,g4]@3 ~@6]/2", // B C Bm7b5 D C A G F …
  P: "[[d3,c4,d4,f4,a4]@8 ~@2 [d3,c4,e4,g4,a4]@2 d2 ~@3 d2@6 d4@2 [d2,c4,d4,g4,a4]@2 d3@2 [c4,d4,f4,a4]@2 a2@2, d2@5 ~@2 d3@6 ~@3, ~@7 [a3,c4,d4,f4]@3 ~@6]/2", // Dm7 Am7 Dsus4 Dm7
  Q: "[~@4 [a3,c4,e4,g4]@2 ~@4 [a2,b3,d4,f4]@2 ~@2 a3@2 [a4,e5] ~ [a4,d5,d#5] c5 c5@2 a4 ~ [d#4,e4,a4] ~ [d4,a4] ~ [c4,a4] ~ [a2,a3,a4]@2, [a1,a2]@9 ~@5 a2@10 ~@2 a2@2 ~@4, ~@8 a1@5 ~ a1 ~, ~@20 a4 ~@11]/2", // Am7 Bm7b5 A5 D A D5 F A
  R: "[g3,a3,c4,e4]@2 [g#5,c6] a5 [g5,c6] ~ [e5,c6]@2 [d#5,e5,g5] ~ [d#5,e5,g5] ~ [d5,g5] [d5,d#5] [a2,a4]@2, a1@10 ~@2 a1@3 ~, a2@8 ~@2 a2@2 ~@2 c5 ~", // Am7 G# C5 C D# G5 D#maj7 A
  S: "[g3,a3,c4,e4]@2 [e4,e5]@2 g4@2 [a4,a5] ~ [c5,c6] ~ d5@2 d#6 [e5,d#6,e6] [c5,c6]@2, a1@5 ~@3, a2 ~, ~@4 g5 ~@5 d6 ~ d#5@2 [d5,d6] ~", // Am7 E A C Emaj7 C D
  T: "[e2,e3,g#3,b3,d4,e4,g4]@8 e5@2 [g5,g6] ~ [a5,a6]@2 c6@2, ~@8 e6 ~@5 c7 ~", // E7 G A
  U: "[a2,a5,a6] a1 [g3,c4,e4] a2 [g3,c4,e4] [a3,d4] a1 [a2,g3,c4,e4], ~@10 f#4 ~@5", // A C D5 Am7
  V: "~ [a4,e5,a5] a4 [a4,e5,a5]!2 [e5,a5] [a4,e5,a5]!2 a4 [a4,e5,a5]!2 [e5,a5] [a4,e5] a4!2 a5, a2@2 ~ a1@2 ~ b1@2 ~@2 c2@2 ~@2 c#2@2, ~@2 b2 ~ c3 ~ c#3 ~", // A5
  W: "[[d3,c4,d4,f4,a4]@8 ~@2 [d3,c4,d4,f4,a4]@2 d2 ~@3 d2@6 ~@2 [d2,c4,d4,f4,a4]@2 d3@2 ~@2 g2@2, d2@5 ~@2 d3@6 ~@3, ~@7 [c4,d4,f4,a4]@4 ~@3 [c4,d4,f4,a4]@2]/2", // Dm7
  X: "[[a2,c4,e4,g4,a4]@8 ~@2 [a2,c4,e4,g4,a4]@2 a1 ~ [c4,e4,g4,a4]@2 ~@2 [e4,e5] ~ [e4,e5]@3 ~ [e4,e5] [d#4,d#5] [e4,e5] ~ [d4,d5] ~ [a2,c4,c5]@2, a1@5 ~@2 a2@6 a2 ~@2, ~@8 a1@3 ~ a1 ~@3]/2", // Am7 E D# E D Am
  Y: "[[d3,c4,d4,f4,a4]@8 ~@2 [d3,c4,d4,f4,a4]@2 d2 ~@7 [c4,d4,f4,a4]@3 ~ [d2,c4,d4,f4,a4]@2 d3@2 [c4,d4,f4,a4]@2 d2@2, d2@5 ~@2 d3@6 ~@3, ~@7 [c4,d4,f4,a4]@2 ~@7, ~@8 d2@3 ~@5]/2", // Dm7
  Z: "e3 e2 [e3,g#3,b3,d4] ~@2 [e2,e3,g#3,b3] ~ [e2,e3,g#3,b3,d4], e2 ~@9 d4 ~@5", // E7 E E7
  AA: "[~@12 [g6,a6,b6,c7] [g5,a5,b5,c6,d6,e6,f6,a6] [b4,c5,d5,e5,f5] [e4,f4,g4,a4] [g3,a3,c4,e4]@8 ~@2 [a2,a3,d4,f#4]@2 a1 ~@3 a1@6 ~@2 [a1,a3,d4,f#4]@2 a2@2 [a3,d4,f#4]@2 a2@2 [b3,d#4] ~ [d#5,e5,g5] ~ [e5,g5] ~ [e5,g5] ~ [d#5,g5] [c5,d5] [a2,a4]@2 c5@2 a4@2 [a4,d#5] [a4,c5] d5@2 [a4,c5]@2 ~ [a4,d5] ~ a4@2 a4 [e4,c5] ~ [c2,e4,a4]@2 [d3,a3,d4,f4]@8 ~@2 [d3,a3,c4,d4,f4]@2 d2 ~ [a3,c4,d4,f4]@2 ~@2 [d6,d#6,g6] ~ [c6,g6]@2 e5 ~ d5 d#5 d3@2 a4 ~ [a2,g4]@2 [a3,c4,e4]@2 a2@2 ~@2 a2@2 [c4,e4,g4] ~ [a2,f#4]@2 a1@2 [a2,g3,c4,e4]@2, ~@13 c7@115, ~@16 [a1,a2]@10 ~@4 a2@8 ~@6 a1 ~@3 a1@10 ~@2 a1 ~@3 a1@6 ~@2 a1@2 ~@6 [d2,c4]@10 ~@6 d2@6 ~@2 d2@2 ~@6 a1@6 ~@10, ~@30 [g3,c4,e4]@6 ~@12 a2@8 ~@6 a2@12 ~@2 c3@4 ~@14 d3@12 ~@16 [a3,d4] ~@5, ~@48 [a3,g4] [c4,e4]@4 ~@13 a4 ~@6 c5 ~@32 c5 ~@7 g4 ~@13]/8", // Cmaj7 G7 Bdim Fmaj7 Am7 D B D# …
  AB: "a1@2 [c4,e4,a4] ~ [d4,f#4,b4]@2 ~@2 [e4,g4,c5]@2 a2@2 [a1,d4,f#4,b4]@2 a2@2, ~ a2 ~@6", // Am Bm C Bm7
  AC: "[g3,a3,c4,e4]@2 [e4,e5]@2 g4@2 [a4,a5] ~ c5@2 [a2,d5]@2 [e5,e6] ~ [a2,g5]@2, a1@5 ~ a1 ~, a2 ~, ~@4 g5 ~@3 c6 ~ d6 ~@3 g6 ~", // Am7 E A D5 E A7
  AD: "a5 [a5,a6] a6 [a5,a6] a5 [a5,a6]!2 a6 [a5,a6]!4 [d2,a5]@2 d3@2, d2@5 ~@3, d3@8 ~@2 d3@2 a6 ~ a6 ~", // A D5
  AE: "d#5 [d#5,d#6]!2 ~ [d5,d6]@2 ~ [b4,b5] [g4,g5] ~ [a2,b4]@2 [a1,c5]@2 [a2,b4,d5,b5]@2, a1@5 ~@3, a2@8 ~@2 [g4,g5] ~ [a4,a5] ~@3", // D# D B G Asus2 Am Bm7 G …
  AF: "[f2,c5,d#5,g5,b5]@11 ~ [f2,f3,d#4,g4,b4,d5]@3 ~", AG: "[g#3,b3,d4,g4]@5 [e2,e3] [e4,e5]@2, [e2,e3]@9 ~@7",
  AH: "~ e5@2 ~ [e4,e5]@2 a1@2 [d4,d5]@2 [d#4,d#5] ~ [e4,e5]@2 [g4,g5]@2, a2@2 g2 g#2, [a1,e4] ~@3", // E D D# E G A5
  AI: "[a1@2 a2@2 [a1,c6]@2 a2@2 [d#5,e5,g5] ~ [d5,g5] ~ [c5,g5] ~ [a2,a4,g5]@2 a1@2 a2@2 a1@2 a2@2 [a1,a4,d5,f#5]@2 a2@2 [a1,a4,d5,f#5]@2 a2@2 a1@2 a2@2 [a1,a4,e5,g5]@2 a2@2 [a4,d5,f#5] ~ [a2,a4,d5,f#5]@2 a1@2 [a2,a4,c5,e5]@2 a1@2 a2@2 [e4,g#4,c5] a4 [e4,d5] ~ [a1,c5]@2 [a2,a4]@2 [a1,c5]@2 [a2,d4,a4]@2 [d2,a3,d4,f4]@2 d3@2 [d2,a3,d4,f4]@2 d3@2 d2@2 [d3,b3,e4,g4]@2 d2@2 [d3,a3,d4,f4]@2 d2@2 d3@2 [d2,a3,d4,f4]@2 d3@2 [d4,d#4,g4] ~ [c4,f4] ~ [d4,d#4,g4] ~ [d3,c4,f4]@2 a1@2 a2@2 [a1,g3,c4,e4]@2 a2@2 a1@2 [a2,a3,d4,f#4]@2 a1@2 [a2,c4,e4,g4]@2 a1@2 [e4,e5] ~ [g4,g5] ~ [a4,a5] ~ [c5,c6] ~ [d5,d6] ~ [d#5,d#6] ~ [a5,a6] ~, [a4,a5] c7@31, ~@8 a1@2 a2@2 a1@2 ~@26 a1@2 ~@10 a1@2 a2@2 d#4 ~ d4 ~ d#4 ~@27 d2@2 d3@2 d2@2 ~@20 a2@2 a1@2 a2@2 a1@2 a2@2 a1@2 a2@2]/8", // Am D# G5 C5 A7 D A7 D …
  AJ: "[a3,c4,d#4,g4]@10 f3@2 [c4,d#4,f4,a4]@2 f3 ~, f2@15 ~, f3 ~", // Am7b5 F7
  AK: "e5@2 [g4,g5]@2 ~@2 e2@2 [e4,e5] ~ [e2,e3]@2 [g2,g3]@4, e3 ~, e2 ~@3, e4 ~@9 [g4,g5] ~@5", // G E G
  AL: "a2@2 a1@2 a2@2 a1@2 [c5,c6] ~ [b4,b5] ~ a2@2 [a1,a4,a5]@2, a4@3 ~ a2 a1 ~@2", // C B A
  AM: "a2@2 [a1,e4,e5]@2 a2@2 [a1,a4]@2 [c5,c6] ~ [b2,d#5,d#6] ~ [c3,e5,e6] ~ [g5,g6] ~, ~@6 a5 ~ a2@2 ~@4 c#3@2", // A5 A C B C G
  AN: "[f5 [d6,f6] f5 [d6,f6] [f5,d6] [f5,f6] d6 [f5,f6] [d6,f6] f5 [d6,f6] f5 [d2,d6,f6] [f5,d6] f6 [f5,d6] [f5,f6] d6 [f5,f6] d6 [f5,f6] [d6,f6] f5 [d6,f6] [c5,c6] ~ [d5,d6] ~ [e5,e6] ~ [g2,g5]@2, d2@5 ~@3 d2@3 ~ d2 ~@3, d3@8 ~@2 d3@2 ~@2 d3@12 d3@2 ~@2 g6 ~]/2", // Dm F Dm F Dm C D E …
  AO: "[[a5,a6] ~ e5 [c5,d5,d#5] [d#5,e5] [c5,d5] [d#5,e5] [c5,d5] [d#5,e5] [c5,d5] e5 [c5,d5,d#5] [a1,d#5,e5] d5 [e5,e6] e6 e5 [e5,e6]!4 ~ [g5,g6] ~ [e5,e6] ~ [a2,d#5]@2 d5@2 [a2,c6]@2, a1@5 ~@3 a1@3 ~ a1 ~@3, a2@8 ~@2 a2@2 ~@2 a2@12 d#6 ~ d6 ~ c5 ~]/2", // A Cm Emaj7 Csus2 Emaj7 Csus2 Emaj7 Csus2 …
  AP: "[[d3,f4,a4,d5]@8 ~@2 [d3,f4,a4,d5]@2 d2 ~ f5 d6 [f5,d6]!3 f5 [f5,d6] d6 [f5,d6]!2 f5 [f5,d6]!4 d6 [d2,f5]@2, d2@10 ~@4 d3@12 d3@2 ~@2 d6 ~, ~@8 d2@3 ~ d2 ~@3]/2", // Dm
  AQ: "~@12 [a6,b6,c7] [a5,b5,c6,d6,e6,f6,g6] [d5,e5,f5,g5] [g4,a4,b4,c5]", // Am Am7 Em7 Cmaj7
  AR: "[[g4,a4,c5,e5]@2 ~@2 [g4,a4,c5,e5]@2 ~@4 [a2,a4,d5,f#5]@2 a1 ~ [g4,a4,c5,e5]@2 ~@4 [f#4,a4,d5] ~ c5@2 [a1,f#4,a4,d5]@2 a2@2 [b4,d5]@2 [a2,d6,f#6]@2, [a1,a2]@5 ~@2 a2@4 ~@5, ~@16 a1@6 ~@6 [a1,a#4] ~@3]/2", // Am7 D Am7 D Bm D A A#maj7
  AS: "[[d#6,g6] e6 [e6,g6] ~ [e6,g6] ~ e6@2 [d#6,e6,g6] ~ [e6,g6] ~ [a1,e6,g6] ~ e6@2 [e6,b6]!5 ~ [e6,a6]!2 a1@2 [d#5,e5] ~ d#5 [c5,d5] [c2,a4]@2, a1@5 ~@3 a1@3 ~@5, a2@4 ~ a2 ~ a2@6 ~ c3@2, ~@6 g6 ~@7 g6 ~@11 g5@2 ~@4]/2", // D# Em D# Em A7 E5 A5 Emaj7 …
  AT: "[[d3,c4,d4,f4,a4]@8 ~@2 [d3,c4,d4,f4,a4]@2 d2 ~ [c4,d4,f4,a4]@2 ~@2 [a3,a4]@2 [c4,c5] ~ d4@2 [d#4,d#5] ~ [g4,g5] ~ [a4,a5] ~ [a2,g4]@2, d2@10 ~@4 d3@12 d3@2 ~@2 g5 ~, ~@16 d2@6 d5 ~ d2@2 ~@6]/2", // Dm7 A C D# G A A7
  AU: "[[a4,a5]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,f#4] ~ [a2,a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a5,d6] ~ [g5,c6] ~ [e5,a5] ~ [d#5,e5,g5] ~ [a2,e5,g5]@2 [d5,d#5] c5 [a2,a4]@2, [a1,a2]@8 d4@2 ~@4 a2@10 ~@2 d#5 ~@5, ~@8 a1@5 ~ a1 ~]/2", // A C D C D5 C5 A5 D# …
  AV: "[d2,c4,d4,f4,a4]@10 d3@2 [d2,c4,d4,f4,a4]@3 ~, d3 ~", // Dm7
  AW: "[a3,a4]@2 [c4,c5]@2 [d4,d5]@2 [e4,e5] ~ [c5,c6] ~ [d5,d6] ~ [d#5,e5,d#6,e6] ~ [g5,g6] ~, a1@5 ~ a1 ~, a2@4 ~ a2 ~ a2", // A C D E C D Emaj7 G
  AX: "a5 [a5,a6]!2 a6 [a5,a6]!2 a5 [a5,a6]!2 a6 [a5,a6]!3 a5 [a5,a6] a6, d2@10 ~@2 d2@3 ~, d3@4 ~ d3 ~ d3", // A
  AY: "a5 a6 [a5,a6]!4 ~ [e5,e6] ~ [d5,d6] [c5,c6] ~ [a4,a5] ~ [g4,g5] ~, a1@5 ~ a1 ~, a2@4 ~ a2 ~ a2", // A E D C A G
  AZ: "[e2,e3,g#3,b3,d4,e4,g4]@8 [e4,e5] ~ [g4,g5] ~ [a4,a5] ~ c5@2, ~@10 e2@2 ~@2 c6 ~", // E7 E G A
  BA: "a1@4 ~@2 a1@2 [c5,c6]@2 [d5,d6] ~ [d#5,d#6]@2 [g5,g6]@2, a2@2 g2 g#2, ~ [g3,c4,e4] ~@2", // C D D# G C
  BB: "[a5,a6] ~ [a4,e5,g5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", BC: "[a4,e5,g5] ~ [a4,e5,g5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~",
  BD: "~@4 [a4,e5,g5]@2 ~@2 [a4,f#5] ~ [a4,d5]@2 ~@2 [a4,e5,g5]@2, ~@8 d5@2 f#5 ~@5", // A7 D D5 A7
  BE: "~@2 [a4,e5,g5] ~ [a4,d5,f#5] ~ [a4,d5,f#5] ~", // A7 D
  BF: "[a4,e5,g5]@2 ~@2 [a4,e5,g5]@2 ~@2 [a4,f#5] ~ [a4,d5,f#5]@2 ~@2 [a4,e5,g5]@2, ~@4 d5 ~@3", // A7 D A7
  BG: "~@2 [a4,e5,g5] ~ [a4,e5]@2 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5] ~@3 [a4,e5,a5]@2, ~@4 g5 ~@11", // A7 A5 D A5
  BH: "~@4 [a4,e5,g5]@2 ~@2 [c5,c6] ~ [d5,d6] ~ [d#5,e5,d#6,e6] ~ [g5,g6] ~", // A7 C D Emaj7 G
  BI: "[a5,a6] ~@3 [a4,e5,g5]@2 ~@2 [a4,d5,f#5]@2 ~@2 [a4,d5,f#5]@2 ~@2", // A A7 D
  BJ: "[a4,e5,g5]@2 ~@2 [a4,e5,g5]@2 ~@2 [a4,f#5] ~ [a4,f#5] ~@3 [a4,e5,g5]@2, ~@4 d5!2 ~@2", // A7 D A7
  BK: "~@4 [a4,e5]@2 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5] ~ [b6,c7] [d6,e6,f6,g6,a6] [g5,a5,b5,c6] [e5,f5], ~@4 g5 ~@9 a2@2", // A5 D Cmaj7 Dm Cmaj7 Fmaj7
  BL: "a1@2 [a2,g3,c4,e4] ~ [a1,a2,g3,c4,e4]@3 ~ [g1,g2,a3,d4,f#4]@3 ~ [g#1,g#2,a3,d4,f#4]@3 ~", // Am7 D
  BM: "[a1,a2,g3,a3,c4,e4]", BN: "[f2,f3,a3,c4,d#4,g4]@15 ~", BO: "[[e2,e3,g#3,b3,d4,e4]@63 ~]/4",
  BP: "[a2,a3,c4,e4,g4,a4]/2", BQ: "~ [a3,c4,e4,a4]@2 ~@13, ~ a2 ~@14",
})).s("gm_piano").gain(0.48)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D C E F G C D F H I D J K C L C D C M F N C D F O P D J Q C R F S C T F@2 U ~ C V C W F X C Y F Z AA D J AB C AC
  AD AE AF AG F AH C AI AJ AK AL R F S C T F@2 AM AN C D C W F AO AP AQ F AR AS AT J AU C AV C AW AF AX AF C AY AZ C BA
  AF BB C BC BD BE BF BG BH@3 ~ BI@2 BJ
>`.pickRestart({
  A: "a1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@2 g2 a2", B: "a1@2 a1@2 a1 ~ a1@2 a1 ~ e1@2 g1@2 g1@2",
  C: "a1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2", D: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1 ~",
  E: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ e1 ~", F: "d2@2 d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2",
  G: "d2 ~ d2@2 d2 ~ d2@2 d2 ~ d2@2 d2 ~ a1 ~", H: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ c#2@2",
  I: "d2@2 d2@2 d2 ~ d2 ~ d2 ~ d2 e2 g2 g#2 a2@2", J: "f1@2 f1@2 f1 ~ f1@2 f1 ~ f1@2 f2 ~ f2@2",
  K: "e2 ~ e2@2 g1 ~ f1@2 e1 ~ e1@2 [d2,d#2,e2] [b1,c2,c#2] a#1 ~", L: "a1 ~ a1@2 a1 ~ a1@2 g1 ~ g1@2 g#1 ~ g#1 ~",
  M: "a1 ~ a1@2 a1 ~ a1@2 b1 ~ b1@2 c2 ~ c2 ~", N: "d2 ~ d2@2 d2 e2 g2 a2 c3 ~ c3@2 a2 ~ e2@2",
  O: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ d2 e2", P: "d2@2 d2@2 d2 ~ d2 ~ d2 ~ d2@2 d2 e2 g2 a2",
  Q: "e2@2 g2 f2 e2 ~ f1@2 e1 ~ [f2,f#2] [g2,g#2,a2,a#2] [a2,a#2,b2] [f#2,g2,g#2] [d#2,e2,f2] d2", // F#maj7
  R: "a1 ~ a1@2 b1 ~ b1@2 c2 ~ c2@2 c#2 ~ c#2 ~", S: "[c2,c#2] ~ d2@2 d2 ~ d2@2 d2 ~ e1 f1 f#1 g1 g#1@2",
  T: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 c#2 ~ c#2 ~", U: "e1@2 e2@2 e2 ~ e2@2 e2 ~ e2 ~ e1 ~ e2@2",
  V: "e1 ~ e1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1 ~", W: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 c2 ~ c2 ~",
  X: "d2 ~ d2@2 d2 ~ d2@2 d2 e2 g2 g#2 a2 g2 e2 c2", Y: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a2 g2 e2 d#2",
  Z: "a1 ~ a1@2 a1 ~ a1@2 b1 ~ c2@2 c2@2 c#2@2", AA: "d2@2 d2@2 e2 ~ e2 ~ f2 ~ f2 ~ a2 g2 e2 d2",
  AB: "e2 ~ e2@2 g1 ~ f1@2 e1 ~ e1@2 e1@4", AC: "a1 ~ a1@2 a1 ~ e1@2 g1 ~ g1@2 g#1 ~ g#1 ~",
  AD: "a1@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ g1 a1", AE: "c2@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2",
  AF: "d2@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2", AG: "g2@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a2 ~ g2 e2",
  AH: "d2 ~ d3 e3 d3 c3 a2 d3 [f1,c3]@4 a2 g2 e2 d2", AI: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ g1@2",
  AJ: "f1@2 f1@2 f1 ~ f1@2 f1 ~ f1@2 f1 ~ f1@2", AK: "e1 ~ e1@2 e1 ~ e1@2 e1 ~ e1@2 g1 ~ g#1@2",
  AL: "a1@2 a1!2 c2 ~ a1 ~ a1 ~ a1@2 a1 ~ a1@2", AM: "e1@2 e2 ~ e2 ~ e1@2 e2 ~ e2 ~ e1@2 e2@2",
  AN: "~@2 f2 [f#2,g2] [g#2,a2,a#2] [f#2,g2,g#2] [e2,f2] ~@9", AO: "d2 ~ d2@2 d2 e2 g2 a2 c3@2 a2 g2!3 a1@2",
  AP: "a1@2 a1@2 a1 ~ a1@2 a1 ~ g2@2 a2 ~ a2@2", AQ: "c3@2 a1@2 a1 ~ a1@2 a1 ~ a1@2 a2 g2 d2 e2",
  AR: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 c2 ~ c2@2", AS: "d2@2 d2@2 d2 ~ d2 ~ d2 ~ d2@2 d2 ~ d2@2",
  AT: "a1 ~ a1@2 a1 ~ a1@2 c2 ~ c2@2 d2 ~ d2 ~", AU: "e2 ~ [f#2,g2] [d2,d#2,e2,f2] [e1,c#2] ~ e1@2 e1 ~ e1@2 e1 ~ e1@2",
  AV: "a1 ~ a1@2 e1 ~ e1@2 g1 ~ g1@2 g#1 ~ g#1 ~", AW: "g#1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1@2 c2@2",
  AX: "g#1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2", AY: "g#1@2 a1@2 c2@2 f#1@2 g1 ~ g1@2 g#1 ~ g#1@2",
  AZ: "a1!2 c2 c3 b1 b2 a#1 a#2", BA: "g1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1 ~",
  BB: "g1 ~ a1@2 a1 ~ a1@2 d2 ~ a1@2 a1 ~ a1 ~", BC: "a1 ~ a1@2 a1 ~ a1@2 a1 ~ a1@2 a1 ~ g1 ~",
  BD: "a1@2 a1@2 c2 ~ c#2@2 d2 ~ d2@2 d#2 ~ e2@2", BE: "a1 ~ a1@2 a1@3 ~ g1@3 ~ g#1@3 ~", BF: "a1@15 ~", BG: "f1@15 ~",
  BH: "e1/3", BI: "a1/2", BJ: "~ a1 ~@14",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@2 A@4 B C A D E F E G H I J K A@4 B C A D E F E G H I J L M E N F M E O ~ A@4 B C A D E F E G H I J K P Q P Q B C R
  G H I J L M E N F M E O ~ A@4 B C A S E F E G H I J K P Q P Q P Q P Q P Q P Q P Q P T U V W X@2 ~@3 Y
>`.pickRestart({
  A: "[d#4,f#4,b4,d#5] [e4,g4,c5,e5]@2 [e4,g4,c5,e5] e4 ~@2 [e4,a4,e5] ~ [e4,g4,c5] [f#4,a4,d5] ~ [e4,g4,c5] ~@3", // B C A5 C D C
  B: "[c#4,e4,g#4,b4] [d4,f4,a4,c5]@2 [d4,f4,a4,c5] d4 ~@2 [d4,a4,c5] ~ [d4,f4,a4] g3 ~ a3@4", // C#m7 Dm7 D7 Dm
  C: "[c#4,e4,g#4,b4] [d4,f4,a4,c5]@2 [d4,f4,a4,c5] d4 ~@2 [d4,a4,c5] ~ [d4,f4,a4] [f4,b4,d5] ~ [f4,a4,d5] ~@3", // C#m7 Dm7 D7 Dm Bdim Dm
  D: "[d#4,f#4,b4,d#5] [e4,g4,c5,e5]@2 [e4,g4,c5,e5] e4 ~@2 [e4,a4,e5] ~ [e4,g4,c5] ~@2 d4 c4 a3@2, ~@5 [c4,d#4] ~@2, ~@11 e4@2 ~@3", // B C A5 C Cm
  E: "[c#4,e4,g#4,b4] [d4,f4,a4,c5]@2 [d4,f4,a4,c5] d4 ~@2 [d4,a4,c5] ~ [d4,f4,a4] g3@2 ~@2 c4@2, ~@3 [f4,a4,c5]", // C#m7 Dm7 D7 Dm F
  F: "[d#4,g#4,b4,d#5] [e4,a4,c5,e5]@2 [e4,a4,c5,e5] e4 ~@2 [e4,c5,e5] ~ [e4,a4,c5] a2@2 ~@2 c#3@2, ~@3 [e4,a4,c5,e5]", // G#m Am C Am
  G: "[d#4,g#4,b4,d#5] [e4,a4,c5,e5]@2 [e4,a4,c5,e5] e4 ~@2 [e4,c5,e5] ~ [e4,a4,c5] a2@2 [e4,a4,c5,e5]@4", // G#m Am C Am
  H: "[c4,d#4,g4]@3 [c4,d#4,g4], [a3,c5]@7 ~", I: "~@5 e2 [g#3,b3,d4,g4]@2, [g#3,b3,d4,g4]@3 ~",
  J: "a2@4 g3@2 a3@2 [g3,c4,e4] ~ [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2, ~ [c4,e4] ~@2", // C D C
  K: "~ [g3,c4,e4] a2@2 [a2,g3,c4]@4 [g2,g3]@4 g3@2 a3@2, ~@3 [g#2,c4,e4]", // C Am7 G G#aug
  L: "[d#4,f#4,b4,d#5] [e4,g4,c5,e5]@2 [e4,g4,c5,e5] e4 ~@2 [e4,a4,e5] ~ [e4,g4,c5] [a#3,d4,f4] ~@3 [a3,d4,f4]@2", // B C A5 C A# Dm
  M: "[c#4,e4,g#4,b4] [d4,f4,a4,c5]@2 [d4,f4,a4,c5] d4 ~@2 [d4,a4,c5] ~ [d4,f4,a4] d4@2 ~@2 c4@2, ~@3 [f4,a4,c5]", // C#m7 Dm7 D7 Dm F
  N: "[d#4,g#4,b4,d#5] [e4,a4,c5,e5]@2 [e4,a4,c5,e5] e4 ~@2 [e4,c5,e5] ~ [e4,a4,c5] a2@2 ~@2 a2@2, ~@3 [e4,a4,c5,e5]", // G#m Am C Am
  O: "e3 [g#3,b3,e4] [g#3,b3,d4,g4] ~@2 [g#3,b3,d4,g4] ~ [g#3,b3,d4,g4]", // E G
  P: "[e3,a3]@4 [g3,c4,e4]@2 [a2,e3]@2 [a3,d4,f#4] ~ [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2", // A5 C A5 D C
  Q: "~ [a2,e3,a3] [a#3,d#4,g4] a2 [a3,d4,f#4] ~ [a3,d4,f#4] ~", // A5 D# D
  R: "[d#4,f#4,b4,d#5] [e4,g4,c5,e5]@2 [e4,g4,c5,e5] e4 ~@2 [e4,c5,e5] ~ [e4,g4,c5] a3@2 ~@2 e4@2, ~@3 [a4,c5,f#5]", // B C F#dim
  S: "[d#4,f#4,b4,d#5] [e4,g4,c5,e5]@2 [e4,g4,c5,e5] e4 ~@2 [e4,a4,e5] ~ [e4,g4,c5] [c4,d#4,e4]@2 d4 c4 a3@2", // B C A5 C
  T: "~@2 [g3,c4,e4]@2 [g3,c4,e4]@3 ~ [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2", U: "[g3,c4,e4]",
  V: "~@4 g4@3 ~, c4, a3@5 a3@9 ~@2, ~ d#4@6 d#4@8 ~",
  W: "~@3 [g#3,b3] [d4,a4] ~ g4 ~ d4@2 g#3 [b3,d4] e4 [b3,d4] g#3@2, ~@2 e4 ~@5", // G#m D5 Bm
  X: "[~ c4@3 a3 g3 e3 d3 ~@2 c3@2 d4@2 d4@18, ~@9 e3@2 ~@21]/2", Y: "~ [a3,c4,e4,a4]@2 ~@13",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.8)

// chords · electric guitar clean · "CLEAN GTR" · soft notes
const electric_guitar_clean_2 = note(`<
  ~@2 A@4 B@2 A@2 B C B C ~@3 D A@4 B@2 A@2 B C B C ~@3 E B@2 C@2 B@2 ~@2 A@4 B@2 A@2 B C B C ~@3 D F G F G B@2 A C ~@3
  E B@2 C@2 B@2 ~@2 A@4 B@2 A@2 B C B C ~@3 D F G F G F G F G F G F G F G F ~@2 H ~@7
>`.pickRestart({
  A: "~@6 [e4,g4] ~ [e4,g4,c5] ~@7", B: "~@6 [d4,f4] ~ [d4,f4,a4] ~@7", C: "~@6 [e4,a4] ~ [e4,a4,c5] ~@7",
  D: "a2 ~ e4@2 d3@2 ~@2", E: "a2 ~@5 [e4,g4] ~ [e4,g4,c5] ~@7", F: "a2@2 ~ a3 ~@2 [a2,e3] ~",
  G: "~@3 e3 ~ [a2,e3] ~@2", H: "f3@4 f3@11 ~",
})).s("gm_electric_guitar_clean").gain(0.15).pan(0.8)

// chords · flute
const flute = note("<~@18 A ~@3 B ~@11 C ~ D ~ C ~ E ~ A ~@3 B ~@23 C ~ D ~ C ~ E ~ A ~@3 B ~@27 F@2 ~@7>".pickRestart({
  A: "~@2 [e4,a4,c5] ~ [e4,a4,c5] [d4,g4,b4] [c4,e4,a4] [e4,a4,c5]", // Am G Am
  B: "~@2 [f4,a4,c5] ~ [f4,a4,c5] [e4,g4,b4] [d4,f4,a4] [f4,a4,c5]", C: "[d4,f4,a4,c5]", D: "[e4,a4,c5]",
  E: "[g#4,b4,d5]", F: "[~@2 [d#4,a4,c5] ~ [d#4,a4,c5] [d4,g4,b4] [c4,e4,a4] [d#4,a4,c5]@7 ~@2]/2",
})).s("gm_flute").gain(0.4)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@16 A ~ B ~ C ~ A ~ B ~@5 D E A ~ F@2 G@2 H@2 I ~ B ~ C ~ J ~ B ~ K@2 L@2 D M A ~@13 F@2 G@2 H@2 N ~ B ~ C ~ J ~ B ~
  K@2 L@2 D M A ~ A ~ O ~ A ~ O ~ A ~ O ~ A ~ O ~@7 P@2 Q
>`.pickRestart({
  A: "~@4 [a3,a4,a5]@2 [e3,e4,e5]@2 [g3,g4,g5]@2 [a3,a4,a5] ~@3 [c4,c5,c6]@2", // A E G A C
  B: "~@4 [a3,e4,a4,a5] ~@5 [a3,e4,a4,a5] ~@3 [a3,e4,a4,a5] ~", C: "~@4 [a3,e4,a4] ~@5 [a3,f4,a4] ~@3 [a3,e4,a4] ~",
  D: "[a3,c4,d#4,g4,b4]", E: "a5 a#5 b5@14, [e3,g#3,d4,g4,g#4,b4]",
  F: "[~@4 [d4,d5]@2 ~@2 [d4,d5]@2 [e4,e5] ~@3 [d4,d5]@18]/2", // D E D
  G: "[~@4 [c4,c5]@2 [c4,c5]@2 [c4,c5]@2 [b3,b4] ~@3 [c4,e4,e5]@14 ~@4]/2", // C B C
  H: "[~@4 [d4,d5]@2 ~@2 [d4,d5]@2 [e4,e5] ~@3 [d4,f4,a4,c5,d5]@14 ~@4]/2", // D E Dm7
  I: "~@3 [c6,c#6,d6] [e4,e5,e6]@2 ~@4 [g#4,a#4,d5,e5]@2 ~@2 [e3,g#4,a#4,d5,e5,e6]@2, ~@2 b5@2 d#6 ~@5 e6 ~@5", // E E7
  J: "~@4 [a3,a4,a5]@2 [e3,e4,e5]@2 [g3,g4,g5]@2 [a3,a4,a5] ~@3 [a#5,b5,c6] ~, ~@7 [c4,c5]", // A E G A C
  K: "[[d4,f4]@16 [c4,e4]@15 ~, a4@31 ~]/2", L: "[[d4,f4] [c4,e4], a4]/2",
  M: "a5 a#5 b5@9 ~@5, [e3,g#3,d4,g4,g#4,b4]@5 ~@3", // E7
  N: "~@2 [g#4,a#4,d5,e5] ~ [g#4,a#4,d5,e5,e6]@2 ~@2 [g#4,a#4,e5,e6]@2 [g#4,a#4,d5,e5]@2 ~@2 [e3,g#4,a#4,d5,e5,e6]@2, ~@2 e6@2 ~@4 d5 ~ e6 ~@5", // E7 A#m7b5 E7
  O: "~@4 [a3,a4,a5] ~@5 [a3,a4,a5] ~@3 [a3,a4,a5] ~", P: "[a3,c4,a4,e5,g5,b5,d6]/2",
  Q: "~ [a4,c6]@2 ~@13, ~ [c5,e5] ~@14", // Am C
})).s("gm_brass_section").gain(0.71).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~ A B@39 ~ B@15 C B@11 D B@6 E ~ B@13 C F B@15 G H I ~@5 I J K>".pickRestart({
  A: "~@5 x ~ x", B: "x ~@2 x!3 ~ x", C: "x ~@2 x!2 ~@3", D: "x ~@2 x ~ x ~ x", E: "x!2 ~@2 x!2 ~ x",
  F: "~ x ~ x!3 ~ x", G: "x ~@2 x!3 ~@2", H: "~ x ~@2 x ~ x ~", I: "x", J: "~@7 x ~@8", K: "~ x ~@14",
})).gain(0.64)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A B C B@2 C B C D C A C A@2 E B F C B C@2 B C@2 A B C@2 F@2 E G H B I B@2 C@2 ~ F B@6 J C B C B A K L M ~@12 F B N
// … 40 more lines

More by Joe Cocker