Strudelify

Saxy Mood

CANDY DULFER

KeyC majorTempo120 bpm
0:00/0:00
// Saxy Mood — DULFER, CANDY
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 16 piano (copy of ch 1 piano); ch 15 tenor sax (copy of ch 5 tenor sax)
// note: Full arrangement: all 111 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · piano
const piano = note("<A B C D E@2 F@2 G H@2 I@2 J K@2 L@2 M N ~@37 O@2 P Q R@2 S T U ~@45>".pickRestart({
  A: "~@13 [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@3 c3@2 [g3,c4,e4]@4 c3@2", // C
  B: "[g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@3 [b3,e4,g4]@3 ~ e3@3 ~ [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4]@3 ~@2 [b3,e4,g4] ~, ~@29 e3@2 ~", // C Em
  C: "~@2 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@3 a2@2 [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~@2", // Em Am
  D: "~ [a3,c4,e4]@4 a2@3 [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@2 [f3,a3,c4]", // Am G F
  E: "[~@3 [f3,a3,c4] ~@3 [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4 [b3,e4,g4]@3 e3@3 ~ [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@2 [b3,e4,g4]@4, ~@19 c3@2 ~@43]/2", // F C Em
  F: "[e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@4 ~ [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@3 ~ [g3,b3,d4]@3 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2, ~@8 a2 ~@23]/2", // Am G F
  G: "~ [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4, ~@13 c3@2 ~@17", // C
  H: "[[b3,e4,g4]@3 e3@3 ~ [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@2 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@4 ~ [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@4 [g3,b3,d4]@3, ~@21 a2 ~@10]/2", // Em Am G
  I: "[g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [g3,c4,e4]@3 ~ c3@3 ~ [g3,c4,e4]@4 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4 [b3,e4,g4]@3 e3@3, ~@39 c3@2 ~@23]/2", // G F C Em
  J: "~ [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@3 [b3,e4,g4]@3 e3@3 ~ [a3,c4,e4]@4 a2@3 ~", // Em Am
  K: "[[a3,c4,e4]@4 a2@2 [a3,c4,e4]@3 a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@3 ~ [g3,b3,d4]@4 g2@3 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 ~ f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2 [f3,a3,c4] ~@3 [g3,c4,e4]@4 c3@3 ~ [g3,c4,e4]@3]/2", // Am G F C
  L: "[~ c3@2 [g3,c4,e4]@3 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@4 c3@4 [b3,e4,g4]@4 e3@3 [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 ~ e3@2 [b3,e4,g4] ~@3 [b3,e4,g4]@3 e3@3 ~ [a3,c4,e4]@4 a2@3 ~ [a3,c4,e4]@4 a2@2]/2", // C Em Am
  M: "[a3,c4,e4]@3 a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@4 a2@4 [g3,b3,d4]@4 g2@3 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@2", // Am G F
  N: "~@2 f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@2 [f3,a3,c4] ~@20", // F
  O: "[~@20 [g3,c4,e4]@3 c3@3 ~ [g3,c4,e4]@4 c3@2 [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@3 c3@4 [b3,e4,g4]@4 e3@3 ~ [b3,e4,g4]@3 ~ e3@2]/2", // C Em
  P: "[b3,e4,g4]@3 e3@2 [b3,e4,g4] ~@3 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@3 a2@3 ~ [a3,c4,e4]@4 a2@2 [a3,c4,e4]@2", // Em Am
  Q: "~@2 a2@2 [a3,c4,e4] ~@3 [a3,c4,e4]@3 a2@3 ~ [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3", // Am G F
  R: "[f2@2 [f3,a3,c4] ~@3 [f3,a3,c4] ~@3 [f3,a3,c4] ~@3 [g3,c4,e4]@3 c3@4 [g3,c4,e4]@4 c3@2 [g3,c4,e4]@4 c3@2 [g3,c4,e4] ~@3 [g3,c4,e4]@3 c3@4 [b3,e4,g4]@4 e3@3 ~ [b3,e4,g4]@4 e3@2 [b3,e4,g4]@3 e3@2 [b3,e4,g4]]/2", // F C Em
  S: "~@3 [b3,e4,g4]@4 e3@3 ~ [a3,c4,e4]@4 a2@3 [a3,c4,e4]@4 a2@2 [a3,c4,e4]@3 ~ a2@2 [a3,c4,e4] ~", // Em Am
  T: "~@2 [a3,c4,e4]@3 a2@4 [g3,b3,d4]@4 g2@4 [g3,b3,d4]@4 g2@2 [f3,a3,c4]@3 f2@2 [f3,a3,c4] ~@3", // Am G F
  U: "[f3,a3,c4] ~@3 [f3,a3,c4] ~@27", // F
})).s("gm_piano").gain(0.49).pan(0)

