Strudelify

I Know a Little

Lynyrd Skynyrd

KeyA minorTempo200 bpm
0:00/0:00
// I Know a Little — Lynyrd Skynyrd
// 200 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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 · rock organ · "ORGAN"
const rock_organ = note("<~@114 A@2 B C D@2 E@2 F@2 G H ~@34>".pickRestart({
  A: "[[g5,g#5,c6]@2 ~ a5 c6 a5 c6 ~@2 c6 ~ c6 ~@2 c6 ~ c6@2 a5 ~ [f5,g5,a5,b5] ~@2 [f#5,a5]@2 f#5 [e5,f5] d5 b4@2 ~@2, ~@8 a5@2 a5@2 ~ a5@2 a5@2 ~@15]/2", // G#maj7 G7 F#m Fmaj7
  B: "d#5@2 e5@5 [g4,a4] ~@2 e5@4 a4 ~, a5@7 ~@2 a5@6 ~, ~@9 d#5@2 ~@5", // Gsus2
  C: "[e5,a5]@2 ~@2 [d5,f#5,a5]@3 a4 [c#5,e5,a5]@3 a4 [d5,f#5,a5]@3 ~", // A5 D A D
  D: "[~@3 [d5,a5,c6] [d5,a5,c6]@2 ~@3 c6@2 [d5,a5,c6] ~@3 [d5,a5]@5 ~ a5 ~@2 [f#5,a5,d6]@3 ~ [g5,b5,d6]@2 ~ d5, ~@3 d6@4 ~ [d5,a5,d6]@2 ~ d6@2 ~@2 [c6,d6]@4 ~ [g5,b5,d6]@3 d5@2 ~@2 d5@2 ~@3, ~@15 e6 ~@16]/2", // D7 D5 D G D5 Csus2 G
  E: "[[d#5,a5]@2 ~ e5@2 a4 ~ [d#5,a5] [e5,a5]@2 ~ a4 [d#5,a5]@2 ~ e5@2 a4 ~@2 e5@2 ~ a4 [d#5,a5]@2 ~ a5 a4 ~@3, ~@3 a5 ~@11 a5 ~@3 [d#5,a5]@3 ~@5 e5@2 ~@3]/2", // D#dim A5 D#dim
  F: "[[a#5,f6] [b5,e6]@5 ~ a#5 b5@5 ~@3 a5@3 ~ [g5,b5,d6]@3 ~ [f#5,a5,d6]@3 ~ [d5,g5,b5,d6]@2 ~@2, [e5,d6]@5 ~@2 [e5,d6,e6]@7 ~ [d5,g#5]@2 ~@2 d5@9 ~@4, ~ f5@2 ~@12 [c6,d6]@4 ~@13]/2", // A#5 E5 G D G E7 Ddim Csus2
  G: "~@3 [f4,a4,b4,d5]@6 ~@2 [f#4,a#4,c5,d#5]@5", H: "~@3 [g4,b4,c#5,e5] ~@3 [g4,b4,c#5,e5] ~@3 [g4,b4,c#5,e5] ~@4",
})).s("gm_rock_organ").gain(0.72).pan(0.7)

