Strudelify
Like A Rolling Stone cover art

1965 · Highway 61 Revisited

Like A Rolling Stone

Bob Dylan

KeyC majorTempo120 bpm
0:00/0:00
// Like A Rolling Stone — Bob Dylan
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 3 "Piano   (BB)" named as a piano, played on piano (its electric guitar jazz patch is not one)
// note: Full arrangement: all 431 bars on a 16-step grid, each part at one level. 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · synth bass 1 · "Bass    (BB)"
const bass = note(`<
  ~@2 A B C D E F G H I J K J E L E M N J N J O P N J Q R S T U V W V M X L Y Z R H R AA J I J AB AC AD AE AF AG AH AI
  AJ AG AK AI AJ AL AM AG AJ AC AH AN AJ AO AB AG AH AP AD AQ AB AR AJ AG AH AP AD AQ AG AC AM AS AT AU AP AV AC AF AW
  AX AG AY AZ AY AG AC AG AC AH AP AH AP AJ AT AH BA AB AL AK AC AJ AG BB AC AJ AT AM AG BC BD AM AS AF AW AX AG AD AQ
  AH AP AJ AW AY AI BB AP AK AP AI AC AK AP AG AC AH AP AI BC AO AF AG AJ AZ BC AL AC AG BE BB AP BB AP AY AL AP BF AY
  AG AP AG AB AC AH AG AY AT AD AC AJ BD AK AP AJ AR AB AC AM AS AH AP AJ AW AF AG BB AP AH AP BD BG AH AP AG AC AP AV
  AC AJ AW BC AG AJ AW AJ BD BG AG AC AH AP AM AS BC AG AH BH BC AT AM AG AY AG BB AT AJ AG AK AG AJ AT AH AP BC AR AJ
  AT AM AS AH AP AX AZ AJ AC AK AP AH AP AI AC AP AV AG AC AD AQ AG AX AZ AJ BD AX BI AJ AG AC BD BG AH AP AM AS BC AG
  AH BJ AJ AG AH AC AJ AG AH AL AF AG AH AG AX AG BB AP AJ AZ AJ AT AH AP AM AS AJ AR AF AG AP AV AH AP AG BE AM AS AG
  BE AH AN AG AX BI AY AG AJ AW AJ BD BG AL AC BB AP AH AP AJ AT AP BK AJ AT AD AG AJ AT AP AG BC AG AH AG AX AG AK AP
  BL F G BM S BN N J V BO V M AA J BP J U R BQ J M R BP J A G L BL O G BR E H R BM BS BT BU BT BU AJ AG AH BV BC AL AK
  AG AX AI AH AG AF AI AM AL AJ AL AK AP AJ AG BB AJ BW
>`.pickRestart({
  A: "f2 ~ f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 ~ [f1,g1], ~@7 c3", B: "~@2 f2@2 a2@2 c2@2 ~@2 f2@2 c2 ~ c2@2",
  C: "c2 ~ c2@2 e2@2 g2@2 c2 ~ c2@2 e2@2 g2 g1", D: "c2 ~ c2@2 e2@2 g2@2 c2 ~ c2@2 e2@2 g2 ~",
  E: "c2 c1 c2@2 e2@2 g2@2 c2 ~ c2@2 e2@2 g2@2", F: "d2 ~ d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a2 a1",
  G: "~@2 c2@2 e2@2 g2@2 c2 ~ c2@2 e2@2 g2 ~", H: "~@2 f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 c3 ~",
  I: "~@2 g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 d2@2", J: "g2 ~ g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 d3 ~",
  K: "g2 ~ g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 d3 d2", L: "~@2 d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a1@2",
  M: "f2 ~ f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 c3@2", N: "g2 ~ g2 ~ g2 ~ g2@2 g2 ~ g2@2 b2@2 d3@2",
  O: "f2 f1 f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 c3@2", P: "f2 ~ f2@2 a2@2 c3@2 f2 f1 f2@2 a2@2 c3 ~",
  Q: "~@2 f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 c2@2", R: "f2 ~ f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 c3 ~",
  S: "g2 ~ g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 ~ [g1,a1], ~@7 d3", T: "g2 ~ g2@2 b2@2 d3@2 g2 ~ g2 ~ b2@2 e2 ~",
  U: "f2 ~ f2 ~ f2 ~ f2@2 f2 ~ f2@2 a2@2 c3@2", V: "c2@2 ~ c2 e2@2 g2@2 c2 ~ c2@2 e2@2 ~ c1, ~@7 g2",
  W: "d2 ~ d2@2 f2@2 a2@2 d2 ~ d2@2 f2@2 a2@2", X: "~@2 c2@2 e2@2 g2@2 c2 ~ c2@2 e2@2 g1@2",
  Y: "c2 ~ c2@2 e2@2 c3@2 c2 ~ c2@2 e2@2 g1@2", Z: "f2 ~ f2@2 a2@2 c3@2 f2 ~ f2@2 a2@2 c3 c2",
  AA: "~@2 g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 d3 ~", AB: "c2 c1 c2@2 c3@2 c2@2 c3 ~ c3@2 c2@2 c3@2",
  AC: "f2 ~ f2@2 f3@2 f2@2 f3 ~ f3@2 f2@2 f3 ~", AD: "g2@2 ~ g2 g3@2 g2@2 g3 ~ g3@2 g2@2 g3@2",
  AE: "g2 ~ g2@2 b2@2 d3@2 f2 ~ f2@2 f3@2 f2@2", AF: "c2 ~ c2@2 e2@2 g2@2 c3 ~ c3@2 g2@2 c3@2",
  AG: "f2 ~ f2@2 f3@2 f2@2 f3 ~ f3@2 f2@2 f3@2", AH: "g2 ~ g2@2 g3@2 g2@2 g3 ~ g3@2 g2@2 g3@2",
  AI: "f2 ~ f2 ~ f2 ~ f2@2 f3 ~ f3@2 f2@2 f3@2", AJ: "c2 ~ c2@2 c3@2 c2@2 c3 ~ c3@2 c2@2 c3@2",
  AK: "g2 ~ g2 ~ g2 ~ g2@2 g3 ~ g3@2 g2@2 g3@2", AL: "f2 ~ f2@2 a2@2 c3@2 f3 ~ f3@2 c3@2 f3@2",
  AM: "g2 g1 g2@2 g3@2 g2@2 g3 ~ g3@2 g2@2 g3@2", AN: "g2 ~ g2@2 g3@2 g2@2 g3 g2 g3@2 g2@2 g3 ~",
  AO: "d2 ~ d2@2 f2@2 a2@2 d3 ~ d3@2 a2@2 d3@2", AP: "g2 ~ g2@2 g3@2 g2@2 g3 ~ g3@2 g2@2 g3 ~",
  AQ: "g2 ~ g2@2 g3@2 g2@2 g3 g1 g2@2 g3 ~ g2 ~", AR: "d2 ~ d2@2 d3@2 d2@2 d3 ~ d3@2 d2@2 d3 ~",
  AS: "g2 ~ g2@2 g3@2 g2@2 g3 ~ g3@2 g2@2 d2 ~", AT: "f2 f1 f2@2 f3@2 f2@2 f3 ~ f3@2 f2@2 f3@2",
  AU: "f2 ~ f2@2 f3@2 f2@2 f3 ~ f3@2 f2@2 c2 ~", AV: "~@2 g2@2 g3@2 g2@2 g3 ~ g3@2 g2@2 g3 ~",
  AW: "d2 ~ d2@2 d3@2 d2@2 d3 ~ d3@2 d2@2 d3@2", AX: "c2 ~ c2@2 c3@2 c2@2 c3 ~ c3@2 c2@2 c3 ~",
  AY: "c2 ~ c2 ~ c2 ~ c2@2 c3 ~ c3@2 c2@2 c3@2", AZ: "d2@2 ~ d2 d3@2 d2@2 d3 ~ d3@2 d2@2 d3@2",
  BA: "g2@2 ~ g2 g3@2 g2@2 f2@2 ~ f2 f3@2 f2@2", BB: "g2 ~ g2@2 b2@2 d3@2 g3 ~ g3@2 d3@2 g3@2",
  BC: "c2@2 ~ c2 c3@2 c2@2 c3 ~ c3@2 c2@2 c3@2", BD: "f2@2 ~ f2 f3@2 f2@2 f3 ~ f3@2 f2@2 f3@2",
  BE: "f2 ~ f2@2 f3@2 f2@2 f3 f2 f3@2 f2@2 f3 ~", BF: "g2 ~ g2@2 g3@2 g2@2 f2 ~ f2@2 f3@2 f2@2",
  BG: "f2 ~ f2@2 f3@2 f2@2 f3 f1 f2@2 f3 ~ f2 ~", BH: "g2@2 ~ g2 g3@2 g2@2 f2 f1 f2@2 f3@2 f2@2",
  BI: "d2 d1 d2@2 d3@2 d2@2 d3 ~ d3@2 d2@2 d3@2", BJ: "g2 ~ g2@2 g3@2 g2@2 f2@2 ~ f2 f3@2 f2@2",
  BK: "g2 ~ g2@2 g3@2 g2@2 f2 f1 f2@2 f3@2 f2@2", BL: "c2 ~ c2@2 e2@2 g2@2 c2 ~ c2@2 e2@2 ~ [c1,d1], ~@7 g2",
  BM: "f2@2 ~ f2 a2@2 c3@2 f2 ~ f2@2 a2@2 ~ f1, ~@7 c3", BN: "g2 ~ g2@2 b2@2 d3@2 g2 ~ g2 ~ b2@2 f#2 ~",
  BO: "~@2 d2@2 f2@2 a1@2 d2 ~ d2@2 f2@2 a2@2", BP: "g2 ~ g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 d3@2",
  BQ: "g2 g1 g2@2 b2@2 d3@2 g2 ~ g2@2 b2@2 d3@2", BR: "d2 ~ d2 ~ d2 ~ d2@2 d2 ~ d2@2 f2@2 a2@2",
  BS: "f2 ~ f2@2 a2@2 c3@2 f2@2 ~ f2 a2@2 c3 ~", BT: "g2@2 ~ g2 b2@2 d3@2 g2 ~ g2@2 b2@2 ~ g1, ~@7 d3",
  BU: "g2 ~ g2@2 b2@2 d3@2 g2@2 ~ g2 b2@2 d3 ~", BV: "g2 ~ g2@2 b2@2 d3@2 f2 ~ f2 ~ f2 ~ f2@2", BW: "c2 ~@15",
})).s("gm_synth_bass_1").gain(0.38).pan(0)

