Strudelify

Con un Ma e con un Se

Nek

KeyG minorTempo120 bpm
0:00/0:00
// Con un Ma e con un Se — Nek
// 120 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// bass · electric bass finger
const bass = note(`<
  A B C B C B C B C B D B E B F B G B H B I J K L M N O L P B F B Q B H B R B F B G B H B I J S L T U O L J V W X Y Z Y
  AA AB AA AC AD AE B AF B F B AG B AH AI J S AJ AK N AL L AM J S L AM J AN L AO J S L AP J AN L AQ AR O L AS J AN AT ~
>`.pickRestart({
  A: "~@7 d1", B: "eb1 ~ eb1 ~ eb1 ~ eb1 ~ f1 ~ f1 ~ f1 ~ f1 ~", C: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ d1 ~",
  D: "g1 ~ g1 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", E: "g1 ~@7", F: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~",
  G: "g1 ~ g1 ~ bb1 ~ g1 ~ g1 ~ bb1 ~ g1 ~ g1@2", H: "g1 ~ g1 ~ g1 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", I: "g1 ~@3",
  J: "g1@5 ~ g1 ~ g1@4 a1@2 bb1@2", K: "eb1@5 ~ eb1 ~ eb1@5 ~ eb1@2", L: "f1@5 ~ f1@2 d1@5 ~ d1@2",
  M: "g1 a1 bb1 d2@2 g1 a1@2", N: "g1@5 ~ g1 ~ g1@2 a1@2 bb1@4", O: "eb1@5 ~ eb1 ~ eb1@3 ~ eb1@2 g1@2",
  P: "g1@5 ~ d1@2 g1 ~ g1 ~ g1@4", Q: "g1 ~ g1@2 bb1@2 g1 ~ g1 ~ bb1@2 g1@2 bb1@2",
  R: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ f1 ~ g1 ~", S: "eb1@5 ~ eb1 ~ eb1@4 eb1 ~ g1@2",
  T: "g1 ~ g1@2 a1@2 bb1@2 g1 ~ g1@2 a1@4", U: "g1@5 ~ g1 ~ g1 ~ g1@2 a1@2 bb1@2", V: "c2@5 ~ c2 ~ c2@7 ~",
  W: "eb1@5 ~ eb1 ~ eb1@4 f1@4", X: "g1@5 ~ g1 ~ g1 ~ g1@2 bb1@2 g1@2", Y: "f1@5 ~ f1 ~ f1@5 ~ f1@2",
  Z: "c1@5 ~ c1 ~ c1@5 ~ c1@2", AA: "g1@2 g1@2 ~@2 g1@3 ~ g1@3 ~ g1 ~", AB: "g1 ~ g1@3 ~ g1@3 ~ g1@2 d2@2 g1@2",
  AC: "g1 ~ g1@3 ~ g1@3 ~ g1@2 d2@2 d2@2", AD: "g1 ~ g1@2 ~@2 g1@3 ~ g1@3 ~ g1@2", AE: "~@2 g1@3 ~ c2@10",
  AF: "g1 ~ g1 ~ g1 ~ c2@10", AG: "g1 ~ g1 ab1 g1 ~ c2@3 ~ c2 ~ c2@2 ~@2", AH: "~ g1@3",
  AI: "~@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g2@3 ~", AJ: "f1@5 ~ f1@2 d2@5 ~ d2@2", AK: "g1 ~ g1@2 bb1@4 g1 ~ g1@2 bb1@4",
  AL: "eb1@5 ~ eb1 ~ eb1@6 g1@2", AM: "g1 ~ g1@2 a1@2 bb1@2 g1 ~ g1@2 a1@3 ~", AN: "eb1@5 ~ eb1 ~ eb1@4 eb1@2 g1@2",
  AO: "g1@2 g1@2 c2@2 d2@2 g2@2 g2 ~@5", AP: "g1 ~ g1@2 a1@2 bb1@2 g1 ~ g1@2 a1@2 bb1@2",
  AQ: "g1 ~ g1@3 ~ g1@3 ~ f1@2 g1@3 ~", AR: "g1 ~ g1@3 ~ g1@3 ~ g1@2 a1@2 bb1@2",
  AS: "g1 ~ g1@2 a1@2 g1@2 bb1@2 g1@2 a1@2 bb1@2", AT: "f1@2 ~@5 d1",
})).s("gm_electric_bass_finger").gain(0.55)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@14 A@2 ~@2 B@2 ~ C@2 D E C@2 F E ~@9 A@2 ~@2 B@2 ~ C@2 G E C@2 G H@7 ~@15 C@2 G E C@2 G E I J G K L J G E ~@14 M N
>`.pickRestart({
  A: "[~@4 [g4,bb4,d5,f5]!4 [g4,bb4,d5,f5]@24]/2", B: "[~@4 [g4,bb4,d5,f5]!4 [g4,bb4,d5,g5]@24]/2",
  C: "[~@9 a3 ~ f4@5, g3@16 eb3@15 ~, ~ a3@2 f4@6 ~@7, ~@2 bb3@7 ~ bb3@6]/2", D: "~@3 f4@5, f3, ~ a3@2 ~@5, ~ bb3@3",
  E: "~@3 f4@5, g3, ~ a3@2 ~@5, ~ bb3@3", F: "~ a3 ~@3 f3 g3@2, f3@9 ~@7, ~ bb3@3, ~@3 f4@5",
  G: "~@3 bb3, f3, ~ a3@2 f4@5, ~ bb3@2 ~, ~@5 a3@2 ~",
  H: "[~@6 f4@8 ~@2 [c4,eb4]@14 ~@2 f4@15 ~ d4@15 ~ c4@15 ~ [g3,c4,eb4]@15 ~ [c4,f4]@16, g3@14 ~ [eb3,g3]@15 f3@16 ~@17 [f3,a3]@16 eb3@15 ~ [f3,a3]@17, ~@2 a3@4 ~@25 [g3,bb3]@15 ~ [g3,bb3]@15 ~@50, ~@2 bb3@5 ~@49]/7", // Cm F5 Eb F Gm
  I: "~@3 f4, g3, ~ a3@2 f4@3 ~@2, ~@4 bb3@6 bb3@5 ~", J: "~ a3 ~ f3@2 g3 f3@2, eb3@15 ~, ~ bb3@3",
  K: "~@3 f3@5, g3@3 ~@5, ~ a3@2 ~@5, ~ bb3@3", L: "~@3 f4, g3, ~ a3@2 f4@3 ~@2, ~@2 bb3@3 bb3@2 ~",
  M: "~@2 [a3,c4,f4]@2 [a3,c4,f4]!4 [a3,d4,f4]!2 [a3,d4,f4]@2 [a3,d4,f4]@4", N: "~@4 [bb3,d4,g4]!4 [bb3,d4,g4]@2 ~@6",
})).s("gm_electric_guitar_clean").gain(0.25).pan(0.1)

// chords · rock organ
const rock_organ = note(`<
  A B A B A B A B A B C B D E F E G E H E I ~@8 B A B A B C B D E F E G E H E I ~@61
