Strudelify

Theme from "Come September"

The Ventures

KeyE♭ majorTempo218 bpm
0:00/0:00
// Theme from "Come September" — The Ventures
// 218 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 140 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(218/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 · "Lead"
const electric_guitar_clean = note(`<
  ~@3 A B@2 C@2 D@2 E@6 F@2 G@5 H@4 I@2 J K@2 L@2 M@4 N@2 O@2 P@8 Q@7 ~ R S@3 T@2 U V W X Y@4 Z@2 AA@2 AB@2 AC@2 AD AE
  AF@3 AG@2 ~ AH AI AJ@2 AK AL AM@7 AN@8 AO@4 AP@2 AQ@2 ~ AR AS@4 AT@3 AU AV AW AX@2 AY@3 AZ@2 BA@2 BB@2
>`.pickRestart({
  A: "~@4 g3 f3 eb3 d3", B: "[~@11 c4@3 g3@2, c3, ~ eb3@3, ~@4 g3@3 ~]/2",
  C: "[~@8 c4@3 ab3@3 f3@2, f3@7 ~, ~@4 ab3@7 ~@5]/2", D: "[g3@10 f3!2 eb3@2 d3!2]/2",
  E: "[~ eb3@2 d3@2 c3@16 ~@4 g3@2 f3@2 eb3@2 d3@2 ~@22 c4@6 g3@4 ~@17 c4@5 ab3@6 f3@3, ~@33 c3@32 ~@31, ~@41 eb3@24 f3@28 ~@3, ~@49 g3@12 ~@12 ab3@14 ~@9]/6",
  F: "[~ g3@20 ~ f3@2 f3@2 eb3@4 d3@2]/2",
  G: "[d3 eb3 d3 c3@8 ~@2 c4@2 c4@2 c4@3 c4 c4@2 c4@2 c4@3 c4 c4@2 [g3,e4]@2 [f3,d4]@2 [e3,c4]@2 [e3,b3] c4@2]/5", // C Dm C E5
  H: "[b3@6 a3@4 ~ g3@4 e3@4 f3@2 gb3@2 g3@28 ~@13]/4", I: "[~@11 [b3,d4]@4 e4@4 [b3,f4]@4 e4@4 [b3,f4]@2 e4@3]/2",
  J: "~ [b3,g4]@6 ~@2 e4@2 [b3,f4]@2 e4@3", K: "[~ [b3,g4]@6 ~@3 e4@2 [b3,f4]@2 e4@4 [b3,g4]@6 ~@2 e4@2 [b3,f4]@4]/2",
  L: "[e4@4 d4 e4 d4 ~ c4@16 ~@4 g3@2 f3@2]/2",
  M: "[eb3@2 d3@2 ~@22 c4@6 g3@4 ~@17 c4@6 ab3@5, ~ c3@8 ~@7, ~@3 eb3@6 f3@7, ~@21 g3@11 ~@12 ab3@14 ~@6]/4",
  N: "[~ f3@4 g3@20 f3@2 f3@2 eb3@3]/2", O: "[~ d3@2 d3@2 eb3@2 d3@2 c3@16 ~@4 g3@2 f3]/2",
  P: "[~ eb3@2 d3@2 ~@23 c4@6 g3@4 ~@16 c4@6 ab3@6 f3@4 g3@20 f3@2 f3@2 eb3@4 d3@2 d3@2 eb3@2 d3@2 c3@16 ~@4 c4@2, ~@5 c3@32 ~@91, ~@13 eb3@24 ~ f3@28 ~@62, ~@11 g3@6 ~@6 ab3@7 ~@34]/8",
  Q: "[~@2 c4@4 c4@6 c4@2 ~ c4@4 c4@4 c4@6 c4@2 c4@4 [g3,e4]@4 [f3,d4]@4 [e3,c4]@4 [e3,b3]@2 c4@4 b3@6 a3@4 g3@4 e3@4 f3@2 gb3@2 g3@28 ~@9]/7", // C Dm C E5
  R: "[b3,d4] e4 [b3,f4] e4", S: "[b3,f4] e4@2 [b3,g4]@3 ~ e4", T: "[[b3,f4]@4 e4@4 d4 ~ e4 d4 c4@16 ~@4]/2",
  U: "g3@2 f3@2 eb3@2 d3@2 ~ c3@2 ~@3 eb3@2", V: "~@3 g3@2 ~@11", W: "~ c4@2 ~@2 g3@2 ~@2 f3@2 ~@3 ab3@2",
  X: "~@2 c4 ~@5", Y: "[~ ab3@2 ~@2 f3@2 ~@2 g3@20 f3@2 f3@2 eb3@4 d3@2 d3@2 eb3@2 d3@2 c3@16 ~@3]/4",
  Z: "[~@2 g3@2 f3@2 eb3@2 d3@2 c3@2 ~@3 eb3@2 ~@3 g3@2 ~@10]/2",
  AA: "[~@2 c4@2 ~@2 g3@2 ~@2 f3@2 ~@3 ab3@2 ~@4 c4@2 ~@9]/2", AB: "[~ ab3 ~ f3 ~ g3@10 f3]/2",
  AC: "[f3@2 ~ eb3@4 d3@2 d3@2 e3@2 d3@2 c3@16 ~]/2", AD: "~@3 c4@4 c4@4 c4@5", AE: "~ c4@2 c4@4 c4@4 c4@5",
  AF: "[~ c4@2 c4@4 [g3,e4]@4 [f3,d4]@4 [e3,c4]@4 [e3,b3]@2 c4@4 b3@6 a3@4 g3@4 e3@4 f3@2 gb3@2 ~]/3", AG: "[g3@7 ~]/2",
  AH: "~ [b3,d4] e4 [b3,f4]", AI: "e4@2 [b3,f4] e4@2 [b3,g4]@3", AJ: "~ e4 [b3,f4] e4@2 [b3,g4]@3",
  AK: "~@3 e4@2 [b3,f4]@4 e4@4 d4 e4 d4", AL: "~ c4@15",
  AM: "[~@5 g3@2 f3@2 eb3@2 d3@2 ~@22 c4@6 g3@4 ~@17 c4@5 ab3@6 ~ f3@4 g3@20 f3@2 f3@2 eb3@4 d3@2 d3@2 eb3@2, ~@13 c3@32 ~@67, ~@21 eb3@24 f3@28 ~@39, ~@29 g3@12 ~@12 ab3@14 ~@45]/7",
  AN: "[d3@2 c3@16 ~@4 g3@2 f3@2 eb3@2 d3@2 ~@23 c4@5 g3@4 ~@17 c4@6 ab3@6 f3@4 g3@20 f3@2 f3@2 eb3@4 d3@2 d3@2 eb3, ~@15 c3@16 ~@33, ~@19 eb3@12 f3@14 ~@19, ~@47 g3@11 ~@13 ab3@14 ~@43]/8",
  AO: "[~ d3@2 c3@16 ~@4 c4@4 c4@4 c4@6 c4@2 c4@4 c4@4 c4@6 ~ c4@2 c4@4 [g3,e4]@4]/4", // C
  AP: "[[f3,d4]@2 [e3,c4]@2 [e3,b3] c4@2 b3@3 a3@2 g3@2 e3@2]/2", AQ: "[f3 gb3 g3@14]/2", AR: "~@2 [b3,d4] e4",
  AS: "[~ [b3,f4]@4 e4@4 [b3,f4]@2 e4@4 [b3,g4]@6 ~@2 e4@2 [b3,f4]@2 e4@4 [b3,g4]@6 ~@2 e4@2 [b3,f4]@2 e4@4 [b3,g4]@6 ~@2 e4@2 [b3,f4]@4 e4@3]/4", // Bdim Em Bdim Em Bdim Em Bdim
  AT: "[~ d4 e4 ~ d4 c4@16 ~@4 g3@2 f3@2 eb3@2 d3@2 c3@2 ~@4 eb3@2 ~@3 g3@2 ~@2]/3", AU: "~@5 c4 ~ g3",
  AV: "~@2 f3@2 ~@3 ab3@2 ~@3 c4@2 ~@2", AW: "~@5 ab3 ~ f3", AX: "[~ g3@10 f3!2 eb3@2 d3]/2",
  AY: "[d3@2 eb3@2 d3@2 c3@16 ~@5 g3@2 f3@2 eb3@2 d3@2 c3@2 ~@3 eb3@2 ~@3 g3@2 ~]/3",
  AZ: "[~@11 c4@2 ~@2 g3@2 ~@2 f3@2 ~@3 ab3@2 ~@4 c4@2]/2", BA: "[~@11 ab3@2 ~@2 f3@2 ~@2 g3@2 ~@4 b3@2 ~@3 d4@2]/2",
  BB: "[~@7 f3@2 f3@2 eb3@2 eb3@2 d3@2 d3@2 c3@2 ~@3 c3@2 ~@6]/2",
})).s("gm_electric_guitar_clean").gain(0.4)