// chords · piano · "Piano   (BB)"
const piano = note(`<
  ~@2 A B C D E F C G H@2 I J K L C M N O P Q R S T U V R W@2 X Y F Z AA AB AC AD X AE V R AF AG AF AG Z AH AI AJ AK M
  AL M E M W AA AM AN AO AP AD V W@2 Z L E X N O P Q C AQ AR AN AS AT@2 AU AV AW AX AY M@2 AL AZ AN Y F BA R AB BB Y AA
  BC AN BD BE AF@2 AG C G AI BF Y AH BG X BA X AO AA AR M AL V C A BE AF AB BH K AV AS AT H@2 Z BB AB AH H@2 BI BJ AV AW
  W@2 M@2 T U AH AR BH AK AH C AQ AB G BK M@2 BL BM AL AZ E AN W BN AD AH AF R Z AN T G AB M BL AH AD V AX AY Y L AD AN
  BO BP BI BJ BA AQ AB AH AT AU AT AU AN BD AX AY AA BC W@2 X AD BQ AR M AM AQ Z R S X AE AX AY W@2 AD X AX BR AB M T G
  AB M BG M E A BL R BA M AX AY BA AC AB AA H@2 BI BJ AM L E AV N O H@2 AV AW W@2 AA BC W@2 R AB AQ E X C L AM AV AW AH
  BD AX AY AF AG AD G AL BS C X W AH E AV BL R BA AA W AH BA R AL AZ C AQ AD M AT AU N O AB BB AB AV H@4 X AE AX AY G BK
  BL BM M C BQ BA AV E BB BA AH BD AA BC AX AY BE AF AR M AX BT AM AA W AP AD M T AA AM X W G AM G T U C BH AB AV H@2 AT
  AU E F E A P Q N O AN BD AI BU G BK BG U AP Y BV AM R AB L AK AH BD AH BD AO BW T U BA G W BX AB X W AN C AA W A E AA
  W AA E M W@2 AR M T C ~
>`.pickRestart({
  A: "~ f4 a4 c5 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  B: "~@2 f3@2 [a3,c4,f4] ~ [a3,c4,f4] ~@3 f3@2 ~@3 g4, ~@13 c4@2 ~, ~@7 e4", // F
  C: "~@2 [g3,c4,e4]@3 c3 [g3,c4,e4] ~ [g3,c4,e4] c3 [g3,c4,e4] ~ [g3,c4,e4]@2 [g3,c4,e4] ~", // C
  D: "~ c3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] c3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  E: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]!4", // C
  F: "~@2 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4]!4", // Dm7
  G: "~@2 [a3,c4,f4]@3 f3 [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  H: "~@2 [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~", // G7
  I: "~@3 d4 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~, ~ f3@2 ~@13, ~ b3 ~@6", // G7
  J: "~ f3 b3 d4 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  K: "~@3 g4 c5 ~ c5 ~ [c4,e4,g4,c5] ~ [g4,c5]@2 [c4,g4,c5]@2 [c4,e4,g4,c5] ~, ~ c4@6 ~@3 [c4,e4] ~@5, ~@2 e4@5 ~@5 e4 ~@3", // C C5 C
  L: "~@2 d3@2 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4]@2 d3@2", // Dm7
  M: "~@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  N: "~@2 [b3,d4,f4,g4]@3 g2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] g2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~", // G7
  O: "~ g2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] g2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  P: "~@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~", // G7
  Q: "~@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  R: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  S: "~@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  T: "~@2 b3@2 d4@2 [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~, g3@5 ~@11", // G
  U: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  V: "~@3 c5 f5 ~ f5 ~ [f4,a4,c5,f5] ~ [c5,f5]@2 [f4,c5,f5]@2 [f4,a4,c5,f5] ~, ~ f4@6 ~@3 [f4,a4] ~@5, ~@2 a4@5 ~@5 a4 ~@3", // F F5 F
  W: "~@2 [g3,b3,d4]@2 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4] ~", // G
  X: "~@2 f3@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 f3@2", // F
  Y: "~ c4 e4 g4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  Z: "~@2 e4@2 g4@2 [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, c4@5 ~@11", // C
  AA: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]!4", // F
  AB: "~@2 [g3,c4,e4]@2 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,e4]@2 [g3,c4,e4] ~", // C
  AC: "~@2 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~@3 [c4,d4,f4,a4] ~", // Dm7
  AD: "~@2 c3@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@2 c3@2", // C
  AE: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 f3@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  AF: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  AG: "~@2 [g3,b3,d4]@2 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  AH: "~@2 a4@2 c5@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~, f4@5 ~@11", // F
  AI: "~@2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4] ~", // G
  AJ: "~@2 [g3,b3,d4]@3 g2 [g3,b3,d4] ~@3 [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4,f4] ~", // G F
  AK: "~@3 g4 [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~ [g3,c4,e4]@2 [g3,c4,e4] ~, ~ c4@2 ~@13, ~ e4 ~@6", // C
  AL: "~@2 [g3,b3,d4]@3 g2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4] ~", // G
  AM: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C
  AN: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~", // F
  AO: "~@3 d4 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4] ~, ~ g3@2 ~@13, ~ b3 ~@6", // G
  AP: "~@3 c5 [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~, ~ f4@2 ~@13, ~ a4 ~@6", // F
  AQ: "~@2 [c4,d4,f4,a4]@2 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~@3 [c4,d4,f4,a4] ~ [c4,d4,f4,a4]@2 [c4,d4,f4,a4] ~", // Dm7
  AR: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  AS: "~@3 d4 g4 ~ g4 ~ [f3,b3,d4,g4] ~ [d4,g4]@2 [f3,d4,g4]@2 [f3,b3,d4,g4] ~, ~ f3@6 ~@3 [f3,b3] ~@5, ~@2 b3@5 ~@5 b3 ~@3", // G7 G5 G7 Fdim
  AT: "~@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  AU: "~@2 [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  AV: "~@2 [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  AW: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  AX: "~@2 g2@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@2 g2@2", // G
  AY: "[g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@2 g2@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4] ~", // G
  AZ: "~ g2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  BA: "~@2 [g3,c4,e4] ~ [g3,c4,e4] c3 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4]@2 [g3,c4,e4] ~", // C
  BB: "~@2 [c4,d4,f4,a4]@3 d3 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] d3 [c4,d4,f4,a4] ~ [c4,d4,f4,a4]@2 [c4,d4,f4,a4] ~", // Dm7
  BC: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  BD: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  BE: "~@3 d4 g4 ~ g4 ~ [g3,b3,d4,g4] ~ [d4,g4]@2 [g3,d4,g4]@2 [g3,b3,d4,g4] ~, ~ g3@6 ~@3 [g3,b3] ~@5, ~@2 b3@5 ~@5 b3 ~@3", // G G5 G
  BF: "~@2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~@4 c5 f5 ~ f5 ~, ~@9 f4@6 ~, ~@10 a4@5 ~", // G
  BG: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  BH: "~@2 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] d3 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4]@2 [c4,d4,f4,a4] ~", // Dm7
  BI: "~@2 g2@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2 g2@2", // G7
  BJ: "[b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2 g2@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4]@2 [b3,d4,f4,g4] ~", // G7
  BK: "~ f3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  BL: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]!4", // G
  BM: "[g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  BN: "~@2 b3@2 d4@2 [g3,b3,d4] ~@3 [a3,c4,f4]@3 f3 [a3,c4,f4] ~, g3@5 ~@11", // G F
  BO: "~@2 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4]!4", // G7
  BP: "[b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~ [b3,d4,f4,g4] ~", // G7
  BQ: "~@2 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~", // Dm7
  BR: "~@2 [g3,b3,d4]@2 [g3,b3,d4] ~ [g3,b3,d4] ~@2 f4 a4 c5 [a3,c4,f4] ~ [a3,c4,f4] ~", // G F
  BS: "~@2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // G F
  BT: "~ g3 b3 d4 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~", // G F
  BU: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4]@2 [g3,b3,d4] ~", // G
  BV: "~ c4 f4 a4 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~@3 [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~", // Dm7
  BW: "~ g3 b3 d4 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4]@2 [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  BX: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~@3 f3@2 [a3,c4,f4] ~ [a3,c4,f4] ~", // G F
})).s("gm_piano").gain(0.11).pan(1)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@3 B A@3 B A@3 B A@3 ~ A@3 ~ A@3 B A@3 B A@3 ~ A@3 B A@3 B A@3 ~ A@3 ~ A@3 ~ A@3 B A@3 ~ A@3 ~ A@3 ~ A@3 B A@3 B
  A@3 ~ A@3 B A@3 B A@3 ~ A@3 ~ A@7 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 B A@3 B A@3 B A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@7
  ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 B A@3 ~ A@3 ~ A@3 B A@7 ~ A@3 B A@3 ~ A@3 ~ A@3 B A@3 ~ A@3 B A@3 ~ A@3 B A@7 ~ A@3 ~
  A@3 ~ A@3 ~ A@3 B A@3 B A@3 ~ A@3 B A@3 B A@3 B A@7 ~ A@3 ~ A@3 ~ A@3 ~ A@3 B A@3 ~ A@3 B A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3
  ~ A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 ~ A@3 ~ A@3 ~ A@7 ~ A@3 B A@3 B A@3 B A@3 ~ A@7 B A@3 ~ A@3 B A@3 ~ A@3 ~
  A@3 ~ A@3 B A@3 B C
