Strudelify
Summer in the City cover art

1999

Summer in the City

Joe Cocker

KeyD majorTempo89 bpm
0:00/0:00
// Summer in the City — Joe Cocker
// 89 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 17, 4/4 at bar 18, 2/4 at bar 34, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 86 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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 · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A B A B C D C D E F G H I J@2 ~@3 K L@3 M@3 N O P Q R S ~@4 T@4 C D C D U V U W E X E Y Z J@2 ~@3 K L@3 AA AB@3 AC AD
  AE AD AE AD AE AD AE AD AE AD AE AD AE AD AE AD AE AD ~
>`.pickRestart({
  A: "[d2,f3,a3,d4]", B: "[a#2,a#3]", C: "[d4,f4,a4]@11 ~ [c4,e4,f4,a4]@4", D: "[g#3,d4,f4]@3 [g3,c#4,e4]",
  E: "[d4,f4,a4]@7 ~ [c4,e4,f4,a4]@7 ~", F: "[b3,d4,g4]@7 ~ [g#3,d4,f4]@4 [g3,c#4,e4]@4",
  G: "[d4,f4,a4]@7 ~ [c4,e4,f4,a4]@5 ~ [c4,e4,f4,a4]@2", H: "[b3,d4,g4]@7 ~ [g#3,d4,f4]@8",
  I: "[g3,c#4,e4]@7 ~ [g3,c#4,e4]@7 ~", // C#dim
  J: "[[a3,c4,d4,f4]@7 ~ d4@3 ~ d4 d#4 d4 d#4 d4 d#4 d4 d#4 d4 d#4 d4@2 ~@8, ~ [a3,c4,f#4]@2 ~]/2", // Dm7 F#dim
  K: "~@10 [g3,b3,e4] ~ [g3,b3,e4]@4", L: "~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@4 ~@2 [g3,b3,e4] ~ [g3,b3,e4]@4",
  M: "[~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@4 [d4,f4,a4]@11 ~ [c4,e4,f4,a4]@4 [g#3,d4,f4]@12 [g3,c#4,e4]@4 [d4,f4,a4]@7 ~]/3", // A Dm Fmaj7 Ddim C#dim Dm
  N: "[c4,e4,f4,a4]@7 ~ [b3,d4,g4]@7 ~", O: "[d4,f4,g#4]@4 [d4,g4] f4 d4 ~ [d4,f4,a4]@7 ~",
  P: "[c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4]@4 [b3,d4,g4]@7 ~", // Fmaj7 G
  Q: "g#4 g4 g#4 g4 f4 d4@3 [g3,c#4,e4]@7 ~, a#3 ~, d4 ~@3", R: "[g3,c#4,e4]@7 ~ [a3,c4,d4,f4]@7 ~",
  S: "d4@3 ~ d4 d#4 d4 d#4 d4 d#4 d4 d#4 d4 d#4 d4@2, [a3,c4,f#4]", // F#dim
  T: "~@2 [g3,b3,e4] ~ [g3,b3,e4]@4 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@4", U: "[g4,a#4,d5]@7 ~ [f4,a4,a#4,d5]@7 ~",
  V: "[e4,g4,a#4,d5]@7 ~ [d#4,g4,a#4,c5]@4 [d4,g4,a#4,c#5]@4", W: "[e4,g4,a#4,d5]@7 ~ c5@3 ~ c#5@4, ~ [c#4,g4,a#4]",
  X: "[b3,d4,f4,a4]@7 ~ [d4,f4,g4]@4 [d4,f4,g#4]@4", Y: "[b3,d4,f4,a4]@7 ~ [a#3,d4,g4]@4 [a#3,d4,g#4]@4",
  Z: "[a3,c#4,e4]@7 ~ [g3,c#4,e4]@7 ~", // A C#dim
  AA: "~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@4 ~@2 [c#4,f#4,a4] ~ [c#4,f#4,a4]@2 [c#4,f#4,a4] ~", // A F#m
  AB: "~@2 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@3 [c#4,f#4,a4] ~ [c#4,f#4,a4]@2 [c#4,f#4,a4] ~", // B F#m
  AC: "~@2 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,g4,b4] ~ [e4,g4,b4]@7 ~", AD: "[d4,f#4,g4,b4]@7 ~ [c#4,e4,g4,a4]@7 ~",
  AE: "[a#3,e4,g4]@4 [a3,d#4,f#4]@4 [e4,g4,b4]@7 ~", // Edim D#dim Em
})).s("gm_epiano1").gain(0.48).pan(0.3)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@4 A B A C D E D F G H I J K L M N@3 O@3 P Q P R S T U V W X Y Z@3 A AA A AA AB AC AD AE AF AG AH AI AJ AK AL AM AN
  AO AP N@3 AQ AR@3 AS AT AU AT AV AT AU AT AV AT AU AT AV AT AU AT AV AT AU AT AW
>`.pickRestart({
  A: "d2@11 ~ c2@4", B: "a#1@11 ~ a1@3 ~",
  C: "a#1@6 [b1,c2,c#2] [d#2,e2,f2,f#2,g2] [g#2,a2] ~ [c#2,d2] [e2,f2,f#2,g2,g#2] [a2,a#2] ~@3", // Amaj7 Dmaj7 A#maj7
  D: "d2@3 ~ d2@2 d2!2 c2@3 ~ c2@2 ~ c2", E: "b1@3 ~ b1@2 ~ b1 a#1 ~ a#1@2 a1@2 a1@2",
  F: "b1@3 ~ b1@2 ~ b1 a#1 ~ a#1@2 a#1@2 f2 g2", G: "a2@3 ~ a2@2 a2@2 g2@2 g2@2 g2@2 g2@2",
  H: "f2@2 f2@2 f2@2 f2@2 f#2@2 f#2@2 f#2@2 d2 c#2", I: "f#1@4 f#1@2 f#2 [e2,f2] [g1,d2] ~@2 g1 b1@2 d2@2, a#1 ~@15",
  J: "~@2 c2 ~ e2@2 g2 ~@3 e2 g1 b1@2 d2@2", K: "~@3 c2 a2@2 g2@2 ~@2 e2 g1 b1@2 d2@2",
  L: "~@2 c2@2 e2@2 g2 ~@3 g1 ~ b1@2 d2@2", M: "~@2 c2@2 a2@2 g2@2 b1@2 e2@2 e2@3 [c#2,d2]",
  N: "a1@2 ~ b1 c#2 b1 e2@2 ~@2 e2@2 e2@3 [c#2,d2]", // Dmaj7
  O: "[a1@2 ~ b1 c#2 b1 e2@2 d2@11 ~ c2@4 a#1@11 ~ a1@4 d2@3 ~ d2@2 d2!2]/3", P: "c2@3 ~ c2@2 ~ c2 b1@3 ~ b1@2 ~ b1",
  Q: "a#1 ~ a#1@2 a1@2 a1@2 d2@3 ~ d2@2 d2!2", R: "a#1 ~ a#1@2 a1@2 f2 g2 a2@3 ~ a2@2 a2@2", S: "g2!4 f2!4",
  T: "f#2@2 f#2@2 f#2@2 f#2@2 f#2@3 ~ f#2@3 ~", U: "~@2 g1@2 b1@2 d2@2 ~@2 c2@2 e2@2 g2 ~",
  V: "~@3 g1 b1@2 d2@2 ~@2 c2@2 a2@2 g2@2", W: "~ g1!2 ~ b1@2 d2@2 ~@2 c2!2 e2@2 g2 ~",
  X: "~@2 g1@2 b1@2 d2@2 ~@2 c2@2 e2@2 g2 a2", Y: "b1@2 e2@2 e2@3 [c#2,d2] a1@2 ~ b1 c#2 b1 e2@2",
  Z: "~@2 e2@2 e2@3 [c#2,d2] a1@2 ~ b1 c#2 b1 e2@2", AA: "a#1@11 ~ a1@4", AB: "g2@3 ~ g2@2 g2!2 f2 f2@2 f2 f2@2 ~ f2",
  AC: "e2@3 ~ e2@2 ~ e2 d#2@3 d#2 d2@3 ~", AD: "g2@2 g1@2 g2 d2 g2 d2 f2@3 ~ f2@2 ~ f2",
  AE: "e2@3 ~ e2@2 ~ e2 d#2 ~ d#2@2 d#2@2 d#2@2", AF: "d2@3 ~ d2@2 d2!2 c2 c2@2 ~ c2@2 ~ c2",
  AG: "b1@3 ~ b1@2 ~ b1 a#1@3 a#1 a1@3 ~", AH: "d2@4 d2@2 a1 d2 c2@3 ~ c2@2 ~ c2",
  AI: "b1@3 ~ b1@2 ~ b1 a#1@2 a#1 ~ a#1@2 [g2,a#2] [c2,d2]", AJ: "a1@3 ~ a1@2 a1@2 g1@2 g1@2 g1@2 g1@2",
  AK: "f1!4 f#1!4", AL: "f#1@3 ~ f#1@3 ~@3 g1@2 b1@2 d2@2", AM: "~@2 c2@2 e2@2 g2 ~@4 g1 b1@2 d2@2",
  AN: "~@2 c2@2 a2@2 g2@2 ~ g1!2 ~ b1@2 d2@2", AO: "~@2 c2!2 e2@2 g2 ~@3 g1@2 b1@2 d2@2",
  AP: "~@2 c2@2 e2@2 g2 a2 b1@2 e2@2 e2@3 [c#2,d2]", AQ: "a1@2 ~ b1 c#2 b1 e2@2 ~@2 f#2@2 f#2@3 [d#2,e2]",
  AR: "b1@2 ~ c#2 d#2 c#2 f#2@2 ~@2 f#2@2 f#2@3 [d#2,e2]", AS: "b1@2 ~ c#2 d#2 c#2 f#2@2 e2@3 ~ e2@2 b1 e2",
  AT: "d2@3 ~ d2@2 ~ d2 c#2@3 ~ c#2@2 ~ c#2", AU: "c2@2 c2@2 b1@2 b1@2 e2@2 e2@3 ~ b1 e2",
  AV: "c2 ~ c2@2 b1@2 d#2@2 e2@3 ~ e2@2 b1 e2", AW: "c2 ~ c2@2 b1@2 d#2@2 ~@8",
})).s("gm_electric_bass_finger").gain(0.5)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note(`<
  ~@7 A B C D C ~ E F ~@3 G@4 ~@3 H ~ H ~@7 I@4 ~@4 J K J K D C D L ~@6 G@4 M@4 ~ N ~ N ~ N ~ N ~ N ~ N ~ N ~ N ~ N ~ N
  ~
>`.pickRestart({
  A: "~@9 [d2,e2,f2,g2] c2 ~@2 [f#2,g2,g#2,a2] [d#2,e2,f2] [c2,c#2,d2]", B: "b1 ~@13 c2 ~", C: "~@6 b1 ~@9",
  D: "~@14 c2 ~", E: "~@15 [b1,c2]", F: "~@8 d#2 ~@7", G: "~@14 d#2 b1", H: "~@6 c2 ~@7 b1 ~", I: "~@6 d#2 b1 ~@8",
  J: "~@14 f2 ~", K: "~@6 e2 ~@9", L: "~@6 b1 ~@7 f2 e2", M: "~@14 f2 c#2", N: "~@6 d2 ~@7 c#2 ~",
})).s("gm_electric_bass_finger").gain(0.29)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@4 A B A C D E F G ~@3 H I H J K@2 L@4 M N O P ~@2 Q@4 R@3 S A B A C T@4 U@4 ~@3 H I H J K@2 V@2 W@2 X@3 Y@6 Z AA AB
  AA AB AA AB AA AB AA AB AA AC