// chords · electric guitar clean · "Lead" · soft notes
const electric_guitar_clean_2 = note("<~@19 A@3 ~@27 B@4 ~@27 C D E ~@27 F@3 ~@27>".pickRestart({
  A: "[~@5 e3@2 e3@2 e3@3 e3 e3@2 e3@2 e3@3 e3 e3@2 ~]/3",
  B: "[~@14 e3@4 e3@4 e3@6 e3@2 ~ e3@4 e3@4 e3@6 e3@2 e3@4 ~@13]/4", C: "~@3 e3@4 e3@4 e3@5",
  D: "~ e3@2 e3@4 e3@4 e3@5", E: "~ e3@2 e3@4 ~@9", F: "[~@7 e3@4 e3@4 e3@6 e3@2 e3@4 e3@4 e3@6 ~ e3@2 e3@4 ~@4]/3",
})).s("gm_electric_guitar_clean").gain(0.25)

// other · electric guitar clean · "2nd Lead"
const electric_guitar_clean_3 = note("<~@25 A@4 ~@26 B@4 ~@26 C D E F ~@27 G H I ~@21>".pickRestart({
  A: "[~@3 f4@2 e4@2 d4@12 d4@2 c4@2 b3@12 b3@2 a3@2 g3@12 ~@13]/4",
  B: "[~@7 f4@2 e4@2 d4@12 d4@2 c4@2 b3@12 b3@2 a3@2 ~ g3@12 ~@8]/4", C: "~@6 f4 e4", D: "d4@6 d4 c4", E: "b3@6 b3 a3",
  F: "g3@3 ~", G: "f4 e4 d4@6", H: "d4 c4 b3@6", I: "b3 a3 g3@6",
})).s("gm_electric_guitar_clean").gain(0.32)

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