>`.pickRestart({
  A: "x!4", B: "x!3 ~", C: "x",
})).gain(0.36).pan(1)

// drums · rim
const rim = s("rim").struct("<A B ~@99 C ~@99 C ~@39 C ~@43 C ~@87 C ~@23 C ~@33>".pickRestart({
  A: "x!2", B: "x!4", C: "x ~@2 x ~@2 x ~ x ~@7",
})).gain(0.45).pan(1)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@2 B C A@2 B C A@2 B C A@2 B D A@2 B D A@2 B C A@2 B C A@2 B E A@2 B C A@2 B C A@2 B D A@2 F D A@2 F E A@2 F C
  A@2 F D A@2 F D A@2 F E A@2 F C A@2 F C A@2 F E A@2 F C A@2 F C A@2 F E A@2 F D A@2 F G A@2 F D A@2 F D A@2 F D A@2 F
  E A@2 F E A@2 F C A@2 F C A@2 F C A@2 F D A@2 F D A@2 F E A@2 F D A@2 F D A@2 F D A@2 F H A@2 F D A@2 F D A@2 F E A@2
  F D A@2 F D A@2 F C A@2 F E A@2 F D A@2 F C A@2 F G A@2 F D A@2 F C A@2 F E A@2 F E A@2 F C A@2 F D A@2 F C A@2 F D
  A@2 F C A@2 F G A@2 F E A@2 F D A@2 F E A@2 F E A@2 F C A@2 F C A@2 F D A@2 F C A@2 F C A@2 F C A@2 F G A@2 F D A@2 F
  E A@2 F E A@2 F E A@2 F C A@2 F E A@2 F C A@2 F D A@2 F E A@2 F D A@2 F E A@2 F E A@2 F C A@2 F C A@2 F C A@2 F C A@2
  F C A@2 F C A@2 F E A@2 F E A@2 B D A@2 B G A@2 B E A@2 B C A@2 B C A@2 B C A@2 B D A@2 B G A@2 B C A@2 B D A@2 F C
  A@2 F D A@2 F D A@2 F E A@2 F C A@2 F C ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "~@4 x ~@7 x!4", D: "x ~ x ~ x ~ x ~ x!5 ~ x ~", E: "x!4 ~@3 x",
  F: "~@4 x ~@7 x ~ x!2", G: "~@11 x ~@2 x ~", H: "x!16",
})).gain(0.4).pan(1)

// drums · clap
const clap = s("cp").struct(`<
  ~@46 A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~
  A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3
  ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~
  A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3
  ~ A@3 ~ A@3 ~@41 A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~ A@3 ~@2
>`.pickRestart({
  A: "~ x ~ x",
})).gain(0.4).pan(1)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@9 A ~@27 A ~@19 A ~@31 A ~@107 A ~@23 A ~@7 A ~@31 A ~@51 A ~@23 A ~@3 A ~@7 A ~@7 A ~@23 A ~@7 A ~@11 A ~@7 A ~@21
// … 100 more lines

More by Bob Dylan