>`.pickRestart({
  A: "f5@3 e5, a4", B: "[g#4,d5]@3 [g4,c#5]",
  C: "[g#4,d5]@6 ~@2 g#5 c5 [f4,g4,a4,b4] [d4,e4] g5 c5 [f4,g4,a4,b4] [d4,e4], ~@4 [d5,f5] ~ [c#5,e5] ~", // G#dim G7 Dsus2 G7 Dsus2 Dm C#m
  D: "[a4,d5,f5] [a4,c5,e5]", E: "~@2 [g4,b4,d5]@2 [g#4,a#4,d5] ~ [g4,a4,c#5] ~",
  F: "~@2 [a4,d5,f5]@2 ~@3 f5, ~@3 [a4,c5,e5]", G: "~@2 [b4,d5,g5]@2 f5@3 g5, ~ [g#4,d5]",
  H: "~@6 [e5,c6]@2 [d5,b5]@2 [d5,e5,f5,a5] ~@5, ~@3 g5@2 ~@3", // C G Dm
  I: "~@5 d6 [c6,e6]@2 [b5,d6]@2 [d5,e5,f5,a5] ~@5, ~@3 g5@2 ~@3, ~@6 d#6 ~@9", J: "~ [e5,g5,b5]",
  K: "[c#5,e5,a5] [e5,g5,b5]", // A Em
  L: "[[c#5,e5,a5]@8 [g5,b5]@8 [c#5,a5]@8 f5@12 e5@4 [g#4,d5]@10 ~@2 g5 c5 [f4,g4,a4,b4] [d4,e4] [a4,d5,f5]@8, ~@8 e5@15 ~ a4@16 ~@12 [c#5,e5]@2 ~@10]/4", // A G F#m G#dim G7 Dsus2 Dm C#m
  M: "[a4,c5,e5]@2 ~ [g4,b4,d5]", N: "[g#4,a#4,d5] ~ [g4,a4,c#5] ~@3 [a4,d5,f5]@2", O: "~ [a4,c5,e5] ~ [b4,d5,g5]",
  P: "f5@3 g5 ~@4, [g#4,d5] ~", // G#dim
  Q: "[[g5,b5]@2 [d5,e5,f5,g5,a5] ~@11 [e5,c6]@2 [d5,b5]@2 [d5,e5,f5,a5] ~@10 d6 [c6,e6]@2 [b5,d6]@2 [d5,e5,f5,a5] ~@11 [e5,c6]@2 [d5,b5]@2 [d5,e5,f5,a5] ~@13, d6 ~@13 g5@4 ~@12 g5@4 ~@12 g5@4 ~@14, ~@30 d#6 ~@33]/4", // G Dm C G Dm C Bm Dm …
  R: "[e5,g5,b5] [c#5,e5,a5]", S: "[g5,b5] [c#5,a5], e5@15 ~",
  T: "[[g5,a#5]@2 [f5,a5,c6]@2 [e5,a#5]@2 c6 c#6, d6@3 d5, ~ g5]/2", // Gm F Edim
  U: "[[f5,d6]@2 [e5,g5,c6]@2 [f5,b5]@2 g5 g#5, a5@3 ~, ~ d5]/2", // Dm C Fdim
  V: "[[c#5,e5,a5]@4 [g5,b5]@4 [c#5,a5]@3 ~ [f#5,a5,c#6]@4, ~@4 e5@7 ~@5]/2", W: "[d#5,f#5,b5] [f#5,a5,c#6]",
  X: "[[d#5,f#5,b5] [a5,c#6] [d#5,b5] [e5,g5] [d5,f#5] [a4,c#5,e5], ~@8 f#5@15 ~ b4@15 ~@9]/3", // B A G#m Em D A
  Y: "[[g4,a#4,e5] [f#4,a4,d#5] [e5,g5]@2 [d5,f#5]@2 [a4,c#5,e5]@2, ~@8 b4@15 ~@9]/2", // Edim D#dim Em D A
  Z: "[g4,a#4,e5]@4 [f#4,a4,d#5]@4 ~@4 [b5,e6,g6]@3 ~", AA: "~@4 [b5,d6,f#6]@3 ~@5 [a5,c#6,e6]@3 ~",
  AB: "~ [g5,e6] [g5,a#5,e6] ~ [a5,a#5,d#6]@3 ~@5 [b5,e6,g6]@3 ~", AC: "~ [g5,e6] [g5,a#5,e6] ~ [a5,a#5,d#6]@3 ~@9",
})).s("gm_rock_organ").gain(0.3)

// chords · string ensemble 1 · "+ORCHESTRA"
const string_ensemble_1 = note(`<
  ~@2 A@2 B@4 ~@4 C D@2 ~@3 E F@3 G@3 H I H J K L ~@4 M@3 N ~@2 O@2 P@2 Q@2 R@2 S@2 T U@2 ~@3 V W@3 X Y@3 Z AA AB AA AB
  AA AB AA AC@2 AD@2 AE@2 AD@2 AE@2 AD@2 AF
