Strudelify

Marigold

Nirvana

KeyB minorTempo100 bpm
0:00/0:00
// Marigold — Nirvana
// 100 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 58 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 clean
const electric_guitar_clean = note(`<
  A@2 B C D@6 E F G@4 H I@2 J K L@2 M N O@3 P Q R@4 S T@3 U V@3 W@6 X@3 Y@7
>`.pickRestart({
  A: "[~@8 d4@4 ~@16 f#3@3 ~@8 a3@4 ~@17 f3@4, d3@3 b2@5 ~ e3@2 ~@2 f3@2 ~, ~@4 a3@8 ~@8 f#3@8 ~@3 a2@12 a#2@20 ~, ~@24 b3@8 ~@23 a#3@8 ~]/2",
  B: "~@7 d4@4 ~@17 f#3@4, d3@11 b2@21, ~ a3@2 ~@2 f#3@2 ~, ~@3 b3",
  C: "~@2 a3 ~@4 f3, a2@3 a#2@5, ~@4 e3@7 ~@9 f3@8 ~@4, ~@23 a#3@8 ~",
  D: "[~@7 d4@4 ~@16 f#3@4 ~@8 a3@4 ~@17 f3@3 ~@8 d4@4 ~@16 f#3@4 ~@8 a3@5 ~@11 a#3@8 ~@29 c#3@3 ~@29 [g2,d3]@4, d3@12 b2@19 a2@13 a#2@20 ~@11 b2@20 a2@13 a#2@20 ~@3 c#3@8 ~ c#3@8 c#3@8 ~@3 g2@17 g2@12 ~@4, ~@4 a3@8 ~@7 f#3@8 ~@9 e3@8 ~@8 f3@8 ~@3 d3@12 ~@13 b3@8 ~@31 f#2@17 f#2@16 ~@7 g3@17 g3@8, ~@23 b3@8 ~@25 a#3@8 ~@3 a3@8 ~@9 f#3@7 ~@8 e3@9 ~@8 f3@12 ~@7 f#3@16 f#3@8 ~@4 d3@8 d3@8 ~ d3@8 ~@4]/6", // G5
  E: "[d3,a3,d4]@11 ~ [d3,a3,d4]@8 [d3,a3,d4]@11 ~", // D5
  F: "[b2,f#3,b3]@11 b3@8 ~@8 b2@5, ~@11 b2@16 ~@5, ~@11 f#3@13 f#3@8, ~@5 b3@3", // B5
  G: "[[f3,a#3]@7 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@12 ~@4 [d3,a3,d4]@7 b2@5 ~@8 b3@4 [a2,e3]@4 ~ e3@4 e3@4 a#2@8 ~@7 a#3@4 ~, b2@2 ~@76 b3@13 ~@4 a3@13 a#3@15 ~@5, a#2 ~@77 f#3@9 f#3@8 ~@13 f3@12 f3@8, ~@83 b2@12 ~@4 a2@9 ~@8 a#2@12]/4", // A#5 D5 A5
  H: "[d3,a3,d4] ~@3 a3@4 ~@4 d4@3 [b2,f#3,b3]@8 ~ [b2,f#3]@4 [b2,f#3]@4, ~@3 d3@4 ~ [d3,a3]@8 ~@8 b3@8", // D5 B5 D5
  I: "[a2@3 ~@5 [e3,a3]@4 a#2@7 ~@8 a#3@4 d3@2 ~@6 d4@4 b2@8 ~@8 b3@4 ~, [e3,a3]@8 ~@4 a#3@15 ~@4 a3@12 b3@16 ~@5, ~@4 a2@7 ~ f3@11 f3@8 d4@8 ~@13 b2@12, ~@19 a#2@12 ~@4 d3@8 f#3@13 f#3@8]/2", // A5
  J: "a2@3 ~@4 a3@4 ~ a#2@8 ~@7 a#3@4 ~, e3@3 f3@3 f3@2, a3@7 ~@5 a#3@15 ~@5, ~ a2@2 ~@2 a#2@3",
  K: "d3@3 ~@4 d4@4 ~ b2@7 ~@8 b3@4 ~, a3@12 b3@15 ~@5, d4@7 ~@12 b2@12 ~, ~@3 d3@8 ~ f#3@12 f#3@8",
  L: "[a2@3 ~@4 e3@4 [a#2,f3,a#3]@12 ~ [f3,f#3,a#3]@7 [f#2,c#3,f#3]@9 f#2@3 ~@9 f#3@4 ~@4 f#2@4, a3@12 ~@31 f#2@16 ~@5, e3@7 ~@33 f#3@12 ~@12, ~@3 a2@8 ~@12 a#2@7 ~@10 c#3@8 c#3@8 [c#3,f#3]@7 ~]/2", // A#5 F#maj7 F#5
  M: "g2@8 g2@3 ~@9 g2@4 d3@4 [d3,a3]@3 ~, [d3,g3]@11 d3@13 ~@8, ~@11 g2@8 ~@5 [g2,g3]@7 ~, ~@3 g3@3 ~@2", // D5 G5 G
  N: "d3@7 d3@4 ~ [d3,d4]@8 d4@4 ~@5 b3@3, [a3,d4]@11 a3@8 ~ [d3,a3]@12, ~@3 d4, ~@7 [b2,f#3]", // D D5 B5
  O: "[b2@8 b2@4 b2@8 ~@4 [f#3,b3]@7 [a#2,f3,a#3]@9 a#2@7 ~@29 f3@7 [a#2,f3,a#3]@4 ~ [a#2,f3,a#3]@3 [a#2,f3,a#3]@4 ~, [f#3,b3]@12 [f#3,b3]@12 ~@16 a#3@15 a#3@16 a#3@12 ~@13, ~@20 b2@12 ~@8 f3@11 f3@8 ~ f3@8 f3@8 ~@20, ~@47 a#2@16 a#2@20 ~@13]/3", // B5 A#5 B5
  P: "[d3,a3,d4]@7 [d3,a3,d4]@4 [b2,f#3,b3]@13 [b2,f#3,b3]@4 [b2,f#3,b3]@3 ~, ~@11 c3@2 ~@19, ~@11 c4 ~@20", // D5 B5
  Q: "[a2,e3,a3]@3 ~ [a2,e3,a3]@4 [a2,e3,a3]@4 [a#2,f3,a#3]@12 [a#2,f3,a#3]@4 [a#2,f3,a#3]@4", // A5 A#5
  R: "[[d3,a3] ~@3 [d3,a3,d4] ~@3 [d3,a3,d4]@7 [b2,f#3,b3]@8 ~ [b2,f#3,b3]@7 [a2,e3]@2 ~@2 [a2,e3,a3]@8 [a#2,f3,a#3]@12 [a#2,f3,a#3]@8 [d3,a3,d4]@8 [d3,a3,d4]@4 [b2,f#3,b3]@12 [b2,f#3,b3]@8 [a2,e3,a3]@8 ~ [a2,e3,a3]@4 [a#2,f3,a#3]@11 [a#2,f3,a#3]@7 ~@2, ~@31 a3@4 ~@93]/4", // D5 B5 A5 A#5 D5 B5 A5 A#5
  S: "~@8 [d3,a3,d4]@8 [b2,f#3,b3]@8 [b2,f#3,b3]@7 ~", // D5 B5
  T: "[[e3,a3]@4 [a2,e3,a3]@7 [a#2,f3,a#3]@12 [a#2,f3,a#3]@7 ~ [f#2,c#3,f#3]@8 [f#2,c#3,f#3]@8 [f#2,c#3,f#3]@4 [f#2,c#3,f#3]@4 [f#2,c#3,f#3]@4 [g2,d3,g3]@2 ~@2 [g2,d3,g3]@9 [g2,d3,g3]@4 [g2,d3,g3]@12 [g2,d3,g3]@3 ~ g3@4, a2@2 ~@89 [g2,d3]@4 ~]/3", // A5 A#5 F#5 G5
  U: "[d3,a3,d4]@2 ~@2 [d3,a3]@4 [d3,a3]@4 [d3,a3,d4]@8 ~ d4@4 ~@4 f#3@3, ~@4 d4@8 ~@8 [d3,a3]@4 ~ [d3,a3,d4]@7", // D5
  V: "[[b2,f#3]@8 [b2,f#3]@4 b2@8 b2@3 ~@4 b3@4 [a#2,f3,a#3]@8 ~ [a#2,f3,a#3]@8 [a#2,f3,a#3]@7 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@2 ~@7, b3@4 b3@5 ~@23, ~@12 f#3@11 b2@8 ~@65, ~@24 f#3@7 ~@65]/3", // B5 A#5
  W: "[~@8 [d3,a3,d4]@7 [b2,f#3]@8 ~ [b2,f#3]@4 [b2,f#3]@3 a2@8 a2@4 a#2@8 ~@8 a#3@3 ~ [d3,a3,d4]@8 [d3,a3,d4]@3 ~ b2@8 b2@4 ~@4 b3@4 [a2,e3]@8 [a2,e3]@3 ~ a#2@9 a#2@3 ~ a#3@7 [d3,d4]@4 [d3,d4]@4 [d3,a3,d4]@4 b2@8 b2@4 ~@5 b3@3 [a2,e3,a3]@8 ~ [a2,e3,a3]@4 [a#2,f3,a#3]@8 [a#2,f3,a#3]@4 [a#2,f3,a#3]@8, ~@15 b3@16 [e3,a3]@12 a#3@16 ~@16 b3@16 ~@4 a3@11 ~@21 a3@8 ~@4 b3@16 ~@37, ~@43 f3@12 f3@7 ~@13 f#3@12 ~@20 [f3,a#3]@13 ~@19 f#3@12 ~@41, ~@51 a#2@11 ~@25 [b2,f#3]@8 ~@24 [a#2,f3]@8 ~@24 [b2,f#3]@8 ~@33]/6", // D5 B5 D5 A5 D D5 A5 A#5 …
  X: "[~ [d3,a3,d4]@7 [d3,a3,d4]@4 [b2,f#3,b3]@11 ~ b3@7 [a2,e3,a3]@9 [a2,e3,a3]@4 [a#2,f3,a#3]@11 ~ [a#2,f3,a#3]@7 [f#2,c#3,f#3]@8 [f#2,c#3,f#3]@9 [f#2,c#3,f#3]@8 [f#2,c#3,f#3]@7 ~, ~@23 [b2,f#3]@7 ~@66]/3", // D5 B5 A5 A#5 F#5 B5
  Y: "[[g2,d3,g3]@8 [g2,d3,g3]@4 [g2,d3,g3]@12 [g2,d3,g3]@7 [d3,d4]@9 ~@3 [d3,a3,d4]@8 [d3,a3,d4]@11 ~ [b2,f#3]@9 ~ b2@3 [b2,f#3,b3]@11 [b2,f#3,b3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,f3,a#3]@8 [a#2,a#3]@12 ~@5 [d3,a3,d4]@56 ~@8, ~@31 a3@12 ~@20 b3@13 ~@79 a#2@61 ~@8, ~@72 f#3@4 ~@67 f3@64 ~@17, ~@156 a#3@61 ~@7]/7", // G5 D D5 B5 A#5 A# D5
})).s("gm_electric_guitar_clean").gain(0.56)

