Strudelify

Voglio andare al mare

Rossi Vasco

KeyE minorTempo72 bpm
0:00/0:00
// Voglio andare al mare — Rossi Vasco
// 72 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 6 electric guitar jazz (copy of ch 5 electric guitar clean)
// note: Full arrangement: all 67 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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
const bass = note(`<
  A@2 ~ B@2 C D C D C D C D E D C D C D F G H I J K L M L N D C D O P@2 Q@2 R@2 S T ~@3 U@8 V@5 W X@2 Y Z AA@2 AB ~@2
>`.pickRestart({
  A: "[~@47 b1@3 ~ b1@3 ~@2 b1@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2 b1@2 ~ b1@2 ~ b1@2 ~@16]/2",
  B: "[~@30 g1@3 a1@3 b1@2 ~ a1@2 ~ g1@2 ~ e1@6 ~@9 e1@2 ~ e1@3 ~@18 e1@2 ~ e1@3 ~@6]/2",
  C: "~@12 a1@2 ~ a1@3 ~@12 g1@3 a1@3 b1@3 a1@3 g1@3 e1@3", D: "~@12 e1@2 ~ e1@3 ~@18 e1@2 ~ e1@3 ~@6",
  E: "~@12 e1@2 ~ e1@3 ~@6 b1@3 ~ b1@3 ~ b1@3 ~ d2@3 ~ d2@3 ~ d2@3 ~",
  F: "~@12 a1@2 ~ a1@3 ~@6 b1@3 ~ b1@2 ~@2 b1@2 ~@2 b1@3 ~ b1@2 ~@2 b1@3 ~", G: "b1@4 ~@32 e1@2 ~ e1@4 ~@5",
  H: "~@12 e1@2 ~ e1@3 ~@30", I: "b1@3 ~ b1@3 ~ b1@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2@3 ~@13 e1@2 ~ e1@3 ~@6",
  J: "~@12 e1@2 ~ e1@3 ~@18 a1@2 ~ a1@2 ~ a#1@2 ~ b1@3",
  K: "~@15 e3@2 d#3 [c#3,d3] c3 b2 a#2 g#2 f2 ~@12 e1@2 ~ e1@3 ~@6", L: "~@12 e1@2 ~ e1@3 ~@18 a1@2 ~ a1@3 ~@6",
  M: "~@6 g1@3 a1@3 b1@3 a1@3 g1@3 e1@4 ~@11 e1@2 ~ e1@3 ~@6",
  N: "b1 ~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~@22",
  O: "~@12 a1@2 ~ a1@3 ~@12 g1@3 a1@3 b1@3 a1@3 g1@3 ~@3",
  P: "[e1 ~@2 e1 ~@2 e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ g1@2 ~ g#1@2 ~ a1@2 ~ a1@2 ~ a1@2 a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1 ~@2 b1 ~@2 b1@5 e1@5 ~]/2",
  Q: "[e1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ e1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ e1 ~@2 e1 ~@2 e1 ~ e1@2 ~ e1@2 ~ f#1@2 ~ g1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2 a1@2 ~ a1 ~@2 a1@2 ~ a1@2 b1 ~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@4 ~@2 e1@5 ~ e1@2]/2",
  R: "[~ e1 ~@2 e1 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~ e1 ~@2 e1@2 ~ e1@2 ~ f#1@2 ~ g1@2 ~ a1@2 a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~ b1@2 ~ b1 ~@2 e1@5 ~ e1 ~@2 e1@2]/2",
  S: "~ e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~ e1 ~@2 e1 ~ e1 ~@2 e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ f#1@2 ~ g1 ~@2 a1@2 ~ a1 ~@2 a1 ~@2",
  T: "a1 ~@2 a1 ~@2 a1 ~ a1 ~@2 b1@2 ~@35",
  U: "[~@17 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@2 ~ e2@2 ~ d2@2 ~ e2@2 ~ e2@2 ~ e1@2 ~ e1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@2 ~ e2@2 ~ d2@2 ~ e2@2 ~ e2@2 ~ a1@2 ~ a1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@2 ~ e2@3 d2@2 ~ e2@2 ~ e2@2 ~ e1 ~@2 e1@3 ~@15 b1@3 e2@3 f#2@3 g2@3 f#2@2 ~ e2@3 d2@2 ~ e2@2 ~ e2@2 ~ a1 ~@2 a1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@2 ~ f#2@2 ~ e2@3 d2@2 ~ e2@2 ~ e2@3 e1 ~@2 e1@3 ~@15 b1@3 e2@3 f#2@2 ~ g2@2 ~ f#2@2 ~ e2@3 d2@3 e2@2 ~ e2@3 a1@2 ~ a1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@3 e2@3 d2@2 ~ e2@2 ~ e2@3 e1@2 ~ e1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@3 e2@3 d2@2 ~ e2@2 ~ e2@2 ~ a1 ~@2 a1]/8",
  V: "[~@17 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@3 e2@3 d2@2 ~ e2@2 ~ e2@2 ~ e1@2 ~ e1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@2 ~ f#2@3 e2@3 d2@2 ~ e2@2 ~ e2@2 ~ a1 ~@2 a1@3 ~@15 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@2 ~ e2@3 d2@2 ~ e2@2 ~ e2@2 ~ e1 ~@2 e1@2 ~@16 b1@3 e2@2 ~ f#2@2 ~ g2@3 f#2@3 e2@3 d2@2 ~ e2@2 ~ e2@2 ~ a1 ~@2 a1@3 ~@9 b1@5 ~@22 e1 ~@2 e1 ~@2 e1@2 e1@2]/5",
  W: "~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ g1@2 g#1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
  X: "[a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1 ~ b1 ~@2 b1@5 ~ e1@5 ~ e1@2 ~ e1@2 ~ e1 ~@2 e1@2 ~ e1@2 ~ e1@2 ~ e1 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~ e1@2 ~ f#1@2 ~ g1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~ a1@2 ~]/2",
  Y: "a1 ~@2 a1@2 ~ a1@2 ~ b1 ~@2 b1@2 ~ b1@2 ~ b1@2 ~ b1@2 ~ b1@4 ~@2 e1@5 e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1",
  Z: "~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~ e1 ~@2 e1@2 e1@2 ~ f#1@2 ~ g1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1 ~@2 a1 ~",
  AA: "[~ a1 ~@2 a1 ~@2 b1 ~ b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1@2 ~ b1 ~@2 e1@5 ~ e1 ~@2 e1@2 ~ e1 ~@2 e1 ~@2 e1 ~ e1@2 ~ e1 ~@2 e1 ~@2 e1 ~@2 e1@2 ~ e1 ~@2 e1 ~@2 e1@2 ~ f#1@2 ~ g1 ~@2 a1@2 ~ a1 ~ a1 ~@2 a1 ~@2 a1 ~@2 a1 ~@2 a1 ~]/2",
  AB: "~ b1@2 ~@45",
})).s("gm_electric_bass_finger").gain(0.64)