// chords · rock organ · "ORGAN"
const rock_organ_2 = note(`<
  ~@5 A ~ B ~ C ~ D@3 E ~ F ~ G ~ F ~ H@2 I J H K I@2 L H M N ~ O ~ P Q R I@3 R S@2 T@2 U@2 T@2 I V W X N ~ Y ~ I J I@2
  Z I@2 AA@2 AB@2 AC@2 T@2 I AD AE AF AG ~ O ~ R I AH I AI AH I AJ AK AL AM AN AO@2 AP J L AQ AR N ~ AS ~ AT ~ AU ~ AU ~
  AV ~@14 AW ~ I@3 J AJ AX AY AZ@2 BA@2 BB@2 BC@2 BD BE BF X N X BG X N ~@3 BH@4
>`.pickRestart({
  A: "~@11 [g4,c#5,f#5,a5] ~@3 [g4,c#5,f#5,a5]", B: "~@11 [g4,c#5,f#5,a5] ~@3 [c5,e5,f#5,a5]",
  C: "~@11 [c5,e5,f#5,a5] ~@3 [g4,c#5,f#5,a5]", D: "[~@15 [d5,f#5,g#5,b5]@2 ~@14 [c5,e5,f#5,a5]@2 ~@15]/3",
  E: "~ [g4,a5]@2 ~@13, [c#5,f#5]@3 ~@13", F: "[g4,c#5,f#5,a5] ~@7", G: "[g4,c#5] ~@7, [f#5,a5] ~@15",
  H: "[c5,e5,f#5,a5] ~@6 [c5,e5,f#5,a5] ~@8", I: "[g4,b4,c#5,e5] ~@6 [g4,b4,c#5,e5] ~@8",
  J: "b4 [g4,c#5,e5] ~@5 [g4,b4,c#5,e5] ~@8", K: "[c5,e5,f#5,a5] ~@6 [c5,e5,a5] ~@8, ~@3 f#5 ~@4",
  L: "[d5,f#5,g#5,b5] ~@6 [d5,f#5,g#5,b5] ~@8", M: "~@3 [f4,a4,b4,d5]@5 ~@3 [f#4,a#4,c5,d#5]@4 ~",
  N: "~@3 [g4,b4,c#5,e5] ~@3 [g4,b4,c#5,e5] ~@3 [g4,b4,c#5,e5] ~@4", O: "[g4,c#5,f#5,a5]@4 ~@2 [g4,c#5,f#5,a5]@5 ~@5",
  P: "[g4,b4,c#5,e5] ~@6 [b4,e5]@2 ~@7, ~@7 [g4,c#5] ~@8", Q: "[b4,c#5] [g4,e5] ~@5 [g4,b4,c#5,e5] ~@8",
  R: "[g4,b4,c#5] e5 ~@5 [g4,b4,c#5,e5] ~@8", S: "[[g4,b4,c#5,e5] ~@7 b4 [g4,c#5,e5] ~@5 [c5,e5,f#5,a5]@14 ~@3]/2",
  T: "[[c5,e5,f#5,a5] ~@6 [c5,e5,f#5,a5] ~@7 [g4,b4,c#5,e5]@14 ~@3]/2", // F#m7b5 C#m7b5
  U: "[[g4,b4,c#5,e5] ~@5 g4 [b4,c#5,e5] ~@7 [c5,e5,f#5,a5]@14 ~@3]/2", V: "[f#5,g#5,b5]@13 ~@3, d5@15 ~",
  W: "~ [c5,f#5,a5]@13 ~@2, e5@3 ~", X: "~@3 [f4,a4,b4,d5]@5 ~@3 [f#4,a#4,c5,d#5]@5",
  Y: "[g4,c#5,f#5,a5]@4 ~@3 [g4,c#5,f#5,a5]@5 ~@4", Z: "[g4,b4] [c#5,e5] ~@5 [g4,b4,c#5,e5] ~@8",
  AA: "[[g4,b4,c#5,e5] ~@14 [c5,e5,f#5,a5]@15 ~@2]/2", // C#m7b5 F#m7b5
  AB: "[[c5,e5,f#5,a5] ~@5 e5 [c5,f#5,a5] ~@7 [g4,b4,c#5,e5]@15 ~@2]/2", // F#m7b5 F#dim C#m7b5
  AC: "[[g4,b4,c#5,e5] ~@6 [g4,b4,c#5,e5] ~@7 [c5,e5,f#5,a5]@14 ~@3]/2", AD: "[d5,f#5,g#5,b5]@7 ~",
  AE: "[c5,e5,f#5,a5]@13 ~@3", AF: "~@3 [f4,a4,b4,d5]@6 ~@2 [f#4,a#4,c5,d#5]@4 ~",
  AG: "~@2 [g4,b4,c#5,e5] ~@3 [b4,c#5,e5] g4 ~@3 [g4,b4,c#5,e5] ~@4", AH: "~ [g4,b4,c#5,e5] ~@5 [g4,b4,c#5,e5] ~@8",
  AI: "[g4,b4] [c#5,e5] ~@5 [g4,b4,c#5,e5] ~@3 [a4,d5,f#5]@4 ~", AJ: "[b4,c#5,e5] g4 ~@5 [g4,b4,c#5,e5] ~@8",
  AK: "[c5,e5,f#5,a5]@7 ~", AL: "[c5,e5,f#5,a5] ~@7 [e5,f#5,a5] c5 ~@6", AM: "[g4,b4,c#5,e5]",
  AN: "~@3 [g4,b4,c#5,e5] ~@4 b4 [g4,c#5] ~@6, ~@9 e5@2 ~@5", // C#m7b5 Gdim
  AO: "[[c5,e5,f#5,a5]@20 ~@3 [c5,e5,f#5,a5] ~@3 [c5,e5,f#5,a5] ~@4]/2", AP: "[g4,b4,c#5,e5]@7 ~",
  AQ: "~ [c5,e5,f#5,a5] ~@5 [c5,e5,f#5,a5] ~@8", AR: "~@3 [f4,a4,b4,d5]@4 ~@4 [f#4,a#4,c5,d#5]@4 ~",
  AS: "~ a5@3 ~@3 [c#5,a5]@4 ~@5, [g4,c#5,f#5]@3 ~@3 [g4,f#5]@4 ~@6", AT: "[g4,c#5,f#5,a5] ~@4 [g4,c#5,f#5,a5] ~@10",
  AU: "[g4,c#5,f#5,a5] ~@3 [g4,c#5,f#5,a5] ~@11", AV: "[b4,c#5,e5] g4 ~@2 [g4,b4,c#5,e5] ~@11",
  AW: "[g4,c#5,f#5,a5]@4 ~@3 [g4,c#5,f#5,a5]@4 ~@5", AX: "[g4,b4,e5] c#5 ~@5 [g4,b4,c#5,e5] ~@8",
  AY: "[g4,b4,c#5,e5] ~@15", AZ: "[~@15 [c5,e5,f#5,a5]@16 ~]/2", BA: "[[c5,e5,f#5,a5] ~@14 [g4,b4,c#5,e5]@15 ~@2]/2",
  BB: "[[b4,c#5] [g4,e5] ~@5 [g4,c#5,e5] ~@7 [c5,e5,f#5,a5]@17, ~@7 b4@2 ~@23]/2", // Bsus2 C C#dim F#m7b5
  BC: "[[c5,e5,f#5,a5] ~@5 e5 [c5,f#5,a5] ~@7 [g4,b4,c#5,e5]@16 ~]/2", BD: "[b4,e5] [g4,c#5] ~@5 [g4,b4,c#5,e5] ~@8",
  BE: "[d5,f#5,g#5,b5]@15 ~", BF: "~ [c5,e5,f#5,a5]@12 ~@3",
  BG: "~@3 [g4,b4,c#5,e5] ~@3 [g4,b4,c#5,e5] ~@2 [b4,c#5] [g4,e5] ~@4", // C#m7b5 Bsus2 C
  BH: "[~@8 [g4,c#5,f#5,a5] ~@6 [g4,c#5,f#5,a5]@37 ~@12]/4", // F#m
})).s("gm_rock_organ").gain(0.56).pan(0.4)

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@5 A@2 B@2 C@2 D@3 E ~ E ~ E ~ E F G H I J G K I L M N O P ~ Q ~ R J R I@2 J S T@2 U@2 V@2 W@2 X Y Z O AA ~ AB ~ I@2
  AC AD I@3 AE@2 AF@2 AG@2 AH@2 L M AI O AA ~ Q ~ I J I AJ I J I F AK AL I J AM AN I J AO G AP AA ~ Q ~ AQ ~ AR ~ AR ~
  AS F AT AN I J G AL I L M AU O AA ~ Q ~ I J I J AV@2 AW AX AY U@2 AZ AY BA@2 L Y H AP AA O AA O AA ~@3 BB@4