// bass · electric bass pick
const bass = note(`<
  A@2 B C D C E F G H I J@2 K L C D M N O P Q R S T U@3 V F W X V Y Z AA@2 AB AC AD AE@3 AF@2 AG W AH AI AJ AK@4 AL@2 AM
  ~
>`.pickRestart({
  A: "[d2@3 ~ d2@4 ~@4 b1@10 ~@2 b1@7 a1@3 ~@2 a1@8 a#1@10 ~@2 a#1@8]/2", B: "d2@3 ~ d2@4 ~@4 b1@11 ~ b1@7 ~",
  C: "a1@3 ~ a1@7 ~ a#1@11 ~ a#1@8", D: "d2@3 ~ d2@5 ~@3 b1@10 ~@2 b1@7 ~", E: "d2@4 d2@5 ~@3 b1@11 ~ b1@7 ~",
  F: "a1@3 ~ a1@7 ~ a#1@10 ~@2 a#1@8", G: "f#1@3 ~ f#1@3 f#1@3 ~@2 f#1@3 ~ f#1@3 ~ f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2",
  H: "g1@2 ~@2 g1@2 ~@2 g1@3 ~ g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@3 ~",
  I: "d2@2 ~@2 d2@2 ~@2 d2@2 ~@3 d2@6 ~ d2@11 ~",
  J: "[b1@11 ~ b1@9 ~@2 b1@6 ~@2 a#1@7 ~@2 a#1@6 ~ a#1@7 ~@2 a#1@6 ~@2]/2",
  K: "a#1@6 ~@2 a#1@6 ~@2 a#1@6 ~@2 a#1@3 ~ a#1 ~@3", L: "d2@3 ~ d2@4 ~@4 b1@9 ~@3 b1@7 ~",
  M: "a1@3 ~ a1@8 a#1@11 a#1@9", N: "d2@3 ~ d2@7 ~ b1@11 ~ b1@7 ~", O: "a1@3 ~ a1@7 a#1@11 ~@2 a#1@8",
  P: "d2@3 ~ d2@6 ~@2 b1@10 ~@3 b1@6 ~", Q: "a1@2 ~@2 a1@7 ~ a#1@10 ~@2 a#1@7 ~",
  R: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~",
  S: "g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@3 ~",
  T: "d2@3 ~ d2@2 ~@2 d2 ~@3 d2@7 ~ d2@11 ~",
  U: "[b1@10 ~@2 b1@10 ~ b1@7 ~@2 a1@7 a#1@6 ~@2 a#1@7 ~ a#1@6 ~@2 a#1@6 ~@2 a#1@6 ~@2 a#1@2 ~@2 a#1@2 ~@3 a#1@2 ~@2 a#1 ~ a#1 ~, ~@31 a#1@7 ~@58]/3",
  V: "d2@3 ~ d2@8 b1@10 ~@2 b1@7 ~", W: "d2@3 ~ d2@7 ~ b1@10 ~@2 b1@7 ~", X: "a1@3 ~ a1@8 a#1@11 ~ a#1@8",
  Y: "a1@3 ~ a1@8 a#1@10 ~@2 a#1@8", Z: "d2@3 ~ d2@7 ~ b1@10 ~@2 b1@6 ~@2",
  AA: "[a1@3 ~ a1@7 a#1@12 a1@8 f#1@4 ~ f#1@2 ~@2 f#1@3 ~ f#1@2 ~@2 f#1@3 ~ f#1@2 ~@2 f#1@2 ~@2 f#1@2 ~@2]/2",
  AB: "g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1 ~@3 g1@2 ~@2 g1 ~@3 g1@2 ~@2 g1 ~ g1 ~", AC: "d2@3 ~ d2@5 ~@4 d2@7 ~ d2@11",
  AD: "b1@10 ~@2 b1@9 ~ b1@3 a1@3 b1@4",
  AE: "[a#1@7 ~ a#1@7 a#1@8 a#1@13 ~ a#1@3 a#1@3 ~ a#1@3 ~ a#1@3 ~ a#1@2 ~@2 a#1 ~@3 a#1 ~ a#1 d2@3 ~@2 d2@7 b1@11 ~@2 b1@6 ~@2]/3",
  AF: "[a1@2 ~@2 a1@8 a#1@8 a1@4 a#1@3 a1@4 d2@3 ~ d2@8 b1@11 ~@2 b1@7 ~]/2", AG: "a1@3 ~ a1@8 a#1@10 ~ a#1@9",
  AH: "a1 ~ a1@4 a#1@4 a1@2 a#1@2 a1@2", AI: "d2@3 ~ d2@8 b1@10 ~@3 b1@6 ~",
  AJ: "a1@2 ~@2 a1@8 a#1@9 ~@2 a#1@5 a1@2 ~@2",
  AK: "[f#1@4 f#1@4 f#1@4 f#1@4 f#1@4 f#1@4 f#1@3 ~ g1@9 g1@3 g1@4 g1@12 g1@3 g1@2 g1@2 d2@13 d2@8 d2@11 b1@13 b1@8 b1@4 a1@4 b1@4]/4",
  AL: "[a#1@7 a#1@8 a#1@8 a#1@7 ~ a#1@9 a#1@8 a#1@4 a#1@4 ~ a#1@3 a#1@2 a#1@2]/2", AM: "d2@31 ~",
})).s("gm_electric_bass_pick").gain(0.46)

