Strudelify
The Wind Cries Mary cover art

Are You Experienced

The Wind Cries Mary

Jimi Hendrix

KeyF majorTempo81 bpm
0:00/0:00
// The Wind Cries Mary — Jimi Hendrix
// 81 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 3 "Guitar 1 Clean" electric guitar clean (copy of ch 2 "Guitar 1  Jazz" electric guitar jazz); ch 4 "Guitar 1 Muted" electric guitar muted (copy of ch 2 "Guitar 1  Jazz" electric guitar jazz); ch 5 "Guitar 1 Harmonics" guitar harmonics (copy of ch 2 "Guitar 1  Jazz" electric guitar jazz)
// note: Full arrangement: all 65 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(81/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 · electric guitar jazz · "Guitar 1  Jazz"
const electric_guitar_jazz = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V C W A B X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ A AR AS
  AT AU AV AW AX AY N AZ N BA N BB N BC BD@2
>`.pickRestart({
  A: "[bb2,eb3,bb3,eb4] [b2,e3,b3,e4]@2 [c3,f3,c4,f4]@5", B: "[g3,bb3,eb4] [ab3,b3,e4]@2 [a3,c4,f4]@5",
  C: "[bb2,eb3,bb3] [b2,e3,b3]@2 [c3,f3,c4]@3 ~@2", // Eb5 E5 F5
  D: "[g3,bb3,eb4]@2 [ab3,b3,e4]@4 [a3,c4,f4]@3 f3 g3 [a3,c4] d4 c4 a3@2", // Eb E F Am
  E: "c3@4 [c4,e4,g4] ~@3 bb2@4 [bb3,d4,f4,bb4] ~@3", F: "~@3 [f3,a3] [f3,a3]@2 f2 f3 [f3,a3,c4] g3 [f3,a3,c4]@6",
  G: "c3@4 [g3,c4,e4]@2 c3@2 [d3,f3]@2 f3 bb3 g3@2 f3@2", H: "f2@4 [f3,g3]@2 f2 c3 [d4,f4]@2 [c4,f4]@6",
  I: "[c3,e3,g3]@2 c4@2 [e3,g3]@2 b2@2 bb2@3 [f3,bb3] [f3,bb3,d4] ~@3", // C Em Bb5 Bb
  J: "f2@2 f3@2 [f3,a3,c4]@2 f2 c3 f2@2 f2 f3 [f3,a3,c4]@2 f2 [f3,a3]", // F
  K: "[g3,b3]!2 [g3,b3,d4]!2 [g3,b3,e4] d4 g3 [b3,d4] bb2 [bb3,d4,f4]!3 [bb3,d4,g4] [bb3,d4,f4]!3", // G Em Bm Bb Gm Bb
  L: "[bb2,eb3,bb3,eb4] [b2,e3,b3,e4]@2 [c3,f3,c4,f4]@4 ~", // Eb5 E5 F5
  M: "[g2,g3,b3,d4]@2 [g3,b3,d4]!2 [g3,b3,e4] [g3,b3,d4] g3 b3 [bb2,bb3,d4] f4 bb2 [bb3,d4,f4] [bb3,d4,g4] f4 [bb3,d4,f4] ~", // G Em G Bb Gm Bb
  N: "[bb2,eb3,bb3,eb4]@2 [b2,e3,b3,e4]@4 [c3,f3,c4,f4]@6 [f3,c4,f4] ~@3", // Eb5 E5 F5
  O: "[g3,bb3,eb4]@2 [ab3,b3,e4]@4 [a3,c4,f4]@3 c4 [a3,c4] c4 d4 [c4,f4] a3@2", // Eb E F Am F5
  P: "c3@4 [g3,c4,e4] ~@2 c4 c3 d3@2 bb3 [f3,bb3]@2 d3@2, ~@8 f3@3 ~@5", // C Bb5
  Q: "f2@4 [f3,a3,c4] ~ f2 [c3,f3] [f3,a3,c4]@2 [a3,c4,f4]@4 g2@2, ~@5 g3@2 ~@9", // F F5 F
  R: "c3@2 g3@2 [c4,e4]@2 [c3,g3] c4 c3 d3@2 [f3,bb3] f3 bb3 [d3,f3]@2, ~@8 f3@3 ~@5", // C C5 Bb5 Dm
  S: "f2@2 [f3,a3]!2 [f3,a3,c4]@2 f2 c3 [f3,a3,c4]@2 [f3,a3,c4]@4 f2@2", // F
  T: "[c3,c4,e4,g4]@6 [b3,eb4,gb4,db5]@2 [bb3,d4,f4,c5]@5 [bb3,d4,f4] [bb3,d4,f4]@2", // C B Bb
  U: "[f2,c3,f3,a3]@2 [a3,c4]@2 f2 [f3,a3,c4]@2 c3 [f2,c3]@2 [f2,c3] [f3,a3] [f2,c3,f3,a3] ~ [f2,c3,f3,a3] ~", // F Am F F5 F
  V: "[g2,f3,g3,a3,b3,d4] [g3,b3,d4]!3 ~ d4 g2 [g3,b3,d4] [bb2,bb3]!3 [bb3,d4,f4] ~ f4 [bb3,d4,f4]@2, ~@2 [g3,b3,e4] ~@3 [bb3,d4,g4] ~", // G7 G Bb Em Gm
  W: "[g2,g3]@3 g2 [g3,b3,d4]@3 g2 [bb2,bb3,d4]@2 [bb3,d4] f4 ~ f4 bb3!2, ~@6 [bb3,d4,g4] ~", // G Bb Gm
  X: "[a3,c4,f4]@2 f4!4 a3 c4 [g3,bb3,eb4]@2 [g3,bb3,eb4]@3 [g3,bb3] [g3,bb3]@2", // F Eb Gm
  Y: "bb2 ~ bb2 ~ d3@2 f3@2 ab2 ~ ab2!2 c3 d3 f3 d3",
  Z: "f3@2 [f3,c4,f4]!6 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4] f3 d3@2", // F5 Eb
  AA: "bb2@2 bb2!2 d3@2 f3@2 ab2@2 ab2!2 c3 d3 f3 d3",
  AB: "f3@2 [c4,f4]!2 [f3,c4,f4]!2 c4 [c4,f4] f3 g3 [g3,bb3,eb4]!5 ~", // F5 Eb
  AC: "bb2 ~ bb2 ~ c3 d3 f3!2 ab2 ~ ab2 ~ c3@2 eb3 ~",
  AD: "[g2,g3,b3,d4]@3 [g3,b3,d4] ~ d4 [g2,g3,b3,d4]@2 [g2,g3,b3,d4]@2 [g2,g3,b3,d4] [g3,b3,d4,a4]!2 g2!2 [g3,b3,d4], ~@2 [g3,b3,e4] ~@5", // G Em
  AE: "[bb2,bb3,d4]@2 [bb3,d4,f4,c5] [bb3,d4,f4,bb4] [bb2,bb3,d4,f4]@4 [bb2,bb3,d4,f4]@2 [bb2,bb3,d4,f4]@2 [bb2,bb3,d4,g4] [bb3,d4,f4] bb2 db3", // Bb Gm Bb
  AF: "db3@2 db3@2 [db3,db4,f4]@2 db3@2 [db3,db4,f4]!4 db3@2 db3@2", // Db
  AG: "[f3,c4,f4]@4 f3@2 c4@2 f3@2 [f3,c4]@2 [f3,c4,f4]@2 f3 c3", AH: "[f3,c4]@2 [f3,c4]@2 [f3,c4]@2 f3@2 [f3,c4,f4]!8",
  AI: "[c3,g3]@4 [c3,g3,c4,e4] ~ [c3,g3]@2 [c3,f3] [d3,f3] f3@2 f3!2 c3 d3", // C5 C C5 F5 Dm
  AJ: "f2@4 [f3,a3,c4]@2 ~ c3 a2@2 a2@3 g2 f2@2", AK: "c3@4 [c3,g3,c4]@2 [g3,c4]!2 ~ d3 bb3@3 f3 d3@2, ~@4 [c3,f3] ~@3",
  AL: "f2@4 [f3,a3,c4]@2 f2 [f3,a3,c4] [f3,a3,c4]@2 [f3,a3,c4]@2 a3 c4 f3@2", // F
  AM: "c3@2 [c4,e4,g4] [g4,c5] [c4,e4,g4,d5] [c4,e4,g4,c5] [c4,e4]@2 [bb2,bb3,d4,f4]@2 [f4,bb4]!2 [d4,f4,bb4]!2 bb2 ~", // C C5 C Bb Bb5 Bb
  AN: "f2@4 [f3,a3,c4]@2 ~ [f3,a3,c4] [f2,c3]@2 [f2,c3] [f3,a3,c4]!3 f2 [f3,a3,c4]", // F F5 F
  AO: "[g2,g3,b3,d4]@4 [g3,b3,e4] [g3,b3,d4]!3 [bb3,d4,f4]!4 [bb3,d4,g4] [bb3,d4,f4] [bb3,d4] ~", // G Em G Bb Gm Bb
  AP: "[bb2,eb3,bb3]@2 [b2,e3,b3]@4 [c3,f3,c4]@6 [c3,f3,c4] ~@3", // Eb5 E5 F5
  AQ: "[g2,g3]@2 [g3,b3,d4]!2 [g3,b3,e4] [g3,b3,d4] [g2,g3] [g3,b3] bb2@2 [bb3,d4] [bb3,d4,f4] [bb3,d4,g4] [bb3,d4,f4] bb2@2", // G Em G Bb Gm Bb
  AR: "[g3,bb3,eb4] [ab3,b3]@2 [a3,c4]@3 g3 a2", // Eb Abm Am
  AS: "c3@2 c3@2 [c3,g3,c4]@2 [c3,g3] c4 ~ d3 [f3,bb3] bb3 [d3,f3,bb3] [c3,f3] [d3,f3]@2, ~@4 [c3,f3] ~@3", // C5 Bb5 Bb F5 Dm F5
  AT: "f2@2 f2@2 [f3,a3,c4]@2 f2 [c3,f3] [f3,a3] ~ [f2,f3,a3] ~ [f3,a3,c4]@2 f2@2", // F F5 F
  AU: "[c3,g3]@2 [g3,c4]@2 [c3,g3,c4]@2 [g3,c4,e4]!2 c3 d3 [f3,bb3] bb3 f3 c3 d3@2, ~@13 f3@3", // C5 C Bb5
  AV: "f2@3 [a3,c4] [f3,a3,c4] [f3,g3,c4] [f2,c3,f3,a3,c4] [f3,a3,c4] f2 f3 f2@2 [f3,a3,c4]@2 c3@2", // Am F Fsus2 F
  AW: "c3 c4 [c3,g3] g3 [c3,g3] c4 b2@2 [bb2,f3]@4 [bb2,f3,bb3]@2 ~@2", // C5 Bb5
  AX: "f2@4 [f3,a3,c4]@2 f2 [c3,f3,a3,c4] f2@2 f2@2 [f3,a3,c4]@4", // F
  AY: "[g2,g3,b3,d4] [g3,b3,d4] [g2,g3,b3,d4] [g3,b3,d4] ~ d4 [g2,g3] [g3,b3,d4] [bb2,bb3,d4,f4]@2 [bb3,d4,f4]!2 [bb2,bb3,d4,g4] [bb3,d4,f4] [bb2,bb3] ~, ~@2 [g3,b3,e4] ~@5", // G Bb Gm Bb Em
  AZ: "[g2,g3]@2 [g3,b3,d4]!2 [g3,b3,e4] [g3,b3,d4] [g2,g3,b3,d4] [g3,b3,d4] [bb2,bb3,d4,f4] [bb3,d4,f4] [bb2,bb3] [bb3,d4,f4] [bb3,d4,g4] [bb3,d4,f4] ~@2", // G Em G Bb Gm Bb
  BA: "[bb2,g3,bb3,eb4]@2 [b2,ab3,b3,e4]@4 [c3,a3,c4,f4]@6 [c3,f3,c4,f4] ~@3", // Eb E F F5
  BB: "[bb2,g3,bb3,eb4] [b2,ab3,b3,e4]@2 [c3,a3,c4,f4]@3 g3@2", BC: "[g3,bb3,eb4] [ab3,b3,e4]@2 [a3,c4,f4]@3 ~@2",
  BD: "[[bb2,eb3,bb3,eb4] [b2,e3,b3,e4]@2 [c3,f3,c4,f4]@11 ~@2]/2", // Eb5 E5 F5
})).s("gm_electric_guitar_jazz").gain(0.28).pan(0)

// chords · overdriven guitar · "Lead Guitar"
const overdriven_guitar = note("<~@26 A B C D C E F G H I J ~@23 K L M N@2>".pickRestart({
  A: "~@4 [d5,f5]@2 ~@4 [g4,c5] [a4,c5] g4 f4 [g4,c5]@2", B: "~ g4 f4 ~ d4@2 f4 g4 g4@5 f4 ~@2, [a4,c5] ~@7",
  C: "~@4 [d5,f5]@4 ~@2 [g4,c5] [a4,c5] [g4,c5] f4 [g4,c5] ~", D: "d4@2 f4 g4 f4@4 g4@2 d4@4 f4 ~",
  E: "d4@2 f4 g4 c4 d4@7 ~@4", F: "~@2 [e5,g5]@2 g5 ~ [a4,d5] [b4,d5] [a4,d5] g4 [b4,d5]@2 [b4,d5]@4",
  G: "~@2 [d4,f4,c5]@2 ~ g4 [d4,f4,bb4]@2 ~ eb4!3 d4@2 ~@2, ~@2 [d4,f4,bb4] ~ [d4,f4,bb4] ~@3", // Dm7 Bb
  H: "~ db5@2 ~ bb4 ab4!3 d5 ab4 e4@4 ~@2",
  I: "[d5,f5]@2 [c5,f5]@2 ~@2 [g4,c5] [a4,c5] [g4,c5] f4 [g4,c5] a4 [g4,c5] ~@3", // Dm F5 C5 Am C5
  J: "c4 d4 f4 d4 [c4,f4] ~ bb3@2 a3@4 g3@2 a2@2", K: "~@10 d4 c4 a3 g3 f3 d3", L: "bb2@2 b2@4 c3@4 c3 d3 f3 g3 f3 d3",
  M: "g3@2 ab3@4 a3@4 [a4,c5]@2 [g4,c5] f4 eb4@2", N: "[[a4,d5] [g4,c5] [d4,f4,bb4] [c4,f4,a4]@11 ~@2]/2",
})).s("gm_overdriven_guitar").gain(0.45).pan(0.3)

// bass · acoustic bass · "Bass"
const bass = note(`<
  A ~ B ~ C D E F G H I J K L ~ E M E N O P Q L R J ~ S T U V W X Y Z AA AB AC E AD AE AF AG AH AI L AJ L ~ AK AL AM AN
  AO AP AQ AR AS J AT L ~ L ~ AU@2