// bass · slap bass 2
const bass_2 = note("<~@50 A ~ B ~ C ~ D ~@10>".pickRestart({
  A: "~@11 a#2@3 b2@18 ~@16", B: "~@11 a#2@3 b2@15 ~@19", C: "~@11 a#2@3 b2@16 ~@18", D: "~@11 b2@3 ~@34",
})).s("gm_slap_bass_2").gain(0.78)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 B C B C B C B C B C B D B C B C B E F G@2 H I J@2 K L B C B M@3 N@2 O@4 P Q P Q R S R S R S R S R S R T U V@4 W@2
  X ~@2
>`.pickRestart({
  A: "[~@48 [f#3,d4,f#4]@3 ~ [b2,f#3,b3,f#4]@3 ~ [b2,f#3,b3,f#4]@2 ~@2 [a2,d3,a3,d4,f#4]@3 ~@2 [a3,f#4]@3 ~ a3@2 ~ [f#3,b3,d4,f#4]@2 ~ [b2,f#3,b3,d4,f#4]@2 ~ [b2,f#3,b3,d4,f#4]@2 ~@16, ~@47 [b2,b3]@3 ~@2 d4@7 ~@5 [a2,d3,d4]@3 ~ [a2,d3,d4,f#4]@3 b2@2 ~@23]/2", // D B5 D Bm B D5 D
  B: "~@6 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [b3,d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@4, ~@5 [e3,b3]@3 ~@21 e3@3 ~@16", // G Em7 G Em7 E5
  C: "~@6 [a3,c4,e4,a4]@2 ~ [a3,c4,e4,a4] ~@8 [a2,a3,c4,e4,a4]@2 ~ [a#3,c#4,f4,a#4]@2 b2 [b3,a4]@5 ~ [d4,a4,b4]@2 ~ [b3,d4,a4,b4] ~@8 [b3,d4,a4,b4] ~@5, ~@7 a#2 b2@7 ~, ~@23 f#3@20 ~@5, ~@23 d4@6 b3@2 ~@17, ~@3 f#4 ~@2", // Am A#m B7 Bm7
  D: "~@6 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@4 [f#3,d4,f#4]@3 ~ [b2,f#3,b3,f#4]@3 ~ [b2,f#3,b3,f#4]@2 ~@2 [d3,a3,d4,f#4]@3 ~@2 [a3,f#4]@3 ~ a3@2 ~, ~@5 [e3,b3]@3 ~@15 [b2,b3]@3 ~@2 d4@7 ~@5 [d3,d4]@3 ~ [d3,d4,f#4]@2 ~@2", // G Em7 D B5 D E5 B D
  E: "~@6 [a3,c4,e4,a4]@2 ~ [a3,c4,e4,a4] ~@8 [a2,a3,c4,e4,a4]@2 ~@4 [d3,f#3,b3]@2 ~@2 [b2,d3,f#3,b3]@3 ~ [b2,d3,f#3,b3]@3 ~ [b2,d3,f#3,b3]@3 ~ [b2,d3,f#3,b3]@3 ~ [b2,d3,f#3,b3]@2 ~@2, ~@23 b2@3 ~@22", // Am Bm
  F: "[b2,d3,f#3,b3]@3 ~@27 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@4, ~@29 [e3,b3]@3 ~@16", // Bm G Em7 E5
  G: "[~@6 [b3,d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@14 [f#3,d4,f#4]@3 ~ [b2,f#3,b3,f#4]@3 ~ [b2,f#3,b3,f#4]@2 ~@2 [d3,a3,d4,f#4]@3 ~@2 [a3,f#4]@3 ~ a3@2 ~@7 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@4, ~@5 e3@3 ~@21 [e3,b3]@3 ~@15 [b2,b3]@3 ~@2 d4@7 ~@5 [d3,d4]@3 ~ [d3,d4,f#4]@2 ~@7 [e3,b3]@3 ~@16]/2", // G Em7 G Em7 D B5 D G …
  H: "~@6 [b3,d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [a3,c4,e4,a4]@2 ~ [a3,c4,e4,a4] ~@2 a2@3 [a3,c4,e4,a4]@2 ~ [a#3,c#4,f4,a#4]@2 ~ [b2,b3,f#4,b4]@2 ~, ~@5 e3@3 ~@34 a#2@4 ~@2, ~@22 [f#3,d4] ~", // G Em7 Am A#m B5 D
  I: "~@30 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@4, ~@29 [e3,b3]@3 ~@16", // G Em7 E5
  J: "[~@6 [b3,d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [a3,c4,e4,a4]@2 ~ [a3,c4,e4,a4] ~@8 [a2,a3,c4,e4,a4]@2 ~ [a#3,c#4,f4,a#4]@2 b2 [b3,a4]@5 ~ [d4,a4,b4]@2 ~ [b3,d4,a4,b4] ~@8 [b3,d4,a4,b4] ~@11 [d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@4, ~@5 e3@3 ~@37 a#2@3 b2@21 ~@27, ~@47 f#3@20 ~@10 [e3,b3]@3 ~@16, ~@47 d4@6 b3@2 ~@41, ~@6 f#4 ~@5]/2", // G Em7 Am A#m B7 Bm7 G Em7 …
  K: "~@6 [b3,d4,g4,b4]@2 ~ [e3,b3,d4,g4,b4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [a3,c4,e4,a4]@2 ~ [a3,c4,e4,a4] ~@8 [a2,a3,c4,e4,a4]@2 ~@4, ~@5 e3@3 ~@40", // G Em7 Am
  L: "[f#3,d4,f#4,a4]@2 ~ [f#3,d4,f#4,a4]@3 [f#3,d4,f#4,a4]@3 [f#3,b3,d4,f#4,a4]@2 ~ [f#3,b3,d4,f#4,a4]@2 ~ [b2,f#3,d4,f#4,a4]@3 [b2,f#3,d4,f#4,a4]@3 [b2,f#3,d4,f#4,a4]@3 [b2,f#3,d4,f#4,a4]@3 ~@21, b2 ~@3, b3 ~@2 b3 ~@2 b3 ~@8 b3 ~@2 b3 ~@2 b3 ~@2 b3 ~@23", // D Bm7
  M: "[~@6 [a3,c4,e4,a4]@2 ~ [a3,c4,e4,a4] ~@8 [a2,a3,c4,e4,a4]@2 ~ [a#3,c#4,f4,a#4]@2 b2 [b3,a4]@5 ~ [d4,a4,b4]@2 ~ [b3,d4,a4,b4] ~@8 [b3,d4,a4,b4] ~@5 [b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~ [d4,g4]@2 ~ [g3,d4,g4]@2 ~@3 [g3,b3,d4,g4]@2 ~@2 g4@2 [g3,b3,d4,g4]@2 ~@4 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@2 ~ [b3,d4,g4]@3 [g3,b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ [g3,b3,d4,g4]@2 ~ [c4,e4]@2 ~ [g3,c4,e4]@2 ~ e4@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [d4,f#4]@2 ~ [d4,f#4]@2 ~ f#4@2 ~@3 [b2,f#3] ~@2 [e2,b2,b3,d4,g4]@6, ~@21 a#2@3 b2@21 ~@3 [e2,b2,e3]@5 [e2,b2]@6 [e2,b2]@5 ~ [e2,b2]@5 e2@5 ~ e2@5 ~ e2@6 e2@6 ~@50, ~@23 f#3@20 ~@4 g3@3 ~@3 [g3,b3]@3 b3@2 ~@2 e3@5 ~ e3@5 b2@5 ~ [b2,e3]@5 ~ [b2,e3]@5 ~ [b2,e3]@5 a2@5 ~ a2@5 ~ [a2,e3]@5 ~ [a2,e3]@3 ~@2 [b2,f#3]@5 ~ b2@5 ~ [b2,f#3]@5 ~@10, ~@23 d4@6 b3@2 ~@23 e3@5 [g3,b3,d4,g4]@3 ~@3 [g3,b3,d4]@3 ~@3 [g3,b3,d4,g4]@3 ~@8 g3@3 ~@3 g3@2 ~@4 g3@3 ~@3 [g3,c4]@2 ~@21 a3@2 ~ a3@2 ~ [a3,d4]@2 ~ [a3,d4,f#4]@5 ~@7, ~@24 f#4@8 ~@40 e3@5 ~@18 e3@5 ~ e3@5 ~@18 f#3@5 ~@15]/3", // Am A#m B7 Bm7 G G5 G C …
  N: "[[g3,b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,g4]@2 ~ g4@2 [b3,d4,g4]@2 ~@4 [b3,d4,g4]@2 ~ [g3,b3,d4,g4]@3 [d4,g4]@2 a2 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [c4,e4]@3 [g3,c4,e4]@2 ~ [c4,e4]@2 ~ [g3,c4,e4]@2 ~ [c4,e4]@2 [g3,c4,e4]@2 ~@2 f#4@2 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [d4,f#4]@2 ~ [a3,d4,f#4]@3 b2@2 ~ [e3,g3,b3,d4,g4]@6 [b3,f#4]@2, ~@3 e2@11 e2@5 ~ e2@5 ~ [e2,b2]@5 ~ [e2,b2]@5 e2@6 ~@7 e3@5 ~ e3@5 ~ e3@5 ~@6 f#3@5 ~ f#3@5 ~@12, ~@3 [b2,g3]@5 ~ b2@12 [b2,g3]@5 ~ g3@5 ~ g3@5 b2@5 ~ a2@5 a2@5 ~ a2@5 ~ a2@6 b2@10 ~ b2@6 ~@12, ~@9 g3@5 ~ g3@5 ~@6 [b3,d4]@3 ~@3 [b3,d4,g4]@3 ~@6 b3 ~@7 g3@3 ~@3 g3@2 ~@4 g3@2 ~@4 [a3,d4]@2 ~@9 a3@2 ~@16]/2", // G G5 C D Em7 B5 E5 Em …
  O: "[~ [d4,g4]@2 [b3,d4,f#4]@2 ~ [b3,g4]@3 [b3,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,f#4]@2 ~ [d4,g4]@3 [b3,d4,f#4]@2 ~ [d4,g4]@2 ~ [b3,d4,f#4] ~@2 e4@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4] ~ d4 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [d4,f#4]@2 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [b2,f#3]@2 ~ [e2,b2,b3,d4,g4]@6 [b3,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,f#4]@2 ~ g4@3 f#4@2 ~ g4@2 [b3,d4,f#4]@2 ~@2 g4@2 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4] ~@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 [g3,c4,e4]@2 ~@4 [g3,c4,e4]@3 e3 ~@2 [b2,f#3,a3,d4,f#4]@2 ~@31 [g4,b4]@2 [g4,b4] [e3,b3,d4], e3@5 ~ [e3,g3,d4]@5 ~ [e3,g3]@3 ~@2 e3@5 ~@2 [e3,g3]@5 ~ [e3,g3]@5 ~ [e3,g3]@5 [a2,e3]@5 a2@5 ~ a2@5 ~ a2@5 ~@2 [b2,f#3]@5 b2@5 ~ [b2,f#3]@5 ~@12 [e2,b2]@4 ~@15 g3@5 ~@18 e3@5 ~ e3@5 [g3,c4,e4]@2 ~@44, b3@2 ~@27 b3@2 ~@4 b3@2 ~@33 a3@2 ~@28 [g3,d4]@5 [b3,d4]@2 ~@4 [b3,d4]@3 ~@33 e3@4 ~@36 [e3,b3,d4]@2 ~@3, ~ g3@5 ~@12 g3@5 ~@18 [g3,c4]@2 ~@4 e3@5 ~ e3@5 ~ e3@5 ~@7 f#3@5 ~@18 g3@5 [e3,b3]@5 ~ [e3,g3]@5 ~ e3@5 ~ [e3,g3]@5 ~ [e3,g3]@5 ~ [e3,g3]@5 a2@5 ~ a2@5 ~ a2@6 ~@40]/4", // G5 Bm Em B5 G Bm G Bm …
  P: "~@8 [e3,b3,d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [e3,b3,d4,g4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [g4,b4]@2 [g4,b4] [e3,b3,d4], ~@19 [e3,b3,d4]@2 ~@22 [e3,b3,d4]@2 ~@3", // Em7 G Em7 G E7
  Q: "~@44 [g4,b4]@2 [g4,b4] [e3,b3,d4], ~@43 [e3,b3,d4]@2 ~@3", // G E7
  R: "~@8 [e3,b3,d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [e3,b3,d4,g4] ~@8 [e3,b3,d4,g4,b4]@2 ~@10 [e4,a4]@2 a4 [a3,c4,e4], ~@19 [e3,b3,d4]@2 ~@22 [a3,c4]@2 ~@3", // Em7 G Em7 A5 Am E7 Am
  S: "~@8 [a2,a3,c4,e4,a4]@2 ~@2 b2 ~ [b3,a4]@5 ~ [d4,a4,b4]@2 ~ [b3,d4,a4,b4] ~@8 [b3,d4,a4,b4] ~@11 [g4,b4]@2 [g4,b4] [e3,b3,d4], ~@11 a#2@3 b2@21 ~@13, ~@11 [a#3,c#4,f4,a#4]@2 f#3@20 ~@10 [e3,b3,d4]@2 ~@3, ~@13 d4@6 b3@2 ~@27, ~@7 f#4@4 ~@13", // Am B7 Bm7 G E7 A#m E7
  T: "~@12 b2@3 ~@23 [d4,g4]@2 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@2, ~@11 [f#3,b3,d4,f#4,a4]@2 ~@25 e3@4 e2@6, ~@43 [b2,e3]@5", // G5 G Bm7 E5
  U: "~ [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@2 ~ [g3,b3,d4,g4]@3 [g3,b3,d4,g4]@2 ~ [b3,d4,g4]@2 [g3,b3,d4,g4]@2 ~@2 g4@2 ~ [g3,d4,g4]@2 ~ [d4,g4]@2 [g3,b3,d4,g4]@2 ~@2 e4@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~, ~ [e2,b2,e3]@5 e2@5 ~ e2@5 ~ e2@5 ~ [e2,b2]@6 e2@6 ~@12, ~@7 [b2,e3]@5 ~ [b2,e3]@5 g3@3 ~@3 [g3,b3,d4]@3 b3@2 ~@2 [b2,e3]@5 [a2,e3]@5 ~ [a2,e3]@5 ~, ~@19 [b2,e3]@5 ~ e3@5 [g3,b3]@2 ~@4 [g3,c4]@3 ~@9", // G G5 G C E5 G E5 A5 …
  V: "[[g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [a2,e3]@3 [g3,c4,e4]@2 ~ [d4,f#4]@2 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~@4 [b2,f#3] ~@2 [b3,d4,g4]@5 ~ [b3,d4,g4]@2 ~ [d4,g4]@3 [b3,d4,g4]@2 ~ g4@2 ~ [b3,d4]@2 ~ g4@2 [b3,d4,g4]@2 ~@2 [d4,g4]@2 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [b3,d4,g4]@3 [b3,d4,g4]@2 ~ [g3,b3,d4,g4]@3 b3 a2 ~ [c4,e4]@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@3 [g3,c4,e4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [d4,f#4]@2 ~ [a3,d4,f#4]@3 b2@2 ~@6 [b3,f#4]@3 [b3,d4,g4]@2 ~ [b3,d4,f#4]@2 ~ [b3,g4]@3 [b3,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4]@2 ~ [d4,g4]@3 [b3,d4,f#4]@2 ~ [d4,g4]@3 [b3,d4,f#4]@2 ~@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4] ~@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [c4,e4]@2 ~ [g3,c4,e4]@2 ~ [c4,e4]@2 ~ [g3,c4,e4]@2, [a2,e3]@5 g3@2 ~@4 [b2,f#3]@5 ~ [b2,f#3]@5 ~ [b2,f#3]@5 ~@4 [e2,b2]@8 e2@11 ~ e2@5 ~ [e2,b2]@5 ~ [e2,b2,g3]@5 ~ [e2,b2,g3]@5 e2@6 ~@93 a2@5 ~ a2@5 ~ a2@5 ~, ~@6 [c4,e4]@2 ~@3 a3@3 ~@12 [a3,d4,f#4]@5 ~@6 g3@3 b3@3 ~@3 [b3,d4]@3 g4@2 ~@2 g3@5 ~ g3@5 ~@17 g3@2 ~@28 f#3@5 a3@2 ~@8 [g3,d4,g4]@8 ~@17 b3@3 ~@3 b3@3 ~@3 [b3,d4,g4]@3 ~@26, ~@41 [b2,g3]@5 b2@12 ~@18 b2@5 ~ a2@5 [a2,e3]@5 ~ [a2,e3]@5 ~ [a2,e3]@6 b2@10 ~ b2@6 ~@30 g3@5 ~@7 g3@5 ~@11 g3@3 ~@3 g3@2 ~@4, ~@47 g3@5 [b3,d4]@3 ~@3 b3@2 ~@19 [d4,g4]@3 ~@35 f#3@5 ~@3 [e3,b3]@7 ~@2 [e3,g3]@5 ~ [e3,g3,d4]@5 ~ [e3,g3]@5 e3@5 ~@2 [e3,g3]@5 e3@5 ~ [e3,g3]@5 ~ e3@5 ~ e3@5 ~ e3@5]/4", // C A5 C D B5 G G5 G …
  W: "[~ [c4,e4]@2 ~ [g3,c4,e4] ~ d4 [d4,f#4]@2 [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@2 ~ [a3,d4,f#4]@3 [b2,f#3]@2 ~ [e2,b2,b3,d4,g4]@6 ~@3 [d4,g4]@3 [b3,d4,f#4]@2 g4@3 f#4@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4]@2 ~ [b3,d4,g4]@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4]@2 ~ [d4,g4]@3 [b3,d4,f#4]@2 ~ [b3,d4,g4]@2 ~ [b3,d4,f#4] ~@2 [c4,e4]@2 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~ [g3,c4,e4]@3 e3 ~, a2@5 ~ b2@5 ~ [b2,f#3]@5 ~ [b2,f#3]@5 ~@11 e2@4 ~@27 g3@5 ~@6 g3@2 ~@18, g3@2 ~@4 a3@2 ~@25 [b3,f#4]@2 ~ g3@5 [e3,g3,b3,d4]@5 ~ [e3,g3]@5 ~ [e3,g3]@5 ~ [e3,g3]@5 e3@5 ~@2 [e3,g3]@5 [a2,e3]@5 ~ [a2,e3]@5 ~ [a2,e3]@6 ~@2, ~ e3@5 ~ f#3@5 ~@23 [b2,b3]@4 ~@25 b3@3 ~@29]/2", // C D B5 Em7 G5 Bm G Bm …
  X: "~ [b2,f#3,a3,d4,f#4]@2 ~@45", // Bm7
})).s("gm_electric_guitar_clean").gain(0.2)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~@2 A B C B C D A E F G A H A I F J A K@2 L M N@2 O P O Q A J A R ~@7 S@8 T@8 U ~@10
>`.pickRestart({
  A: "~@9 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~@10 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~", // G
  B: "~@9 [c4,e4,a4]@2 ~ [c4,e4,a4] ~@8 [c4,e4,a4]@2 ~ [a#3,c#4,f4,a#4]@2 ~ [b3,a4]@5 ~ [d4,a4,b4]@2 ~ [b3,d4,a4,b4] ~@8 [b3,d4,a4,b4] ~@2, ~@13 d4@3 b3 ~@7, ~@27 f#4@8 ~@13", // Am A#m B7 Bm7
  C: "~@9 [d4,g4,b4]@2 ~ [b3,d4,g4,b4] ~@8 [b3,d4,g4,b4]@2 ~@10 [b3,d4,g4,b4]@2 ~ [b3,d4,g4,b4] ~@8 [b3,d4,g4,b4]@2 ~, ~@4 b3 ~@19", // G
  D: "~@9 [c4,e4,a4]@2 ~ [c4,e4,a4] ~@8 [c4,e4,a4]@2 ~ [c#4,f4,a#4]@2 b2 f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@2, ~@13 d4@3 ~@8, ~@27 a4@5 ~@16", // Am A#m Bm7
  E: "~@9 a4@2 ~ a4 ~@8 a4@3 [f4,a#4]@2 ~ f#4@6 [a4,b4]@2 ~ [a4,b4] ~@8 [a4,b4]@2 ~, ~@27 a4@5 ~@16", // A#5 Asus2
  F: "~@9 [g4,b4]@2 ~ [g4,b4] ~@8 [g4,b4]@2 ~@10 [g4,b4]@2 ~ [g4,b4] ~@8 [g4,b4]@2 ~", // G
  G: "~@9 [e4,a4]@2 ~ [e4,a4] ~@8 [e4,a4]@3 [f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@2, ~@27 a4@5 ~@16", // A5 A#5 Bm7
  H: "~@9 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~@25", // G
  I: "~@9 [c4,e4,a4]@2 ~ [c4,e4,a4] ~@8 [e4,a4]@3 [f4,a#4]@2 b2 f#4@6 [a4,b4]@2 ~ [a4,b4] ~@8 [a4,b4]@2 ~, ~@27 a4@5 ~@16", // Am A5 A#5 Asus2
  J: "~@9 [e4,a4]@2 ~ [e4,a4] ~@8 [e4,a4]@3 [f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@2, ~@13 d4@3 ~@8, ~@27 a4@5 ~@16", // A5 A#5 Bm7
  K: "[~@9 [e4,a4]@2 ~ [e4,a4] ~@8 [a3,c4,e4,a4]@2 ~@4 b3@2 ~@2 b3@3 ~ b3@3 ~ b3@3 ~ b3@3 ~ b3@2 ~@2 b3@3 ~@27 [d4,g4,b4]@2 ~ [b3,d4,g4,b4] ~@8 [b3,d4,g4,b4]@2 ~, ~@40 b3 ~@7]/2", // A5 Am G
  L: "~@9 [b3,d4,g4,b4]@2 ~ [b3,d4,g4,b4] ~@8 [b3,d4,g4,b4]@2 ~@10 [d4,g4,b4]@2 ~ [b3,d4,g4,b4] ~@11, ~@16 b3 ~@7", // G
  M: "~@33 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~", // G
  N: "[~@9 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~@10 [c4,e4,a4]@2 ~ [c4,e4,a4] ~@5 [c4,e4,a4]@2 ~ [c#4,f4,a#4]@2 ~ [f#4,b4]@2 ~@31 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~, ~@47 d4@2 ~@47]/2", // G Am A#m B5 G
  O: "~@9 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~@10 [c4,e4,a4]@2 ~ [c4,e4,a4] ~@8 [c4,e4,a4]@2 ~", // G Am
  P: "[c#4,f4,a#4]@2 ~ a4@5 ~ [d4,a4,b4]@2 ~ [b3,d4,a4,b4] ~@8 [b3,d4,a4,b4] ~@11 [d4,g4,b4]@2 ~ [d4,g4,b4] ~@8 [d4,g4,b4]@2 ~, ~ d4@3 b3 ~@19, ~@3 f#4@8 ~@37", // A#m Bm7 G
  Q: "~@3 [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~@19", // D
  R: "~@9 [c4,e4,a4]@2 ~ [c4,e4,a4] ~@8 [c4,e4,a4]@2 ~ [c#4,f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@2, ~@13 d4@3 ~@8, ~@27 a4@5 ~@16", // Am A#m Bm7
  S: "[~@47 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 [g4,b4] d4 ~@44 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 [g4,b4] d4 ~@44 [g4,b4]@2 [g4,b4] d4 ~@8 [g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [e4,a4]@2 a4 e4 ~@8 [e4,a4]@3 [f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@11 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [e4,a4], ~@23 d4 ~@11 d4 ~@11 d4 ~@23 d4 ~@11 d4 ~@11 d4 ~@23 d4 ~@11 d4 ~@20 d4@3 ~@12 d4 ~@11 d4 ~@11 c4, ~@305 a4@5 ~@74]/8", // G G5 G G5 G G5 G A5 …
  T: "[~ a4 [c4,e4] ~@8 [c4,e4,a4]@2 ~ [c#4,f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@11 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [e4,a4]@2 a4 e4 ~@8 [e4,a4]@3 [f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [a4,b4]@2 ~@10 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [e4,a4]@2 a4 e4 ~@8 [e4,a4]@3 [f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@11 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [e4,a4]@2 a4 e4 ~@8 [e4,a4]@3 [f4,a#4]@2 ~ f#4@6 [d4,a4,b4]@2 ~ [d4,a4,b4] ~@8 [d4,a4,b4] ~@11 [g4,b4]@2 [g4,b4] d4 ~@8 [d4,g4,b4]@2 ~@10 [g4,b4]@2 b4 [d4,g4] ~@8 [d4,g4,b4]@2 ~@10 [e4,a4], ~@17 a4@5 ~@24 d4@2 ~@22 d4@2 ~@40 d4@6 ~@24 d4@2 ~@22 d4@2 ~@40 d4@6 ~@24 d4@2 ~@22 d4@2 ~@40 d4@6 ~@24 d4@2 ~@22 d4@2 ~@24, ~@113 a4@5 ~@91 a4@5 ~@91 a4@5 ~@74]/8", // C Am A#m Bm7 G G5 G A5 …
  U: "~ a4 e4 ~@11 [d4,f#4,a4]@2 ~@32", // D
})).s("gm_electric_guitar_clean").gain(0.08).pan(0.8)