// drums · kick
const kick = s("bd").struct(`<
  A B@7 C@2 D B E F G H B I J B@2 K L M N B O P N B I Q R S B T U H N V W X Y Q R Q H B@3 Z AA N AB AC AD ~@2
>`.pickRestart({
  A: "~ x ~@3 x ~@6 x ~@7 x ~@11", B: "x!2 ~ x ~ x ~@2", C: "x!2", D: "~ x ~@10 x ~@19",
  E: "x ~@2 x ~@11 x ~@3 x ~@11 x", F: "~@3 x ~@15 x ~@11 x", G: "~@11 x ~@8 x ~@10 x", H: "~ x ~ x ~ x ~@2",
  I: "x ~@3 x ~@7 x ~@6 x ~@11 x", J: "~@3 x ~@8 x ~@7 x ~@11", K: "x ~@3 x ~@7 x ~@7 x ~@10 x", L: "~@4 x!2 ~ x",
  M: "~ x ~@2 x!2 ~@2", N: "x ~@2 x ~ x ~@2", O: "x ~@3 x ~@10 x ~@3 x ~@12", P: "x!2 ~@2 x!2 ~@2",
  Q: "~@3 x ~@7 x ~@7 x ~@11 x", R: "~@4 x ~@7 x ~@7 x ~@10 x", S: "~@4 x ~@7 x ~@6 x ~@12",
  T: "x ~@3 x ~@7 x ~@6 x ~@4 x ~@6 x", U: "~@3 x ~@11 x ~@3 x ~@11 x", V: "x!4 ~ x ~@2",
  W: "x ~@3 x ~@11 x ~@3 x ~@10 x", X: "~@3 x ~@11 x ~@4 x ~@11", Y: "x ~@11 x ~@6 x ~@11 x", Z: "x!2 ~@2 x!2 ~ x",
  AA: "x!2 ~@3 x ~@2", AB: "x ~@3 x ~@6 x ~@8 x ~@11", AC: "x!2 ~ x!3 ~ x", AD: "x ~@2 x ~@7 x ~@7 x ~@12",
})).gain(0.46)