>`.pickRestart({
  A: "eb2 e2@2 f2@5", B: "eb2 e2@2 f2@3 ~@2", C: "c2@2 c2 b1 bb1@2 d2 eb2", D: "f2@4 ~@3 c2 f2@2 f2@3 f2!2 e2",
  E: "c2@2 c2!2 bb1@2 d2 eb2", F: "f2@4 f2 ~ f2 c2 f2@2 e2@4 f2 e2", G: "c2@4 c2@2 b1@2 bb1@4 d2@2 eb2 e2",
  H: "f2@2 f2@2 f2@2 f2 c2 f2@2 f2@2 f2!3 g2", I: "g2!6 g2@2 bb1@2 bb1!4 d2@2", J: "[eb2,bb2] [e2,b2]@2 [f2,c3]@5",
  K: "g2@2 g2!5 d2 bb1@2 bb1@2 bb1@2 bb1@2", L: "[eb2,bb2] [e2,b2]@2 [f2,c3]@3 ~@2", M: "f2@4 f2@2 ~ c2 f2@2 f2@4 a2@2",
  N: "f2@7 c2 f2 ~ f2@4 a2 ~", O: "c2@4 c2@2 b1@2 bb1@2 bb1!3 eb2 e2@2", P: "f2@4 f2 ~@2 c2 f2@2 f2@4 f2@2",
  Q: "g2@2 g2!5 d2 bb1@2 bb1@2 bb1!3 ~", R: "g2@3 g2!4 d2 bb1@2 bb1@2 bb1!3 ~",
  S: "eb2@2 f2@2 f2@2 f2@2 eb2@2 eb2@2 eb2@2 bb2 d2", T: "bb1 ~ bb1 ~ d2 f2 d2@2 ab1@2 ab1!2 d2 f2!2 d2",
  U: "f2@2 f2@2 f2!2 bb1@2 eb2 ~ eb2 ~ eb2!2 e2@2", V: "bb1@2 bb1!2 d2 f2 d2@2 ab1@2 ab1!2 d2 f2!2 d2",
  W: "f2@2 f2@2 f2 ~@2 bb1 eb2@2 eb2@3 eb2!2 f2", X: "bb1@2 bb1@2 d2 f2 d2 bb1 ab1@2 ab1@2 c2@2 eb2@2",
  Y: "g2@2 g2@2 g2@2 g2@2 g2@2 g2@2 g2!3 d2", Z: "bb1@2 bb1!2 bb1@2 bb1@2 bb1@2 bb1@2 bb1@2 bb1!2",
  AA: "db2@2 db2@2 db2@2 db2@2 db2!4 db2@2 db2@2", AB: "f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2 c2",
  AC: "f2@2 f2@2 f2@2 f2@2 f2!3 c2 f2@2 f2 e2", AD: "f2@4 f2@2 f2 c2 f2@2 f2@3 g2 f2@2", AE: "c2@2 c2!2 bb1@2 d2!2",
  AF: "f2@8 f2@2 f2@3 eb2 f2 g2", AG: "bb1 c2 c2@2 c2@2 b1@2 bb1@2 bb1!2 d2@2 d2@2", AH: "f2@6 ~ c2 f2@2 f2@4 f2 gb2",
  AI: "g2@2 g2@2 g2@2 g2 d2 bb1!2 bb1@2 bb1@2 bb1 eb2", AJ: "g2@2 g2@2 g2!3 d2 bb1@2 bb1@2 bb1!4",
  AK: "c2@2 c2@2 c2@2 c2@2 bb1@4 d2@2 d2 eb2", AL: "f2@2 f2@2 f2@2 f2 c2 f2@2 f2!2 f2@2 f2 eb2",
  AM: "c2@2 c2@2 c2@2 b1@2 bb1@4 d2@2 eb2 d2", AN: "f2@4 f2 ~ f2!4 f2@2 f2@2 f2@2",
  AO: "c2@2 c2!2 c2@2 b1@2 bb1@4 d2@2 eb2@2", AP: "f2@6 f2 c2 f2@2 f2@2 f2@2 f2!2",
  AQ: "g2@2 g2!4 g2@2 bb1@2 bb1@2 bb1@2 bb1@2", AR: "[eb2,bb2] [e2,b2]@2 [f2,c3]@3 ~ f2",
  AS: "g2@2 g2!4 d2 ~ bb1@2 bb1@2 bb1!2 d2@2", AT: "eb2 ~@7", AU: "[[eb2,bb2] [e2,b2]@2 [f2,c3]@11 ~@2]/2",
})).s("gm_acoustic_bass").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  A B A ~ C D C D C D E F E F G C H C H C H E I J F K L@5 M N M O M P C H C H C H E I J Q R S H C T C J U V W V X V X V
  X V X
>`.pickRestart({
  A: "x!2 ~ x ~@2 x ~", B: "~ x", C: "x ~@2 x!2 ~@2 x", D: "x ~@6 x!2 ~ x ~@3 x ~", E: "x ~@2 x!2 ~@3",
  F: "~ x ~ x ~@2 x ~", G: "x ~@2 x ~@3 x", H: "x ~@6 x!2 ~@5 x ~", I: "~ x ~ x ~@2 x!2", J: "x!2", K: "~@7 x",
  L: "x ~@7 x ~@6 x", M: "x ~@2 x!2 ~ x!2", N: "x ~@2 x!3 ~ x", O: "x ~@5 x ~@2 x ~ x ~@3 x", P: "x ~ x ~ x ~ x!3 ~@7",
  Q: "~ x ~ x ~@3 x", R: "x!2 ~@6", S: "x!2 ~@2 x ~@3", T: "x ~@6 x!2 ~@7", U: "x!7 ~", V: "x!2 ~ x ~@4",
  W: "~@3 x!2 ~@3", X: "~@3 x",
})).gain(0.25).pan(0.2)