// other · electric guitar muted
const electric_guitar_muted = note("<~@44 A B A B A B A B A B A B C ~@10>".pickRestart({
  A: "~@17 b2 ~@2 e3 ~@2 f#3 ~@2 g3 ~@2 f#3 ~@2 e3 ~@2 d3 ~@2 e3 ~@2 e3 ~@2 e2 ~@2 e2",
  B: "~@17 b2 ~@2 e3 ~@2 f#3 ~@2 g3 ~@2 f#3 ~@2 e3 ~@2 d3 ~@2 e3 ~@2 e3 ~@2 a2 ~@2 a2", C: "~@11 b2 ~@26 e2 ~@9",
})).s("gm_electric_guitar_muted").gain(0.29)

// other · synth strings 2
const synth_strings_2 = note(`<
  ~@8 A@2 ~@2 B@2 C@2 D@2 E@2 F G H@2 I@4 J K@2 L@2 ~@3 M@3 N@2 ~@8 O@2 P@2 Q@2 R@5 S@4 ~ T U
>`.pickRestart({
  A: "[~@11 e4@13 b4@11 g4@12 e4@24 f#4@23 ~@2]/2", B: "[~@11 e4@12 ~ b4@11 g4@12 ~@15 e4@8 ~@26, ~@47 b4@21 ~@28]/2",
  C: "[~@12 e4@12 b4@11 g4@12 e4@24 ~ f#4@23 ~]/2", D: "[~@11 e3@13 b3@12 g3@11 e3@12 c5@12 b4@20 ~@5]/2",
  E: "[~@12 e3@11 b3@12 g3@12 e3@24 f#3@25]/2", F: "~@3 e4", G: "b4@11 g4@12 b4@19 ~@6",
  H: "[~@36 e5@11 b5@12 g5@12 e5@19 ~@6]/2",
  I: "[~@35 e5@12 b5@12 g5@12 e5@24 f#5@24 ~@13 e4@11 b4@12 g4@12 ~ e4@24]/4", J: "f#4 ~@7",
  K: "[~@12 e4@12 b4@12 g4@11 e4@25 f#4@24]/2", L: "[~@12 e4@12 b4@11 g4@11 ~ e4@25 f#4@19 ~@5]/2",
  M: "[~@40 b4@93 g5@11]/3", N: "[~@4 f#5@11 e5@45 ~@36]/2", O: "[~@2 e4@11 b4@12 g4@12 e4@24 f#4@26 ~@9]/2",
  P: "[~@2 e4@11 b4@12 g4@12 e4@24 f#4@25 ~@10]/2", Q: "[~ e4@12 ~ b4@11 g4@11 ~ e4@24 f#4@23 ~@12]/2",
  R: "[~@2 e4@11 b4@12 g4@12 e4@22 f#4@4 ~@23 b3@46 e4@23 f#4@21 g4@49 ~@15]/5",
  S: "[~@30 b4@93 g5@13 ~@2 f#5@11 e5@43]/4", T: "~@16 e5@11 b5@12 g5@9", U: "~ b5@5 ~@10",
})).s("gm_synth_strings_2").gain(0.26)

