Strudelify

Was A Sunny Day

Paul Desmond

KeyE minorTempo110 bpm
0:00/0:00
// Was A Sunny Day — Paul Desmond
// 110 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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 · electric guitar muted · "Sunny"
const bass = note(`<
  A B A C D C D E F G H I J@2 K L M N O P Q R S T U V F G H W X@2 K L M N O P Q R S T U V Y Z AA AB AC AD AE AF AG@2 AH
  AI AJ AK AL AM AN AO Y AP AQ AR AS AT AU AV AW@2 AX AY AZ BA BB BC BD BE BF BG BH BI BF BG BJ BK
>`.pickRestart({
  A: "~@7 b1", B: "e2 ~ e2@2 d2 ~ e2@2 ~@8", C: "e2@2 e2 ~ d2 ~ e2@2 ~@8", D: "b1@3 ~@3 b1 ~ b1@3 ~@3 b1@2",
  E: "e2 ~ e2 ~ d2 ~ e2@2 ~@8", F: "e2 g2 b2 d3 e3 b2 ~ b2", G: "g2 d2 g1@2 b1 g1 b1@2", H: "c2@3 c2 g1@2 ~ a1",
  I: "b1 ~ a1@3 ~ g1@4 f#1@2 b1@2 f#2 ~", J: "[e2 b1 e1@2 ~ e2 e1 g1@2 d2 g2@2 g1@2 b1 g1]/2", K: "c2@3 c2 g1@2 a1 b1",
  L: "~@2 c2@2 f#1@2 b1@4 f#2@2 b2 f#2 b1@2", M: "e2 ~ b1 ~ e1@4 ~@2 e1@2 f#1@4",
  N: "e2 ~ b1 ~ e1@4 ~@2 b1@2 e2 ~ b1@2", O: "c2@6 g1 ~ g1@2 ~@2 a1@4", P: "c2@6 c2 ~ g1 ~ c2@2 f#1@4",
  Q: "f#1@3 f#1!2 a1@2 f#1", R: "b1@2 b2 ~@3 b1 ~ b1@2 b2 ~ c#2@4", S: "e1@4 g1 ~ e1@2 e2 ~ b1 e2 ~ b1 e2 b1",
  T: "e2@4 f#1@4 e2 ~ b1@2 g1@2 b1@2", U: "e2@6 b1@2 e2 ~ b1 e2 ~ b1 e2 b1", V: "e2@4 f#1@4 e2 ~ b1@2 g1 a1 b1 ~",
  W: "b1 ~ a1@4 g1@4 f#1@2 b1@2 f#2 ~", X: "[e2@2 b1@2 e1@4 ~@2 e2@2 e1@2 g1@4 d2@2 g2@4 g1@4 a1@3 ~]/2",
  Y: "f1@4 g#1 ~ f1@2 f2 ~ c2 f2 ~ c2 f2 c2", Z: "f2@4 g#1@2 f1 ~ f2 ~ c2@2 g#1 a#1 c2 ~",
  AA: "f2@6 c2@2 f2 ~ c2 f2 ~ c2 f2 c2", AB: "f2@4 g1@3 ~ f2 ~ c2@2 g#1@2 c2 ~", AC: "f2 g#2 c3 d#3 f3 c3 ~ c3",
  AD: "g#2 d#2 g#1@2 c2 g#1 c2@2", AE: "c#2@3 c#2 g#1@2 ~ a#1", AF: "c2 ~ c2@2 d2 ~ d2@2 d#2 ~ d#2@2 e2 ~ e2@2",
  AG: "[f2 c2 f1@2 ~ f2 f1 g#1@2 d#2 g#2@2 g#1 a#1 a#1@2]/2", AH: "c#2@3 c#2 g#1@2 a#1 c2",
  AI: "~@2 c#2@2 g1@2 c2@4 g2 ~ c3 g2 c2@2", AJ: "f2 ~ c2 ~ f1@4 ~@2 f1@2 g#1 ~ f1@2",
  AK: "f2 ~ c2 ~ f1@4 ~@2 c2@2 f2 ~ c2@2", AL: "c#2@6 g#1 ~ g#1@2 ~@2 c2 ~ g#1@2",
  AM: "c#2@6 c#2 ~ g#2 ~ c#3@2 g2@2 c#2@2", AN: "g1@3 g1!2 a#1@2 g1", AO: "c2@2 c3 ~@3 c2 ~ c2@2 c3 ~ c2@4",
  AP: "f2@4 g#1@2 f1 ~ f2 ~@3 f2 ~@3", AQ: "f#2@6 c#2@2 f#2 ~ c#2 f#2 ~ c#2 f#2 c#2",
  AR: "f#2@4 g#1@3 ~ f#2 ~ c#2@2 a1 b1 c#2 ~", AS: "f#2 a2 c#3 e3 f#3 c#3 ~ c#3", AT: "a2 d2 a1@2 c#2 a1 c#2@2",
  AU: "d2@3 d2 a1@2 ~ b1", AV: "c#2 ~ b1@4 a1@4 g#1@2 c#2@2 g#2 ~",
  AW: "[f#2 c#2 f#1@2 ~ f#2 f#1 a1@2 e2 a2@2 a1@2 c#2 a1]/2", AX: "d2@3 d2 a1@2 b1 c#2",
  AY: "~@2 d2@2 g#1@2 c#2@4 g#2@2 b2 g#2 c#2@2", AZ: "f#1 ~ c#2 ~ f#2@4 ~@2 f#1@2 g#1@4",
  BA: "f#2 ~ c#2 ~ f#1@4 ~@2 c#2@2 f#2 ~ c#2@2", BB: "d2@6 a1 ~ a1@2 ~@2 b1@4", BC: "d2@6 d2 ~ a1 ~ d2@2 g#1@4",
  BD: "g#1@3 g#1!2 b1@2 g#1", BE: "c#2@2 c#3 ~@3 c#2 ~ c#2@2 c#3 ~ c#2@4", BF: "f#1@4 c#2@2 f#2 ~@3 f#2@4 c#2 ~",
  BG: "f#1 ~@5 c#2 ~ d#2@4 e2@4", BH: "f#2@4 c#2@2 f#2 ~@3 f#2@4 c#2 ~", BI: "f#1 ~@5 c#2@2 d#2@4 d2 b1 a1@2",
  BJ: "f#2@3 e2@2 c#2@2 a1", BK: "f#1 ~@7",
})).s("gm_electric_guitar_muted").gain(0.31)

