Strudelify
KeyE majorTempo250 bpm
0:00/0:00
// Soul Man — The Blues Brothers
// 250 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 tenor sax (copy of ch 7 brass section)
// note: Full arrangement: all 175 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(250/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(`<
  ~@8 A B C D@2 E F G H I J K L M N O P Q R S T U V W X Y@2 Z@2 AA@4 AB@7 AC@2 Q R S T U V W X A B C D@2 E F G AD@4 AE@5
  AF@7 AG A B C D@2 E F G H I J K L M N O P AH@2 AI@2 AJ@4 AK@7 ~ AL AM AN AO@3 AP@3 AQ AR AS ~@14 AT AU AV AW AX AY AZ
  BA BB BC BD BE BF BG BH BI BJ@2 BK@3 BL BM BN BO BP@2 ~@6
>`.pickRestart({
  A: "~@5 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@4", B: "~ [b3,e4,g#4] ~@4 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [b3,e4,g#4]@2",
  C: "~@6 [b3,e4,g#4] ~@6 [b3,e4,g#4] ~@2", // E
  D: "[~@3 [b3,e4,g#4] ~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [b3,e4,g#4]@2 ~@7 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~]/2", // E A E
  E: "~@4 [b3,e4,g#4] ~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3", F: "~ [b3,e4,g#4]@2 ~@6 [b3,e4,g#4] ~@5 [b3,e4,g#4]",
  G: "~@5 [b3,e4,g#4] ~@4 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~", H: "~@2 [b3,e4,g#4]@2 ~@6 [b3,e4,g#4] ~@5",
  I: "~ [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4]", J: "~@3 [b3,e4,g#4]@2 ~@7 [b3,e4,g#4] ~@3",
  K: "~@2 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@3 [c#4,e4,a4] ~@3", L: "[c#4,e4,a4] ~@4 [b3,e4,g#4]@2 ~@6 [b3,e4,g#4] ~@2",
  M: "~@3 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@4 [c#4,e4,a4] ~", N: "~@2 [c#4,e4,a4] ~@3 [b3,e4,g#4]@2 ~@6 [b3,e4,g#4] ~",
  O: "~@5 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@3 [c#4,e4,a4]", P: "~@3 [c#4,e4,a4] ~@3 [b3,e4,g#4]@2 ~@7",
  Q: "[b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@3", R: "[c#4,e4,a4] ~@3 [c#4,e4,a4] ~@4 [b3,e4,g#4]@2 ~@5",
  S: "~ [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@2", T: "~@2 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [b3,e4,g#4]@2 ~@4",
  U: "~@2 [b3,e4,g#4] ~@6 [b3,e4,g#4] ~@5 [b3,e4,g#4]", V: "~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@3 [b3,e4,g#4]@2 ~@3",
  W: "~@4 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5", X: "[b3,e4,g#4] ~@3 [c#4,e4,a4] ~@3 [c#4,e4,a4] ~@4 [b3,e4,g#4]@2 ~",
  Y: "[~@5 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@2, ~@5 [b3,e4,g#4]@27]/2", // E
  Z: "[~@2 [e2,e3]@4 [d2,d3]@4 [d2,d3]@4 ~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3], ~@3 [a3,d4,f#4]@13]/2", // E D
  AA: "[~@3 [d2,d3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@2, ~ [b3,e4,g#4]@7]/4", // D E
  AB: "[~@2 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 ~ [d2,d3]@4 [d2,d3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 a2@2, ~@10 [b3,e4,g#4]@33 ~ [a3,d4,f#4]@33 [b3,e4,g#4]@33 ~@2]/7", // E D E D E
  AC: "[~@5 c#3@4 ~@2 e3@4 b2@4 [b4,b5] ~@3 [b5,b6]@3 ~@6]/2", // B
  AD: "[~@2 [b3,e4,g#4]@2 ~@6 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4, ~@10 [b3,e4,g#4]@33 ~ [a3,d4,f#4]@20]/4", // E D E D
  AE: "[[d2,d3]@4 ~ [d2,d3]@4 [d2,d3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~, ~@13 [b3,e4,g#4]@66 ~]/5", // D E
  AF: "[[e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 ~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ a2@2 ~@4 c#3@4 ~@2, [b3,e4,g#4]@33 [a3,d4,f#4]@33 [b3,e4,g#4]@33 ~@13]/7", // E D E D E
  AG: "e3@4 b2@4 [b4,b5] ~@4 [b5,b6]@3", // B
  AH: "[[e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@3, [b3,e4,g#4]]/2", // E
  AI: "[~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 ~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@2, ~ [a3,d4,f#4]@31]/2", // D
  AJ: "[~@2 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@3, ~ [b3,e4,g#4]@31]/4", // E
  AK: "[~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [d2,d3]@4 [d2,d3]@4 ~ [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 [d2,d3]@4 ~ [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 [e2,e3]@4 ~ [e2,e3]@4 [e2,e3]@4 ~@7, ~@5 [b3,e4,g#4]@33 [a3,d4,f#4]@33 ~ [b3,e4,g#4]@33 ~@7]/7", // E D E D E
  AL: "~@10 [g3,c4] ~@3 c3 ~, ~@5 e4 ~@2", AM: "~@3 [g3,c4,e4]@3 ~ c3 ~ [g3,c4] ~ c3 ~ [g3,c4,e4]@3, ~@9 e4@2 ~@5",
  AN: "~ [c3,g3] ~ [g3,e4]@2 ~@2 [c3,g3,c4] ~@4 [g3,b3,d4] ~@3, ~@3 [c3,c4] ~@3 e4@2 ~@3 g2@3 ~", // C5 C C5 G C
  AO: "[[g3,b3,c4,d4] ~@3 [b3,d4]@4 g2 ~ [b3,d4,g4] ~ g3 ~ d4@4 ~ [g2,g3]@2 [b3,d4]@2 ~@2 [g2,g3,d4]@2 ~@2 [a3,c#4,e4]@3 ~ e3 ~@3 [a1,e4]@4 e3 ~@2 [a3,c#4,e4] ~ a2@2, ~@4 g3@2 ~@8 g4@2 ~@21 [a3,c#4]@2 ~@9, ~@14 b3 ~@10 b3 ~@3 a2@6 ~@13]/3", // G Bm G Bm G5 A A5 A
  AP: "[[c#4,e4]@2 e3@2 a3 ~ [c#4,e4]@2 ~@2 [a3,c#4,e4] ~@3 [a3,c#4,e4] ~@3 [a3,c#4] ~@2 e3 ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~ b2 ~ [a3,c#4,e4]@2 ~@2 [c#4,e4]@4 e3 ~ [b1,e4]@2 ~@2 [b2,e4]@2 ~@3, a3 ~@5 a2@6 ~@2 b2@4 ~@13 b2@8 ~@9, ~@6 a3 ~@11 e4@2 ~@13 a3@2 ~@4 [a3,c#4] ~@3 [a3,c#4] ~@4]/3", // C#m A C#m E5 A
  AQ: "[a#3,d4,f4] ~@3 [a#3,d4,f4] ~@3 [c3,d4,f4]@4 f3 ~ [a#3,d4,f4] ~, c3@6 ~@2 a#3@3 ~@5", // A# Dm7 A#
  AR: "c2@2 [a#3,d4] ~@5 [f6,g6,a6] [d6,e6] [g5,a5,b5,c6] [d5,e5,f5] [g4,a4,b4,c5] [e4,f4] [b3,c4,d4] [e3,f3,g3,a3], ~@2 f4@2 ~@3 c3@2 ~@7", // A# F Dsus2 Cmaj7 Dm Cmaj7 Fmaj7 Bm …
  AS: "[b2,c3,d3] [g2,a2] ~@14", AT: "~@15 [f5,f6]", AU: "~@3 [f5,f6] ~ f6@2 ~@3 [f5,f6] ~ [c4,f4] ~@3, ~@5 f5 ~@10",
  AV: "~@4 [c4,f4] ~@5 [d4,f4] ~@3 [d4,f4] ~", // F5 Dm
  AW: "[a#3,d4,f4] ~@4 d4@2 f5 ~ [a#3,f5,f6] ~@3 [a3,c4,f4] ~@2, ~@5 f4 ~@10", // A# A#5 F
  AX: "~@5 [a3,c4,f4] ~@6 [g#5,g#6]@2 ~@2, ~@12 [d4,f4] ~@3", // F G# Dm
  AY: "[d4,f4,g#5,g#6] ~ [a#3,d4,g5] ~@3 [d4,f6]@2 ~@2 [a#3,g5] ~@3 [a3,c4,f4] ~, ~@2 g6@2 ~@2 [f4,f5] ~@3 g6@2 ~@4", // Ddim Gm Dm D# F
  AZ: "~@7 [c4,f4] ~@5 [f4,f5,c6] ~@2", // F5
  BA: "~ [d4,f4,c6]@2 a#3@2 ~@2 [d4,g#5,c6]@2 g5 ~ [a#3,f4,f5] ~@2 d5 ~, ~ g5 ~ f5 ~@3 f4 ~@8", // Dm7 Dm7b5 A#5
  BB: "[a3,c4,f4] ~@3 d5 ~ f5@2 [a3,c4,f4,g4,c5] ~ f5@2 ~@2 [d4,d5] ~, [c5,f5]@2 ~@4 c5 ~@3 c5 ~@5", // F D F5
  BC: "[c5,f5]@2 [a#3,d4] ~ a#3@2 ~ f5@2 [d4,f4]@2 f5@2 f4@2 c6, ~@4 d5 ~@2 c5 ~@5 a#3 ~@2", // F5 A# Dm
  BD: "~ [a3,c4,f4] ~@3 [f5,f6] ~@3 [f5,f6]@4 [a3,c6] ~@2, ~@9 f4@2 ~@5, ~@9 c4 ~@6", // F Am
  BE: "[d4,f4,f5] ~@3 [d4,f4,f6]@2 a#3 ~ d6 ~ [d4,f5,f6] ~@3 [a#3,g5] ~, f6@2 ~@2 f5 ~@5 f4@2 ~@2 c6@2", // Dm D#
  BF: "g#5 ~ [f4,g5,c6]@2 f5 ~ d5 ~@2 c5 ~ [c4,f4,d5]@2 f5@2 a3, ~@2 [a3,c4] ~@8 a3 ~@4", // Fsus2 Dm7 Am
  BG: "~ [c4,f4,f5] ~@3 f4 ~ f4 ~@3 [d4,f4] ~@3 [c4,f4,g#5,c6]", // F5 Dm Fm
  BH: "~@4 [a3,f5,g5] ~@5 [d5,c6] ~ [c4,f4] ~ c6@2, ~@4 c6@3 ~@7 f5 ~", // Dm D7 F5
  BI: "[a3,d5] ~ [c4,f4] ~ f5@2 [a#3,f4] ~ [a#3,f4] ~@2 f5 ~ [a#3,f4] ~ f5", // D5 F5 A#5
  BJ: "[~ [a#3,c6,f6] ~@3 [c4,f4,c6] ~ b5 ~@3 f6@2 f4@2 [a5,f6]@2 a3 ~@2 [g#5,f6]@2 ~@2 [d4,f4] ~ f5 ~ a#3 ~ [d4,f4] ~, ~ f4@2 ~@2 f6@2 ~@4 a#5 ~ c4 ~@6 [d4,f4] ~@3 g5@2 ~@4 d5@2]/2", // A#sus2 F5 Dm C# Dm
  BK: "[~@2 [d4,f4,c5] ~ f5 ~ [c4,f4] ~@8 f4@2 ~@2 [a3,f5,c6] ~ [d4,f4,f5] ~@3 [c4,f4,f5] ~@3 c6 ~ [c4,f4] ~ a5@2 [c4,f4,g5] ~@2 f5 ~ [c4,f4,a5] ~@3 g#5 ~ f5 ~, ~@15 c4 ~@5 c6@2 ~@2 c6@2 ~@4 a#5@2 ~@15]/3", // Dm7 F5 F Dm F5 Csus4 F
  BL: "[c4,f4] ~ d5 ~@3 [d4,f4] ~@3 [d4,f4] ~ [d4,f4] ~@3", // F5 Dm
  BM: "~ [d4,f4] ~@3 [d4,f4,c5] ~@3 [c4,f4] ~@3 d5 ~ f5, ~@9 f5@2 ~@5", // Dm Dm7 F5
  BN: "~ [c4,f4] ~ f5 ~@4 [d4,f4,d5] ~ f5 ~ [c4,f4] ~ [c4,f4,f5] ~", // F5 Dm F5
  BO: "~@2 [d4,f4] ~ g#5 ~ [d4,f4,a5] ~ f5 ~ [c4,f4] ~ f5 ~@3, ~ g5 ~@6", // Dm F5
  BP: "[~ c6 ~ [c4,f4] ~@5 f4 ~@5 [c4,c5]@2 [d4,d5] ~ [f4,f5]@2 [d4,d5]@2 [c4,c5]@2 ~ [d4,d5] ~ [f3,c4,f4] ~@3, ~@3 f5@2 ~@23 f5@2 ~@2]/2", // F5 C D F D C D F5
})).s("gm_piano").gain(0.25)

// bass · electric bass finger
const bass = note(`<
  A@2 B@8 C D@3 E@2 F G@2 H I J K@3 L M N O P@3 Q R S T@3 U V W X Y@2 Z AA AB AC AD@2 L M N O P@3 Q AE@2 C D@3 E@2 AF
  Y@2 Z AA AB X AG@2 U AH AI AJ AK@3 AL AM@2 C D@3 E@2 F G@2 H I J K@3 U AH AI AJ AN@3 AO V S T@3 U AP@2 AQ AR@2 AS AT
  AU AV AW@2 AX AY AZ@2 BA@8 BB BC BD BE BF BG BH BI BJ BK BL@3 BM BN BO BP BQ@3 BR BS@2 BT BU@3 BV@2 BW BX@2 ~ BY@3 ~@2