// drums · kick
const kick = s("bd").struct("<~@2 A@20 B A B A@8 C D E F G H I J ~ K ~ K ~@3 L M@7 N O P Q R S T U V ~ W>".pickRestart({
  A: "x!2", B: "~ x", C: "x ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x",
  D: "~@2 x ~@4 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x ~@5",
  E: "x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~ x ~@2 x ~@5 x ~@2 x ~@2 x",
  F: "~@5 x ~@2 x ~@2 x ~@5 x ~ x ~@2 x ~@5 x ~@11 x ~@5 x ~",
  G: "~@4 x ~ x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~ x ~@3",
  H: "~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@4 x ~@2 x ~@2 x ~@5 x ~@4",
  I: "~ x ~@2 x ~@2 x ~@5 x ~@2 x ~ x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5", J: "x ~@5 x ~ x ~@2 x ~@36",
  K: "~@7 x ~@16", L: "~@19 x ~@4", M: "~@7 x ~@11 x ~@4", N: "~@11 x ~@26 x ~@2 x ~@4 x ~",
  O: "~ x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x ~@2 x ~@2 x ~@5 x ~@2",
  P: "x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~ x ~@2 x ~@5 x ~@5 x ~@5 x ~@2 x",
  Q: "~@2 x ~@5 x ~ x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~ x ~@2",
  R: "x ~@5 x ~@2 x ~@2 x ~@17 x ~@4 x ~@5 x ~@2 x ~@2 x",
  S: "~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~ x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~",
  T: "~@4 x ~@2 x ~ x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x ~@2",
  U: "~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x ~@2 x ~@2 x ~@4",
  V: "~ x ~@5 x ~@5 x ~@5 x ~@4 x ~@23", W: "~@7 x ~@4",
})).gain(0.72)

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

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@2 A@3 ~ A@3 ~ A@3 ~ A@3 ~ A ~ B C B C B C B A ~ A@3 ~@35>".pickRestart({
  A: "~@3 x ~@3 x", B: "~@7 x", C: "~@3 x ~@4",
})).gain(0.32)

