Strudelify

Mi vendo

Zero

KeyC majorTempo126 bpm
0:00/0:00
// Mi vendo — Zero
// 126 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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 · "CLEAN GT"
const electric_guitar_clean = note(`<
  A B C D A B C E F G H I F G J K L M N O P M ~@2 F G H I F G J K L M N O Q ~@2 R S T U R S V W R X T Y R S ~@4 F G H I
  F G J K L M N O Q ~@2 R S T U R S V W R X T Y R S ~@8 R S T U R S V W R X T Y R S ~@21
>`.pickRestart({
  A: "~ g3 ~ [d#4,g4] d#4@2 [a#3,d#4] ~@3 [g3,a#3]@2 [g3,a#3] [a#3,c4] [d#4,g4] ~, [f3,a#3] ~@7", // D# D#5 Gm A#sus2 D# A#5
  B: "[a3,c4]@2 ~ [d4,f4] d4@2 [a3,d4] ~ [a3,c4] ~ [a3,c4]@2 [a3,c4]@2 [a#3,d4] ~", // Am Dm D5 Am A#
  C: "~ g3 ~ [d#4,g4] d#4@2 [a#3,d#4] ~@3 [a#3,d#4]@2 [a#3,d#4] [c4,d#4] [d#4,g4] ~, [f3,a#3] ~@7", // D# D#5 Cm D# A#5
  D: "[a3,f4]@2 f4 ~ a#3@2 [d#4,g4] ~ b3@2 [f4,g#4] ~ c4@2 [f4,a4] ~", // Dm D# Fm F
  E: "[a3,c4]@2 ~ [d4,f4] d4@2 [a3,d4] ~ [a3,c4] ~@7", F: "~@2 [d4,g4] ~@3 [d4,g4] ~@3 [d4,g4] ~@3 [d4,g4] ~",
  G: "~@2 [d#4,g4] ~@3 [d#4,g4] ~@3 [d#4,g4] ~@3 [d#4,g4] ~", // D#
  H: "~@2 [c4,d#4] ~@3 [c4,d#4] ~@3 [c4,d#4] ~@3 [c4,d#4] ~", I: "~@2 [a3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~@3 [a3,d4] ~",
  J: "~@2 [c4,g4] ~@3 [c4,g4] ~@3 [c4,g4] ~@3 [c4,g4] ~", K: "~@2 [d4,a4] ~@3 [d4,a4] ~@3 [d4,a4] ~@3 [d4,a4] ~",
  L: "~@2 [e4,a4] ~@3 [e4,a4] ~@3 [e4,a4] ~@3 [e4,a4] ~", M: "~@2 [b3,d#4] ~@3 [b3,d#4] ~@3 [b3,d#4] ~@3 [b3,d#4] ~",
  N: "~@2 [b3,e4] ~@3 [b3,e4] ~@3 [d4,f#4] ~@3 [d4,f#4] ~", O: "~@2 [e4,g4] ~@3 [e4,g4] ~@3 [f#4,a4] ~@3 [f#4,a4] ~",
  P: "~@2 [e4,g4] ~@3 [e4,g4] ~@3 [e4,g4] ~@3 [e4,g4] ~", Q: "~@2 [e4,g4] ~@3 [e4,g4] ~@3 [e4,g4] ~@5",
  R: "~@2 [a3,d4] ~@3 [a3,d4] ~@3 [a3,d4]!2 ~@2 [a3,d4] ~", S: "~@2 [b3,g4] ~@3 [b3,g4] ~@3 [b3,g4]!2 ~@2 [b3,g4] ~",
  T: "~@2 [c4,g4] ~@3 [c4,g4] ~@3 [c4,g4]!2 ~@2 [c4,g4] ~", U: "~@2 [a3,c4] ~@3 [a3,c4] ~@3 [a3,c4]!2 ~@2 [a3,c4] ~",
  V: "~@2 [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~@3 [g3,c4] ~", W: "~@2 [a3,c#4] ~ [a3,c#4] ~ [a3,c#4] ~ [a3,c#4]@2 ~@6",
  X: "~@2 [b3,g4] ~ b3 ~ [b3,g4] ~@3 [b3,g4]!2 ~@2 [b3,g4] ~", Y: "~@2 [a3,e4] ~@3 [a3,e4] ~@3 [a3,e4]!2 ~@2 [a3,e4] ~",
})).s("gm_electric_guitar_clean").gain(0.43).pan(0.4)