// other · harmonica
const harmonica = note("<~@48 A B C@2 D E F G H I J K@2 L@2 ~ M N O ~@21>".pickRestart({
  A: "c5@2 c5 ~@13", B: "~@8 f5@2 d#5 ~ c5 ~ a#4 ~",
  C: "[g#4@2 ~@2 g#4 ~ f4 ~ g#4 ~ a#4 ~@3 c5@4 ~@8 f4 ~ g#4 ~ a#4 ~]/2", D: "c5@5 ~@11",
  E: "~@4 g#5@4 f5 ~ d#5 ~ c5 ~ a#4 ~", F: "g#4@3 ~@3 f4 ~ g#4 ~ d#5@3 ~ c5@2", G: "~@9 g#4@2 ~ a#4 ~@3",
  H: "c5@4 a#4 ~ g#4 ~@7 a#4 ~", I: "c5@2 d#5 ~ g#4 ~@11", J: "~@2 c5@2 ~ d#5 ~@2 g#5 ~@5 c6@2",
  K: "[~@2 a#5@4 g#5@2 ~@2 a#5 ~@2 c6 ~ c6@3 ~ a#5 ~@10 g#5@2]/2",
  L: "[g5@2 ~ f5 ~@2 e5 ~@3 c5 ~ a#4@2 ~ g#4@2 f4 ~@14]/2", M: "~@2 f#4 ~ a4 b4 ~ c#5 ~ c#5 ~ c#5@5",
  N: "~ b4 a4 f#4 b4 f#4 a4 b4 c#5@2 e5 c#5@2 b4 a4 f#4", O: "c#4@5 ~@11",
})).s("gm_harmonica").gain(0.3).pan(0.6)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A@4 ~ B@2 C@2 D@2 E@2 F@2 G H I J K L@3 M@2 N@2 D@2 O@2 P Q G H I R S@2 T@2 U@2 V@2 W@2 X@2 Y@2 Z AA AB AC AD AE
  AF AG AH@2 AI@2 AJ@2 AK@2 AL@2 AM AN AO AP AQ AR AS AT AU@8