>`.pickRestart({
  A: "[~@11 a1@2 ~@2 a1@3 ~@14]/2", B: "[~@11 a1@3 ~ d2@3 ~@14]/2", C: "[~@11 d2@3 ~ a1@3 ~@14]/2",
  D: "[~@11 a1@3 ~ e2@3 ~@9 e2@3 ~ d2@3 ~@14]/3", E: "a1@3 ~@13", F: "a1 b1 c2 c#2", G: "d2 c2 b1 a1",
  H: "d2@4 c2@4 b1@4 a#1@3 ~", I: "a1@4 c#2@4 e2@4 f#2@3 e2", J: "a2 g2 f#2 e2", K: "d2@4 c2@4 b1@3 ~ a#1@4",
  L: "a2 g2 f#2 f2", M: "e2 d2 c#2 b1", N: "d2@2 f#1@2 b1@2 a1 ~", O: "~@3 g1@5 ~@3 g#1@5",
  P: "~@3 a1@2 ~@2 a1@2 ~@2 a1@3 ~@2", Q: "a1@4 ~@3 a1@5 ~@4", R: "a1@4 c#2@4 e2@4 f#2@2 ~ e2",
  S: "a1@4 c#2@4 e2@3 ~ f#2@2 ~ e2", T: "[a1@4 b1@4 c2@4 c#2@2 ~ d2@5 c2@4 b1@4 a1@4]/2",
  U: "[d2@4 c2@4 b1@4 a#1@2 ~ a1@5 c#2@4 e2@4 f#2@3 e2]/2", V: "[a1@4 b1@4 c2@3 ~ c#2@3 d2@5 c2@4 b1@4 a1@4]/2",
  W: "[d2@4 f#1@4 g1@3 ~ g#1@2 ~ a1@5 c#2@4 e2@4 f#2@2 ~ e2]/2", X: "a2@4 g2@4 f#2@4 f2@3 ~",
  Y: "e2@4 g#1@4 b1@4 e2@3 b1", Z: "d2 f#1 g1 a1", AA: "~@3 a1@2 ~@2 a1@2 ~@2 a1@2 ~@3", AB: "a1@4 ~@3 a1@4 ~@5",
  AC: "a1 c#2 e2 f#2, ~@12 e2 ~@3", AD: "a1@2 ~ a1 c#2@4 e2@4 f#2@3 e2",
  AE: "[a1@4 b1@3 ~ c2@3 ~ c#2@2 ~ d2@5 c2@4 b1@4 a1@3 ~]/2",
  AF: "[d2@4 f#1@3 ~ g1@3 ~ g#1@2 ~ a1@5 c#2@4 e2@4 f#2@4]/2", AG: "[a2@2 ~ a2 g2@4 f#2@4 e2@3 d2@5 c2@4 b1@4 a1@4]/2",
  AH: "[d2@4 c2@4 b1@4 a#1@3 a1@5 c#2@4 e2@4 f#2@3 e2]/2", AI: "d2@4 f#1@4 a1@4 b1@3 ~",
  AJ: "a2@2 ~ a2 g2@4 f#2@4 e2@4", AK: "d2 f#1 b1 a1", AL: "d2 c2 b1 a#1", AM: "d2@2 ~ d2 c2@4 b1@4 a1@4",
  AN: "d2 f#1 g1 g#1", AO: "e2@4 b1@4 g#1@4 e2@3 ~", AP: "~@3 g1@6 ~@2 g#1@5", AQ: "a1 ~ a1 ~@5",
  AR: "a1@2 ~@2 a1@3 ~@9", AS: "a1@3 ~ a1@2 ~@10", AT: "d2@2 ~ d2 c2@4 b1@3 ~ a1@4", AU: "d2 f#1 a1 b1",
  AV: "[a1@4 c#2@4 e2@4 f#2@3 ~ a1@4 c#2@4 e2@4 f#2@3 e2, ~@15 e2@2 ~@15]/2", AW: "a1 ~@7",
  AX: "~@4 b1@4 c2@4 c#2@2 ~ d2", AY: "~ c2 b1 a1", AZ: "a2@4 g2@4 f#2@4 e2@3 d2",
  BA: "[d2@4 f#1@4 g1@4 g#1@3 a1@5 c#2@4 e2@4 f#2@3 e2]/2", BB: "[~@8 a1@2 ~@5 a1@36 ~@13]/4",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · electric guitar jazz · "ElecGtr"
const electric_guitar_jazz = note(`<
  ~@4 A@2 B@2 C@2 D@2 E F G@2 H I J K L M N O P Q R S N T U@2 V W X Y X Z@7 AA@2 AB@2 AC@2 AB@2 AD AE AF V W X Y X Z@7
  AA@2 AB@2 AC@2 AB@2 AD AE AF V W X Y X Z@7 AG AF@2 Z@2 AF@2 Z@2 AE AF V W X Y X AH AI AJ AK AL AM AN AO AP AF Z@2 AF@2
  Z@2 AE AF V W X Y X Z@6 AQ AR@2 AB@2 AC@2 AB@2 AD AE AF V W V W V W X ~ AS AT@4