// chords · acoustic guitar steel · "Rhythm"
const acoustic_guitar_steel = note(`<
  ~@4 A@2 B@2 C@2 D E@3 F@2 G H I J@4 K@8 L M N O P Q R S T U V@3 W X Y Z AA AB@2 AC@3 AD AE@2 AF C@4 AG AH AI AJ AK AL
  AM AN AO AP AQ@2 AR@2 AS H AT@7 L@7 T AU ~ V@2 AV AW Z AX AY@4 AZ BA AE BB@2 AC@2 BC@3 C@4 AN@4 BD BE BF ~ BG ~ H@2 BH
  BI@2 ~ BJ ~ BK BL@2
>`.pickRestart({
  A: "~@2 [c4,eb4,g4] ~@3 [c4,eb4,g4] ~", B: "~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~", C: "~@2 [g3,b3,f4] ~@3 [g3,b3,f4] ~",
  D: "~ [c4,eb4,g4]@2 ~@2 [c4,eb4,g4]@2 ~@6 [c4,eb4,g4]@2 ~", E: "~@5 [c4,eb4,g4]@2 ~@6 [c4,eb4,g4]@2 ~",
  F: "~@5 [ab3,c4,f4]@2 ~@6 [ab3,c4,f4]@2 ~", G: "~@5 [g3,b3,f4]@2 ~@7 [g3,b3,f4]@2",
  H: "~@3 [g3,b3,f4] ~@3 [g3,b3,f4]", I: "~ [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4]", J: "~@3 [c4,e4,g4] ~@3 [c4,e4,g4]",
  K: "[~@6 [c4,e4,g4]@2 ~@7 [c4,e4,g4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@7 [g3,b3,f4]@2 ~@6]/8", // C G7
  L: "[g3,b3,f4] ~@3 [g3,b3,f4] ~@3", M: "[g3,b3,f4] ~@3 [c4,e4,g4] ~@3", N: "[c4,e4,g4] ~ [c4,eb4,g4] ~@5",
  O: "~@4 [c4,eb4,g4] ~@3", P: "[c4,eb4,g4] ~@3 [c4,eb4,g4] ~@3", Q: "[c4,eb4,g4] ~@3 [ab3,c4,f4] ~@3",
  R: "[ab3,c4,f4]@2 ~@7 [ab3,c4,f4]@2 ~@5", S: "~ [ab3,c4,f4]@2 ~@6 [g3,b3,f4]@2 ~@5",
  T: "~ [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@5", U: "~ [g3,b3,f4]@2 ~@2 [c4,eb4,g4]@2 ~@2 [c4,eb4,g4]@2 ~@5",
  V: "~ [c4,eb4,g4]@2 ~@6 [c4,eb4,g4]@2 ~@5", W: "~ [c4,eb4,g4] ~@3 [ab3,c4,f4] ~@2",
  X: "~ [ab3,c4,f4] ~@3 [ab3,c4,f4] ~@2", Y: "~ [ab3,c4,f4] ~@3 [g3,b3,f4] ~@2", Z: "~ [g3,b3,f4] ~@3 [g3,b3,f4] ~@2",
  AA: "~ [g3,b3,f4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~@2", AB: "~ [c4,e4,g4] ~@3 [c4,e4,g4] ~@2",
  AC: "~@3 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@3", AD: "~@3 [c4,e4,g4]@2 ~@6 [g3,b3,f4]@2 ~@3",
  AE: "~@3 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@3", AF: "~@3 [g3,b3,f4]@2 ~@7 [g3,b3,f4]@2 ~@2",
  AG: "~@2 [g3,b3,f4] ~@3 [c4,e4,g4] ~", AH: "~@2 [c4,e4,g4] ~ [c4,eb4,g4] ~@3",
  AI: "~@9 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2", AJ: "~@3 [c4,eb4,g4]@2 ~@11", AK: "~@9 [f4,ab4,c5]@2 ~@3 [f4,ab4,c5]@2",
  AL: "~@2 [f4,ab4,c5] ~@5", AM: "~@13 [g3,b3,f4]@2 ~", AN: "~@5 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~",
  AO: "~@5 [g3,b3,f4]@2 ~@2 [c4,eb4,g4]@2 ~@2 [c4,eb4,g4]@2 ~", AP: "~@3 [c4,eb4,g4] ~@3 [c4,eb4,g4]",
  AQ: "[~@6 [c4,eb4,g4]@2 ~@2 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2 ~@10]/2", // Cm
  AR: "[~@10 [f4,ab4,c5]@2 ~@3 [f4,ab4,c5]@2 ~@4 [f4,ab4,c5]@2 ~@9]/2", AS: "~@7 [g3,b3,f4]",
  AT: "[~@7 [g3,b3,f4]@2 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@7]/7", // G7 C
  AU: "~ [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@2 [c4,eb4,g4]@2 ~", AV: "~ [ab3,c4,f4]@2 ~@6 [ab3,c4,f4]@2 ~@5",
  AW: "~ [ab3,c4,f4]@2 ~@7 [ab3,c4,f4]@2 ~@4", AX: "~ [g3,b3,f4] ~@3 [g3,b3,f4] ~ [c4,eb4,g4]",
  AY: "~ [c4,eb4,g4] ~@3 [c4,eb4,g4] ~@2", AZ: "~@2 [ab3,c4,f4]@2 ~@7 [ab3,c4,f4]@2 ~@3",
  BA: "~@3 [ab3,c4,f4]@2 ~@6 [ab3,c4,f4]@2 ~@3", // Fm
  BB: "[~@3 [g3,b3,f4]@2 ~@6 [g3,b3,f4]@2 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~@3]/2", // G7 C
  BC: "~@2 [c4,e4,g4] ~@3 [c4,e4,g4] ~", BD: "~@5 [c4,e4,g4]@2 ~@6 [c4,e4,g4]@2 ~", BE: "~ [c4,eb4,g4]@2 ~@13",
  BF: "~ [c4,eb4,g4]@2 ~@4 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2 ~@2", // Cm
  BG: "~@2 [f4,ab4,c5]@2 ~@3 [f4,ab4,c5]@2 ~@3 [f4,ab4,c5]@2 ~@2", BH: "~ [c4,eb4,g4] ~ [c4,eb4,g4] ~@3 [c4,eb4,g4]",
  BI: "[~@6 [c4,eb4,g4]@2 ~@7 [c4,eb4,g4]@2 ~@2 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2 ~]/2", // Cm
  BJ: "~@3 [f4,ab4,c5]@2 ~@3 [f4,ab4,c5]@2 ~@4 [f4,ab4,c5]@2", BK: "~@3 [g3,b3,f4]@2 ~@4 [g3,b3,f4]@2 ~@3 [g3,b3,f4]@2",
  BL: "[~@7 [g3,b3,f4]@2 ~@2 [g3,b3,f4]@2 ~@2 [g3,b3,f4]@2 ~@2 [c4,eb4,g4]@2 ~@3 [c4,eb4,g4]@2 ~@6]/2", // G7 Cm
})).s("gm_acoustic_guitar_steel").gain(0.12).pan(0.2)

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

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

