Strudelify

Subterranean Homesick Blues

Bob Dylan

KeyA majorTempo170 bpm
0:00/0:00
// Subterranean Homesick Blues — Bob Dylan
// 170 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 7 "BASS 2" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 99 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): E GUITAR.
setcpm(170/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 · acoustic guitar steel · "GUITAR 1"
const acoustic_guitar_steel = note("<A B@8 C@8 D@6 B@8 C@8 D@6 B@8 E@8 F@5 B@16 G@8 B@8 ~>".pickRestart({
  A: "~@19 [a2,e3,a3,c#4,e4,a4]@5", // A
  B: "[~ a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]]/8", // A
  C: "[~ a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 d3@6 [d3,a3,c4,f#4,a4]@10 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2 d3@6 [d3,a3,c4,f#4,a4]@10 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]]/8", // A D7
  D: "[~ a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 e3@6 [e3,b3,e4,g#4,b4]@10 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]@2 e3@6 [e3,b3,e4,g#4,b4]@10 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]]/6", // A E
  E: "[~ a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 d3@6 [d3,a3,c4,f#4,a4]@6 d3@6 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2 d3@6 [d3,a3,c4,f#4,a4]@10 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]]/8", // A D7
  F: "[~ a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 e3@6 [e3,b3,e4,g#4,b4]@10 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]@2 e3@6 [e3,b3,e4,g#4,b4]@10 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]]/5", // A E
  G: "[~ d3@6 [d3,a3,c4,f#4,a4]@10 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2 d3@6 [d3,a3,c4,f#4,a4]@10 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 a2@6 [a2,e3,a3,c#4,e4,a4]@10 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 e3@6 [e3,b3,e4,g#4,b4]@10 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]@2 e3@6 [e3,b3,e4,g#4,b4]@10 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]]/8", // D7 A E
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.7)

// chords · acoustic guitar steel · "GUITAR 2"
const acoustic_guitar_steel_2 = note(`<
  A B@13 C@2 D@2 B@2 E@2 F@2 B@12 C@2 D@2 B@2 E@2 F@2 B@12 C@2 D@2 B E@2 F@2 B@14 C@2 D@2 B@2 E@2 F@2 B@7 ~
>`.pickRestart({
  A: "~@19 a4@5, ~@3 [a2,e3,a3,c#4,e4]", // A
  B: "~ a4@5 ~ a4@5 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2, [a2,e3,a3,c#4,e4]!2 ~@2", // A
  C: "[~ a4@5 ~ a4@5 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a3,a4]@2 [d3,a3,c4,f#4,a4]@6 [d3,a3,c4,f#4,a4]@6 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2, [a2,e3,a3,c#4,e4]@6 [a2,e3,a3,c#4,e4]@6 ~@10 [a2,e3,c#4,e4]@7 ~@19]/2", // A D7 A
  D: "[[d3,a3,c4,f#4,a4]@6 [d3,a3,c4,f#4,a4]@6 [d3,a3,c4,f#4,a4]@4 [d3,a3,c4,f#4,a4]@2 [d3,a3,c4,f#4,a4]@4 [a3,a4]@2 ~ a4@5 ~ a4@5 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2, ~@22 [d3,c4,f#4]@7 ~@19, ~@4 [a2,e3,a3,c#4,e4]!2 ~@2]/2", // D7 A D7 A
  E: "[~ a4@5 ~ a4@5 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [e3,e4]@2 [e3,b3,e4,g#4,b4]@6 [e3,b3,e4,g#4,b4]@6 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]@2, [a2,e3,a3,c#4,e4]@6 [a2,e3,a3,c#4,e4]@6 ~@10 [a2,a3,c#4,a4]@7 ~@19]/2", // A E A
  F: "[[e3,b3,e4,g#4,b4]@6 [e3,b3,e4,g#4,b4]@6 [e3,b3,e4,g#4,b4]@4 [e3,b3,e4,g#4,b4]@2 [e3,b3,e4,g#4,b4]@4 [e3,e4]@2 ~ a4@5 ~ a4@5 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2 [a2,e3,a3,c#4,e4,a4]@4 [a2,e3,a3,c#4,e4,a4]@2, ~@22 [b3,g#4,b4]@7 ~@19, ~@4 [a2,e3,a3,c#4,e4]!2 ~@2]/2", // E A E A
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.2)

// other · electric guitar jazz · "E GUITAR"
const electric_guitar_jazz = note("<~ A@2 B C B D ~@92>".pickRestart({
  A: "[~@3 a5@5]/2", B: "d5@3 d5@3 c5@3 a4@2 g4", C: "a4 c#5@2 d5@3 c#5@2", D: "a4 c5@2 a4@5",
})).s("gm_electric_guitar_jazz").gain(0.48).pan(0.8)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@3 A B A C A C A C A C A D E F A G H I J K A C A C A C A C A C A C A D E F A G H I J K A C A C A C A C A C A C A I L
  M A N H J O A C A C A C A@2 C A C A C A I A P Q A R A H J S A C A C@5 ~
>`.pickRestart({
  A: "a2 e2", B: "a2@3 a2 e2@2 g2@2", C: "a2@3 e2@2 e2 g2@2", D: "a2@3 e2@2 e2 a2@2", E: "d2 a2",
  F: "d2@3 d2@2 d2 g2@2", G: "a2@3 e2@3 a2@2", H: "e2 a2", I: "a2@3 e2@3 e2@2", J: "e2 b2", K: "e2@4 e2!2 g2@2",
  L: "~ d2 a2@2", M: "d2@3 a2@3 e2@2", N: "a2@3 ~ e2@2 e2@2", O: "e2@3 g#2@3 e2@2", P: "a2 d2", Q: "d2!2", R: "a2!2",
  S: "e2!2",
})).s("gm_electric_bass_finger").gain(0.47)

// chords · electric guitar clean · "E GUITAR"
const electric_guitar_clean = note(`<
  ~@7 A@8 B C@2 ~ D@2 E@2 ~ F G@2 A@8 D@2 B C@2 ~ D@2 E@2 ~ F G@2 A@8 D@2 H@2 C@2 ~ I J K@2 A@8 L@6 M N@6 O C@2 L@6 ~
>`.pickRestart({
  A: "[~@5 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,a3,d4,f#4]@3, ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@8]/8", // D
  B: "~@10 [d3,a3,d4,f#4] ~@4 [d3,a3,d4,f#4]@9", C: "[~@5 [d3,d4,f#4]@4 ~@7, ~@5 a3@3 ~@8]/2",
  D: "[~@5 [d3,d4,f#4]@4 ~@4 [d3,a3,d4,f#4]@3, ~@5 a3@3 ~@8]/2", E: "~ e4@5 ~ e4@9 ~@3 e4@5",
  F: "~@2 [a2,e3,a3,c#4,e4] ~@2 [a2,e3,a3,c#4,e4]@3 ~@4", G: "[~@5 [d3,d4,f#4]@4 ~@4 [a2,e3,a3,c#4]@3, ~@5 a3@3 ~@8]/2",
  H: "[~@10 [d3,a3,d4,e4]@5 [d3,a3,d4,f#4]@7 e4@5 ~@9 e4@3 [d3,a3,d4,f#4]@9]/2", // Dsus2 D
  I: "~ e4@2 ~@4 e4@5 ~@3 [e2,b2,e3,g#3,b3]@9", J: "~ e4@2 ~@4 e4@5 ~@12",
  K: "[~@15 [d3,d4,f#4]@12 ~@7 [a2,e3,a3,c#4,e4]@2 ~@12, ~@5 a3@3 ~@8]/2", // D A
  L: "[~@5 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,d4,f#4]@4 ~@4 [d3,a3,d4,f#4]@3, ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@8]/6", // D
  M: "~@6 e4@4 [d3,a3,d4,f#4]@5 [d3,a3,d4,e4]@9", // D Dsus2
  N: "[~@6 e4@4 [d3,a3,d4,f#4]@5 [d3,d4]@12 ~@12 [d3,d4,f#4]@12 ~@12 [d3,d4,f#4]@12 ~@12 [d3,d4,f#4]@12 ~@22 e4@2 ~@4 e4@9 ~@8, ~@5 [a3,e4]@3 ~@5 a3@3 ~@5 a3@3 ~@5 a3@3 ~@5 [d3,a3,d4,f#4]@4 ~@7]/6", // D A5 D
  O: "~ e4@9 ~ e4@5 ~@8, ~@5 [e2,b2,e3,g#3,b3]@3 ~@4", // E
})).s("gm_electric_guitar_clean").gain(0.27).pan(0.6)

// bass · electric bass finger · "BASS 2"
const bass_2 = note(`<
  ~@3 A B A B A@8 C@2 A@4 D@2 A@14 C@2 A@4 D@2 A@14 C@2 A@3 D@2 A@16 C@2 A@4 D@2 A@8 ~
>`.pickRestart({
  A: "a2 e2", B: "a2@2 e2 g#2", C: "d2 a2", D: "e2 b2",
})).s("gm_electric_bass_finger").gain(0.14)

// chords · harmonica
const harmonica = note("<~@24 A@3 B ~@19 C@2 D ~@17 E@2 F G@2 ~@20 H I@2 J@3 ~>".pickRestart({
  A: "[~@7 [b4,d5]@2 [c#5,e5]@4 [b4,d5] [a4,c#5] a4@5 a4 [b4,d5]@2 g#4]/3", B: "a4 ~@5",
  C: "[~ [d5,f#5]@2 [e5,g5]@6 d5 a4@3 [b4,d5]@2 [a4,c#5]]/2", D: "~ [a4,c#5]@3",
  E: "[~@7 [b4,d5]@2 [c#5,e5]@4 [b4,d5]@2 ~]/2", // Bm C#m Bm
  F: "[a4,c#5]@2 ~ [a4,c#5]@2 ~ [a4,c#5]@2 ~ [a4,c#5]@2 ~ [a4,c#5]@3 [b4,d5]@6 [a4,c#5]@3", // A Bm A
  G: "[[a4,c#5] ~ [a4,c#5] ~ [a4,c#5] [b4,d5] [c#5,e5] [a4,c#5]@9]/2", H: "[d5,f#5] [c#5,e5]@4 [b4,d5]@2 g#4",
  I: "[[a4,c#5] ~ [a4,c#5] ~ [a4,c#5] [b4,d5]@2 e5@2 e5@4 [d5,f#5]@3, ~@7 c#5@3 ~@6]/2", // A Bm D
  J: "[~@7 [b4,d5]@3 [c#5,e5]@4 e5@4 e5@4 c#6@2]/3", // Bm C#m
})).s("gm_harmonica").gain(0.7)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@6 A ~ A ~ A ~ A ~ A ~@11 A ~ A ~ A ~ A ~ A ~ A ~@11 A ~ A ~@7 A ~@6 A ~@5 A ~@8 A ~ A ~@4 A ~@9 A ~
>`.pickRestart({
  A: "~@3 x",
})).gain(0.29)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct(`<
  ~@6 A ~ A ~ A ~ A ~ A ~@11 A ~ A ~ A ~ A ~ A ~ A ~@11 A ~ A ~@7 A ~@12 A ~@8 A ~@4 B ~@5 B ~@5 A ~
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@7 x",
})).gain(0.18)

// drums · high tom
const high_tom = s("ht").struct("<~@67 A ~@17 B ~ B ~@3 B ~@7>".pickRestart({
  A: "~@7 x", B: "~@5 x ~@2",
})).gain(0.18)

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

// drums · ride · soft notes
const ride_soft = s("rd").struct(`<
  ~@3 A@3 B A B A B A B A B A@11 B A B A B A B A B A B A@11 B A B A@7 B A@3 B A@2 B A B A@3 B A@8 B A B A@2 B A B A@3 B
  A@3 B A B ~
>`.pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x ~@6",
})).gain(0.15)

stack(
  acoustic_guitar_steel, acoustic_guitar_steel_2, electric_guitar_jazz, bass, electric_guitar_clean, bass_2, harmonica,
  kick, snare, low_tom, low_tom_soft, high_tom, ride, ride_soft
)

More by Bob Dylan