// bass · electric bass finger · "BASSO"
const bass = note(`<
  ~@3 A B C D E F G D H F I J H K L M N B O P Q F G D H F I J H K L M R S@3 T U V W X Y Z AA AB U V W X AC AD AE AF AG F
  G D H F I J H K L M R AH@3 T U V W X Y Z AA AB U V W X AC AI@2 AJ AK AI@2 AJ AL T U V W X Y Z AA AB U V W X AC AI@2 AJ
  AK AI@2 AJ AK AI@2 AJ AK AI@2 AJ AK AI@2 AJ AK AM
>`.pickRestart({
  A: "~@15 c3", B: "c2@4 ~@3 c2!2 ~ c2@2 ~@2 c2@2", C: "f1@3 ~@4 f1 f1@2 ~@4 f1@2", D: "c2@3 ~@4 c2!2 ~ c2@2 ~@2 c2@2",
  E: "f1@2 ~@5 f1!2 ~ f1@3 f#1@3", F: "g1@4 ~@3 g1!2 ~ g1@2 ~@2 g1@2", G: "d#2@4 ~@3 d#2!2 ~ d#2@2 ~@2 d#2@2",
  H: "d2@3 ~@4 d2!2 ~ d2@2 ~@2 d2@2", I: "d#2@4 ~@3 d#2!2 ~ d#2@2 ~ d#2 a#1 b1", J: "c2@3 ~@4 c2!2 ~ c2@2 ~@2 c2 c#2",
  K: "a1@4 ~@3 a1!2 ~ a1@2 ~@2 a1@2", L: "b1@3 ~@4 b1 b2@2 b1@2 ~@2 b2@2", M: "e2 e3 d#2 d#3",
  N: "d2@4 d3@3 d2 c#2 ~ c#2@2 c#3@2 ~@2", O: "b1@4 ~@3 b1!2 ~ b1@3 ~ b1 ~",
  P: "e2@2 e3 ~ d#2@2 d#3 ~ d2@2 d3 ~ c#2@2 c#3 ~", Q: "c2@2 c3 ~ b1@2 b2 ~ a#1@2 a#2 ~ a1 ~ g#1@2",
  R: "d2@4 d3@3 d2 c#2 ~ c#2@2 c#3@3 ~", S: "[c2@4 ~@3 c2 c2@4 ~@2 b1@6 ~@2 e2@6 ~@2 d2@6 ~@2 g1@4 g1 g#1 a1@4]/3",
  T: "d1@3 ~ d2@3 d2 a1@2 c2@2 d2@2 a1@2", U: "g1@4 d2@4 g1@2 ~ g1 b1@3 ~", V: "c2@4 c3@3 c3 c2@2 e2@2 g2@2 g#2 ~",
  W: "a2@4 e2@4 a1@3 ~ e2@2 a2@2", X: "d2@4 d3@3 d3 a2@2 c3@2 a2@2 g#2@2", Y: "g2@3 g2 d2@4 g1@4 b1@4",
  Z: "c2@4 g2@4 c3@3 c2 g2@2 g#2@2", AA: "a2@2 a2@2 a2@2 a2@2 a2 ~@3 a1@4", AB: "d1@3 ~ d2@3 d2 a1@2 c2@2 a1@2 g#1@2",
  AC: "g2@3 g2 d2@4 g1@4 b1@3 ~", AD: "c2@2 g1 a#1 c2@2 g2 ~", AE: "f2@2 f2 ~ a1 ~ a1@2 a#1@4 b1@4",
  AF: "c2@4 g1@2 a#1@2 c2@4 g2@3 ~", AG: "f2@2 f2 ~ f2 ~ f2@2 f2 ~ f1@3 f#1@3",
  AH: "[c2@4 ~@3 c2 c2@4 ~@2 b1@6 ~@2 e2@6 ~@2 d2@6 ~@2 g1@4 g2 g#2 a2@2 ~@2]/3",
  AI: "[c2@4 g1@2 a#1@2 c2@2 c2@2 g2@2 f2@4 f2 ~ a1 ~ a1@2 a#1 a#1@3 b1 b1@3]/2", AJ: "c2!2 g1 a#1 c2!2 g2 f2",
  AK: "f2@2 f2 ~ a1@2 a1@2 a#1 a#1@3 b1 b1@3", AL: "f2@2 g1@2 g#1@2 a1@5 ~ a1@3 ~", AM: "c2@2 g1 a#1 c2 d#2 c2@2 ~@8",
})).s("gm_electric_bass_finger").gain(0.46)