>`.pickRestart({
  A: "[~@12 [f#4,g4,b4]@51 ~]/4", B: "[[b3,e4,g4,b4]@7 [b3,d4,f4,a4]@9]/2",
  C: "[d4 ~@7 c4@6 [b3,e4,f#4]@8 [d#4,f#4]@4 [d#4,d#5]@2 [f#4,f#5]@2 [a4,a5]@2, [e4,g4]@7 ~@4 b3@5]/2", // Bsus4 D#m D# F# A Em
  D: "[[g4,b5]@5 [g4,b4,g5] [e4,e5] [f5,a5]@7 g5@2, e5@6 ~ d5@9]/2", // G E F
  E: "[[a#4,c5,e5]@14 f#4@4 c5@4 [b4,d#5]@6 f#4 [g4,b4] [a4,c#5] [a4,d#5], ~@7 e5@4 ~@5, ~@7 b4 ~@6 a4 ~]/2", // C7 B G A Adim
  F: "[e5 d#5 d5 [e4,g4,c#5], [g4,b4]@3 ~]/2", G: "[e4,g4,c5]", H: "[d#4,g4,b4]", I: "b4 a4@3, [e4,c5]",
  J: "e4 d#4, [a4,b4]", K: "[e4,g4,b4] [f#4,a4,b4]", L: "[[e4,g4,b4]@3 a4@5 g4@16, ~ [f#4,b4]@7]/3",
  M: "[[e4,g4,b4]@7 [d4,f4,a4]@9]/2", // Em Dm
  N: "[d4@4 c4@3 [b3,e4,f#4]@4 [d#4,f#4]@2 [d#4,d#5] [f#4,f#5] [a4,a5], [e4,g4]@7 ~@4 b3@5]/2", // Bsus4 D#m D# F# A Em
  O: "[[a#4,c5]@14 e5@4 c5@4 [b4,d#5]@6 [d#4,b4,d#5] [f#4,d#5,f#5] [g4,d#5,g5] [a4,f#5,a5], e5@12 ~@2 f#4@13 ~@5, ~@7 b4 ~@8]/2", // A#sus2 B G#m D#m Cm D
  P: "[g4,b4,e5] [g4,b4,d#5]", Q: "[g4,b4,d5] [e4,g4,c#5]",
  R: "e4@8 d#4@6 [a4,a#4,b4,a5,a#5,b5] [c5,c#5,d5,c6,c#6,d6], b4@7 ~",
  S: "[[e5,e6]@28 ~@2 [a4,a#4,b4,a5,a#5,b5] [c5,c#5,d5,c6,c#6,d6], d#5 ~@31]/2", // E
  T: "[[e5,e6]@28 ~@2 [a#4,b4,c5,a#5,b5,c6] [c#5,d5,d#5,c#6,d6,d#6], d#5 ~@31]/2", // E
  U: "[[f5,f6]@28 ~@2 [a#4,b4,c5,a#5,b5,c6] [c#5,d5,d#5,c#6,d6,d#6], e5 ~@31]/2", V: "[[f5,f6]@7 ~, e5 ~@31]/2",
  W: "[[c4,f4,g#4,c5]@7 [c4,d#4,f#4,a#4]@9]/2", // Fm Cm7b5
  X: "[d#4@4 c#4@3 c5@3 [d4,a4,c5,f5] ~ [d#4,a#4,c5,f#5] [e4,e5] [e3,g4,g5] [a#4,a#5], [f4,g#4]@7 [g4,e5]@4 ~@5]/2", // Dm7 Cm7b5 E Em A# Fm C
  Y: "[[g#4,c6]@5 [g#4,c5,g#5] [f4,f5] [f#5,a#5]@7 g#5@2, f5@6 ~ [c5,d#5]@9]/2", Z: "[g#4,b4,c#5,f5]@7 [g4,c5,f5,g5]",
  AA: "~@2 [b4,g#5]@3 ~ [a#4,g5]@6 [e4,c5] [g4,e5] [g#4,f5] [a#4,g5]", AB: "[g#4,f5] [g#4,c5,e5]",
  AC: "[g#4,c5,d#5] [f4,g#4,d5]", AD: "[f4,g#4,c#5]", AE: "[e4,g#4,c5]", AF: "c#5 a#4@3, [f4,c5]",
  AG: "f4@8 e4@6 [a#4,b4,c5,a#5,b5,c6] [c#5,d5,d#5,c#6,d6,d#6], c5@7 ~, a#4 ~@15",
  AH: "[[f5,f6]@24 [f5,f6] ~@3 [f5,f6] ~ [b4,c5,c#5,b5,c6,c#6] [d5,d#5,e5,d6,d#6,e6], e5 ~@31]/2", // F
  AI: "[[f#5,f#6]@7 ~, f5 ~@31]/2", AJ: "[[c#4,f#4,a4,c#5]@7 [c#4,e4,g4,b4]@9]/2",
  AK: "[f#4@4 d4@3 [c#4,f#4,g#4]@4 [f4,g#4]@2 [f4,f5] [g#4,g#5] [b4,b5], [e4,a4]@7 ~@4 c#4@5]/2", // C#sus4 Fm F G# B A5
  AL: "[[a4,c#6]@5 [a4,c#5,a5] [f#4,f#5] [g5,b5]@7 a5@2, f#5@6 ~ [c#5,e5]@9]/2", AM: "[c5,d5,f#5]@15 ~",
  AN: "[c#5,f#5,g#5] ~ [c5,d5,f#5]@4 [b4,c#5,f5]@6 [f4,c#5] [g#4,f5] [a4,f#5] [b4,g#5]", AO: "[a4,c#5,f#5] [a4,c#5,f5]",
  AP: "[a4,c#5,e5] [f#4,a4,d#5]", AQ: "[f#4,a4,d5]", AR: "[f4,a4,c#5]", AS: "d5 b4@3, [f#4,c#5]",
  AT: "f#4 f4, c#5, b4 ~@15", AU: "[~@32 d#5@28 ~@4 d#5@29 ~@3 d#5@17 ~@15, [g#4,a4,c#5]@113 ~@15]/8",
})).s("gm_string_ensemble_1").gain(0.2).pan(0.2)

// chords · orchestral harp
const orchestral_harp = note("<~ A@2 B@2 ~@83>".pickRestart({
  A: "[~@12 [g4,b4]@7 ~ [g4,b4]@4 ~@4 b4@4, ~@11 [e4,f#4]@7 ~ [e4,f#4]@5 ~@8]/2", // G Esus2
  B: "[~@12 [g4,b4]@7 ~ [g4,b4]@5 ~@3 b4@4, ~@11 [e4,f#4]@7 ~ [e4,f#4]@5 ~@8]/2", // G Esus2
})).s("gm_orchestral_harp").gain(0.08).pan(1)

// chords · orchestral harp · soft notes · Esus2
const orchestral_harp_soft = note("<~@2 [~@3 g4, ~@11 [e4,f#4]@5] ~ [~@3 g4, ~@11 [e4,f#4]@5] ~@83>")
  .s("gm_orchestral_harp").gain(0.04).pan(1)

// chords · muted trumpet
const muted_trumpet = note("<~@5 A@3 ~@22 B@2 ~@56>".pickRestart({
  A: "[~@7 b4@17]/3", B: "[~@4 [e4,b4,e5]@4 [g4,b4,g5] ~ [a4,e5,a5] ~@3 [d5,f5,b5]@12 ~@6]/2",
})).s("gm_muted_trumpet").gain(0.32).pan(0.6)

// chords · brass section
const brass_section = note(`<
  ~@4 A@4 ~@14 B C@3 D@2 ~@4 E F ~@6 B G B G H I H I J@2 ~@2 K L ~@8 M@2 N@2 O@2 ~@2 P Q ~@16