>`.pickRestart({
  A: "[~@3 c#4@2 e4 ~ f#4 a4@2 ~ a4@2 ~@2 c#4@2 e4 ~ f#4 a4@2 ~ a4 ~@3 [c#4,f#4,a4] ~@3 [c#4,f#4,a4]]/2", // F#m
  B: "[~@3 c#4@2 e4 ~ f#4 a4@2 ~ a4@2 ~@2 c#4@2 e4 ~ f#4 a4@2 ~ a4 ~@3 [c#4,f#4,a4] ~@3 [c4,e4,a4]]/2", // F#m Am
  C: "[~@3 f#4@2 f#4@3 a4@3 a4 ~@3 f#4@2 f#4@3 a4@3 a4 ~@3 [c4,e4,a4] ~@3 [c#4,f#4,a4]]/2", // Am F#m
  D: "[~@3 c#4@2 e4 ~ f#4 a4@2 ~ a4@2 ~@2 c#4@2 e4 ~ f#4 a4@2 ~ a4 ~@3 [c#4,f#4,a4] ~@3 [d4,f#4,b4]]/2", // F#m Bm
  E: "~@3 f#4@4 b4 b4@3 b4 ~@3 [c4,e4,a4]", F: "~@3 e4@4 a4 a4@3 a4 ~@4",
  G: "[b4@4 f#4@4 d4@4 a3@3 c4@5 a3@3 e3 d3@3 c3@4 ~]/2", H: "~@3 a4 f#4@4 a4@3 a4 ~@3 a4", I: "d4@4 a3@3 c4@6 ~@2 e4",
  J: "b4@3 b4@2 e4@2 a4 f#4@3 f#4@2 c4@2 e4", K: "d4@4 a3@3 a3@5 ~@3 e4", L: "b4@3 e4 c5@3 f4 c#5@3 f#4 d5@2 ~ g4",
  M: "e5@4 c5@2 ~ a4@5 g4@3 e4", N: "~ c5@3", O: "a4@4 f#4@3 e4 a4@4 f#4@3 e4", P: "a4@2 ~ b4@4 ~@4 [f#4,a4] d4@4",
  Q: "c4@5 ~@11", R: "~@3 d4@4 a3 c4@6 ~@2", S: "~@3 d4 e4 g4@2 c5 a4@5 ~@3", T: "a4@3 f#4 a4@4 b4@4 ~@4",
  U: "[~@7 f5 f5@5 ~@2 d5@4 ~ d5@3 ~ c5 a4@7, ~@3 d5@10 ~@6 c5@2 ~@11]/2",
  V: "~@3 [f3,b3,e4,g4]@4 ~@4 [f#3,c4,f4,g#4]@4 ~, g2@7 ~ g#2@6 ~@2", // Em Fm
  W: "a2@3 [g3,c#4,f#4,a4]@2 ~@2 [a2,g3,c#4,f#4,a4]@2 ~@2 [a2,g3,c#4,f#4,a4]@2 ~@3", X: "a3@3 g3 e3@3 d3 c3@3 a3@4 ~",
  Y: "[a2,e3]@4 ~@3 [a2,e3]@5 ~@4", Z: "a2@3 e3 c3@4 a2@3 e3 c3@4, e3 ~@3 e3 ~@3",
  AA: "[a2@3 e3 c3@4 a2@3 e3 c3@2 ~ [d3,a3]@4 a3 [d3,b3]@3 a3 [d3,a3]@3 a3 [d3,b3]@3 a3, e3 ~@3 e3 ~@11]/2", // D5 G D5 G
  AB: "[[f#3,c4,e4,a4]@4 ~@3 [f#3,c4,e4,a4]@5 ~@3 [a2,e3]@4 e3 c3@4 a2@3 e3 c3@4, ~@12 e3 ~@3]/2", // F#m7b5 A5
  AC: "[[g3,c#4,f#4,a4]@4 ~@3 [g3,c#4,f#4,a4]@6 ~@2 [d3,a3]@4 a3 [d3,b3]@3 a3 [d3,a3]@3 a3 [d3,b3]@3 a3]/2", // F#m D5 G D5 G
  AD: "[g3,c#4,f#4,a4]@4 ~@3 [g3,c#4,f#4,a4]@6 ~@3", AE: "[e3,b3]@3 b3 [e3,c#4]@3 b3 [e3,b3]@3 b3 [e3,c#4]@3 b3",
  AF: "[d3,a3]@3 a3 [d3,b3]@3 a3 [d3,a3]@3 a3 [d3,b3]@3 a3", AG: "a2@3 e3 b2@4 c3@3 ~ c#3@3 ~, e3 ~@7",
  AH: "~@7 [d4,f#4] a4@4 f#4@2 ~@2", AI: "a4@4 f#4@3 b4@7 ~@2", AJ: "~@4 c4@4 a3 ~@2 g3 ~ e3 ~@2",
  AK: "d#3 ~@2 d3 ~ c3@2 ~ a3@7 ~", AL: "~ f5@3", AM: "d5 ~ e5 ~ b4@3 ~",
  AN: "e5 e4 ~ e4 d#5 e4 ~ e4 d5 e4 ~ e4 c5 e4 ~ e4", AO: "a4 e4 ~ e4 b4 e4 ~ e4 c5 e4 ~ e4 c#5 e4 ~ e4", AP: "d5@3 ~",
  AQ: "[a2,e3] ~@3", AR: "[a2@4 b2@3 a2 c3@3 a2 c#3@2 ~ [d3,a3]@4 a3 [d3,b3]@3 a3 [d3,a3]@3 a3 [d3,b3]@3 a3]/2",
  AS: "~@8 a3@3 g3 e3@3 d3", AT: "[c3@3 a3@4 ~ [a2,e3,a3]@4 ~@3 [a2,e3,a3]@35 ~@14]/4",
})).s("gm_electric_guitar_jazz").gain(0.64).pan(0.6)

// other · distortion guitar · "SoloGtr"
const distortion_guitar = note("<~@83 A@4 B@2 C D@2 E F G H I@2 J K L@2 ~@58>".pickRestart({
  A: "[d4@20 f4@2 ~@2 d4@4 a3@2 ~ c4@7 ~@2 g3@3 d3@4 c3@7 ~@6 a4@3 e4, ~@59 e4@3 ~@2]/4",
  B: "[b4@10 ~ f#4 b4@7 f#4 b4@2 ~@2 b4@6 ~@2]/2", C: "~@4 c5@8 a4@3 f#4", D: "[b4@3 ~ b4@4 ~@4 d5@15 f5 d5@4]/2",
  E: "d5@3 a4@9 ~@4", F: "~@3 [d4,f#4] a4@4 b4@6 ~@2", G: "~@3 [f#4,a4] d4@4 c4@6 ~@2",
  H: "~@3 f5 f5@2 ~ f5 ~@3 f5 f5@2 ~ f5, d5!2", I: "[~@3 f5 f5@2 ~ f5 d5@4 a4@2 ~ g5@11 ~ f#5@4 f#5, d5 ~@3]/2",
  J: "e5@3 d5 e5@2 ~ c5 a4@4 ~@3 e4", K: "b4@3 b4@2 e4@2 a4 f#4@3 f#4@2 c4@2 e4", L: "[d4@4 a3@3 b3@5 a3@9 ~@11]/2",
})).s("gm_distortion_guitar").gain(0.8).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A ~ A ~ A ~ A@2 ~ B C B C B C B ~ D@11 E D F G D@7 H I J I J I J I F D@3 E D F G D@7 H I J I J I J I F D@3 E D F G
  D@19 E D F G K ~ K C K ~ K ~ D@11 E D F G D@6 B A I J I J I J I F D@3 E D E D E ~@3 L ~@2 M
>`.pickRestart({
  A: "~@11 x ~@3 x", B: "x", C: "~@11 x ~@4", D: "x!2", E: "x ~@2 x ~@3 x ~@3 x ~@4", F: "x ~@6 x ~@8",
  G: "x ~@10 x ~@4", H: "x ~@7 x ~@6 x", I: "~ x", J: "x ~@6 x ~@7 x", K: "x!2 ~@2", L: "~@8 x ~@2 x!2 ~@2 x",
  M: "~@3 x ~@12",
})).gain(0.72)

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