>`.pickRestart({
  A: "g3", B: "eb3 f3", C: "g3 c4", D: "g3 ~@7", E: "[eb3,bb3] [f3,c4]", F: "[g3,d4]", G: "[g3,d4]@15 ~",
  H: "[g3,d4] [c4,g4]", I: "[g3,d4] ~@7",
})).s("gm_rock_organ").gain(0.21).pan(0.4)

// chords · distortion guitar
const distortion_guitar = note(`<
  A B C D C B C E F B G H I E J E K E L H M ~@8 E M E C E N O C E J E K E L H M ~@22 E C E N P Q R ~@32
>`.pickRestart({
  A: "~@7 [d2,a2]", B: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]!2 [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~",
  C: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  D: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]!2 [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]!2", // Eb5 F5
  E: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~", // Eb5 F5
  F: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]!2", // G5
  G: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~", // G5 C5
  H: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]!2", // Eb5 F5
  I: "[g2,d3]@3 ~@3 [f3,a3]@2 [g3,bb3]@2 [f2,c3]@2 [f2,c3]@2 [f2,c3]@2", // G5 F Gm F5
  J: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~", // G5
  K: "[g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3]@2 [g2,d3] ~", // G5
  L: "[g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [c3,g3]@2 [c3,g3] ~ [c3,g3] ~ [c3,g3]@2 [c3,g3] ~", // G5 C5
  M: "[g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  N: "[g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [c3,g3]@2 [c3,g3] ~ [c3,g3] ~ [c3,g3]@2 [c3,g3]@2", // G5 C5
  O: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]@2 [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@2 [f2,c3] ~", // Eb5 F5
  P: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]@2 [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@2 [f2,c3]!2", Q: "~ [g2,d3]@3",
  R: "~@2 g2 ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
})).s("gm_distortion_guitar").gain(0.42).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  A B C D C B C E C B F G H ~@8 I J K I@2 J K I ~@7 L ~@30 E C E M N O ~@31 P@2
>`.pickRestart({
  A: "~@7 [d2,a2]", B: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]!2 [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~",
  C: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  D: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]!2 [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]!2", // Eb5 F5
  E: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~", // Eb5 F5
  F: "[g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~ [c3,g3] ~", // G5 C5
  G: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]!2", // Eb5 F5
  H: "[g2,d3] ~@2 [f4,a4] ~ [f3,c4]!3, ~@8 [g4,bb4]@5 ~@3", // G5 F F5 Gm
  I: "[bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,g4]@2", // Gm
  J: "[bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2", // Eb
  K: "[a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2", // F Dm
  L: "~@2 [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~ [g2,d3] ~", // G5
  M: "[g2,d3]@2 [g2,d3] ~ [g2,d3] ~ [c3,g3]@2 [c3,g3] ~ [c3,g3] ~ [c3,g3]@2 [c3,g3]@2", // G5 C5
  N: "[eb2,bb2] ~ [eb2,bb2] ~ [eb2,bb2]@2 [eb2,bb2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@2 [f2,c3]!2", O: "~ [g2,d3]@3",
  P: "[~@8 g3 ~@7, ~@7 d3@2 ~@7]/2",
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.8)