>`.pickRestart({
  A: "[d6@27 ~ [f5,f#5] [g5,g#5,a5] [a#5,b5] [c6,c#6]]/2", B: "[d6@15 [g4,e5,c#6]]/4",
  C: "[a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~ [g2,g3,c#4,e4] ~ [g2,g3,c#4,e4] ~ [g2,g3,c#4,e4] ~ [g2,g3,c#4,e4] ~", // A C#dim
  D: "[[f2,f3,d4,f4] ~ [f2,f3,d4,f4] ~ [f2,f3,d4,f4] ~ [f2,f3,d4,f4] ~ d4 f#4 a4 f#4 d4 f#4 a4 f#4 d4 f#4 a4 f#4 d4 d#4 d4@2 ~@8, ~@4 [f#2,f#3,a3,c4]@7 ~@5]/2", // Dm F#dim
  E: "~@10 [e3,e4] ~ [e3,e4] ~ [e3,e4] ~", // E
  F: "~@2 [a2,a3] [b2,b3] [c#3,c#4] [b2,b3] a2@2 ~@2 [e3,e4] ~ [e3,e4] ~ [e3,e4] ~, ~@6 e4 ~@9", // A B C# B E
  G: "[~@2 [a2,a3] [b2,b3] [c#3,c#4] [b2,b3] [a2,c#4,e4]@2 ~@24 [f4,g#4]@4 [e4,g4,c#5,c#6]@4 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~, ~@2 [d5,d6]@7 ~@3]/3", // A B C# B A Fm C#dim Dm …
  H: "[a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // Asus4 G
  I: "[f3,g#3,d4] ~ [f3,g#3,d4] ~ [e3,g3,c#4] ~ [e3,g3,c#4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~", // Ddim C#dim Dm
  J: "[f3,g#3,d4] ~ [f3,g#3,d4] ~ [f3,g#3,d4] ~ [f3,g#3,d4] ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4] ~", // Ddim A
  K: "[g2,g3,c#4,e4] ~ [g2,g3,c#4,e4] ~ [g2,g3,c#4,e4] ~ [g2,g3,c#4,e4] ~ [f2,f3,d4,f4] ~ [f2,f3,d4,f4] ~ [f2,f3,d4,f4] ~ [f2,f3,d4,f4] ~", // C#dim Dm
  L: "d4 f#4 a4 f#4 d4 f#4 a4 f#4 d4 f#4 a4 f#4 d4 d#4 d4@2, [f#2,f#3,a3,c4]@7 ~", // F#dim
  M: "~@2 [e3,e4] ~ [e3,e4] ~ [e3,e4] ~@3 [a2,a3] [b2,b3] [c#3,c#4] [b2,b3] a2@2, ~@14 e4 ~", // E A B C# B
  N: "~@2 [e3,e4] ~ [e3,e4] ~ [e3,e4] ~@3 [a2,a3] [b2,b3] [c#3,c#4] [b2,b3] [a2,c#4,e4]@2", // E A B C# B A
  O: "[~@6 [f4,g#4] [e4,g4,c#5,c#6], [d5,d6]@7 ~]/2", P: "[g3@2 f3@2 e3@2 [d#3,c4] [d3,c#4], g4@31 ~, [a#3,d4]@3 ~]/2",
  Q: "[[g3,g4]@2 [f3,a4]@2 [e3,a#4]@2 c5 c#5, a#3, d4@3 [d#3,g4]]/2", // G F Edim D#
  R: "[d3@2 c3@2 b2@2 [a#2,g4] [a2,g#4], d5@31 ~, [f4,a4]@3 ~]/2", // D# Amaj7 F
  S: "[[d3,d5]@2 [c3,e5]@2 [b2,f5]@2 g5 g#5, f4, a4@3 [a#2,d5]]/2", // D C Bdim A#
  T: "a2 ~ a2 ~ a2 ~ a2 ~ g2 ~ g2 ~ g2 ~ g2 ~, [c#4,e5,a5], a4 g4", // A
  U: "[f2 ~ [f2,c4,f4,d5,a5] ~ [f2,c4,f4,d5,a5] ~ [f2,c4,f4,d5,a5] ~ d5 f#5 a5 f#5 d5 f#5 a5 f#5 d5 f#5 a5 f#5 d5 d#5 d5@2 ~@8, ~@4 [f#2,c4,d4,a4]@7 ~@5]/2", // Dm7 D7
  V: "~@10 [e3,g3,b3,e4] ~ [e3,g3,b3,e4] ~ [e3,g3,b3,e4] ~", // Em
  W: "~@2 [a2,a3,c#4,e4] b2 [c#3,a3,c#4,e4] b2 [a3,c#4,e4] ~@3 [e3,g3,b3,e4] ~ [e3,g3,b3,e4] ~ [e3,g3,b3,e4] ~, ~@3 a2 ~@4", // A Em
  X: "~@2 [a2,a3,c#4,e4] b2 [c#3,a3,c#4,e4] b2 [a2,a3,c#4,e4]@2 ~@2 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~", // A F#m
  Y: "~@2 [b2,b3,d#4,f#4] c#3 [d#3,b3,d#4,f#4] c#3 [b2,b3,d#4,f#4] ~@3 [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~ [f#3,a3,c#4,f#4] ~", // B F#m
  Z: "~@2 [b2,b3,d#4,f#4] c#3 [d#3,b3,d#4,f#4] c#3 [b2,b3,d#4,f#4]@2 [e3,b3,e4,g4] ~ [e3,b3,e4,g4] ~ [e3,b3,e4,g4] ~ [e3,b3,e4,g4] ~", // B Em
  AA: "[d3,b3,e4,f#4] ~ [d3,b3,e4,f#4] ~ [d3,b3,e4,f#4] ~ [d3,b3,e4,f#4] ~ [c#3,a3,c#4,e4] ~ [c#3,a3,c#4,e4] ~ [c#3,a3,c#4,e4] ~ [c#3,a3,c#4,e4] ~", // Bm A
  AB: "[c3,g3,a#3,e4] ~ [c3,g3,a#3,e4] ~ [b2,f#3,a3,d#4] ~ [b2,f#3,a3,d#4] ~ [e3,b3,e4,g4] ~ [e3,b3,e4,g4] ~ [e3,b3,e4,g4] ~ [e3,b3,e4,g4] ~", // C7 B7 Em
  AC: "[[c3,g3,a#3,e4] ~ [c3,g3,a#3,e4] ~ [b2,f#3,a3,d#4] ~ [b2,f#3,a3,d#4] ~ [e3,e4]@8 [d3,f#4]@8 [c#3,g4]@8, ~ [g3,b3]@3]/2", // C7 B7 E D C#dim G
  AD: "[[c3,g3,a#3,e4,a4] [b2,f#3,a3,d#4,a#4] [e3,e5]@2 [d3,f#5]@2 [c#3,g5]@2, ~ [g3,b3]@3]/2", // C7 B7 E D C#dim G
  AE: "[[c3,g3,a#3,e4,a5] [b2,f#3,a3,d#4,a#5] [e3,e4]@2 [d3,f#4]@2 [c#3,g4]@2, ~ [g3,b3]@3]/2", // C7 B7 E D C#dim G
  AF: "[c3,g3,a#3,e4,a5] [b2,f#3,a3,d#4,a#5] ~@2", // C7 B7
})).s("gm_string_ensemble_1").gain(0.48)

// other · brass section · "BRASS 1"
const brass_section = note(`<
  ~@15 A ~ A ~@13 B ~ B ~@20 A ~ A ~@4 C D E D F ~@6 G H@2 I G H@2 I G H@2 I G J