// drums · snare
const snare = s("sd").struct("<~@23 A B ~@8 C D E F G H I J ~@8 K@6 L M N O P Q R S T ~@2 U>".pickRestart({
  A: "~@12 x!4", B: "~@5 x ~@10", C: "~@6 x ~@11 x ~@10 x ~@11 x ~@6", D: "~@5 x ~@10 x ~@11 x ~@19",
  E: "~@3 x ~@11 x ~@11 x ~@10 x ~@9", F: "~@2 x ~@11 x ~@10 x ~@5 x ~@2 x!2 ~ x!2 ~@9",
  G: "~ x ~@10 x ~@11 x ~@11 x ~@10 x", H: "~@11 x ~@11 x ~@4 x!2 ~@16 x ~", I: "~@10 x ~@10 x ~@11 x ~@11 x ~@2",
  J: "~@2 x!2 ~@7 x ~@36", K: "~ x ~@2 x ~", L: "~@4 x ~@8 x ~@2 x ~@7", M: "~@11 x ~@32 x ~@3",
  N: "~@7 x ~@11 x ~@11 x ~@10 x ~@5", O: "~@6 x ~@11 x ~@22 x ~@6", P: "~@5 x ~@10 x ~@11 x ~@11 x ~@7",
  Q: "~@3 x ~@11 x ~@2 x ~@2 x!2 ~ x!3 ~ x ~@9 x ~@9", R: "~@2 x ~@11 x ~@10 x ~@11 x ~@10",
  S: "~ x ~@10 x ~@5 x ~@17 x ~@10 x", T: "~@11 x ~@11 x ~@10 x ~@11 x ~", U: "~@24 x!3 ~@21",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@2 A B@2 C A B@2 C A B@2 D A B@2 C B D E F G H I J K B ~ A B@2 C L M N O P Q R S ~ T ~ T ~@4 U@2 V W U@2 V X Y Z AA
  AB AC AD AE AF ~@2
>`.pickRestart({
  A: "~@4 x!3 ~ x ~ x ~ x!3 ~", B: "x ~ x ~ x!3 ~ x ~ x ~ x!3 ~", C: "x ~@3 x!3 ~ x ~@3 x!3 ~", D: "x ~@3 x!3 ~@9",
  E: "~@8 x!2 ~@2 x!3 ~", F: "x ~ x ~ x!3 ~ x ~ x ~ x ~@3", G: "~@12 x!3 ~", H: "x ~ x ~ x!3 ~ x ~ x ~@5",
  I: "~@8 x ~ x ~ x!3 ~", J: "x ~ x ~ x!3 ~ x ~@3 x!3 ~", K: "x ~@3 x!3 ~@5 x!3 ~",
  L: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  M: "~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@4 x ~@2",
  N: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x",
  O: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@5 x ~@2 x ~@2 x ~@11 x ~@2 x ~",
  P: "~ x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x",
  Q: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@4 x ~@5 x ~@2 x ~@2 x ~",
  R: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
  S: "~@3 x ~@7 x ~@36", T: "~@13 x ~@34", U: "~@2 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@5 x ~@3",
  V: "~@2 x ~@2 x ~@2 x ~@5 x ~@5 x ~@5 x ~@2 x ~@2 x ~@5 x ~@9", W: "~@2 x ~@2 x ~@2 x ~@5 x ~@11 x ~@2 x ~@2 x ~@15",
  X: "~@2 x ~@2 x ~@2 x ~@29 x ~@2 x ~@2 x ~ x ~",
  Y: "~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2",
  Z: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@5 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x",
  AA: "~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2",
  AB: "x ~@2 x ~@2 x ~@2 x ~@5 x ~@2 x ~@2 x ~@11 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x",
  AC: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~",
  AD: "~ x ~@2 x ~@2 x ~@4 x ~@2 x ~@2 x ~@5 x ~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x",
  AE: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~ x ~@5 x ~@7",
  AF: "~ x ~@8 x ~@5 x ~@4 x ~@5 x ~@20",
})).gain(0.56)

// … 85 more lines

More by Rossi Vasco