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, A@4 for four bars: 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 Y M AK
  M E M W AA AL AM AN A AD V W@2 Z L E X N O P Q C AO AP AM AQ AR@2 AS AT AU AV AW M@2 AK AX AM Y F AY R AB AZ Y AA BA
  AM BB BC AF@2 AG C G AI BD Y AH BE X AY X AN AA AP M AK V C A BC AF AB BF K AT AQ AR H@2 Z AZ AB AH H@2 BG BH AT AU
  W@2 M@2 T U AH AP BF Y AH C AO AB G BI M@2 BJ BK AK AX E AM W BL AD AH AF R Z AM T G AB M BJ AH AD V AV AW Y L AD AM
  BM BN BG BH AY AO AB AH AR AS AR AS AM BB AV AW AA BA W@2 X AD BO AP M AL AO Z R S X AE AV AW W@2 AD X AV BP AB M T G
  AB M BE M E A BJ R AY M AV AW AY AC AB AA H@2 BG BH AL L E AT N O H@2 AT AU W@2 AA BA W@2 R AB AO E X C L AL AT AU AH
  BB AV AW AF AG AD G AK BQ C X W AH E AT BJ R AY AA W AH AY R AK AX C AO AD M AR AS N O AB AZ AB AT H@4 X AE AV AW G BI
  BJ BK M C BO AY AT E AZ AY AH BB AA BA AV AW BC AF AP M AV BR AL AA W A AD M T AA AL X W G AL G T U C BF AB AT H@2 AR
  AS E F E A P Q N O AM BB AI BS G BI BE U A Y BT AL R AB L Y AH BB AH BB AN BU T U AY G W BV AB X W AM C AA W A E AA W
  AA E M W@2 AP 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: "~@2 [g3,b3,d4]@3 g2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~ [g3,b3,d4]@2 [g3,b3,d4] ~", // G
  AL: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C
  AM: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~", // F
  AN: "~@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
  AO: "~@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
  AP: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  AQ: "~@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
  AR: "~@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
  AS: "~@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
  AT: "~@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
  AU: "~@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
  AV: "~@2 g2@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]@2 g2@2", // G
  AW: "[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
  AX: "~ g2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  AY: "~@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
  AZ: "~@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
  BA: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  BB: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  BC: "~@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
  BD: "~@2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~@4 c5 f5 ~ f5 ~, ~@9 f4@6 ~, ~@10 a4@5 ~", // G
  BE: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~", // G
  BF: "~@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
  BG: "~@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
  BH: "[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
  BI: "~ f3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
  BJ: "~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]!4", // G
  BK: "[g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  BL: "~@2 b3@2 d4@2 [g3,b3,d4] ~@3 [a3,c4,f4]@3 f3 [a3,c4,f4] ~, g3@5 ~@11", // G F
  BM: "~@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
  BN: "[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
  BO: "~@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
  BP: "~@2 [g3,b3,d4]@2 [g3,b3,d4] ~ [g3,b3,d4] ~@2 f4 a4 c5 [a3,c4,f4] ~ [a3,c4,f4] ~", // G F
  BQ: "~@2 [g3,b3,d4] ~ [g3,b3,d4] g2 [g3,b3,d4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // G F
  BR: "~ g3 b3 d4 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [a3,c4,f4] ~ [a3,c4,f4] f3 [a3,c4,f4] ~", // G F
  BS: "~@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
  BT: "~ 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
  BU: "~ g3 b3 d4 [g3,b3,d4] ~ [g3,b3,d4] ~@3 [g3,b3,d4]@2 [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  BV: "~@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
>`.pickRestart({
  A: "~@11 x ~@4",
// … 98 more lines

More by Bob Dylan