// bass · synth bass 2
const bass = note(`<
  ~@19 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~@7 AN AO AP AQ AR AS
  AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF
  CG
>`.pickRestart({
  A: "~@15 c2 ~@5 c2 ~@4 c2 ~@5", B: "~@2 c2 ~@3 c2 ~@3 c2 ~ d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@2",
  C: "~@2 e2 ~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1!2 ~@7 a1", D: "~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1 ~",
  E: "~ f1 ~@3 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@7 c2 ~@3", F: "c2 ~@3 c2 ~ d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@5 e2 ~@2",
  G: "e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1!2 ~@7 a1 ~@3 a1 ~ a1", H: "~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1 ~@2 f1 ~@3 f1",
  I: "~@3 c2 ~@5 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~", J: "d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@5 e2 ~@2 e2 ~ e2 ~@3",
  K: "a1 ~@5 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@6", L: "~@2 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1@2 ~ f1 ~@3 f1 ~@3 c2 ~@2",
  M: "~@3 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@4 e2", N: "~@5 e2 ~@3 e2 ~ e2 ~@5 e2 ~@2 e2 ~ e2 ~@3 a1 ~@5",
  O: "a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3", P: "g1 ~@5 f1 ~@3 f1 ~ f1 ~@3 f1 ~@2 f1 ~@3 c2 ~@5 c2 ~@2",
  Q: "~@3 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@4 e2 ~@5 e2", R: "~@3 e2 ~ e2 ~@5 e2 ~@2 e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1 ~",
  S: "a1 ~@6 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@5", T: "f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@2 f1 ~@3 c2 ~@5 c2 ~@5 c2 ~@2",
  U: "~@4 c2 ~@3 c2 ~@3 c2 ~ d2 ~@5 e2 ~@4 e2 ~@3 e2 ~ e2", V: "~@5 e2 ~@2 e2 ~ e2 ~@3 a1 ~@5 a1 ~@3 a1 ~ a1 ~@5",
  W: "~ a1 ~@3 a1 ~ a1 ~@9 g1 ~@2 g1 ~@5 f1 ~@3 f1 ~", X: "f1 ~@3 f1 ~@2 f1 ~@3 c2 ~@5 c2 ~@5 c2 ~@6 c2 ~",
  Y: "~@2 c2 ~@3 c2 ~ d2 ~@5 e2 ~@4 e2 ~@3 e2 ~ e2 ~@5 e2", Z: "~@3 e2!2 ~@3 a1 ~@5 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1",
  AA: "~ a1 ~@9 g1 ~@2 g1 ~@5 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~", AB: "~ f1 ~@3 c2 ~@5 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3",
  AC: "c2 ~ d2 ~@5 e2 ~@4 e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2!2 ~", AD: "~@2 a1 ~@5 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@4",
  AE: "~@5 g1 ~@2 g1 ~@5 f1 ~@3 f1 ~ f1 ~@3 f1 ~@3 f1 ~@2 c2", AF: "~@5 c2 ~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@3",
  AG: "~@2 e2 ~@4 e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@2 a1 ~@3", AH: "~@2 a1 ~@3 a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@9 g1",
  AI: "~@2 g1 ~@5 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@3 f1 ~@2 c2 ~@5 c2", AJ: "~@5 c2 ~@6 c2 ~@3 c2 ~@3 c2 ~ d2 ~@5 e2 ~@3",
  AK: "~ e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@2 a1 ~@5 a1 ~@3", AL: "a1 ~ a1 ~@6 a1 ~@3 a1 ~ a1 ~@9 g1 ~@3 g1 ~@2",
  AM: "~@2 f1 ~@3 f1 ~ f1 ~@3 f1 ~@3 f1 ~@15", AN: "~@7 c2 ~@5 c2 ~@5 c2 ~@7 c2 ~@2 c2 ~",
  AO: "~@2 c2 ~ d2 ~@5 e2 ~@5 e2 ~@2 e2 ~ e2 ~@5 e2 ~@3 e2",
  AP: "~ e2 ~@2 a1 ~@5 a1 ~@3 a1 ~ a1 ~@7 a1 ~@2 a1 ~ a1 ~@2", AQ: "~@7 g1 ~@3 g1 ~@4 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@3 f1 ~",
  AR: "~@2 c2 ~@4 c2 ~@5 c2 ~@7 c2 ~@2 c2 ~@3 c2 ~ d2 ~", AS: "~@4 e2 ~@5 e2 ~@2 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@3 a1",
  AT: "~@4 a1 ~@3 a1 ~ a1 ~@7 a1 ~@2 a1 ~ a1 ~@8", AU: "~ g1 ~@3 g1 ~@4 f1 ~@3 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@3",
  AV: "~ c2 ~@5 c2 ~@7 c2 ~@2 c2 ~@3 c2 ~ d2 ~@5 e2 ~", AW: "~@4 e2 ~@2 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4 a1 ~",
  AX: "~@2 a1 ~ a1 ~@7 a1 ~@2 a1 ~ a1 ~@9 g1 ~@3 g1", AY: "~@4 f1 ~@3 f1 ~ f1@2 ~@2 f1 ~@3 f1 ~@3 c2 ~@4 c2 ~@4",
  AZ: "~ c2 ~@7 c2 ~@2 c2 ~@3 c2 ~ d2 ~@5 e2 ~@5 e2 ~", BA: "~ e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4 a1 ~@3 a1 ~ a1 ~",
  BB: "~@6 a1 ~@2 a1 ~ a1 ~@9 g1 ~@3 g1 ~@4 f1 ~", BC: "~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@4 c2 ~@5 c2 ~@4",
  BD: "~@3 c2 ~@3 c2 ~@2 c2 ~ d2 ~@5 e2 ~@5 e2 ~@2 e2 ~ e2 ~@2", BE: "~@3 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4 a1 ~@3 a1 ~ a1 ~@7",
  BF: "a1 ~@3 a1!2 ~@9 g1 ~@3 g1 ~@5 f1 ~@2 f1 ~ f1@2", BG: "~@2 f1 ~@3 f1 ~@3 c2 ~@4 c2 ~@5 c2 ~@7 c2 ~@2",
  BH: "~ c2 ~@2 c2 ~ d2 ~@5 e2 ~@5 e2 ~@3 e2!2 ~@5 e2 ~@2", BI: "~ e2 ~ e2 ~@3 a1 ~@4 a1 ~@3 a1 ~ a1 ~@7 a1 ~@3 a1!2",
  BJ: "~@9 g1 ~@3 g1 ~@5 f1 ~@2 f1 ~ f1 ~@3 f1 ~@3", BK: "f1 ~@3 c2 ~@4 c2 ~@5 c2 ~@7 c2 ~@3 c2 ~@2 c2 ~",
  BL: "d2 ~@5 e2 ~@5 e2 ~@3 e2!2 ~@5 e2 ~@3 e2 ~ e2 ~@2", BM: "~ a1 ~@4 a1 ~@3 a1 ~ a1 ~@7 a1 ~@3 a1 ~ a1 ~@5",
  BN: "~@3 g1 ~@3 g1 ~@5 f1 ~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~", BO: "~@3 c2 ~@5 c2 ~@7 c2 ~@3 c2 ~@2 c2 ~ d2 ~@5",
  BP: "e2 ~@5 e2 ~@3 e2 ~ e2 ~@4 e2 ~@3 e2 ~ e2 ~@3 a1 ~@4", BQ: "~ a1 ~@2 a1 ~ a1 ~@7 a1 ~@3 a1 ~ a1 ~@8 g1 ~@2",
  BR: "~ g1 ~@5 f1 ~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@5 c2 ~", BS: "~@3 c2 ~@7 c2 ~@3 c2 ~@2 c2 ~ d2 ~@5 e2 ~@5",
  BT: "e2 ~@3 e2 ~ e2 ~@4 e2 ~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@2 a1 ~", BU: "a1 ~@7 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@4",
  BV: "~ f1 ~@2 f1 ~ f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@2", BW: "~@5 c2 ~@3 c2 ~@3 c2 d2 ~@5 e2 ~@5 e2 ~@3 e2 ~",
  BX: "e2 ~@4 e2 ~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@2 a1 ~ a1 ~@5", BY: "~@2 a1 ~@3 a1 ~ a1 ~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1",
  BZ: "f1 ~@3 f1 ~@3 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@7 c2", CA: "~@3 c2 ~@3 c2 d2 ~@5 e2 ~@5 e2 ~@3 e2 ~ e2 ~@4 e2",
  CB: "~@3 e2 ~ e2 ~@3 a1 ~@5 a1 ~@2 a1 ~ a1 ~@7 a1 ~@3", CC: "a1 ~ a1 ~@8 g1 ~@3 g1 ~@5 f1 ~@3 f1!2 ~@3 f1 ~",
  CD: "~@2 f1 ~@3 c2 ~@5 c2 ~@4 c2 ~@7 c2 ~@3 c2 ~@2", CE: "~ c2 ~ d2 ~@4 e2 ~@5 e2 ~@3 e2 ~ e2 ~@4 e2 ~@3 e2 ~ e2",
  CF: "~@3 a1 ~@5 a1 ~@2 a1 ~ a1 ~@7 a1 ~@3 a1 ~ a1 ~@3", CG: "~@5 g1 ~@3 g1 ~@5 f1 ~@3 f1 ~ f1 ~@2 f1@2 ~@2 f1 ~@3",
})).s("gm_synth_bass_2").gain(0.56)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@69 A B@7 ~@34>".pickRestart({
  A: "~ [c5,e5,g5]@15", // C
  B: "[[e5,g5,b5]@31 [a4,c5,e5]@30 [g4,b4,d5]@15 [f4,a4,c5]@15 ~ [c5,e5,g5]@30 [e5,g5,b5]@31 [a4,c5,e5]@30 [g4,b4,d5]@15 [f4,a4,c5]@15 ~@11]/7", // Em Am G F C Em Am G …
})).s("gm_string_ensemble_1").gain(0.21).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<~@69 A B C D E F G H ~@34>".pickRestart({
  A: "~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5] g5 ~@4 [c5,e5,g5] ~@3", // C
  B: "~@4 [e5,g5,b5] ~@5 [e5,g5,b5] ~@4 [e5,g5,b5] ~@5 [e5,g5,b5] ~@5 [e5,g5,b5] ~@4", // Em
  C: "~@2 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5,g5] ~@6", // C
  D: "~ [g4,b4,d5] ~@5 [g4,b4,d5] ~@4 [g4,b4,d5] ~@5 [f4,a4,c5] ~@5 [f4,a4,c5]@2 ~@5 [c5,e5,g5]", // G F C
  E: "~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5,g5] ~@7 [e5,g5,b5] ~", // C Em
  F: "~@4 [e5,g5,b5] ~@4 [e5,g5,b5] ~@5 [e5,g5,b5] ~@5 [e5,g5,b5] ~@6 [c5,e5,g5] ~@3", // Em C
  G: "~@2 [c5,e5,g5] ~@5 [c5,e5,g5] ~@5 [c5,e5,g5] ~@4 [c5,e5,g5] ~@7 [g4,b4,d5] ~@4", // C G
  H: "~ [g4,b4,d5] ~@4 [g4,b4,d5]@2 ~@4 [f4,a4,c5] ~@5 [f4,a4,c5]@2 ~@12", // G F
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.3)