>`.pickRestart({
  A: "~@5 [g3,g4,g5]!3 ~@8", B: "~@13 [g3,g4,g5]!3",
  C: "~@10 [f#3,f#4,f#5] [g#3,g#4,g#5] [a3,a4,a5] [g#3,g#4,g#5] [f#3,f#4,f#5] ~", // F# G# A G# F#
  D: "[f#3,f#4,b4,f#5] ~ [f#3,f#4,b4,f#5] [b3,b4,d#5,b5] ~@6 [f#3,f#4,f#5] [g#3,g#4,g#5] [a3,a4,a5] [g#3,g#4,g#5] [f#3,f#4,f#5]!2", // B5 B F# G# A G# F#
  E: "~ [d#4,d#5,d#6] [d4,d5,d6] [b3,b4,b5] [c#4,c#5,c#6] [b3,b4,b5] [a3,a4,a5] [f#3,f#4,f#5] ~ [f#3,f#4,f#5] ~ [g#3,g#4,g#5] [a3,a4,a5] [g#3,g#4,g#5] [f#3,f#4,f#5] ~", // D# D B C# B A F# G# …
  F: "~ [d#4,d#5,d#6] [d4,d5,d6] [b3,b4,b5] [c#4,c#5,c#6] [b3,b4,b5] [a3,a4,a5] [g3,g4,g5] ~@8", // D# D B C# B A G
  G: "~@13 [a3,a4] [a#3,a#4] [b3,b4]", // A A# B
  H: "[~ [g4,g5] [f#4,f#5] [d4,d5] [f4,f5] [e4,e5] [d4,d5] [b3,b4] ~ [b3,b4] ~ [b3,b4] ~@17 g#4 a4 a#4, ~@3 [e4,e5]@5]/2", // G F# D F E D B E
  I: "~ [d4,d5] [b3,b4] ~ [b3,b4] [a#3,a#4] [a3,a4] [g3,g4] ~@8", // D B A# A G
  J: "~ [g4,g5] [f#4,f#5] [d4,d5] [f4,f5] [e4,e5] [d4,d5] ~@9", // G F# D F E D
})).s("gm_brass_section").gain(0.64)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@43 A B C D E F G H I J@2 ~@11 K L M N O L M N O L M N O L M N O L M N P
>`.pickRestart({
  A: "~@2 c5@3 a#4 g4 f4 [f4,a#4]@2 g4 f4 g4@4", B: "f4 g4 a#4 c5@2 c5 d#5 d5@2 f5@2 d5 a#5@4",
  C: "a#5@2 g5 ~ f5 ~ f5@2 [d5,f5]@8, ~@3 d5@2 d5@3 ~@8", // Dm
  D: "c#5@2 d5 c5 [d5,f5] ~ d5 [g#4,a4,c5,c#5] [g4,b4] f4 d4 c#4 c4 a#3 c4 c#4, f5 ~@3, c5 ~@4 a#4@2 ~@9", // Dm C#maj7 G
  E: "d4@2 f4 d4 f4@2 d4@2 a4 c5!2 a4 c5@2 d5 c5", F: "d5 f5@2 d5 f5@2 g5 f5 g5@2 a5 g5@2 [a5,c6] g5@2",
  G: "a5 f5 ~ g5!2 f5 ~ f5 g5 f5 ~ g5 f5@2 f5@2", H: "f5@2 d5 c5 a4 g#4 g4 f4 f4@2 d4 c4 d4@2 [c4,c#4] [a#3,b3]",
  I: "[a2,e3,a3]@7 ~ c#4@8, ~@7 [e3,a3]@9", J: "[~ a3 c4 f3 ~@2 d4@5 ~@5, f3@2 ~@2 f#3@7 ~@5, ~@5 a3@6 ~@5]/2",
  K: "~@4 e4!4", L: "d4 e4 d4 e4 c#4 e4 c#4 e4", M: "c4@2 e4!2 b3@2 b3@2 ~@2 b3@2 g4@2 e4@2, ~ e3",
  N: "~ b3 g4 e4 ~ b3 g4 e4, d3 c#3", O: "~ b3!2 d#4 e4!4, c3 ~@3", P: "~ b3!2 d#4 ~@4, c3 ~@3",
})).s("gm_overdriven_guitar").gain(0.48)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@8 A B A C D E@2 F G H I J@2 K L ~ M N O N P Q R S T@2 U V@2 W@2 ~@14 X F G H I J@2 K Y Z@2 AA AB ~@20
>`.pickRestart({
  A: "[d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 [d4,f4,a4] [a3,d4,f4] [a3,e4,f4]@2 [e4,f4] [a3,e4] [a3,e4,f4]@2 [a3,e4,f4] [a3,e4]", // Dm Fmaj7 A5 Fmaj7 A5
  B: "[g3,b3,d4] [b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]!2 [g#3,d4,f4]@2 [d4,f4] [g#3,d4] g3@2 [a2,e3,g3]@2, ~@3 [c#4,e4]", // G Bm G Ddim Dm G#dim A7 C#m
  C: "[g3,b3,d4] [b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]!2 [g#3,d4,f4]@2 [d4,f4] [g#3,d4] f4@2 g4@2, ~@3 [g#3,d4]", // G Bm G Ddim Dm G#dim
  D: "~@2 c#4@2 ~@2 c#4@2 ~@2 c#4 ~@3 g3@2, a3@3 ~ g3@2 c#4@2, ~@4 e4@4 ~@3 e4@5",
  E: "[~@6 f4@2 ~@6 f#4@8 ~@4 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~, f4@4 c4@4 f#4@4 d4@11 ~@9, ~@2 a3@6 ~@2 a3@13 ~@9]/2", // G
  F: "~@2 [c4,e4,g4]!2 ~@2 [c4,e4,g4] ~@3 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~", // C G
  G: "~@2 [c4,e4,g4]!2 ~ [e4,g4] [c4,e4,g4] ~@3 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~", // C Em C G
  H: "~@2 [c4,e4,g4]!2 ~ [e4,g4] [c4,e4,g4] ~@3 [b3,d4,g4]!2 ~ [d4,g4] [b3,d4,g4] ~", // C Em C G G5 G
  I: "~@2 [c4,e4,g4]!2 ~ [e4,g4] [c4,e4,g4] ~@4 g4 [g4,b4]!2 [e4,g4] ~", // C Em C G Em
  J: "~@6 [c#4,e4,a4]!2 ~@3 g4 [g4,b4]!2 [e4,g4] ~", // A G Em
  K: "~@2 [c#4,e4,a4]!2 ~@2 [c#4,e4,a4]!2 ~@3 g4 [g4,b4]!2 [e4,g4] ~", L: "~@2 [c#4,e4,a4]!2 ~@2 [c#4,e4,a4]!2 ~@8",
  M: "~@8 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 [d4,f4,a4] [a3,d4,f4]", // Dm
  N: "[a3,e4,f4]@2 [e4,f4] [a3,e4] [a3,e4,f4]@2 [a3,e4,f4] [a3,e4] [g3,b3,d4] [b3,d4]@3 [g3,b3,d4]@2 [g3,b3,d4]!2", // Fmaj7 A5 Fmaj7 A5 G Bm G
  O: "[g#3,d4,f4]@2 [d4,f4] [g#3,d4] g3@2 [a2,e3,g3]@2 [d4,f4,a4]@2 ~@2 [d4,f4,a4]@2 [d4,f4,a4] [a3,d4,f4], ~ [c#4,e4] ~@2", // Ddim Dm G#dim A7 Dm C#m
  P: "[g#3,d4,f4]@2 [d4,f4] [g#3,d4] f4@2 g4@2 ~@2 c#4@2 ~@2 c#4@2, ~@2 [g#3,d4]@2 a3@3 ~, ~@3 e4", // Ddim Dm G#dim
  Q: "~@2 c#4 ~@3 g3@2 ~@6 f4@2, g3@2 c#4@2 ~ a3@3, ~@3 e4@5 f4@4 c4@4", R: "~@3 f#4@4 ~, f#4@4 d4@11 ~, ~@2 a3@13 ~",
  S: "~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~@3 [c4,e4,g4]!2 ~@2 [c4,e4,g4] ~", // G C
  T: "~@2 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~@3 [c4,e4,g4]!2 ~ [e4,g4] [c4,e4,g4] ~", // G C Em C
  U: "~@2 [b3,d4,g4]!2 ~ [d4,g4] [b3,d4,g4] ~@3 [c4,e4,g4]!2 ~ [e4,g4] [c4,e4,g4] ~", // G G5 G C Em C
  V: "~@3 g4 [g4,b4]!2 [e4,g4] ~@7 [c#4,e4,a4]!2", W: "~@3 g4 [g4,b4]!2 [e4,g4] ~@3 [c#4,e4,a4]!2 ~@2 [c#4,e4,a4]!2",
  X: "~@10 [b3,d4,g4]!2 ~@2 [b3,d4,g4] ~", Y: "~@2 [c#4,e4,a4]!2 ~@2 [c#4,e4,a4]!2 ~@3 a4 [a4,c#5]!2 [f#4,a4] ~",
  Z: "~@6 [d#4,f#4,b4]!2 ~@3 a4 [a4,c#5]!2 [f#4,a4] ~", // B A F#m
  AA: "~@2 [d#4,f#4,b4]!2 ~@2 [d#4,f#4,b4]!2 ~@3 a4 [a4,c#5]!2 [f#4,a4] ~", // B A F#m
  AB: "~@2 [d#4,f#4,b4]!2 ~@2 [d#4,g4,b4]!2 ~@8", // B D#aug
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.7)

// … 164 more lines

More by Joe Cocker