Strudelify
Rhiannon cover art

1977 · Fleetwood Mac

Rhiannon

Fleetwood Mac

KeyA minorTempo128 bpm
0:00/0:00
// Rhiannon — Fleetwood Mac
// 128 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 7 "Guitar 4" electric guitar muted (copy of ch 8 "Guitar 5" electric guitar muted, 0.104 beats late)
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Guitar 3.
setcpm(128/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.

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B C D E F G H A B C D E F G H I J K L M N O P A B C D E F G H I J K L M N O P O P Q R S T U V W X U Y S Z U AA AB
  AC AD AE A B C D E F G H I J K L M N O P O P Q R S T U V W X Q R S T U V W X Q R S T U V W X Q R S T U V W X Q R S T U
  V W X Q R S T U V W X Q R S T U AF ~@3
>`.pickRestart({
  A: "a1 ~ a1 ~ a1 ~ a1 ~", B: "a1 ~ a1 ~ a1 ~ a1 b1", C: "f1 ~ f1 ~ f1 ~ f1 ~", D: "f1 ~ f1 ~ f1 ~ f1 c2",
  E: "a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1 ~ b1@2", F: "a1@2 b1 ~ a1@2 ~@2 a1@2 ~@2 a1@3 ~",
  G: "f1@2 ~@2 f1@2 ~@2 f1@3 ~ f1@2 ~@2", H: "f1 ~ f1 ~ f1 c2 f1 ~", I: "c2@4 e2@3 ~ g2@4 c2@2 e2@2",
  J: "c2@3 ~ e2@4 c2@3 ~ d2@2 e2@2", K: "f1@2 a1@2 f1@2 c2 f2", L: "f1@4 a1@4 c2@2 a1@2 c2@2 f2 ~",
  M: "c2@3 ~ e2@4 c2@4 d2@2 e2@2", N: "c2@4 e2@3 ~ g2@4 c2@2 e2 ~", O: "f1@2 a1@2 c2@2 f2 a1",
  P: "f1@4 a1@4 c2@3 ~ c2@2 f2 ~", Q: "a1 ~ a1@2 e2 ~ e2 ~ a2 ~ a2@2 g2@2 e2@2",
  R: "a1 ~ a1 ~ c2 ~ e2@2 c2@2 a1 ~ c2@2 e2@2", S: "f1 ~ f1@2 c2@4 f2@4 c2@2 a1@2",
  T: "f1 ~ f1@2 a1 ~ a1@2 c2 ~ c2@2 f2@2 c2@2", U: "a1 ~ a1 ~ e2 ~ e2 ~ a2 ~ a2@2 g2@2 e2@2",
  V: "a1 ~ a1 ~ e2 ~ e2@2 g2@2 e2 ~ c2@2 e2 ~", W: "f1 ~ f1@2 c2@4 f2@4 c2@3 ~",
  X: "f1 ~ f1 ~ a1@4 c2@2 a1@2 c2@2 f2 ~, ~@12 a1 ~@3", Y: "a1 ~ a1@2 c2@2 e2@2 c2@2 a1@2 c2@2 e2@2",
  Z: "f1 ~ f1 ~ a1@4 c2@4 f2@2 c2 ~", AA: "a1 ~ a1@2 c2 ~ e2 ~ c2@2 a1@2 e2@2 a1 ~", AB: "f1@3 ~ c2@4 a1@4 c2@2 f2 ~",
  AC: "f1 ~ f1 ~ c2@4 f2@4 c2@3 ~", AD: "f1 ~ f1 ~ a1 ~ a1 ~ c2 ~ c2@2 a1@2 c2 ~", AE: "~@14 f2 ~", AF: "a1 ~@15",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · epiano2 · "Keyboard"
const epiano2 = note(`<
  ~@5 A@4 B@2 C@2 D@3 E@7 F@2 G@2 H@2 I@3 J@3 K L M N O P Q R ~@2 S@2 T ~ U@2 T ~ V@2 T ~ W@2 ~ X G@2 Y@2 Z@3 J@3 K L M
  N O P Q R AA@4 T ~ U@2 T ~ S@2 T ~ U@2 T ~ S@2 T ~ U@2 T ~ S@2 T ~ U@2 T ~ S@2 T ~ U@2 T ~ S@2 T ~ U@2 T ~ S@2 T ~@4
>`.pickRestart({
  A: "[[a4,c5,e5]@19 ~@7 b4@2 c5@2 a4@8 ~@18 f5@2 f5@6, ~@38 f4@25 ~, ~@25 g5@2 g5@5, ~@13 a5@3]/4", // Am
  B: "[[a4,c5,e5]@25 ~@7]/2", C: "[~ f4@6 ~]/2", D: "[~@4 [a4,c5,e5]@27 ~ [a4,c5]@8 ~@8, ~@31 f4@7 ~@10]/3",
  E: "[~@4 a5@2 ~@8 e5@6 [g4,c5] ~ [c5,e5]@6 [c5,e5]@7 ~ [g4,c5,e5] ~ g4@4 ~@2 c5@6 ~@2 [f4,a4,c5] ~ [f4,a4,c5]@6 f4@6 ~@10 c5@8 [g4,c5,e5] ~ [c5,e5]@5 ~ [c5,e5]@7 ~ [g4,c5,e5] ~ [g4,c5,e5]@6 [g4,c5,e5]@3 ~, ~@6 a5@10 ~@26 g4@9 ~@9 a4@24 ~@28, ~@10 g5@5 ~@23 e5@12 ~@16 f4@18 ~@28, ~@12 f5@4 ~@4 e5@2 g4@13 ~@3 c5@6 ~@16 c5@10 c5@6 ~@36, ~@74 g4@10 ~@2 g4@13 ~@13]/7", // C5 C F C
  F: "[~@4 [f4,a4,c5] ~ f4@6 ~@8 c5@2 ~@4 b4@2 a4@2 g4@2, ~@3 a4@11 ~@2, ~@6 c5@14 ~@2 c5@7 ~@3, ~@12 f4@17 ~@3]/2", // F
  G: "[[a4,c5,e5]@25 ~@7, a3@21 ~@11]/2", H: "[~@22 c4@2 b3@2 c4@5 ~, f3 ~, ~ f4@6 ~]/2",
  I: "[c4 ~ [b3,d4]@2 ~@2 [c4,e4]@5 ~ [b3,d4]@3 ~ [a3,c4] ~ g3@2 ~@2 [e3,a3]@6 ~@4 [f3,a3] ~ [g3,b3]@2 ~@2 [a3,c4]@5 ~ [g3,b3] ~ [g3,b3]@2, a3@12 ~@6 b3 ~@13 [a4,c5]@8 ~@8, ~@4 [a4,c5,e5]@18 ~@9 f4@7 ~@10]/3", // Bm C Bm Am A5 F G Am …
  J: "[~@2 [f3,a3]@3 ~ [c4,e4,a4]@3 ~ [c4,e4,a4]@2 ~@2 [c4,e4,g4]@6 [e4,g4]@6 ~@2 [e4,g4]@5 ~@3 [c4,e4,g4]@8 [c4,e4,g4]@4, ~@10 c4@7 ~@7]/3", // F Am C Em C
  K: "[a3,c4]@5 ~ [a3,c4,f4]@9 ~", L: "[a3,f4]@3 ~ a3 ~@7 a4@2 g4@2, c4@2 ~ [a3,c4,f4,c5]@4 ~, ~@5 b4@2 ~",
  M: "[c4,g4]@3 [c4,e4,g4]@5, e4 ~@3", N: "[c4,e4,g4]@6 [c4,e4,g4]@9 ~", O: "[a3,c4]@5 ~ [a3,c4]@9 ~",
  P: "[a3,c4,a4]@5 ~ [a3,c4,a4]@9 ~", Q: "[a3,a4]@4 a3 ~ [a3,c4,a4]@9 ~, c4@3 ~@5",
  R: "[c4,a4]@4 a3 ~ a3@6 a3@2 ~@2, a3@3 ~@3 [c4,a4]@8 ~@2", // F
  S: "[f3@10 ~@2 c4@4 [c4,f4]@15 ~, f4 ~, c4@3 ~@5, ~@5 f3@10 ~]/2", T: "[a4,c5,e5]@3 ~",
  U: "[[f3,c4,f4]@13 ~ c4@2, ~@26 f4@5 ~]/2", V: "[f3@22 ~@4 f4@5 ~, f4@13 ~@3, c4@3 c4, ~@22 f3@9 ~]/2",
  W: "[[f3,c4,f4]@13 ~ c4@2, ~@26 f3@5 ~]/2", X: "~@7 g4",
  Y: "[~@15 b5, f3@11 c4 b3 [c4,a5]@3, ~ f4@7, ~@9 f5@7, ~@11 g5@5]/2", // F
  Z: "[c4 ~ [b3,d4]@2 ~@2 [c4,e4]@5 ~ [b3,d4]@3 ~ [a3,c4] ~ g3@2 ~@2 [e3,a3]@6 ~@4 [f3,a3] ~ [g3,b3]@2 ~@2 [a3,c4]@5 ~ [g3,b3] ~ [g3,b3]@2, c6@17 ~@31, a3@12 ~@6 b3 ~@13 [a4,c5]@8 ~@8, ~@4 [a4,c5,e5]@18 ~@9 f4@7 ~@10]/3", // Bm C Bm Am A5 F G Am …
  AA: "[~@32 f3@10 ~@2 c4@4 [c4,f4]@15 ~, ~@13 b2@19 c4@12 ~@20, ~@13 c3@2 g2@23 ~@26, ~@14 a2@25 ~@3 f3@20 ~@2, ~@2 f4 ~]/4", // F5
})).s("gm_epiano2").gain(0.31)

// chords · electric guitar jazz · "Guitar 1"
const electric_guitar_jazz = note(`<
  ~ A B C D A E F D A B C D A E F D G H I@2 J K J L A B C D A E F D G H I@2 J K J L J L A B ~@2 A B ~@2 A B ~@2 A B ~@3
  M A B C D A E F D G H I@2 J K J L J L A B ~@2 A B ~@2 A B ~@2 A N O P A N O Q A N O R A N O S A N O T A N U V A N W@2
  A X@3 A Y@3 A Z@2 AA A AB ~@3
>`.pickRestart({
  A: "[a3,c4] ~ [b3,d4]@2 ~@2 [c4,e4]@5 ~ [b3,d4]@3 ~", B: "[a3,c4] ~ [g3,b3]@2 ~@2 [e3,a3]@7 ~@3",
  C: "[f3,a3] ~ [g3,b3]@2 ~@2 [a3,c4]@5 ~ [g3,b3] ~ [g3,b3]@2", D: "~ [f3,a3]@5 ~@2",
  E: "[a3,c4] ~ [g3,b3]@2 ~@2 [e3,a3]@8 ~@2", F: "[f3,a3] ~ [g3,b3]@3 ~ [a3,c4]@5 ~ [g3,b3] ~ [g3,b3]@2",
  G: "~@2 [e3,g3] ~ [f3,a3] ~ [g3,c4]@6 [g3,c4] ~@3", H: "~@2 [e3,g3] ~ [f3,a3] ~ [g3,c4]@4 [f3,b3] ~ [g3,c4] ~@3",
  I: "[~@2 [e3,g3] ~ [f3,a3] ~ [g3,c4]@5 ~ [g3,c4]@10 [g3,c4]@4 b3@2 a3@2 g3 ~]/2", // Em F C5
  J: "~@2 [e3,g3] ~ [f3,a3] ~ [g3,c4]@5 ~ [g3,c4] ~@3", K: "~@2 [e3,g3] ~ [f3,a3] ~ [g3,c4]@3 ~@3 [g3,c4] ~@3",
  L: "~@2 [g3,c4]@3 ~ [g3,c4]@4 b3@2 a3@2 g3@2", M: "a3 g3 a3 b3 a3 g3 e3@2",
  N: "[a3,c4] ~ [g3,b3]@2 ~@2 [e3,a3]@7 ~ [f3,b3]@2", O: "~@2 [f3,c4] ~ [f3,c4] ~@3 [f3,c4]@5 ~ [f3,b3]@2",
  P: "~@2 [f3,c4] ~ c4@4 d4@7 ~, ~@4 f3@11 ~", Q: "~@2 [f3,c4] ~ [f3,c4]@3 ~ [f3,d4]@7 ~",
  R: "~@2 [f3,c4] ~ c4@4 ~@4 c4@4, ~@4 f3@11 ~, ~ d4", S: "~@2 [f3,c4] ~ c4@4 ~@4 c4@3 ~, ~@4 f3@11 ~, ~ d4",
  T: "~@2 [f3,c4] ~ c4@4 ~@4 c4@3 ~, ~@4 f3@11 ~, ~@8 d4@7 ~", U: "~@2 c4 ~ [f3,c4] ~@3 [f3,c4]@5 ~ [f3,b3]@2",
  V: "~@2 [f3,c4] ~@9 c4@4, ~@4 f3@11 ~, ~@2 c4@3 ~@3, ~@8 d4@7 ~", // F5
  W: "[~@2 [f3,c4] ~ [f3,c4] ~@3 c4@6 ~@14 c4@3 ~, ~@4 f3@5 c4@4 ~@3, ~@14 b3@6 f3@11 ~, ~@11 b3@2 ~@3, ~@3 d4]/2", // F5
  X: "[[a3,c4] ~ [g3,b3]@2 ~@2 [e3,a3]@7 ~ [f3,b3]@4 c4 ~ c4@3 ~ c4@5 ~ [f3,b3]@4 c4 ~ [f3,c4]@2 ~@6 c4@3 ~, ~@20 f3@10 ~@8 f3@9 ~, ~@40 d4@7 ~]/3", // Am G A5 Fdim F5
  Y: "[[a3,c4] ~ [g3,b3]@2 ~@2 [e3,a3]@7 ~ f3@2 ~@16 c4@4 ~@2 b3@4 ~@2 c4@3 ~, ~@14 b3@6 c4@11 ~@17, ~@18 f3@10 ~@2 f3@5 ~ f3@4 ~@2 f3@4 ~@2, ~@13 d4@3 ~@8]/3", // Am G A5
  Z: "[[a3,c4] ~ [g3,b3]@2 ~@2 [e3,a3]@7 ~ [f3,b3]@4 [f3,c4] ~ [f3,c4]@2 ~@2 c4@6 b3@2, ~@3 f3]/2", // Am G A5 Fdim F5
  AA: "~@2 c4 ~ c4@4 ~@4 c4@4, ~ f3@3, ~ d4", AB: "[a3,c4] ~@15",
})).s("gm_electric_guitar_jazz").gain(0.53)

// other · electric guitar jazz · "Guitar 2"
const electric_guitar_jazz_2 = note(`<
  ~@16 A@6 B C@3 ~@6 D@2 E@3 F@6 G H ~@10 I J@2 ~@2 K ~@7 D@2 E@3 F@6 L M@2 ~@5 N O ~@10 P Q R@2 S@2 T U@2 V@3 W X Y@3 Z
  AA AB AC AD@2 AE AF AG AH AI AJ AK@2 AL@2 AM ~@3
>`.pickRestart({
  A: "[~@10 g3 ~ a3@2 c4@11 ~ g3 ~ [g3,c4]@12 ~@4 a3 ~ c4@10 ~@4 c4@10 ~@2 c4@2 b3@2 a3@2 g3@7 ~ c4@10, ~@42 g3@14 ~@2 g3@13 ~@25]/6", // C5
  B: "~@6 c4@9 ~, ~ g3@7", C: "[~@6 c4@14 ~@2 c4@4 b3@2 a3@2 g3@5 ~@13, ~ g3@9 ~@14]/3",
  D: "[~@10 g3@2 a3@2 c4@11 ~@7]/2", E: "[~@4 c4@5 ~@3 c4@6 ~@2 c4@6 ~@2 c4@14 ~@2 c4@4]/3",
  F: "[~@4 c4@6 ~@2 c4@6 ~@2 c4@5 ~ g3@2 a3@2 c4@4 ~@2 c4@6 ~@2 c4@6 ~@2 c4@6 ~@2 c4@6 ~@2 c4@6 ~@2 c4@14 ~@6]/6",
  G: "g4 a4 g4@4 e4 g4", H: "c5@2 g4@2 e4@2 g4@2 a4@7 ~", I: "~@2 a4 g4 a4 e4 c5 a4",
  J: "[e4@2 c4 ~ e4@2 a3@2 c4@2 ~@2 a3@7 ~@13, ~@10 d4@5 ~@17]/2", K: "c4@2 b3@2 c4@2 d4@2 c4@2 b3@2 a3@3 ~",
  L: "~@7 e5", M: "[a5 ~ g5@2 e5 ~ d5 ~ c5@2 d5 ~ a4@20]/2", N: "~@4 d5@2 e5 ~ g5 ~ e5@2 d5@2 c5 ~",
  O: "d5@2 e5@2 d5@2 [d5,e5] c5 a4@6 ~@2", P: "[d5,e5]@2 a4 ~ a4@3 ~ a4@4 g4@2 a4 ~",
  Q: "c5@2 g4@2 a4@3 ~ a4@3 ~ c5@2 d5 ~", R: "[d5@3 ~ c5@2 d5 ~ a4@14 ~@4 a4@2 d5@2 a4 ~]/2",
  S: "[~@2 a4@8 e4@2 a4@2 ~@2 g4@2 a4@4 e4 ~ a4@2 e4 ~ a4@4, e4@10 ~@4 e4@5 ~@13]/2", T: "c5 ~ a4 ~ d5@2 ~@2 c5@7 ~",
  U: "[~@2 a4@2 d5 ~ a4 ~ e5@2 g5 ~ a4 ~ c5@6 d5 ~@5 b4@2 c5 ~ g4@2]/2",
  V: "[a4 ~ e4@2 a4@2 e4 ~ g4@2 a4 ~ d4@8 a4@2 e4@2 a4@2 d4@2 a4@2 c4@6 a4 ~@5 a3@2 d4@2 a3@2]/3",
  W: "e4@2 g4@2 a3 ~ e4@2 ~@2 e4@2 g4 ~ a3@2", X: "d4@2 a3 ~ c4@2 d4@6 c4@2 d4 ~",
  Y: "[~@4 a4@2 e4@2 ~@6 d5@4 a4 ~ c5 ~ a4 ~ e5@2 g5 ~ a4 ~ e5@6 g5 ~@3 a5@8]/3",
  Z: "~@2 a5@2 e5 ~ a5@2 d5@2 a5 e5@2 a5 d5@2", AA: "a5 c5@2 a5 d5@2 a5 e5@2 a5 d5@2 a5 c5@2 a5",
  AB: "d5@2 a5 e5@2 a5 d5@2 a5 c5@2 a5 ~ c5 ~@2", AC: "~@2 d5@2 c5 ~ a4 ~ e5@3 ~ [e5,g5] ~ a4 ~",
  AD: "[d5@4 c5 ~ a4 ~ d5@2 g4@2 d5@6 a4 ~ d5@2 g4@2 d5@2 a4@2 d5@2 g4@2]/2", AE: "d5 ~ e4@2 a4@2 e4@6 g4@2 e4@2",
  AF: "c5@9 ~ e4 ~ c5 ~ e4 ~", AG: "g4@2 c5@6 d5@4 a4 ~@3", AH: "e5@4 g5 ~ a4 ~ d5@8, d#5 ~@15",
  AI: "~ c5 d5 g4 d5 a4 d5 g4", AJ: "d5@12 [c5,d5] ~@3",
  AK: "[~@2 a4@6 e4@2 a4@2 d4@2 a4@6 c4@2 a4@2 d4@2 a4 e4@2 a4 d4@2]/2",
  AL: "[a4 c4@2 a4 d4@2 a4 e4@2 a4 d4@2 a4 c4@7 a4@2 e4 ~@7 d5@2]/2", AM: "a4 ~@15",
})).s("gm_electric_guitar_jazz").gain(0.48).pan(0.7)

// other · electric guitar muted · "Guitar 5"
const electric_guitar_muted = note(`<
  ~ A B C D E F G H A B C D E F G I ~@8 A B C D E F G H ~@10 A B C D A B C D A B C D A B C J K L A B C D E F G H ~@10 A
  B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A M ~@3
>`.pickRestart({
  A: "a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3", B: "a2 ~@3 a2 ~@3 a2 ~ b2 ~ a2 ~ b2 ~", C: "f2 ~@3 f2 ~@3 f2 ~@3 f2 ~@3",
  D: "f2 ~@3 f2 ~@3 f2 ~@3 f2@2 ~@2", E: "a2 ~@3 a2 ~@3 a2 ~@3 a2 ~ b2 ~", F: "a2 ~ b2 ~ a2 ~ b2 ~ a2 ~@3 a2@2 ~@2",
  G: "f2 ~@3 f2 ~@3 f2@2 ~@2 f2 ~@3", H: "f2 ~ f2 ~ f2 ~ f2 ~", I: "f2 ~@3 f2@2 ~@2 f2@2 ~@2 f2@2 ~@2",
  J: "f2 ~@3 f2 ~@3 f2 ~@7", K: "~@4 f2 ~@3 f2 ~@7", L: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3@3 ~", M: "a2 ~@15",
})).s("gm_electric_guitar_muted").gain(0.34).pan(1)

// drums · kick
const kick = s("bd").struct("<~@5 [x ~ x!3 ~@3]!55 ~ [x ~ x!3 ~@3]!71 x ~@3>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@5 A@11 B A@15 B A@27 ~ A@7 B A@63 ~@4>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@6 x!2 ~@3",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<[x!4] ~@4 [x!4]!55 ~ [x!4]!71 x ~@3>").gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@82 A ~@3 B ~@3 A ~@3 A ~@3 C ~@3 A ~@3 D ~@3 A ~@5 A ~@2 D ~@2 C ~@2 A ~@2 E F G ~@5
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~@5 x ~@2", C: "~ x!2 ~@2 x!2 ~", D: "~ x!2 ~@5", E: "~@15 x", F: "x", G: "~@3 x",
})).gain(0.56)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@82 A ~@3 B ~@3 A ~@3 A ~@3 C ~@3 A ~@3 D ~@3 A ~@5 A ~@2 D ~@2 C ~@2 A ~@2 E ~ F ~@5
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~@5 x ~@2", C: "~ x!2 ~@2 x!2 ~", D: "~ x!2 ~@5", E: "~@7 x", F: "~@3 x",
})).gain(0.56)

// drums · crash
const crash = s("cr").struct(`<
  ~@33 A ~@27 A ~@7 A ~@12 B ~@4 C ~@4 B ~@4 B ~@3 B ~@4 B C ~@4 C ~@5 B ~@3 B ~@3 D ~@3 B ~@5
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~@2", D: "~ x ~ x",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct(`<
  ~@4 A B ~@3 C A ~@2 D ~@3 D ~ C D ~ C E ~ F A ~@2 D C ~ C D C G D H C I H I H I H I H I H I H I H I H I H I H@2 ~ C A
  ~@2 D C ~ C D C G D H C I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I H I
  H I H I H I H I H I ~@4
>`.pickRestart({
  A: "~@14 x!2", B: "x", C: "~ x ~@2", D: "~@10 x!3 ~@3", E: "~@2 x!2 ~@12", F: "x!2 ~@2", G: "~ x ~ x", H: "~@3 x",
  I: "~@2 x!2 ~@8 x ~@3",
})).gain(0.48)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@5 A@7 B@2 ~ A ~ A@9 B ~ A@4 B ~ C@26 ~ A B ~ A@4 B ~ C@62 ~@4>".pickRestart({
  A: "~ x ~@2", B: "~@3 x", C: "~ x ~ x",
})).gain(2.43)

stack(
  bass, epiano2, electric_guitar_jazz, electric_guitar_jazz_2, electric_guitar_muted, kick, snare, hihat, mid_tom,
  high_tom, crash, ride, cabasa
)

More by Fleetwood Mac