>`.pickRestart({
  A: "b3/2", B: "[e4,g4,e5] ~@3 [e4,g4,e5]@4 [f#4,a4,f#5] ~@3 [f#4,a4,f#5]@4",
  C: "[[g4,b4,g5] ~@3 [g4,b4,g5]@2 [f#4,a4,f#5] ~@3 [g4,b4,g5]@2 [f#4,g4,b4,f#5]@35 ~]/3", // G F#m G Gmaj7
  D: "[~@4 [e4,b4,e5]@4 [g4,b4,g5] ~ [a4,e5,a5] ~@3 [d5,f5,b5]@12 ~@6]/2", E: "~@2 [g4,a#4,c5] ~@3 [g4,a#4,c5]@8 ~@2",
  F: "[f#4,a4,b4] ~ [g4,a#4,c5]@3 ~ [f#4,a4,b4]@5 ~@5", // B7 C7 B7
  G: "[g4,b4,g5] ~@3 [g4,b4,g5]@2 [f#4,a4,f#5] ~@3 [g4,b4,g5]@2 [f#4,g4,b4,f#5]@4", // G F#m G Gmaj7
  H: "[f4,g#4,f5] ~@3 [f4,g#4,f5]@4 [g4,a#4,g5] ~@3 [g4,a#4,g5]@4", // Fm Gm
  I: "[g#4,c5,g#5] ~@3 [g#4,c5,g#5]@2 [g4,a#4,g5] ~@3 [g#4,c5,g#5]@2 [g4,g#4,c5,g5]@4", // G# Gm G# G#maj7
  J: "[~@6 [c4,f4,g#4,c5] ~ [c4,f4,g#4,c5]@2 [c4,f4,g#4,c5] ~@3 [c4,d#4,f#4,a#4]@15 ~@3]/2", // Fm Cm7b5
  K: "~@6 [c4,f4,g#4,c5] ~ [c4,f4,g#4,c5]@2 [c4,f4,g#4,c5] ~@3 [c4,d#4,f#4,a#4] ~", L: "~ [c4,d#4,f#4,a#4]@7",
  M: "[~@2 [f4,c5,f5] ~@5 [f4,c5,f5]@16 [g#4,c5,f5] ~@3 [g#4,c5,f5] ~@3]/2", N: "[a4,c#5,f#5]/2",
  O: "[~@6 [c#4,f#4,a4,c#5] ~ [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] ~@3 [c#4,e4,g4,b4]@15 ~@3]/2", // F#m C#m7b5
  P: "~@6 [c#4,f#4,a4,c#5] ~ [c#4,f#4,a4,c#5]@2 [c#4,f#4,a4,c#5] ~@3 [c#4,e4,g4,b4] ~", Q: "~ [c#4,e4,g4,b4]@7",
})).s("gm_brass_section").gain(0.3).pan(0.7)

// chords · tremolo strings
const tremolo_strings = note("<~@4 A@4 ~@16 B@2 ~@20 C@2 ~@16 D@2 ~@16 E@6>".pickRestart({
  A: "[f#5,g5,b5]/4", B: "[[f#5,g5,b5]@31 ~]/2", C: "[~ f6, [f4,f5]@15 ~, ~@4 c6@11 ~]/2",
  D: "[~@16 f#5@13 ~@3, f#4@15 ~]/2", E: "[~@21 f#6@6 ~@5, f#4@41 ~@7, ~@16 f#5@25 ~@7]/6",
})).s("gm_tremolo_strings").gain(0.05).pan(0.1)

// chords · trombone
const trombone = note(`<
  ~ A B A B C B D ~@4 E@2 F G ~@10 H@2 I@4 ~ J ~@10 K@2 L@2 ~@22 M@2 ~ N O@2 P@2 ~@10