// other · electric guitar muted · "MUTED GT"
const electric_guitar_muted = note(`<
  A B C D A B C E F G H I J K L M L N O@2 P Q R S F G H I J K L M L N O@2 T ~@2 U V W X Y Z L AA AB AC AD AE AB AF A B C
  E F G H I J K L M L N O@2 T ~@2 U V W X Y Z L AA AB AC AD AE AB AF A B C B A B C ~ U V W X Y Z L AA AB AC AD AE AB AF
  A B C B A B C B A B C B A B C B A B C B ~
>`.pickRestart({
  A: "~ c4!3 g3 c4 ~ c4 ~ c4!3 a#3 c4 d#4 ~", B: "c4 g3 c4!2 g3 c4 ~@2 c4!2 ~@3 f4 ~@2",
  C: "~ c4 g3 c4 g3 ~ a#3 c4 ~ [d#4,g4] ~@2 c4!3 ~", D: "~@2 g3 c4 g3 c4!3 ~ c4!3 ~@2 c4!2",
  E: "c4 g3 c4!2 g3 c4 ~@2 c4 ~@7", F: "~@2 g4 ~@2 g4 ~@2 g4@2 ~ g4 ~@2 g4 ~",
  G: "~@2 g4 ~@2 g4 ~@2 g4@2 ~ g4 ~@2 g4@2", H: "~@2 c4 ~ c4!2 ~@2 c4@2 ~ c4 ~ c4 c4@2",
  I: "~@2 d4 ~ d4!2 ~ d4 d4@2 d4!2 ~ d4!2 ~", J: "~@2 g4 ~@2 g4 ~ g4 g4@2 g4!2 ~@2 g4 ~",
  K: "~@2 d#4 ~ d#4!2 ~ d#4 d#4@2 d#4!2 ~ d#4!2 ~", L: "~@2 c4 ~ c4!2 ~ c4 c4@2 c4!2 ~ c4!2 ~",
  M: "~@2 d4!2 ~ d4 ~ d4 d4@2 d4!2 ~ d4!2 ~", N: "b3 ~ b3!4 ~ b3 b3@2 b3!2 ~ b3 d4 b3",
  O: "~@2 e4 ~@2 e4 ~ e4 e4@2 e4!2 ~ e4!2 ~", P: "~@2 e4 ~ e4!2 ~ e4 e4@2 e4!2 ~@2 e4 ~",
  Q: "~@2 e4!2 ~ e4 ~ e4 e4@2 e4!2 ~ e4 e4@2", R: "~@2 e4 ~ e4!2 ~ e4 e4@2 e4!2 ~ e4!2 ~",
  S: "e4 ~ e4!2 ~ e4 ~ e4!2 ~ e4!2 ~ e4!3", T: "~@2 e4 ~ e4!2 ~ e4 e4@2 e4!2 ~@4",
  U: "~@2 d4 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!3", V: "~ g3!4 ~ g3!2 g3@2 ~ g3 ~ g3!2 a3",
  W: "c4 ~ c4 ~ c4!2 ~ c4!2 ~ c4!2 ~ c4!2 ~", X: "~@2 a3 ~ a3!2 ~ a3!2 ~ a3!2 ~ a3!3",
  Y: "~@2 d4 ~ d4!2 ~ d4 d4@2 ~ d4 ~ d4!2 ~", Z: "~@2 g3 ~ g3!2 ~ g3!2 ~ g3!2 ~ g3!2 ~",
  AA: "~@2 a3 ~ a3 ~ a3 ~ a3 ~@7", AB: "~@2 d4 ~ d4!2 ~ d4!2 ~ d4!2 ~ d4!2 ~",
  AC: "~@2 g3 ~ g3!2 ~ g3 g3@2 g3!3 ~ g3 a3", AD: "c4 ~ c4 ~ c4!2 ~ c4 c4@2 c4!2 ~ c4!2 ~",
  AE: "~@2 a3 ~ a3!2 ~ a3!2 ~ a3!3 ~ c4 a3", AF: "~@2 g3 ~ g3!2 ~ g3 g3@2 g3!2 ~ g3!2 ~",
})).s("gm_electric_guitar_muted").gain(0.3).pan(0.6)