// drums · hihat
const hihat = s("hh").struct(`<
  A@5 B A B A B A B@2 A@9 C D@9 ~@2 D E ~ C D@6 F C G C G C G C E D@2 ~@2 D E ~ C D@6 F C G C G C G C E D@2 ~@2 D E ~@21
  D E ~ H A H A H A H A C D@9 ~@2 D E ~ C D@5 A@2 C G C G C G C E D@2 ~@6 A@3 B ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "~@3 x!2 ~@2 x!2 ~@2 x!2 ~@2 x", D: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2 x",
  E: "~@3 x!2 ~@6 x!2 ~@2 x", F: "x ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@3", G: "~@3 x!2 ~@6 x!2 ~@3", H: "~@3 x",
})).gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5 A ~ A ~ A ~ A@2 ~ B ~ B ~ B ~ B ~@14 C ~@10 C ~ C ~ C ~ C ~@5 C ~@10 C ~ C ~ C ~ C ~@5 C ~@22 C ~ D ~ D ~ D ~ D
  ~@14 C ~@7 B ~@2 C ~ C ~ C ~ C ~@15
>`.pickRestart({
  A: "~@11 x ~@3 x", B: "x", C: "x ~@6 x ~@8", D: "x!2 ~@2",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@159 [~ x ~@14]>").gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@22 A ~@9 B ~@4 A ~@6 C ~ C ~ C ~ C ~@4 B ~@4 A ~@6 C ~ C ~ C ~ C ~@4 B ~@22 B ~@12 A ~@9 B ~@4 A ~@6 C ~ C ~ C ~ C
  ~@4 B ~ B ~ B ~@4 D ~@3
>`.pickRestart({
  A: "x", B: "~@3 x ~@7 x ~@4", C: "~@15 x", D: "~@8 x ~@6 x",
})).gain(0.8)

// drums · ride
const ride = s("rd").struct("<A@5 B A B A B A B@2 C ~@69 D@18 ~@59>".pickRestart({
  A: "x ~@3 x ~@2 x!2 ~@3 x ~@2 x", B: "x ~@3 x ~@2 x!2 ~@7", C: "x ~@3 x ~@2 x!2 ~@3 x ~@3", D: "x!4",
})).gain(0.64)

stack(
  rock_organ, rock_organ_2, bass, electric_guitar_jazz, distortion_guitar, kick, snare, hihat, open_hat, mid_tom, crash,
  ride
)

More by Lynyrd Skynyrd