// other · distortion guitar
const distortion_guitar_2 = note(`<
  A B A B A ~@4 C D E F ~@20 C D E F ~@21 G H I J K@3 L@5 M N O@2 ~@16 P Q R S P Q T@2 P Q R S P Q U V
>`.pickRestart({
  A: "g2", B: "f2", C: "eb2 f2", D: "g2@8 c3@7 ~", E: "bb2 c3", F: "g2 ~@7", G: "~@2 bb4 g4 bb4@2 g4 f4",
  H: "g4@3 f4 [f4,g4] g4 f4 g4 [f4,g4] f4 g4 f4 [g4,bb4] ~ [d5,f5] ~", I: "a5@8 f5@7 ~",
  J: "a3@3 bb3@3 f4@3 a3@3 ~ bb3@3",
  K: "[g3@18 [eb3,bb3]@2 [eb3,bb3]@4 [eb3,bb3]@2 [eb3,bb3]@4 [eb3,bb3]@4 [eb3,bb3]@3 ~ c3@5 ~ a3@2 bb3@2, ~@37 a3@6 c3@4 ~]/3", // Eb5
  L: "[bb4@2 g4@2 f4@2 bb4@2 g4@2 f4@2 g4@2 f4 g4@7 f4@56 ~@2]/5", M: "[g3,d4]", N: "[g3,d4]!4",
  O: "f3 g3 f3 g3 f3 g3 f3 g3 f3 g3 f3 g3 f3 g3 f3 g3", P: "~ a3 bb3 f4@5", Q: "~@2 a3@2 bb3@2 g3@9 ~",
  R: "~@2 a3@3 bb3@3 c4@3 f4@3 g4@2", S: "bb4@2 ~ bb4@2 ~ bb4@2 g4@6 ~@2",
  T: "[a3@3 bb3@2 g3@2 ~ a3@3 bb3@2 g3@2 a3@3 ~ bb3@3 g3@8 ~@2]/2", U: "a3@3 bb3@2 g3@2 ~ a3@3 bb3@2 g3@2 ~",
  V: "a3@3 bb3@3 g3@5 ~@5",
})).s("gm_distortion_guitar").gain(0.58).pan(0.3)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@12 A ~@8 B@2 C@2 D@2 C@2 ~ E ~@3 E ~@3 E ~@3 E ~@2 B@2 C@2 F@2 C@2 G@3 H@3 I@4 J@2 K L ~@6 E M@2 C@2 N@2 C@2 N@2 C@2
  N@2 C@2 N@2 C@2 F@2 C@2 F@2 C@2 N@2 O@2