// other · electric guitar muted · "MUTED GT" · soft notes
const electric_guitar_muted_2 = note(`<
  A B C D A B C E ~ F G ~ H ~@2 I ~@2 J@2 K L M ~@2 F G ~ H ~@2 I ~@2 J@2 ~@6 N O ~@8 P A B C E ~ F G ~ H ~@2 I ~@2 J@2
  ~@6 N O ~@8 P A B C B A B C ~@4 N O ~@8 P A B C B A B C B A B C B A B C B A B C B ~
>`.pickRestart({
  A: "~@8 c4 ~@7", B: "~@6 c4!2 ~@2 c4!2 ~@4", C: "c4 ~@7 a#3 ~@7", D: "~ c4 ~@6 c4 ~@3 c4!2 ~@2", E: "~@6 c4!2 ~@8",
  F: "~@7 g4 ~@2 g4 ~@5", G: "~@7 c4 ~@8", H: "~@4 g4 ~@8 g4 ~@2", I: "~@4 d4 ~@11", J: "~@4 e4 ~@11", K: "~@13 e4 ~@2",
  L: "e4 ~@3 e4 ~@11", M: "e4 ~@15", N: "a3 ~@15", O: "~@10 d4 ~@5", P: "g3 ~@15",
})).s("gm_electric_guitar_muted").gain(0.18).pan(0.6)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@4 A@2 B@2 C ~@6 D E ~ F@2 ~@2 G H I J ~ K L ~@2 M ~@3 N O@3 P ~ Q R S ~ T U P ~ Q R S ~ A@2 B@2 I J ~ K L ~@2 M ~@3
  N O@3 P ~ Q R S ~ T U P ~ Q R S ~ A@2 V@2 A@2 W@2 P ~ Q R S ~ T U P ~ Q R S ~ A@2 V@2 X Y X Y X Y X Y X Y X Y X Y X Y
  Z