// drums · ride
const ride = s("rd").struct(`<
  A@10 B@6 C A@6 D B@6 E A@6 F B@6 G A@5 H B@6 I A@6 J ~@3 K B@2 L M ~@3 N A O B@5 P A@6 Q B@6 R A@6 S B@6 T A@6 B@6 U
  ~@3 G A@2 D V ~@6
>`.pickRestart({
  A: "x!8", B: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~ x ~ x ~ x ~@2 x ~",
  D: "x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x", E: "~ x ~ x ~ x ~@2 x ~ x ~ x ~ x ~", F: "x ~ x ~@2 x ~ x ~ x ~ x ~ x ~ x",
  G: "~ x!7", H: "x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x", I: "~ x ~ x ~ x ~ x ~ x ~@2 x ~ x ~", J: "x ~ x ~ x ~ x ~@2 x ~@6",
  K: "~@9 x ~ x ~ x ~ x", L: "~ x ~ x ~@2 x ~ x ~ x ~ x ~ x ~", M: "x!6 ~@2", N: "~@5 x!3",
  O: "x ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x", P: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", Q: "x ~ x ~ x ~ x ~ x ~ x ~@2 x ~ x",
  R: "~ x ~ x ~ x ~ x ~@2 x ~ x ~ x ~", S: "x ~ x ~ x ~@2 x ~ x ~ x ~ x ~ x", T: "~ x ~@2 x ~ x ~ x ~ x ~ x ~ x ~",
  U: "~ x ~@14", V: "~ x ~ x ~@12",
})).gain(0.19).pan(0.9)