// drums · rim
const rim = s("rim").struct("<[~ x ~ x]!8 ~@50>").gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B A@2 C D E A@2 E A@3 F A G A@2 H I A@2 H C A@3 J C G A K A L A C H C A@3 F A G A K H M ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "~@8 x ~@16 x ~@6", C: "~@7 x ~@15 x ~@8", D: "~@7 x ~@15 x ~@3 x ~ x ~@2", E: "~@7 x ~@16 x ~@7",
  F: "~@2 x ~ x ~ x!2", G: "~@4 x ~@7 x ~ x!2", H: "~@8 x ~@14 x ~@8", I: "~@8 x ~@15 x ~@2 x ~ x ~@2",
  J: "~@8 x ~@7 x ~@10 x ~@4", K: "~@2 x ~@3 x!2", L: "~@7 x ~@16 x ~@3 x ~ x ~", M: "~@7 x ~@8 x ~@7 x ~@3 x ~ x ~",
})).gain(0.51)

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

// drums · open hat
const open_hat = s("oh").struct("<~@10 A ~@2 B ~@8 C D E C F G H ~@6 I J K L C M N ~@8 C D L O P N ~@2>".pickRestart({
  A: "x", B: "~@15 x", C: "x!8", D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  E: "~@4 x ~@3 x ~@3 x ~@4 x ~@2 x ~@3 x ~@3 x ~@3", F: "x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  G: "~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@4 x ~ x ~", H: "~ x ~@6", I: "~@19 x ~@3 x ~@3 x ~@3 x",
  J: "~@4 x ~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x", K: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2", L: "~ x!7",
  M: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x", N: "~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3 x ~@3 x ~ x ~",
  O: "x ~@3 x ~@3 x ~@2 x ~@3 x ~@4 x ~@3 x ~@3 x ~@3", P: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@2 x ~@3 x ~@3 x",
})).gain(0.46)

// drums · crash
const crash = s("cr").struct("<~@24 A ~@2 B ~@10 A ~@3 A ~@9 A ~@3 A ~>".pickRestart({
  A: "x", B: "~@31 x",
})).gain(0.51)

stack(electric_guitar_clean, bass, kick, rim, snare, hihat, open_hat, crash)

More by Nirvana