>`.pickRestart({
  A: "[[c5,c6]@2 [g4,g5] [a#4,a#5] [c5,c6] [d#5,d#6] [c5,c6]@24 ~@2]/2", // C G A# C D# C
  B: "[[c5,c6]@2 [g4,g5] [a#4,a#5] [c5,c6] [d#5,d#6] [c5,c6]@19 ~ [c5,f5,c6,f6]@3 [c#5,f#5,c#6,f#6]@3]/2", // C G A# C D# C F5 F#5
  C: "[d5,g5,d6,g6]@3 ~@13", // G5
  D: "[d5,d6] [c#5,c#6] [c5,c6] [a4,a5] [g#4,g#5] [g4,g5] [f#4,f#5] [f4,f5] [e4,e5] [d#4,d#5] [d4,d5] [c#4,c#5] [c4,c5] [a3,a4] [f#3,f#4] [f3,f4]", // D C# C A G# G F# F …
  E: "[e3,e4] ~@7", F: "[~@4 [e5,e6]@14 [b4,b5] [d5,d6] [e5,e6] [g5,g6] [e5,e6]@9 ~]/2",
  G: "e6 d#6 d6 b5 a#5 a5 g#5 g5 e5 d#5 d5 b4 a#4 a4 g#4 g4",
  H: "e4 d#4 d4 b3 a#3 a3 g#3 g3 f#3 f3 e3 d#3 d3 b2 a#2 a2", I: "g2@3 ~@13",
  J: "g6@2 f#6 f6 d#6 ~ d#6 d6 c#6 ~ c6 b5 a#5@2 ~@2",
  K: "[a4,a5] [c5,c6] [d5,d6] ~@3 [a4,a5] [c5,c6] [d5,d6] ~@3 [a4,a5] [c5,c6] [d5,d6] [f5,f6]", L: "[d5,d6] ~@7",
  M: "[d5,d6]@2 [a4,a5] [c5,c6] [d5,d6] [f5,f6] [d5,d6]@8 ~@2", // D A C D F D
  N: "[b4,b5] [d5,d6] [e5,e6] ~@3 [b4,b5] [d5,d6] [e5,e6] ~@3 [b4,b5] [d5,d6] [e5,e6] ~", // B D E B D E B D …
  O: "[~@14 [f#3,f#4,f#5]@7 ~ [e3,e4,g4,g5]@8 [d3,d4,a4,a5]@7 ~ [g2,g3,b4,b5]@5 ~@5]/3", // F# Em D5 G
  P: "~@10 [a4,a5] ~ [a#4,a#5] ~ [b4,b5]@2", // A A# B
  Q: "[e5,e6] ~ [d5,d6] [c5,c6] [d5,d6] ~ [c5,c6] [b4,b5] [c5,c6] ~ [b4,b5] [a4,a5] [b4,b5] ~ [a4,a5] [g4,g5]", // E D C D C B C B …
  R: "[a4,a5]@3 ~@13", S: "~@10 [c5,c6] ~ [c#5,c#6] ~ [d5,d6]@2",
  T: "[c4,e4,g4]@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 ~", // C
  U: "~@2 [e4,g4,c#5] ~ [e4,g4,c#5] ~ [e4,g4,c#5] ~ [e4,g4,c#5]@2 ~@6", // C#dim
  V: "[[c5,c6]@2 [g4,g5] [a#4,a#5] [c5,c6] [d#5,d#6] [c5,c6]@19 ~@7]/2", // C G A# C D# C
  W: "[[c5,c6]@2 [g4,g5] [a#4,a#5] [c5,c6] [d#5,d#6] [c5,c6]@12 [b4,b5]@2 [c5,c6]@2 [c#5,c#6]@3 ~@7]/2", // C G A# C D# C B C …
  X: "[c5,c6]@2 [g4,g5] [a#4,a#5] [c5,c6] ~ [c5,c6]@9 ~, ~@5 [d#5,d#6]@2 ~@9", // C G A# C D#
  Y: "[f5,f6]@2 [d#5,d#6] [d5,d6] [d#5,d#6] ~ [d5,d6] [c5,c6] [d5,d6] ~ [c5,c6] [a#4,a#5] [c5,c6]@2 ~@2", // F D# D D# D C D C …
  Z: "[c5,c6]@2 [g4,g5] [a#4,a#5] [c5,c6] [d#5,d#6] [c5,c6]@3 ~@7", // C G A# C D# C
})).s("gm_string_ensemble_1").gain(0.35).pan(0.6)

// other · electric guitar clean · "CLEAN GT"
const electric_guitar_clean_2 = note("<A@7 B ~@45 A@3 B ~@29 A@7 ~@15 A@20 ~>".pickRestart({
  A: "c5!2 ~@4 c5!2 ~@4 c5!2 ~@2", B: "c5!2 ~@4 c5!2 ~@8",
})).s("gm_electric_guitar_clean").gain(0.31).pan(0.1)

// chords · brass section · "BRASS"
const brass_section = note(`<
  ~@7 A B ~@27 C@3 ~@6 D E ~@22 C@3 ~@6 D E ~@6 F@2 G@2 H@2 I@2 ~@6 D E ~@6 F@2 G@2 F@2 G@2 F@2 G@2 F@2 G@2 F@2 G@2 J
>`.pickRestart({
  A: "~@10 [f4,c5,f5]@3 [f#4,c#5,f#5]@2 ~", B: "[g4,d5,g5]@3 ~@13",
  C: "[~@14 [f#4,f#5]@7 ~ [g4,g5]@7 ~ [a4,a5]@7 ~ [b4,b5]@4 ~@6]/3", // F# G A B
  D: "[c4,e4,g4]@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@2 [c4,e4,g4]@2 ~", // C
  E: "~@2 [e4,g4,c#5] ~ [e4,g4,c#5] ~ [e4,g4,c#5] ~ [e4,g4,c#5]@2 ~@6", F: "[~@12 [g3,g4]@2 [f3,f4]@15 ~@3]/2",
  G: "[~@12 [g3,g4]@2 [f3,f4]@17 ~]/2", H: "[~@6 [g3,g4] [f3,f4]@8 ~]/2",
  I: "[~@12 [g3,g4]@2 [f3,f4]@4 [g3,g4]@2 [g#3,g#4]@2 [a3,a4]@3 ~@7]/2", J: "[c4,g4,c5] ~@2 [c4,g4,c5] ~@4",
})).s("gm_brass_section").gain(0.31).pan(0.6)

// chords · pad warm · "TAPPETO"
const pad_warm = note(`<
  ~@8 A@3 B@4 C D E F G H@2 I@2 A@3 B@4 C D E F G J@3 K L@4 M@5 N@3 O ~@4 A@3 B@4 C D E F G J@3 K L@4 M@5 N@3 O ~@8 K
  L@4 M@5 N@3 O ~@21