>`.pickRestart({
  A: "[g4,c5]", B: "[d4 eb4, [bb3,g4]]/2", C: "[c4 ~ [bb3,g4]@2, [a3,f4] ~, ~ d4@3]/2",
  D: "[[bb3,d4] ~@15 eb4@16, g4]/2", E: "[d4,g4,bb4,c5]", F: "[[bb3,d4] eb4, g4]/2",
  G: "[[c4,eb4]@15 ~ eb4@16 d4@16, g3, ~ bb3@2]/3", H: "[[f3,a3] [g3,eb4] [a3,f4], c4]/3",
  I: "[d4@4 eb4 f4 d4@2, [g3,bb3]]/4", J: "[eb4@4 f4@4 d4@3 [e3,c4]@5, g3, bb3@11 ~@5]/2", K: "[eb3,g3,bb3] [f3,a3,c4]",
  L: "[g3,bb3,d4]@3 [e3,g3,c4]@5", M: "[d4@15 ~ eb4@16, [bb3,g4]]/2", N: "[[bb3,d4]@15 ~ eb4@16, g4]/2",
  O: "[[c4,f4]@4 f3@4 [bb3,g4] ~@7, a3 ~, ~@8 d4@11 ~@13]/2", // F5 Eb
})).s("gm_synth_strings_1").gain(0.17).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@37 A B A B A C D E B F G B@2 F G B H I J K H L ~@15 B F G B@2 F G B@2 F G B@2 F G B M N O M@2 N O M@2 N O M@2 N P ~
>`.pickRestart({
  A: "[g3,bb3,eb4]@2 [g3,bb3,eb4]!2 [a3,c4,f4]@2 [a3,c4,f4]!2", // Eb F
  B: "[bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,g4]@2 [bb3,d4,g4] [bb3,d4,g4]@2", // Gm
  C: "[bb3,d4,g4]@2 [bb3,d4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2", // Gm C
  D: "[g3,bb3,eb4]@2 [g3,bb3,eb4] [a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2", E: "[bb3,d4,g4] ~@7",
  F: "[bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2 [bb3,eb4,g4] [bb3,eb4,g4]@2", // Eb
  G: "[a3,c4,f4]@2 [a3,c4,f4] [a3,c4,f4]@2 [a3,d4,f4] [a3,d4,f4]@2", H: "[g3,c4,eb4]!8", I: "[g3,bb3,f4]!8",
  J: "[g3,a3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@4 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]!2", // Gm
  K: "[f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@4 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]!2", L: "[a3,c4,f4]!8",
  M: "[g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]@2 [g3,bb3,d4]!2", // Gm
  N: "[g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]@2 [g3,bb3,eb4]!2", // Eb
  O: "[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]@2 [a3,d4,f4]!2", // F Dm
  P: "~@2 [a3,c4,f4]@2 [a3,c4,f4]!4 [a3,d4,f4]!2 [a3,d4,f4]@2 [a3,d4,f4]@4", // F Dm
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.9)

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

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

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

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@20 [~ x!2 ~@5] ~@23 [~ x!2 ~@5] ~@28 [~ x!2 ~@5] ~@32>").gain(0.3)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@20 A ~@23 A ~@12 B C ~@12 D ~ A ~@7 E ~@7 F ~@7 G ~@8>".pickRestart({
  A: "~@3 x!3 ~@2", B: "~@4 x!2 ~@2", C: "~ x", D: "~@7 x", E: "~@5 x ~@2", F: "~@5 x ~ x", G: "~@12 x!3 ~",
})).gain(0.52)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@20 [~ x!2 ~@5] ~@23 [~ x!2 ~@5] ~@28 [~ x!2 ~@5] ~@32>").gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<~@14 A ~ A ~ A ~@11 A ~ A ~@2 B ~@6 A ~@17 A ~ A ~ A ~@41>".pickRestart({
  A: "~@7 x", B: "~@14 x!2",
})).gain(0.59)

// drums · high tom
const high_tom = s("ht").struct("<~@66 [~@3 x] ~@30 [~@10 x!2 ~@4] ~@8>").gain(0.66)

// drums · crash
const crash = s("cr").struct(`<
  ~@12 A@2 ~@6 A@2 ~@3 A ~@3 A ~@3 A ~@2 B ~@6 A@3 ~@3 A ~@3 A ~@3 A@3 ~@6 C A ~@4 D ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A
  ~@3 A ~@3 A ~@3
// … 9 more lines

More by Nek