// chords · percussive organ
const percussive_organ = note("<~@95 A@8 B@6 C D>".pickRestart({
  A: "[~@19 c4@2 [d4,e4] [f4,a4] ~ c5@30 e5@29 ~@2 a4@29 ~ g4@12 f4@16 ~@3 c5@30 e5@29 ~@2 a4@29 ~ g4@12 f4@7, ~@22 g4@2 b4 ~@121 b4 ~@109]/8", // Dsus2 F
  B: "[~@7 c4@2 [d4,e4] [f4,a4] ~ [e5,g5]@29 ~ [g5,b5]@27 ~@4 [c5,e5]@29 ~ [b4,d5]@11 ~ [a4,c5]@18 ~ [e5,g5]@29 ~ [g5,b5]@27 ~, ~@5 g4 ~@90]/6", // Dsus2 F Em G C Bm Am Em …
  C: "~@3 [c5,e5]@29", D: "~ [b4,d5]@11 ~ [a4,c5]@18 ~",
})).s("gm_percussive_organ").gain(0.46).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B C D E F G C H I J K C L I M K N O P Q R S O T U R V W X Y Z AA W AB Y AC AA AD AB AE A B AF D AG F B C D E F K
  C L I AH K N L AI AJ R S O T U R V O X U Z AA W AB Y AC AA AD AB AE A AA AF AB AG AK B C D E F G C H I J K N L P AH R
  N O P