>`.pickRestart({
  A: "e4@2 ~@4 e4 ~@9", B: "~@14 b3 ~", C: "e4@2 ~@2 d4 ~ e4 ~@9", D: "e4@2 e4 ~ d4 ~ e4 ~@9",
  E: "[[g3,b3,e4]@5 ~@2 [a4,a#4] b4@2 g4@2 e4 ~ [d4,f4,a4]@18]/2", F: "~@14 [d#4,a4,b4] ~",
  G: "~@2 [e4,a#4,c5]@3 ~ [d#4,a4,b4]@5 ~@5", H: "[~@2 [b3,g4]@3 ~@2 [f4,a4]@6 ~@3]/2",
  I: "[~@2 [c4,e4,a4]@6 [c4,e4,g4]@6 e4@8 d#4@6 ~@4 [g3,b3,e4]@4 ~@4 [g3,b3,g4] ~ [a3,e4,a4] ~@3 [d4,f4,b4]@12 ~@6, ~@14 [a3,f#4]@20 ~@12 [c#4,e4,a#4] ~@17]/4", // Am C Em G A5 Bdim D A#dim
  J: "[d#4,a4,b4] ~ [e4,a#4,c5]@3 ~ [d#4,a4,b4]@5 ~@5", K: "[[c4,f4]@7 ~]/2", L: "[[f4,c5]@7 ~]/2",
  M: "[[a3,c#4,f#4]@4 ~@3 b4 c#5@2 a4@2 f#4 ~ [e4,g4,b4]@18, ~@8 c5 ~@23]/2", // F#m Em
  N: "[g#4,b4,c#5] ~ [a4,c5,d5]@3 ~ [g#4,b4,c#5]@5 ~@5", O: "[~@6 c#4@2 a3@2 c#4 ~ f#4 ~ a4@15 ~@3]/2",
  P: "[~@6 f#4 ~ d4@2 f#4 ~ a4 ~ c#5@14 ~@4]/2",
})).s("gm_trombone").gain(0.29).pan(0.7)

// chords · trombone · soft notes
const trombone_soft = note("<[~@14 b3 ~] [~@2 e4 ~ d4 ~@11] ~ [~@2 e4 ~ d4 ~@11] ~ [~@2 e4 ~@13] ~@82>")
  .s("gm_trombone").gain(0.18).pan(0.7)

// other · flute
const flute = note(`<
  ~@15 A B C D E F G H ~ I J ~@7 A B C D E F G K ~@14 L M N O D P Q R ~@10 S T B U O V W ~@8
