Strudelify

Don't Answer the Door

B.B. King

KeyB♭ majorTempo52 bpm
0:00/0:00
// Don't Answer the Door — B.B. King
// 52 bpm, 4/4, key A# 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 6 "OVERDRIVE" overdriven guitar (copy of ch 1 "JAZZ GTR" electric guitar jazz); ch 8 "JAZZ GTR" electric guitar jazz (copy of ch 1 "JAZZ GTR" electric guitar jazz, 0.208 beats late); ch 9 "JAZZ GTR" electric guitar jazz (copy of ch 1 "JAZZ GTR" electric guitar jazz, 0.427 beats late)
// note: Full arrangement: all 74 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(52/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.

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C@2 D@2 E F G H@2 I J K@2 L@2 M N O@2 P Q R S@2 T U ~ V W X@2 Y@2 Z AA AB@2 AC@2 AD AE AF@2 AG AH@3 AI AJ AK ~
  AL@2 AM AN AO AP AQ AR AS AT AU ~ AV@2 AW AX AY@2 AZ BA ~
>`.pickRestart({
  A: "~@36 f4@4 g4@4 bb4@3 ~", B: "c5@2 ~@2 bb4@2 ~@2 bb4@2 ~ c5 bb4@6 ~ db5@5 ~@24",
  C: "[~@8 eb5@6 ~@3 eb5@2 ~ c5@2 ~@2 bb4@6 ~@3 g4 ~ bb4 ~ db5@4 ~@2 eb5@2 db5@16 ~@8 e5@3 db5 ~ bb4@6 db5@2 ~ eb5@2 db5@4 bb4@3 db5@4]/2",
  D: "[~@32 e5@10 eb5 ~@2 db5@6 ~@2 bb4@7 f4@2 ~ c5 db5@6 eb5@2 f5 ~ db5 ~@8 c5@2 ~ c5@2 ~ bb4@2 ~@5, ~@31 bb4 ~@16]/2",
  E: "~@31 g5@7 f5@2 ~ d5@2 f5@2 c5@2 ~", F: "~ bb4@9 ~@4 g4 bb4 ~ c5@2 c5@5 ~@3 f5@5 f5 ~@7 c5@8",
  G: "~@7 a4@4 f4@2 eb4 ~@2 db4@4 ~ bb3@5 f4 ~ bb4@3 bb4@4 d5@3 ~ d5@2 eb5@7, ~@15 f4@2 ~@31",
  H: "[f5@9 ~@5 eb5@2 ~ db5@2 ~ eb5 ~@2 e5@4 ~ db5@3 ~@2 bb4@7 ~ f4 ~ g4@4 bb4@6 ~ db5@7 ~@15 gb5@7 ~ f5@2 ~ ab5@3 ~@6]/2",
  I: "~ g5@2 f5 ~ c5@3 ~@3 bb4@6 ~ c5@3 ~@3 bb4@3 ab4 eb4@5 ~ bb3 eb4@3 f4 ~ db4@3 bb3 ~@4",
  J: "~@12 ab4 ~ e4 eb4 db4 bb3@4 ~ db4 bb3 ab3 ~ f3@10 ab3@3 f3 ~ ab3@7",
  K: "[~@40 eb4@4 ~@3 eb4@2 c4 ~ bb3@9 db4@3 ~ f4@2 bb4 ~ a4@10 ~@18]/2",
  L: "[~@28 bb4@2 db5 ~ eb5@2 ~@2 eb5@2 ~@2 eb5 c5 bb4@3 ~ db5 bb4@2 f4@3 ~@4 eb5@6 db5 ~ bb4@3 db5@5 ~@24]/2",
  M: "~@32 f4@2 bb4 ~ eb5 ~ eb5@4 ~ db5@5", N: "~@2 bb4 ~ bb4@5 ~@39",
  O: "[~@16 db5@6 ~@6 bb4@6 ~@2 db4@2 f4@2 bb4@2 ~ bb4@2 ~ a4@4 db5 bb4@2 ~ f4@3 ~@3 e5@2 db5 ~ bb4@4 db5@3 ~@25, ~@12 e4@9 ~@3 db4@10 ~@8 f4@3 ~@51]/2",
  P: "~@36 [g4,bb4]@2 bb4 ~ db5@2 ~ eb5@3 ~ db5", Q: "bb4@3 db5@2 ~@19",
  R: "~@26 eb5@4 ~ db5 bb4@3 ~ db5 bb4 g4 ~ f4@4 bb4 ~ f4 ~, ~@45 ab4@2 ~",
  S: "[eb4@4 f4@2 eb4@3 ~ db4 bb3 eb4@3 db4@2 ~ bb3@2 ~@9 bb4@7 ~@2 d4@14 ~@30 f4@2 bb4@2 bb4@6 db5 ~ bb4@2, ~@28 [db4,f4]@7 ~ f4@16 ~@44, ~@18 db4 ~@29, ~@37 bb4@17 ~@42]/2", // Db
  T: "~@36 eb5@4 db5 bb4@7", U: "~@31 eb5@4 ~ e5@2 db5 ~@9", V: "~@36 [g4,bb4]@2 ~ bb4@2 db5@2 ~ e5@2 ~@2",
  W: "db5@4 bb4 ~ bb4@6 ~@3 bb4 c5@2 ~ c5@13 ~@16",
  X: "[~@32 f5@3 f5@2 ~ eb5 ~ e5 ~@2 c5@4 ~ b4@2 ~@3 bb4@5 db5@6 ~@8 bb4@2 f4@2 ~ eb4 ~ f4@2 ~@15, ~@47 a4@2 ~@47]/2",
  Y: "[~@36 [g4,bb4]@3 bb4@2 db5 ~@2 eb5@7 ~ db5 ~ bb4@5 db5@3 ~@34]/2", // Gm
  Z: "~@28 eb4@2 ~ db4 ~ bb3@3 ~ db4 eb4@2 ~@2 db4@4 bb3 ab3",
  AA: "f3@5 ~@7 [bb3,db4,g4]@3 ~@16 f4@2 ~@3 bb4@7 ~ bb4@2 ~@2", // Gdim
  AB: "[eb5@5 ~@3 eb5@21 ~@6 bb4@2 db5@2 ~ eb5@2 ~ eb5@4 f5@2 ~ db5@3 ~ bb4@5 ~@3 bb4@2 ~ c5@3 ~ c5@5 ~ eb5@2 f5@2 ~ c5@2 ~ bb4@5 g4@2 ~ bb4@2 ~ db5@2]/2",
  AC: "[~@3 db5@6 ~@3 e5@12 ~@4 f4@2 ab4 ~ c5 ~ bb4@3 g4@2 bb4@2 bb4@3 ~@2 db5@9 ~@5 f5@2 ~ f5 ~ bb4@4 ~ db5@8 ~@13 bb4 ~@4]/2",
  AD: "ab5@11 f5@2 ~ eb5@2 e5@2 ~ db5@5 eb5@2 f5 ~@2 c5@3 a4 ~ c5@2 gb4 ~ c5@4 f5 bb4@5",
  AE: "eb5 ~@2 g4@10 ~@12 eb4@2 g4@2 bb4@2 db5@5 d5@2 ~ eb5@9",
  AF: "[eb5@2 eb5 ~@2 db5@11 ~@2 bb4@2 ~@2 c5@2 ~@2 c5@2 bb4@2 ~@10 bb4@2 ~ db5@2 ~@2 db5@10 ~@12 bb4@5 g4@2 db5@3 ~@13 bb4 ~@3]/2",
  AG: "g5@9 ~@3 f5@7 eb5@2 ~ f5 ~ c5@3 ~ a4@2 ~@2 bb4@3 c5@4 ~ a4@2 ~@2 bb4@4",
  AH: "[~@26 ab5@2 ~ f5@2 ~@2 g5@3 ~@4 f5@2 ~ eb5 ~ f5 ~ c5@4 a4 ~ c5@2 g4@2 bb4@3 db5@4 ~@5 a4@4 ~ f4@2 ~ eb4 ~ f4@2 db4@3 bb3@2 ~@2 eb4@2 ~ eb4@2 ~@2 db4@5 ~@3 ab4@5 f4 eb4 db4 bb3 ~ eb4@3 c4 bb3 ab3 ~ f3@5 ~@3 [db4,g4,bb4]@16]/3", // Gdim
  AI: "f4@12 ~@20 bb4@2 ~ bb4 bb4@7 ~@5, ~@31 f4@2 ~@15", AJ: "~@32 f4@2 g4 ~ bb4@3 ~ db5@6 ~@2",
  AK: "~@36 [ab4,db5]@2 ~ bb4 ab4@5 ~@3", AL: "[~@27 [g4,bb4] ~ bb4@2 db5@2 ~ eb5@3 ~@2 db5@4 ~@2 bb4@9 ~@42]/2",
  AM: "~@13 db5@5 ~@6 b4@7 ~ f4@2 eb4@2 ~@6 eb4@2 bb4@2 bb4 ~, ~@8 e4@10 ~@2 d4@11 ~@17",
  AN: "bb4@4 db5@3 ~@5 eb5@3 db5 bb4@9 ~@23", AO: "~@35 g4 bb4@2 bb4 ~ db5@3 ~ eb5@3 ~", AP: "bb4@5 ~@19",
  AQ: "~@14 e4@3 ~@2 bb4@3 ab4 e4 ~ eb4@3 eb4 c4 bb3@2 ~@2 bb3@2 ~ bb3 db4@2 ~ eb4@2 db4@4 ~, ~@17 f4@4 ~@27",
  AR: "bb3 ab3 f3@6 ~@4 bb4@2 ~ eb4@2 db4@4 ~ bb3 ab3 f3@5 ~@4 bb4@15, ~@12 ab4 ~ f4@2 ~@16 [db4,g4]@15 ~", // Dbdim
  AS: "[d4,f4]@15 ~@12 e4@4 d5@10 ~@7", AT: "~@26 [g4,bb4]@2 bb4@2 db5@2 ~ eb5 ~ db5@4 ~ bb4 ~@7",
  AU: "~@28 eb5@4 e5@2 c5 bb4@4 db5@4 ~@5", AV: "[~@27 [g4,bb4]@2 bb4@2 ~ db5@2 ~ eb5@3 f5@2 ~ db5@3 ~@2 bb4@8 ~@42]/2",
  AW: "~@3 eb4@14 ~@3 bb3@2 db4 ~ eb4 ~@2 e4@3 db4 ~ bb3@3 db4@2 d4 ~ f4 ~ bb4@2 a4 ~ bb4@2 ~",
  AX: "~ ab4@3 db5 ~ eb5 ~@2 e5@3 db5 bb4@6 ~@29", AY: "[~@30 c5@5 ~ bb4 ~@2 bb4 ~ a4@11 ~@44, ~@19 g4 ~@28]/2",
  AZ: "~@12 bb4@7 ~ bb4@4 g4@8 bb4@4 gb4@8 bb4@4, ~@12 ab4@12 bb4@7 ~@5 bb4@7 ~@5",
  BA: "[f4,bb4]@5 ~@7 db5@5 ~@3 bb4@7 c5@4 bb4@3 f4 ~ eb4@4 ~@3 f3 eb3@4", // Bb5
})).s("gm_electric_guitar_jazz").gain(0.4)

// other · electric guitar jazz · "JAZZ GTR" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~ A ~@3 B@2 C ~@3 D@2 ~@11 E ~ F G ~@2 H ~ I ~@3 J ~ K ~@4 L ~ M ~@3 N ~@5 O ~@5 P Q ~@9 R ~
>`.pickRestart({
  A: "~@7 g4 ~@40", B: "[~@28 bb4@6 ~@9 bb4 g4 bb4@7 ~@44]/2", C: "~@17 bb4@2 ~@5",
  D: "[~@8 bb4 ~ g4@2 ~@33 ab3 f3@4 ~@46]/2", E: "~@21 f3@5 ~@22", F: "f4 ~@15", G: "~@40 bb4@7 ~", H: "~@13 g4@2 ~@33",
  I: "~@3 g4@2 ~@28 db4@5 ~@10", J: "a2 ~@47", K: "~@6 g4 ~@17", L: "~@31 g4@2 bb4@7 ~@8", M: "~@15 g4 ~@5 g4 ~@2",
  N: "~ bb4@12 ~@35, d4 ~@3", O: "~@36 db4@5 ~@7", P: "bb4@5 ~@11", Q: "~@42 ab4@5 ~", R: "~@40 bb3 ~ ab3 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.22)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~ A B C D E F G D H I J K L M D N O M P@2 Q M J R S T U V E M W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  AQ AR AS AT AU AV AW AX AY AZ BA BB AJ BC BD BE BF AJ BG BH AM BI ~
>`.pickRestart({
  A: "bb1@11 ~ f1@12 bb1@11 ~ f1@8 bb1@4", B: "eb2@12 db2@12 c2@12 b1@11 ~", C: "bb1@12 d2@12 f2@12 g2@3 ~ f2@4 g2@4",
  D: "bb1@3 d2@3 f2@3 g2 f2 g2", E: "eb2@3 db2@3 c2@3 bb1 c2 d2", F: "eb2@3 bb1@3 eb2@3 c2@2 b1",
  G: "bb1@11 ~ d2@12 f2@12 g2@3 ~ f2@4 g2@4", H: "f2@12 c2@12 f2@11 ~ c2@4 f2@3 ~ e2@4",
  I: "eb2@12 db2@11 ~ c2@12 b1@12", J: "bb1 d2 eb2 e2",
  K: "f2@5 ~@3 f2@3 ~ f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2 ~@3 f2@4 f1@2 ~@2 f1@4", L: "bb1@11 ~ d2@11 ~ f2@12 e2@11 ~",
  M: "eb2 db2 c2 b1", N: "bb1@11 ~ d2@12 f2@6 ~@2 f2@4 g2@4 f2@4 g2@4", O: "eb2@11 ~ db2@12 c2@12 bb1@8 d2@4",
  P: "bb1@12 d2@12 f2@12 g2@4 f2@3 ~ g2@4", Q: "f2@10 ~@2 f2@12 f2@8 c2@3 ~ f2@3 ~ c2@4 f2@4",
  R: "f2@6 ~@2 f2@3 ~ f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2 ~@3 f2@4 c2@4 f2@4",
  S: "bb2@6 ~@2 bb2@3 ~ ab2@6 ~@2 ab2@4 g2@5 ~@3 g2@4 f2@4 ab2@4 a2@4",
  T: "bb2@7 ~ bb2@4 ab2@5 ~@3 ab2@4 g2@6 ~@2 g2@4 f2@4 ab2@4 a2@4",
  U: "bb2@7 ~ bb2@4 ab2@6 ~@2 ab2@4 g2@5 ~@3 g2@4 f2@4 ab2@3 ~ a2@4",
  V: "bb2@3 ~ bb2@2 ~@2 bb2@4 ab2@3 ~ ab2@2 ~@2 ab2@4 g2@2 ~@2 g2@2 ~@2 g2@4 f2@3 ~ f2 ~@3 f2@4",
  W: "bb1@12 d2@11 ~ f2@12 g2@4 f2@4 g2@4", X: "bb1@11 ~ d2@12 f2@12 g2@4 f2@4 g2@4",
  Y: "f2@7 ~ f2@3 ~ f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2 ~@3 f2@4 c2@4 f2@4",
  Z: "eb2@6 ~@2 eb2@4 db2@5 ~@3 db2@4 c2@6 ~@2 c2@4 b1@8 a1@4", AA: "bb1@12 d2@8 eb2@3 ~ eb2@8 e2@3 ~ e2@8 f2@3 ~",
  AB: "f2@2 ~@2 f2@2 ~@2 f2@2 ~@2 f2@3 ~ f2@2 ~@2 f2@2 ~@2 f2@3 ~ f2@2 ~@2 f2 ~@3 f2@4 c2@4 f1@4",
  AC: "bb1@5 ~@3 bb1@4 d2@4 ~@4 d2@4 f2@5 ~@3 f2@4 e2@12",
  AD: "eb2@5 ~@3 eb2@4 db2@5 ~@3 db2@4 c2@5 ~@3 c2@4 b1@7 ~ a1@4",
  AE: "bb1@4 ~@4 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@3 ~ g2@4 f2@4 g2@4",
  AF: "bb1@5 ~@3 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@4 g2@4 f2@4 g2@3 ~",
  AG: "eb2@5 ~@3 eb2@4 db2@5 ~@3 db2@4 c2@5 ~@3 c2@4 bb1@4 c2@4 d2@4",
  AH: "eb2@6 ~@2 eb2@4 db2@4 ~@4 db2@4 c2@5 ~@3 c2@4 b1@7 ~ a1@4",
  AI: "bb1@4 ~@4 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@4 g2@4 f2@3 ~ g2@4",
  AJ: "bb1@5 ~@3 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@4 g2@4 f2@4 g2@4",
  AK: "f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2@2 ~@2 f2@4 c2@3 ~ f2@4",
  AL: "eb2@5 ~@3 eb2@4 db2@5 ~@3 db2@4 c2@5 ~@3 c2@4 b1@8 a1@4",
  AM: "bb1@5 ~@3 bb1@4 d2@6 ~@2 d2@4 eb2@5 ~@3 eb2@4 e2@6 ~@2 e2@4",
  AN: "f2@3 ~ f2@2 ~@2 f2@2 ~@2 f2@3 ~ f2@2 ~@2 f2@2 ~@2 f2@3 ~ f2 ~@3 f2 ~@3 f2@4 c2@4 f2@4",
  AO: "bb2@6 ~@2 bb2@4 ab2@5 ~@3 ab2@4 g2@6 ~@2 g2@4 f2@4 ab2@4 a2@4",
  AP: "bb2@6 ~@2 bb2@4 ab2@5 ~@3 ab2@4 g2@6 ~@2 g2@4 f2@4 ab2@3 ~ a2@4",
  AQ: "bb2@6 ~@2 bb2@4 ab2@5 ~@3 ab2@4 g2@5 ~@3 g2@4 f2@4 ab2@3 ~ a2@4",
  AR: "bb2@3 ~ bb2@2 ~@2 bb2@4 ab2@3 ~ ab2@2 ~@2 ab2@4 g2@3 ~ g2@2 ~@2 g2@4 gb2@4 f2@4 e2@4",
  AS: "eb2@5 ~@3 eb2@4 db2@5 ~@3 db2@4 c2@5 ~@3 c2@4 bb1@3 ~ c2@4 d2@4",
  AT: "eb2@6 ~@2 eb2@4 db2@5 ~@3 db2@4 c2@5 ~@3 c2@4 b1@5 ~@3 b1@4",
  AU: "bb1@6 ~@2 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@3 ~ g2@4 f2@4 g2@4",
  AV: "bb1@4 ~@4 bb1@4 d2@5 ~@3 d2@4 f2@4 ~@4 f2@3 ~ g2@4 f2@3 ~ g2@4",
  AW: "f2@3 ~ f2@3 ~ f2 ~@3 f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2@2 ~@2 f2@4 c2@4 f2@4",
  AX: "eb2@5 ~@3 eb2@4 db2@6 ~@2 db2@4 c2@6 ~@2 c2@4 b1@6 ~@2 b1@4",
  AY: "bb1@5 ~@3 bb1@4 d2@5 ~@3 d2@4 eb2@5 ~@3 eb2@4 e2@5 ~@3 e2@4",
  AZ: "f2@4 f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@2 ~@2 f1 ~@3 f1@4 g1@4 a1@4",
  BA: "bb1@5 ~@3 bb1@4 d2@6 ~@2 d2@4 f2@5 ~@3 f2@4 g2@4 f2@4 d2@4",
  BB: "bb1@5 ~@3 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@4 g2@4 f2@4 d2@4",
  BC: "bb2@7 ~ bb2@4 ab2@5 ~@3 ab2@4 g2@3 ~ g2@2 ~@2 g2@4 f2@4 g2@4 f2@4",
  BD: "eb2@5 ~@3 eb2@4 db2@5 ~@3 db2@4 c2@6 ~@2 c2@4 bb1@4 c2@4 d2@4",
  BE: "eb2@6 ~@2 eb2@4 db2@5 ~@3 db2@4 c2@6 ~@2 c2@4 b1@7 ~ f1@4",
  BF: "bb1@6 ~@2 bb1@4 d2@5 ~@3 d2@4 f2@5 ~@3 f2@4 g2@4 f2@4 g2@4",
  BG: "f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2@2 ~@2 f2@6 ~@2 f2 ~@3 f2@4 c2@4 d2@4",
  BH: "eb2@6 ~@2 eb2@4 db2@5 ~@3 db2@4 c2@5 ~@3 c2@4 b1@6 ~@2 b1@4", BI: "f2@9 ~@3 b1@5 ~@3 bb1@28",
})).s("gm_fretless_bass").gain(0.38)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~ A B C@2 D@2 E@2 F@2 A G A B C@2 D@2 C@2 H B I J I@3 K D@2 C@2 L@2 A M A B C@2 N@2 O@2 P B A Q R I@2 S D@2 C@2 T@2 A
  U I@3 V W B C@2 P W X Y ~
>`.pickRestart({
  A: "[ab4,bb4,d5,f5]", B: "[g4,bb4,eb5]", C: "[ab4,bb4,d5,f5]/2", D: "[g4,bb4,eb5]/2", E: "[[ab4,bb4,d5,f5]@95 ~]/2",
  F: "[[a4,c5]@24 [g4,bb4]@23 ~, eb5@47 ~]/2", G: "~ [a4,c5,eb5]@11", H: "[a4,c5,eb5]@47 ~", I: "[ab4,bb4,d5,f5]@47 ~",
  J: "~@4 [a4,c5,eb5]@43 ~", // Adim
  K: "[ab4,bb4,d5,f5]@11 ~ bb4@3 ~ bb4@3 ~ [ab4,bb4,d5,f5]@4 [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@4, ~@3 [ab4,d5,f5]@2 ~@7", // Bb7 Ddim
  L: "[[a4,c5] [g4,bb4], eb5]/2", // Am Gm
  M: "~@4 [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@12 [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@2 ~@2", // Adim
  N: "[[g4,bb4,eb5]@95 ~]/2", O: "[[ab4,bb4,d5,f5]@47 ~]/2", P: "[a4,c5,eb5]",
  Q: "~@4 [a4,c5,eb5]@4 [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@11 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@2 ~@2", // Adim
  R: "[ab4,bb4,d5,f5]@23 ~", // Bb7
  S: "[ab4,bb4,d5,f5]@12 [bb4,d5,f5]@11 ~ [bb4,d5,f5]@4 [bb4,d5,f5]@4 [bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@4, ~@12 ab4@12 ~@4 ab4@7 ~@13", // Bb7 Bb Bb7
  T: "[[a4,c5]@47 ~ [g4,bb4]@48, eb5@95 ~]/2", // Am Gm
  U: "~@4 [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5]@8 eb5@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@3 ~ [a4,c5,eb5]@2 ~@2, ~@24 eb5@7 ~@17", // Adim Am Adim
  V: "[bb4,d5,f5]@3 ~ [bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@4 [bb4,d5,f5]@4 [bb4,d5,f5]@3 ~ [bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@3 ~ [bb4,d5,f5]@3 ~ [bb4,d5,f5]@4 [bb4,d5,f5]@4 [bb4,d5,f5]@3 ~ [ab4,bb4,d5,f5]@4, ab4@7 ~@5 ab4@11 ~@5 ab4@4 ~@4 ab4@8 ~@4", // Bb Bb7 Bb Bb7 Bb Bb7
  W: "[g4,bb4,eb5]@47 ~", X: "~@8 [d5,f5,g5,bb5]@3 ~ [d5,f5,g5,bb5]@11 ~ [c5,eb5,g5,bb5]@12 [db5,e5,gb5,bb5]@12",
  Y: "[d5,f5,bb5]@3 [b4,c5] [g4,a4] [e4,f4] [c4,d4] b3 ~@4 [a4,eb5,ab5]@8 [ab4,d5,g5]@28", // Bb Cmaj7 Gsus2 Fmaj7 Csus2 Ab G
})).s("gm_rock_organ").gain(0.18).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C@2 A@2 C A@2 B@2 D A B A@2 C B C@3 B A D E F@2 G C A@2 C A@3 H I@5 J I@3 J@2 H K E L M I J I@2 J@3 G E@3 N I J
  I@3 J O P H
>`.pickRestart({
  A: "x ~@5 x ~@4 x", B: "x!2", C: "x ~@5 x ~@3 x!2", D: "x ~ x ~@2 x!2 ~ x ~@3", E: "x ~ x!2 ~ x!2 ~ x!2 ~ x",
  F: "x ~ x!2 ~ x!2 ~ x!4", G: "x!4", H: "x", I: "x ~ x ~@2 x!2 ~ x ~ x!2", J: "x ~ x ~@2 x!2 ~ x ~@2 x",
  K: "x ~ x ~@2 x!2 ~ x!2 ~ x", L: "x ~ x!2 ~ x!2 ~ x!2 ~@2", M: "x!3 ~", N: "x ~@10 x", O: "~@2 x ~@2 x ~@2 x ~@2 x",
  P: "x ~ x!2 ~ x ~@6",
})).gain(0.38)

// drums · rim
const rim = s("rim").struct("<~ A@24 B@3 C D A@6 E A@11 F B@2 G H A@7 I B@3 J A@6 ~@3>".pickRestart({
  A: "~ x ~ x", B: "x!4", C: "x!12", D: "x!2 ~ x", E: "~ x!9 ~@2", F: "~ x!11", G: "x ~@2 x ~@2 x ~@2 x!2 ~",
  H: "x!9 ~@3", I: "~@7 x!2 ~@3", J: "~ x!8 ~@3",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@71 [x!4] [~@4 x!4 ~@20 x!20] x>").gain(0.22)

// drums · low tom
const low_tom = s("lt").struct("<~@36 A ~@15 B ~@7 C ~@2 D E ~@9>".pickRestart({
  A: "~@11 x", B: "~@10 x!2", C: "x!7 ~@2 x!3", D: "~@5 x", E: "~@9 x!2 ~",
})).gain(0.38)

// drums · hihat
const hihat = s("hh").struct("<~@36 A ~@15 A ~@7 B ~@2 A ~@9 C>".pickRestart({
  A: "~@11 x", B: "~ x!3", C: "~ x ~@22",
})).gain(0.22)

// drums · mid tom
const mid_tom = s("mt").struct("<~@12 A ~@23 B ~@15 C ~@10 B ~@10>".pickRestart({
  A: "~@11 x", B: "~@5 x", C: "~@3 x",
})).gain(0.38)

// drums · open hat
const open_hat = s("oh").struct("<~@52 [~@3 x] ~@10 [~@3 x] ~@9 x>").gain(0.33)

// drums · crash
const crash = s("cr").struct("<~@36 [~@3 x] ~@23 x!2 ~@10 [x ~@2 x ~ x ~@6] ~>").gain(0.38)

// drums · ride
const ride = s("rd").struct("<~ A@11 B A@23 C A@15 C A@7 ~ D A C A@8 ~@2>".pickRestart({
  A: "x!12", B: "x!11 ~", C: "x!9 ~@3", D: "~ x!11",
})).gain(0.27)

stack(
  electric_guitar_jazz, electric_guitar_jazz_2, bass, rock_organ, kick, rim, snare, low_tom, hihat, mid_tom, open_hat,
  crash, ride
)

More by B.B. King