>`.pickRestart({
  A: "~@7 x ~@6 x ~@7 x ~@7 x ~", B: "~@5 x ~@7 x ~@7 x ~@6 x ~@3", C: "~@4 x ~@7 x ~@6 x ~@7 x ~@4",
  D: "~@2 x ~@7 x ~@7 x ~@6 x ~@6", E: "~ x ~@7 x ~@6 x ~@7 x ~@6 x", F: "~@7 x ~@7 x ~@6 x ~@7 x ~",
  G: "~@6 x ~@6 x ~@7 x ~@6 x ~@3", H: "~@3 x ~@6 x ~@7 x ~@6 x ~@6", I: "~ x ~@7 x ~@6 x ~@7 x ~@7",
  J: "x ~@6 x ~@7 x ~@6 x ~@7 x ~", K: "~@6 x ~@6 x ~@7 x ~@7 x ~@2", L: "~@3 x ~@6 x ~@7 x ~@7 x ~@5",
  M: "~@15 x ~@7 x ~@6 x ~", N: "~@4 x ~@7 x ~@7 x ~@6 x ~@4", O: "~@3 x ~@7 x ~@6 x ~@7 x ~@5",
  P: "~ x ~@7 x ~@7 x ~@6 x ~@7", Q: "x ~@7 x ~@6 x ~@7 x ~@6 x ~", R: "~@6 x ~@7 x ~@6 x ~@7 x ~@2",
  S: "~@5 x ~@6 x ~@7 x ~@6 x ~@4", T: "~@2 x ~@6 x ~@7 x ~@6 x ~@7", U: "x ~@7 x ~@6 x ~@7 x ~@7 x",
  V: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", W: "~@3 x ~@7 x ~@7 x ~@6 x ~@5", X: "~@2 x ~@6 x ~@7 x ~@7 x ~@6",
  Y: "x ~@7 x ~@7 x ~@6 x ~@7 x", Z: "~@6 x ~@7 x ~@7 x ~@6 x ~@2", AA: "~@5 x ~@7 x ~@6 x ~@7 x ~@3",
  AB: "~@2 x ~@7 x ~@6 x ~@7 x ~@6", AC: "~@7 x ~@6 x ~@7 x ~@6 x ~@2", AD: "~@4 x ~@6 x ~@7 x ~@6 x ~@5",
  AE: "~ x ~@6 x ~@7 x ~@6 x ~@7 x", AF: "~@4 x ~@6 x ~@7 x ~@7 x ~@4", AG: "~ x ~@6 x ~@7 x ~@7 x ~@6 x",
  AH: "x ~@6 x ~@7 x ~@7 x ~@6 x ~", AI: "~ x ~@7 x ~@7 x ~@14", AJ: "~@7 x ~@7 x ~@7 x ~@6 x ~", AK: "~@7 x ~@22 x ~",
})).gain(0.72)

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

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@4 A B C D E F G H I J K L M N O P ~@91>".pickRestart({
  A: "~@11 x ~@6 x ~@7 x ~@5", B: "~@2 x ~@6 x ~@7 x ~@6 x ~ x ~@5", C: "x ~@7 x ~@6 x ~@7 x ~@7 x",
  D: "~@6 x ~@7 x ~@6 x ~ x ~@5 x ~@2", E: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", F: "~@3 x ~@7 x ~@6 x ~ x ~@5 x ~@5",
  G: "~@2 x ~@6 x ~@7 x ~@7 x ~@6", H: "x ~@7 x ~@6 x ~ x ~@5 x ~@7 x", I: "~@6 x ~@7 x ~@7 x ~@6 x ~@2",
  J: "~@5 x ~@7 x!2 ~@5 x ~@7 x ~@3", K: "~@3 x ~@7 x ~@7 x ~@6 x ~@5", L: "~@2 x ~@7 x!2 ~@5 x ~@7 x ~@6",
  M: "x ~@7 x ~@7 x ~@6 x ~@7 x", N: "~@7 x!2 ~@5 x ~@7 x ~@6 x ~@2", O: "~@5 x ~@7 x ~@6 x ~@7 x ~@3", P: "~ x ~@6",
})).gain(0.72)

// drums · triangle
const triangle = s("triangles:30").struct("<~@18 [~@12 x!3 ~] [x ~ x ~ x ~@2 x ~ x ~@22] ~@91>").gain(6.97)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@19 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM ~@3 AN AO D AP AQ G AR
  AS J AT AU AV N AW P AX R AY AZ BA BB BC BD BE BF BG BH BI AD BJ BK BL AH BM BN AK BO BP BQ BR BS BT BU BV BW BX B AR
  BY BZ
>`.pickRestart({
  A: "~@17 x ~ x ~ x ~@3 x!2 ~ x ~@3", B: "x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x",
  C: "~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x",
  D: "~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2",
  E: "~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~",
  F: "~@2 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2",
  G: "x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x",
  H: "~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x",
  I: "~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~",
  J: "x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~",
  K: "~@2 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2",
  L: "~ x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x",
  M: "~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2",
  N: "~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~",
  O: "x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~",
  P: "~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@2",
  Q: "~ x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x!2 ~ x ~@3 x",
  R: "~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~",
  S: "x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~",
  T: "x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
  U: "~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@2",
  V: "~ x ~ x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x",
  W: "~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~",
  X: "x ~ x ~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~",
  Y: "x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x",
  Z: "~@3 x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@2",
  AA: "~ x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3",
  AB: "x!2 ~ x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~",
  AC: "x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x",
  AD: "x ~@3 x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x",
  AE: "~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@2",
  AF: "~ x ~ x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3",
  AG: "x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~",
  AH: "x ~ x ~@3 x ~ x ~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x",
  AI: "~ x ~@2 x ~ x ~ x ~@3 x ~ x ~ x ~@3 x ~ x!2 ~@3 x ~ x ~ x",
// … 42 more lines

More by CANDY DULFER