>`.pickRestart({
  A: "~@14 c6 [d6,d#6]", B: "e6 d#6", C: "d6 c#6", D: "c6", E: "b5", F: "b5@4 a5@6 c6@2 e6 ~ a6@2", G: "f#6@13 ~@3",
  H: "e6@3 ~@5", I: "[e5,g5,e6] ~@3 [e5,g5,e6]@3 ~ [f#5,f#6]@2 ~@2 [f#5,a5,f#6]@4, ~@8 a5 ~@7",
  J: "[g5,b5,g6] ~@3 [g5,b5,g6]@2 [f#5,a5,f#6] ~@3 [g5,b5,g6]@2 [f#5,a5,f#6]@3 ~", K: "e6@7 ~@9",
  L: "~@14 c#6 [d#6,e6]", M: "f6 e6", N: "d#6 d6", O: "c#6", P: "c6@4 a#5@6 c#6@2 f6 ~ g#6@2", Q: "g6@9 ~@7",
  R: "f6@7 ~@9", S: "~@14 d6 [e6,f6]", T: "f#6 f6", U: "d6", V: "c#6@4 b5@6 d6@2 f#6 ~ b6@2", W: "g#6@13 ~@3",
})).s("gm_flute").gain(0.14).pan(0.2)

// chords · piano
const piano = note(`<
  A@8 B@2 C@2 D@2 E F G H I J K L M N@2 ~ O P Q@2 D@2 R S G T I U K V W X Y Z AA AB AC AB AD@2 AE@2 AF@2 AG@2 AH AI AJ
  AK AL AM AN AO AP AQ AR@2 AS@2 AT@2 AU AV AW AX AY AZ BA BB BC@5 BD@2 BE