>`.pickRestart({
  A: "[d4 d#4 c4, g4]/3", B: "[f#4 ~@2 c4, d4 d#4, ~ g4@3]/4", C: "[d4,f#4,a4]@15 ~", D: "[e4,a4]", E: "[f#4,b4]",
  F: "e4 f#4", G: "g4 a4", H: "[g4 [d#4,f#4], b4@31 ~]/2", I: "[e4@7 ~]/2",
  J: "[[e4,g4]@13 [f#4,a4]@9 [g4,b4]@8 [a4,c5]@8 [b4,d5]@4 ~@6]/3", K: "[a3,d4]", L: "[b3 ~ a3 d4, g4 a4, ~ c4@2 ~]/4",
  M: "[b3 c4 c#4 ~ g4, g4@2 a4@2 ~, ~@48 d4@31 ~]/5", N: "[c5@3 g4 ~@4 d4@4, e4@2 ~, ~ a4@2]/3", O: "[b3,g4]@15 ~",
})).s("gm_pad_warm").gain(0.25).pan(0.4)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@53 A@2 B@2 C ~@28 D@2 E@2 D@2 F@2 ~@14 D@2 E@2 D@2 E@2 D@2 E@2 D@2 E@2 D@2 E@2 G
>`.pickRestart({
  A: "[c3@11 ~ g2@2 f2@16 ~@2]/2", B: "[c3@11 ~ g2@2 f2@11 ~ f2@3 f#2@3]/2", C: "g2@3 ~@13",
  D: "[c3@11 ~ g2@2 f2@11 ~ a#2@3 b2@3]/2", E: "[c3@11 ~ g2@2 f2@12 a#2@3 b2@3]/2",
  F: "[c3@11 ~ g2@2 f2@4 g2@2 g#2@2 a2@4 ~@6]/2", G: "c3@2 g2 a#2 c3 d#3 c3@4 ~@6",
})).s("gm_distortion_guitar").gain(0.5)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B@2 C B@4 C B@3 C B@3 C D E F B@4 C B@3 C B@3 C D G H I@17 J B@3 C B@3 C B@3 C D G K I@21 L I@17 M I@3 J I@3 N
  I@3 M I@3 J O
>`.pickRestart({
  A: "~@15 x", B: "x ~@6 x!2 ~@7", C: "x ~@6 x!2 ~ x ~@5", D: "x ~@6 x!2 ~@5 x ~", E: "x ~@6 x!2 ~@6 x", F: "x!2",
  G: "~@3 x ~@3 x", H: "~@3 x ~@2 x ~", I: "x!4", J: "x!3 ~", K: "~@3 x ~@4", L: "~ x", M: "~@3 x ~@3 x ~@3 x ~@4",
  N: "x ~@3 x ~@4 x ~@6", O: "x ~@2 x ~@4",
})).gain(0.48)

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

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@12 B@2 ~@7 C D ~@22 B@2 ~@22 E ~@17 F ~@11 F ~@5>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~@15 x", D: "~@3 x!2 ~@3", E: "~@3 x ~@4", F: "~@8 x!2 ~@4 x!2",
})).gain(0.48)

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@23 A ~@12 B C D ~@6 E F ~@5 G ~@3 A ~@12 B C@2 ~@13 G ~@7 D ~@13 G ~@3 H ~@3 A ~@7 H ~@3 A I
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@5 x ~@2", C: "~@2 x ~@2 x ~@2", D: "~ x ~@2", E: "~@14 x!2", F: "~ x!2 ~@5", G: "~@7 x",
  H: "~@4 x!2 ~@7 x ~@2", I: "~@4 x!2 ~@10",
})).gain(0.48)

// drums · open hat
const open_hat = s("oh").struct(`<
// … 47 more lines

More by Zero