// drums · agogo bells
const agogo_bells = s("agogo:4").struct(`<
  A@10 B@7 C@6 D E@6 F G@6 H@7 I@6 J K@6 L M@6 N O P Q R S@2 T U Q V W X Y Z AA AB ~@13 AC AD@3 AE AF@6 AG AH@4 AI ~@14
  AJ ~ AK ~ C@3 D AL ~ AM ~ AN ~@2
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "~ x ~@5 x ~ x ~@6", C: "~ x ~@2 x!2 ~@2", D: "~@2 x ~@5 x ~@2 x ~@4",
  E: "~@3 x ~@5 x ~ x ~@4", F: "~@3 x ~@6 x ~ x ~@3", G: "~@2 x ~@2 x!2 ~", H: "~@5 x ~@5 x ~ x ~@2",
  I: "~@3 x ~@2 x!2", J: "~@6 x ~@5 x ~@2 x", K: "~@7 x ~@5 x ~ x", L: "~@7 x ~@6 x ~", M: "x ~@3 x ~@2 x",
  N: "x ~@8 x ~@4 x ~", O: "~@3 x ~@12", P: "~@9 x ~@4 x ~", Q: "~ x ~@2", R: "~@9 x ~@5 x", S: "~ x ~@7 x ~@5 x",
  T: "~ x ~@8 x ~@5", U: "x ~ x ~@7 x ~@4 x", V: "~@10 x ~@4 x", W: "~@5 x ~@10", X: "~@5 x ~@2", Y: "x!2 ~@3 x ~@2",
  Z: "x ~@2 x ~@7 x ~@4", AA: "~ x ~ x ~@7 x ~@4", AB: "~ x ~ x ~@12", AC: "~@13 x ~@2", AD: "~@3 x ~ x ~@7 x ~@2",
  AE: "~@3 x ~ x ~@8 x ~", AF: "~@2 x!2 ~@3 x", AG: "~@4 x ~@2 x ~@7 x", AH: "~@5 x ~ x ~@7 x", AI: "~@5 x ~ x ~@8",
  AJ: "~ x ~@5 x ~@4 x ~@3", AK: "~@2 x ~@4 x ~@4 x ~@3", AL: "~@3 x ~@4 x ~@4 x ~@2", AM: "~@3 x ~@4 x ~@5 x ~",
  AN: "~@3 x ~@5 x ~@4 x ~",
})).gain(1.24).pan(0.9)

// drums · woodblocks
const woodblocks = s("woodblock:4").struct("<~@80 A B@4 C@6 D E@2 F ~@15 G H I J@6 K@6 ~@15>".pickRestart({
  A: "~@11 x ~@4", B: "~ x ~ x ~@7 x ~@4", C: "~ x!2 ~@3 x ~", D: "~@2 x ~ x ~@8 x ~@2", E: "~@3 x ~ x ~@7 x ~@2",
  F: "~@3 x ~ x ~@10", G: "~@15 x", H: "~@5 x ~ x ~@7 x", I: "~@3 x!2 ~@3", J: "x ~@2 x!2 ~@3", K: "~ x ~@5 x ~ x ~@6",
})).gain(0.28).pan(0.9)

stack(
  electric_guitar_clean, electric_guitar_clean_2, electric_guitar_clean_3, bass, acoustic_guitar_steel, kick, snare,
  ride, agogo_bells, woodblocks
)

More by The Ventures