// drums · snare
const snare = s("sd").struct(`<
  A B A C D@7 E D F G D@7 H I H G J@5 K L M N K O D@7 H I ~ P Q D R S D T U V I A W A W A W ~ X
>`.pickRestart({
  A: "~@3 x", B: "~@7 x!2 ~@6 x", C: "~@9 x!3 ~@4", D: "~ x ~ x", E: "x ~@10 x!2 ~ x ~", F: "x ~@10 x!2 ~@2 x",
  G: "~@5 x ~@2", H: "x ~@10 x!2 ~@3", I: "~@4 x ~@7 x ~@2 x", J: "~@4 x ~@2 x ~@2 x!2 ~ x!2 ~",
  K: "~@4 x ~@5 x ~@2 x!3", L: "~ x!2 ~@3 x ~", M: "~@2 x ~ x ~@2 x ~ x!5 ~@2", N: "~@2 x ~ x ~@3 x ~ x ~@2 x!2 ~",
  O: "~@4 x ~@2 x ~ x!2 ~@5", P: "~@11 x!3 ~@2", Q: "~@4 x ~@2 x ~@2 x ~ x ~@3", R: "~@2 x ~@2 x!2 ~",
  S: "~@4 x ~@3 x ~ x ~@2 x ~ x", T: "~@4 x ~@2 x ~ x!6 ~", U: "~@13 x!3", V: "x ~@2 x", W: "~@11 x ~@3 x",
  X: "~@11 x ~@4",
})).gain(0.25).pan(0.2)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B A B A B C ~ C ~@2 A B A B A B C ~@15 A B A B A B C ~@4 D B C E A F ~@11
>`.pickRestart({
  A: "x!2 ~ x", B: "~@4 x ~ x!2 ~@4 x ~ x ~", C: "~ x ~ x", D: "~@3 x", E: "~@4 x ~ x!2 ~@8", F: "~ x ~@2",
})).gain(0.25).pan(0.2)

// drums · low tom
const low_tom = s("lt").struct("<~@36 A ~@18 B ~ B ~ B ~ B ~@3>".pickRestart({
  A: "~@13 x!2 ~", B: "~@3 x",
})).gain(0.25).pan(0.2)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A ~ B ~@7 C ~ C ~@8 C ~@3 A ~@5 C D E ~ C F ~@6 C ~@2 A G ~@3 G ~ C ~ B ~ B A B A B A ~ A
>`.pickRestart({
  A: "~@3 x", B: "~@11 x ~@4", C: "~@15 x", D: "x", E: "~@14 x!2", F: "x ~@2 x", G: "~@7 x",
})).gain(0.25).pan(0.2)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A B A B A B C ~ C ~ D A B A B A B C ~ E ~@2 F@5 ~ G D ~@2 D A B A B A B C ~ E ~@2 H B A B A I ~@2 J ~@8
>`.pickRestart({
  A: "~ x ~ x!3 ~ x", B: "x!2 ~@2 x!2 ~@2", C: "x!4 ~ x!7 ~ x!2 ~", D: "~ x ~@2", E: "x!15 ~", F: "~ x", G: "~ x ~ x",
  H: "~@2 x ~@4 x", I: "x!2 ~ x!2 ~@3", J: "~@4 x ~ x ~ x!7 ~",
})).gain(0.25).pan(0.2)

// drums · high tom
const high_tom = s("ht").struct("<A ~ B C ~@10 A ~@16 A ~@2 A@2 D ~@9 E F ~@3 A ~ G ~ B ~ B@6 ~ B>".pickRestart({
  A: "~@3 x", B: "~@11 x ~@4", C: "~@12 x!3 ~", D: "~@8 x ~@2 x ~@4", E: "x ~@4 x ~@2", F: "~@5 x ~@2", G: "~@9 x ~@6",
})).gain(0.25).pan(0.2)

// drums · crash
const crash = s("cr").struct("<A ~ A ~@3 B ~@4 C ~ C B ~@7 C ~ C D ~@18 C ~ E ~@7 F E ~ E ~ E ~ E ~ E ~>".pickRestart({
  A: "x!2 ~ x ~@4", B: "x", C: "~ x ~ x ~@4", D: "~@7 x", E: "~@3 x ~@4", F: "x!2 ~@6",
})).gain(0.25).pan(0.2)

// drums · ride
const ride = s("rd").struct("<~@26 A@5 B A C@2 B C ~@9 D E C ~ F ~@3 G H ~ H ~ H ~ H ~ H ~>".pickRestart({
  A: "x!8", B: "x!6 ~@2", C: "x!4 ~@4", D: "~ x ~@6", E: "~ x ~ x ~@4", F: "x", G: "~@2 x!5 ~", H: "x!2 ~@6",
})).gain(0.25).pan(0.2)

stack(
  electric_guitar_jazz, overdriven_guitar, bass, kick, snare, hihat, low_tom, mid_tom, open_hat, high_tom, crash, ride
)

More by Jimi Hendrix