>`.pickRestart({
  A: "[e2@27 ~@2 e2@3]/2", B: "[~ d2@33 g1@33 ~ a1@16 b1@16 ~ e2@4 e2@2 c#2@4 c#2@2 b1@3 ~@2 a1@3 ~ a1@3 ~ b1@2]/8",
  C: "~@2 c#2@3 ~ e2@4 e2@2 ~ c#2@3",
  D: "[~ c#2@2 b1@3 ~ a1@3 ~ a1@3 ~ b1@3 ~ c#2@3 ~@2 e2@4 e2@2 c#2@4 c#2@2 b1@3 ~ a1@3 ~ a1@3 ~]/3",
  E: "[~ b1@3 ~ c#2@3 ~ e2@4 e2@2 c#2@4 c#2@2 b1@3 ~@2 a1@3 ~ a1@2]/2", F: "~@2 b1@3 ~ c#2@3 ~ e2@4 e2@2",
  G: "[~ c#2@4 c#2@2 b1@3 ~ a1@3 ~ a1@3 ~ b1@3 ~ c#2@3 ~@2 e2@4]/2", H: "e2@2 c#2@4 c#2@2 b1@3 ~ a1@3 ~",
  I: "a1@3 ~@2 b1@3 ~ c#2@3 ~ e2@3", J: "~ e2@2 c#2@4 c#2@2 b1@3 ~@2 a1@2",
  K: "[~@2 a1@3 ~ b1@3 ~ c#2@3 ~ e2@4 e2@2 ~ c#2@4 c#2@2 b1@3 ~ a1@3 ~ a1@3 ~ b1@3 ~ c#2@3 ~@2]/3",
  L: "e2@4 e2@2 c#2@4 c#2@2 b1@3 ~", M: "a1@3 ~ a1@3 ~@2 b1@3 ~ c#2@3", N: "~ e2@4 e2@2 c#2@4 c#2@2 b1@3",
  O: "~@2 a1@3 ~ a1@3 ~ b1@3 ~ c#2@2",
  P: "[~@2 e2@4 e2@2 ~ c#2@4 c#2@2 b1@3 ~ a1@3 ~ a1@3 ~ b1@3 ~ c#2@3 ~@2 e2@4 e2@2 c#2@4 c#2@2]/3",
  Q: "b1@3 ~ a1@3 ~ a1@3 ~@2 b1@3", R: "~ c#2@3 ~ e2@3 ~ e2@3 ~ e2@3", S: "~ e2@3 ~@2 e2@3 ~ e2@3 ~ e2@2",
  T: "[~@2 e2@3 ~ d2@3 ~ d2@3 ~@2 d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~@2 e2@3 ~ e2@3 ~]/3",
  U: "e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~", V: "~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3", W: "~ e2@3 ~ e2@3 ~@2 e2@3 ~ e2@2",
  X: "~@2 e2@3 ~ e2@3 ~ e2@3 ~ e2@2", Y: "[~@3 e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~@2 d2@3 ~]/2",
  Z: "d2@3 ~ d2@3 ~ d2@3 ~ d2@3 ~", AA: "d2@3 ~@2 d2@3 ~ d2@3 ~ e2@3", AB: "~ e2@3 ~ e2@3 ~ e2@3 ~@2 e2@2",
  AC: "~@2 e2@3 ~ e2@3 ~ e2@3 ~ a1@2", AD: "[~@5 c#2@3 ~@3 e2@3 ~ b1@3 ~@14]/2",
  AE: "[~ c#2@3 ~ e2@4 e2@2 c#2@4 c#2@2 b1@3 ~@2 a1@3 ~ a1@3 ~ b1@2]/2", AF: "~@2 b1@3 ~ c#2@3 ~ e2@3 ~ e2@2",
  AG: "[~@2 e2@3 ~@2 e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~@2]/2", AH: "e2@3 ~ e2@3 ~@2 e2@3 ~ e2@3",
  AI: "~ d2@3 ~ d2@3 ~ d2@3 ~ d2@3", AJ: "~@2 d2@3 ~ d2@3 ~ d2@3 ~ d2@2",
  AK: "[~@2 e2@3 ~ e2@3 ~@2 e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~@2 a1@3 ~@3 c#2@3 ~@3]/3", AL: "e2@3 ~ b1@3 ~@9",
  AM: "[~@5 e2@4 e2@2 c#2@4 c#2@2 b1@3 ~@2 a1@3 ~ a1@3 ~ b1@2]/2",
  AN: "[~@2 e2@3 ~ e2@3 ~@2 e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~ e2@3 ~@2 e2@3 ~ e2@3 ~ e2@3 ~]/3",
  AO: "e2@3 ~ e2@3 ~ e2@3 ~@2 e2@3", AP: "[~ e2@3 ~ e2@3 ~ a1@3 ~@3 c#2@3 ~@3 e2@3 ~@2 b1@3 ~@3]/2",
  AQ: "~@10 c2@3 ~@3", AR: "[~@3 g1@3 ~@5 c2@3 ~ e1@3 ~ f1@3 ~ f#1@3 ~@2 g1@3 ~]/2", AS: "~@4 d2@3 ~@5 g1@3 ~",
  AT: "d2@3 ~@2 g1@3 ~ d2@3 ~ a1@3", AU: "~@5 e2@3 ~@6 a1@2", AV: "~@2 e2@3 ~ a1@3 ~ e2@3 ~ b1@2",
  AW: "[~@2 b1@3 ~@2 b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~@2]/2", AX: "c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~",
  AY: "c2@3 ~ c2@3 ~@2 c2@3 ~ c2@3", AZ: "[~ f2@27 ~@2 f2@2]/2",
  BA: "[~@2 d#2@33 ~ g#1@33 a#1@16 ~ c2@16 f2@3 ~ f2@3 ~@2 f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~ f2]/8",
  BB: "~@3 f2@3 ~@2 d#2@3 ~ d#2@3 ~", BC: "d#2@3 ~ d#2@3 ~ d#2@3 ~ d#2@3 ~", BD: "~ d#2@3 ~ d#2@3 ~ g#1@3 ~ g#1@3",
  BE: "~ g#1@3 ~ g#1@3 ~@2 g#1@3 ~ g#1@2", BF: "~@2 g#1@3 ~ g#1@3 ~ a#1@3 ~@3", BG: "~ d2@3 ~@3 f2@3 ~ c2@3 ~@2",
  BH: "~@3 f2", BI: "f2@2 d2@4 d2@2 c2@3 ~ a#1@3 ~", BJ: "a#1@3 ~@2 c2@3 ~ d2@3 ~ f2@3",
  BK: "~ f2@2 d2@4 d2@2 c2@3 ~@2 a#1@2",
  BL: "[~@2 a#1@3 ~ c2@3 ~ d2@3 ~ f2@4 f2@2 ~ d2@4 d2@2 c2@3 ~ a#1@3 ~ a#1@3 ~ c2@3 ~ d2@3 ~@2]/3",
  BM: "f2@4 f2@2 d2@4 d2@2 c2@3 ~", BN: "a#1@3 ~ a#1@3 ~@2 c2@3 ~ d2@3", BO: "~ f2@4 f2@2 d2@4 d2@2 c2@3",
  BP: "~@2 a#1@3 ~ a#1@3 ~ c2@3 ~ d2@2",
  BQ: "[~@2 f2@4 f2@2 ~ d2@4 d2@2 c2@3 ~ a#1@3 ~ a#1@3 ~ c2@3 ~ d2@3 ~@2 f2@4 f2@2 d2@4 d2@2]/3",
  BR: "c2@3 ~ a#1@3 ~ a#1@3 ~@2 c2@3", BS: "[~ d2@3 ~ f2@4 f2@2 d2@4 d2@2 c2@3 ~@2 a#1@3 ~ a#1@3 ~ c2@2]/2",
  BT: "~@2 d2@3 ~ f2@4 f2@2 ~ d2@3",
  BU: "[~ d2@2 c2@3 ~ a#1@3 ~ a#1@3 ~ c2@3 ~ d2@3 ~@2 f2@4 f2@2 d2@4 d2@2 c2@3 ~ a#1@3 ~ a#1@3 ~]/3",
  BV: "[~ c2@3 ~ d2@3 ~ f2@4 f2@2 d2@4 d2@2 c2@3 ~@2 a#1@3 ~ a#1@2]/2", BW: "~@2 c2@3 ~ d2@3 ~ f2@4 f2@2",
  BX: "[~ d2@4 d2@2 c2@3 ~ a#1@3 ~ a#1@3 ~ c2@3 ~ d2@3 ~ f2@4 ~]/2", BY: "f2/3",
})).s("gm_electric_bass_finger").gain(0.28)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  A@7 B C D E F@2 G H I J K@2 L M N O P@2 Q R S T U V W X Y@5 ~ Z@3 AA@8 Q R S T U V W X C D E F@2 G H I AB AC@2 AD@2 ~
  AE AF@2 ~ AG@6 AH C D E F@2 G H I J K@2 L M N O P@2 AI@2 AJ@3 AK@4 AL@7 AM AN@2 AO AP AQ AR AS@2 AT AU AV@7 AW@4 AX@4
  AY AZ BA BB BC BD BE@2 BF BG BH BI BJ BK BL BM BN BO BP BQ@2 BR BS BT BU BV@2 ~@6
>`.pickRestart({
  A: "[a3@5 g#4@24 ~@4 g#4@6 [a3,f#4]@6 ~@5 f#4@16 a3@6 ~ [d4,b4]@27 d4@6 [e4,c#5]@6, ~@5 b3@23 ~ b3@10 ~@6 a3@21 ~@46]/7", // D G C#m
  B: "e4 [f#4,d#5]@3", C: "~@5 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]",
  D: "~ [b3,e4,g#4] ~@2 [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2 [g#3,b3,e4]@2", // E F#m E
  E: "~@6 [b3,e4,g#4]@2 ~@5 [b3,e4,g#4] ~ [b3,e4,g#4]", // E
  F: "[~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2 [g#3,b3,e4]@2 ~@7 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~]/2", // E F#m E
  G: "[b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2", // E F#m
  H: "~ [g#3,b3,e4]@2 ~@6 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4]", // E
  I: "~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~@2 [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2", // E F#m
  J: "~ [g#3,b3,e4] ~@3 [b3,e4,g#4] ~@2", // E
  K: "[~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2 [g#3,b3,e4]@2 ~@7 [b3,e4,g#4]@2 ~@2]/2", // E F#m E
  L: "~@2 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2", // E
  M: "[a3,c#4,f#4]@2 ~@3 [g#3,b3,e4]@2 ~@6 [b3,e4,g#4]@2 ~", // F#m E
  N: "~@3 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~@2 [b3,e4,g#4] ~ [b3,e4,g#4]@2", // E
  O: "~ [a3,c#4,f#4] ~ [g#3,b3,e4] ~@3 [b3,e4,g#4]", // F#m E
  P: "[~@5 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2 [g#3,b3,e4]@2 ~@7]/2", // E F#m E
  Q: "[b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
  R: "[b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@3 [g#3,b3,e4]@2 ~@5", // E F#m E
  S: "~ [b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~@2", // E
  T: "[b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2 [g#3,b3,e4]@2 ~@4", // E F#m E
  U: "~@2 [b3,e4,g#4]@2 ~@5 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]", // E
  V: "~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@2 [g#3,b3,e4]@2 ~@3", // E F#m E
  W: "~@4 [b3,e4,g#4]@2 ~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
  X: "[b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4]@2 ~@2 [a3,c#4,f#4]@2 ~@3 [g#3,b3,e4]@2 ~", // E F#m E
  Y: "[~@5 [g#3,b3,e4]@6 [b3,g#4]@23 b3@4 [a3,f#4]@4 ~@3 [a3,f#4]@27 ~@8]/5", Z: "[~ d5@3 ~ d5@3 ~ d5@3 ~ d5@28 ~@7]/3",
  AA: "[~@15 a3@2 ~@2 g#4@4 b3@3 g#4@2 [a3,f#4]@33 [g#3,e4]@33 a2@4 ~@3 c#3@5 ~ e3@2 ~@2 b2@2 ~@15, ~@17 b3@6 ~@105]/8", // D C#m
  AB: "~ [g#3,b3,e4] ~@3 [g#3,b3,e4]@3", AC: "[~ [b3,g#4]@22 b3@4 ~ [a3,f#4]@4]/2", AD: "[~@2 [a3,f#4]@27 ~@3]/2",
  AE: "~@6 d5@3 ~ d5@3 ~ d5@2", AF: "[~ d5@14 ~]/2",
  AG: "[~@4 a3@2 ~@3 g#4@4 ~@2 g#4@2 [a3,f#4]@33 [g#3,e4]@33 ~ a2@4 ~@2 c#3@5 ~, ~@7 b3@6 b3@4 ~@79]/6", // D C#m
  AH: "e3 ~ b2 ~@5", AI: "[[g#3,b3,e4]@6 [b3,g#4]@23 b3@3]/2", AJ: "[~ [a3,f#4]@4 ~@2 [a3,f#4]@27 ~@14]/3",
  AK: "[~@11 d5@4 d5@4 ~ d5@3 ~ d5@28 ~@12]/4",
  AL: "[~@10 a3@2 ~@2 g#4@4 ~@2 g#4@2 [a3,f#4]@33 ~ [g#3,e4]@33 a2@4 ~@2 c#3@5 ~ e3@2 ~@3 b2@2 ~@4, ~@6 b3@3 b3@2 ~@45]/7", // D C#m
  AM: "~@5 [e4,g4,c5] ~@2", // C
  AN: "[~@3 [e4,g4,c5]@2 ~@6 [e4,g4,c5]@2 ~@2 [e4,g4,c5]@2 [e4,g4,c5]@2 ~@9 [b3,d4,g4]@2 ~@2]/2", // C G
  AO: "~@2 [b3,d4,g4] ~@3 [b3,d4,g4] ~", AP: "[b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~@8 [c#4,e4,a4]@2 ~",
  AQ: "~@5 [c#4,e4,a4]@2 ~@7 [c#4,e4,a4]@2", AR: "~ [c#4,e4,a4]!2 ~@5",
  AS: "[~@2 [c#4,e4,a4]@2 ~@3 [c#4,e4,a4]@2 ~@6 [c#4,e4,a4]@2 ~@2 [c#4,e4,a4]@2 ~@6 [c#4,e4,a4]@2 ~@3]/2", // A
  AT: "[d4,f4,a#4] ~ [d4,f4,a#4] ~ [d4,f4,a#4] ~@3", AU: "[d4,f4,a#4]@2 ~@2 [d4,f4,a#4]@2 ~@3 [d4,f4,a#4]@2 ~@5",
  AV: "[~ a#3@6 c4@23 ~@4 a4@6 ~ [a#3,g4]@6 ~@4 g4@17 a#3@6 [d#4,c5]@27 d#4@6 [f4,d5]@5, ~@7 a4@25 ~@80, ~@30 c4@10 ~@7 a#3@21 ~@44]/7", // D# Cm Dm
  AW: "[~ f4@4 ~ f4@6 [g4,e5]@6 g4@4 [a4,f5]@21 a4@4 f5@4 a4@4 ~ [a4,f5]@8]/4", // C Dm
  AX: "[[g4,d#5]@12 ~@5 d#5@4 g4@4 ~@33 a#2@4 ~@2, ~@12 g4@8 ~@5 d#4@12 d#4@8 ~ d#4@8 d#4@8 ~@2, ~@33 c5@8 ~ c5@8 c5@8 ~@6]/4", // Cm
  AY: "~ d3@5 ~ f3@2 ~@2 c3@2 ~@3", AZ: "~@6 [c4,f4,a4] ~",
  BA: "~@2 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2", // F
  BB: "[a#3,d4,g4]@2 ~@3 [a3,c4,f4]@2 ~@6 [c4,f4,a4]@2 ~", // Gm F
  BC: "~@3 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~@2 [c4,f4,a4] ~ [c4,f4,a4]@2", // F
  BD: "~ [a#3,d4,g4] ~ [a3,c4,f4] ~@3 [c4,f4,a4]", // Gm F
  BE: "[~@5 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a3,c4,f4]@2 ~@7]/2", // F Gm F
  BF: "[c4,f4,a4]@2 ~@4 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~", // F
  BG: "[c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@3 [a3,c4,f4]@2 ~@5", // F Gm F
  BH: "~ [c4,f4,a4]@2 ~@4 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~@2", // F
  BI: "[c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a3,c4,f4]@2 ~@4", // F Gm F
  BJ: "~@2 [c4,f4,a4]@2 ~@5 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]", // F
  BK: "~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a3,c4,f4]@2 ~@3", // F Gm F
  BL: "~@4 [c4,f4,a4]@2 ~@4 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~", // F
  BM: "[c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@3 [a3,c4,f4]@2 ~", // F Gm F
  BN: "~@5 [c4,f4,a4]@2 ~@4 [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]", // F
  BO: "~ [c4,f4,a4] ~@2 [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a3,c4,f4]@2", // F Gm F
  BP: "~@6 [c4,f4,a4]@2 ~@5 [c4,f4,a4] ~ [c4,f4,a4]", // F
  BQ: "[~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a3,c4,f4]@2 ~@7 [c4,f4,a4]@2 ~@4 [c4,f4,a4] ~]/2", // F Gm F
  BR: "[c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2", // F Gm
  BS: "~ [a3,c4,f4]@2 ~@6 [c4,f4,a4]@2 ~@4 [c4,f4,a4]", // F
  BT: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~@2 [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2", // F Gm
  BU: "~ [a3,c4,f4] ~@3 [c4,f4,a4] ~@2", // F
  BV: "[~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]@2 ~@2 [a#3,d4,g4]@2 ~@2 [a3,c4,f4]@2 ~@11]/2", // F Gm F
})).s("gm_overdriven_guitar").gain(0.22).pan(0.2)

// chords · rock organ
const rock_organ = note(`<
  ~@16 A@2 B C D E F@2 G H I J@2 K@2 L M N O@7 P@4 Q@4 R S I T U V@2 W ~ X ~ Y@2 Z@3 AA AB@8 AC AD@3 AE AF@4 AG AH@2 ~
  AI AJ AK@2 AL AM AN AO AP AQ AR AS@2 AT@4 AU@3 AV AW AX@2 AY@4 ~ AZ BA BB BC BD BE BF BG@2 BH@2 ~@16 BI@8 BJ BK@4 BL
  BM@4 BN@3 BO@4 BP ~ BQ@4 BR
>`.pickRestart({
// … 215 more lines

More by The Blues Brothers