>`.pickRestart({
  A: "[[e2,b2,e3]@5 ~ [e2,b2,e3] ~ [e2,b2,e3]@24]/2", // E5
  B: "[~ [e4,g4]@9 [d4,e4,g4] ~@3 [a3,a#3] b3@6 ~@5 [d4,a4]@2 ~@4, [e3,b3,d4]@9 ~@5 g3@12 [b3,f4] ~@5]/2", // Em Em7 A#maj7 D5 E7 Bdim
  C: "[~ e4@6 ~@3 e4@2 c4@2 ~@2 b2 ~ a2@3 ~ g2@4 a3@4 ~@2, [c3,g4]@4 ~@9 f#2 ~@2, d4@5 ~@9 [b3,f#4,a4]@8 [b3,d#4,f#4,a4]@6 ~@4, ~ d#4 ~@6 g4@4 ~@2 e4@6 ~@12]/2", // C5 B7
  D: "[~@6 [d4,e4,g4]@7 ~@5 [b3,d4,f4,a4]@5 ~@3 [d4,f4,a4,b4] ~@4 d4, e3@11 ~@3 g2@13 ~@5, ~ g3@4 ~@11, ~@2 b3@3 ~@11]/2", // Em7 Bm7b5
  E: "[c4,e4,g4,a#4]@4 ~@2 [c4,e4,g4,a#4] ~@3 [c4,e4,g4,a#4] ~@3 [f#4,a4] ~, d#4 ~@15", // C7 F#m
  F: "~@2 g4@4 f#4 ~@3 [f#4,a4] ~@2 [f#4,a4] ~@2", G: "e6@5 b5 g5 e5 d#6@5 b5 g5 e5", H: "d6@5 b5 g5 e5 c#6@8",
  I: "c6@3 ~", J: "~ b4@9 [d#4,g4,b4] ~@2 [d#4,g4,b4] ~@2, [d#4,g4] ~",
  K: "[e4,b4,c5]@4 a4@2 [e4,a4,c5] ~@2 [e4,a4,c5]@5 ~@2", // Cmaj7 Am
  L: "~@2 [e4,f#4,a4] ~@2 [e4,f#4,a4] ~ [e4,f#4,a4] ~ [d#4,f#4,a4]@2 ~@5", // F#m7 D#dim
  M: "[f#4,g4,b4,e5] ~@3 [f#4,g4,b4,e5]@3 ~ [f#4,a4,b4,f#5]@2 ~@2 [f#4,a4,b4,f#5]@3 ~", // Em B7
  N: "[[g4,b4,g5] ~@3 [g4,b4,g5] ~ [f#4,a4,b4,f#5]@2 ~@2 [g4,b4,g5] ~ [f#4,a4,b4]@20, ~@12 f#5 ~@19]/2", // G B7 G B7
  O: "~ [e4,g4]@9 [d4,e4,g4] ~@5, [e3,b3,d4]@9 ~@7", // Em Em7 E7
  P: "~ [d4,f4,a4,a#4,b4] ~ g4 a4 e4 g4 ~@3 g3@3 d3@2 ~, ~@4 [b3,f4,a4]@3 ~", // A#maj7 Bm7b5
  Q: "[~ e4@6 ~@3 e4@2 c4@2 ~@2 b2 ~ a2@3 ~ g2@4 [f#2,a3]@4 ~@2, [c3,g4] ~@3, d4@5 ~@9 [b3,f#4,a4]@8 [b3,d#4,f#4,a4]@6 ~@4, ~ d#4 ~@6 g4@4 ~@2 e4@6 ~@12]/2", // F#m C5 B7
  R: "[c4,e4,g4,a#4]@4 ~@2 [c4,e4,g4,a#4] ~@3 [c4,e4,g4,a#4] ~@5, d#4 ~@15", // C7
  S: "[f#4,a4] ~ [g4,a#4]@3 ~ [f#4,a4]@4 [f#4,a4] ~@2 [f#4,a4] ~@2", T: "d6@4 ~ b5 g5 e5 c#6@8",
  U: "~ b4@7 ~@2 [d#4,g4,b4] ~@2 [d#4,g4,b4] ~@2, [d#4,g4]@7 ~@9", // D#aug D#
  V: "~@2 [e4,f#4,a4] ~@2 [e4,f#4,a4] ~ [e4,f#4,a4] ~ [d#4,f#4,a4]@4 ~@3", // F#m7 D#dim
  W: "[g4,b4,e5] ~@3 [g4,b4,e5]@3 ~ [a4,b4,f#5]@2 ~@2 [a4,b4,f#5]@3 ~", // Em B7
  X: "[g4,b4,g5] ~@3 [g4,b4,g5] ~ [a4,b4,f#5]@2 ~@2 [b4,g5] ~ [a4,b4]@3 ~, ~@12 f#5 ~@3", // G B7 Em Asus2
  Y: "[g4,b4,e5] ~@3 [g4,b4,e5]@3 ~ [f#4,a4,f#5]@2 ~@2 [f#4,a4,f#5]@3 ~", // Em F#m
  Z: "[g4,b4,g5] ~@3 [g4,b4,g5] ~ [f#4,a4,f#5]@2 ~@2 [g4,b4,g5] ~ [f#4,a4]@3 ~, ~@12 f#5 ~@3", // G F#m G F#m
  AA: "[g#4,c5,f5] ~@3 [g#4,c5,f5]@2 ~@2 [a#4,c5,g5]@2 ~@2 [a#4,c5,g5]@3 ~", // Fm C7
  AB: "[g#4,c5,g#5] ~@3 [g#4,c5,g#5] ~ [g4,a#4,g5]@2 ~@2 [g#4,c5,g#5] ~ [g4,a#4]@3 ~, ~@12 g5 ~@3", // G# Gm G# Gm
  AC: "[g#4,c5,f5] ~@3 [g#4,c5,f5]@3 ~ [a#4,c5,g5]@2 ~@2 [a#4,c5,g5]@3 ~", // Fm C7
  AD: "[~ g#4@9 [d#4,f4,g#4] ~@3 a#3 c4 ~ [d#4,f#4,a#4,b4,c5] ~ g#4 a#4 f4 g#4 ~@3 g#3@3 d#3@2 ~, [f3,c4,d#4,f4]@9 ~@5 b3@9 ~ [c4,d#4,f#4,a#4]@6 ~@2, ~@14 [g#3,d#4,f#4,a#4]@3 ~@15]/2", // Fm7 Bmaj7 F7 Cm7b5 D#m
  AE: "[~ f4 ~@8 f4@2 c#4@2 [c3,c4,e4]@4 g3!2 [d3,a3,c4,f4]@2 ~ e4 [d#3,a#3,c4,f#4]@2 [d#3,a#3,c4,f#4]@2 [e3,c4,e4,g4]@2 e3@2, [c#3,e4,g#4]@8 ~@10 [c3,c4,e4]@2 g#3 ~ [d3,a3,c4,f4]@2 ~@8, d#4@5 ~@3 g#4@4 ~@12 f4 ~@7]/2", // C Dm7 Cm7b5 C C#m C Dm7
  AF: "[~@6 [d#4,f4,g#4]@7 ~@5 [c4,d#4,f#4,a#4]@5 ~@3 [d#4,f#4,a#4,c5] ~@4 d#4, f3@11 ~@3 g#2@13 ~@5, ~ g#3@4 ~@11, ~@2 c4@3 ~@11]/2", // Fm7 Cm7b5
  AG: "[[c#4,f4,g#4,b4]@4 ~@2 [c#4,f4,g#4,b4] ~@3 [c#4,f4,g#4,b4] ~@3 [f4,g4,a#4] ~@3 [f4,g#4]@3 ~ [e4,g4]@4 [g4,a#4] ~@2 [g4,a#4] ~@2, e4 ~@13 c4@4 ~@14]/2", // C#7 Gm7 Fm Em Gm
  AH: "f6@5 c6 g#5 f5 e6@5 c6 g#5 f5", AI: "d#6@5 c6 g#5 f5 d6@8", AJ: "c#6@3 ~",
  AK: "~ c5@8 ~ [e4,g#4,c5] ~@2 [e4,g#4,c5] ~@2, [c#4,e4,g#4]@9 ~@7", // Eaug C#m
  AL: "[f4,c5,c#5]@4 a#4@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5]@5 ~@2", // C#maj7 A#m
  AM: "~@2 [f4,g4,a#4] ~@2 [f4,g4,a#4] ~ [f4,g4,a#4] ~ [e4,g4,a#4]@4 ~@3", // Gm7 Edim
  AN: "[g4,g#4,c5]@4 [g4,g#4,c5] ~@5 [g4,g#4,c5] ~@5", AO: "[g4,g#4,c5] ~@5 c3 ~ [f3,c5,f5] ~@3 [f3,c5,f5] ~@3",
  AP: "[c#5,f#5]@4 [g#4,a4,f#5] ~@5 [g#4,a4,c#5,f#5] ~@5, f#3 ~", // F#5 D F#m
  AQ: "[g#4,a4,c#5,f#5] ~@5 c#3 ~ [f#3,a4,c#5,f#5] ~@3 [f#3,a4,c#5,f#5] ~@3", // F#m
  AR: "[~ a4@9 [e4,f#4,a4] ~@3 c4 c#4 ~@10 [c#4,e4,g4,b4]@2 ~@4, [f#3,c#4,e4,f#4]@9 ~@5 [a3,e4,g4,b4]@12 ~@6, ~@14 b3@7 ~@11]/2", // F#m7 C#m7b5 F#7 Em
  AS: "[f4 f#4@4 ~@5 f#4@2 d4@2 ~@2 c#3 ~ b2@3 ~ a2@4 b3@4 ~@2, [d3,e4,a4]@4 a4@2 ~ f#4@8 ~, ~@7 [c#4,b4]@4 [c#4,f4,g#4,b4]@3 ~@2, ~@7 g#4@3 ~@3 g#2 ~@2]/2", // Dsus2 C#7
  AT: "[~@6 [e4,f#4,a4]@7 ~@5 [c#4,e4,g4,b4]@5 ~@3 [e4,g4,b4,c#5] ~@4 e4, f#3@11 ~@3 a2@13 ~@5, ~ a3@4 ~@11, ~@2 c#4@3 ~@11]/2", // F#m7 C#m7b5
  AU: "[d4,f#4,a4,c5]@4 ~@2 [d4,f#4,a4,c5] ~@3 [d4,f#4,a4,c5] ~@5, f4 ~@15", // D7
  AV: "[c#4,g#4] ~ [d4,a4]@4 [c#4,g#4]@4 [c#4,g#4] ~@2 [c#4,g#4] ~@2", AW: "f#6@5 c#6 a5 f#5 f6@5 c#6 a5 f#5",
// … 117 more lines

More by Paul Desmond