Strudelify

Cielo e terra (feat. Dante Thomas)

Nek

KeyE majorTempo113 bpm
0:00/0:00
// Cielo e terra (feat. Dante Thomas) — Nek
// 113 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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.

// other · epiano1
const epiano1 = note("<~@25 A@2 B@2 C@3 D ~@22 A@2 B@2 C@3 D ~@49>".pickRestart({
  A: "[a4 d#5 e5 a4 d#5 e5 b4@3 d#5 e5 b4 d#5 e5 b4@2]/2",
  B: "[a4 d#5 e5 a4 d#5 e5 ~ d#5@2 ~@2 g#5@5, ~@6 b4@2 ~ d#5@7]/2",
  C: "[a4 d#5 e5 a4 d#5 e5 b4@3 d#5 e5 b4 d#5 e5 b4 g#5@4 f#5@5]/3", D: "e5@3 g#5@5",
})).s("gm_epiano1").gain(0.37).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  ~@17 A B A C A B D C E D E F E D C G A C B H A I B C D J B K A L A B A C A B D C E D E M E D N B A C B H A I B C D J B
  K D B O C P B Q C R A S T U A I V W D J B X Y C B Z AA I B AB AA I B AC AD@3 ~
>`.pickRestart({
  A: "e2!8", B: "a1!8", C: "b1!8", D: "c#2!8", E: "a1!4 b1!4", F: "c#2!5 e2!3", G: "a1@2 a1@2 a1@2 a1@2 a1!4 e2@4",
  H: "c#2!4 b1!4", I: "b1!7 g#1", J: "g#1!8", K: "a2!6 e2@2", L: "a1!6 e2@2", M: "c#2!5 e2!2 b1", N: "b1!6 e2 b1",
  O: "e2 b1 c#2 e2!5", P: "c#2 e2 d#2 c#2!5", Q: "e2 b1 e2!6", R: "e2 c#2 b1 c#2 e2 b1 c#2 b1", S: "b2!8", T: "a2!8",
  U: "c#2!3 b1!3 a1 b1", V: "a1!4 c#2 e2 c#2 b1", W: "b1!5 f#2 b1@2", X: "d2!4 a2 g#2 d2@2", Y: "e1!7 g#1",
  Z: "a1@2 f#2@2 a2@2 f#2@2 a1@2 a1@2 a1!4", AA: "e1!8", AB: "c#2@2 c#2@2 c#2@2 c#2@2 b1@2 b1@2 b1@2 b1 c#2",
  AC: "a1!6 b1@2", AD: "e1/3",
})).s("gm_electric_bass_finger").gain(0.64)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~@25 A ~@3 B C D@2 E F G H E F G F I J G@2 E G ~@8 D@2 ~@2 B C D@2 E F G H E F G F I J G@2 K L M N K L M O@2 E F G H E
  F G F I J G@2 E F G@2 E F G H E F G@2 ~@4
>`.pickRestart({
  A: "~@13 b4@3", B: "b4", C: "c#5", D: "b4/2", E: "e4@2 ~ e4!2 ~ e4@2 ~ e4!2 ~ e4 ~ e4 ~",
  F: "b3@2 ~ b3!2 ~ b3@2 ~ b3!2 ~ b3 ~ b3 ~", G: "a3@2 ~ a3!2 ~ a3@2 ~ a3!2 ~ a3 ~ a3 ~",
  H: "c#4@2 ~ c#4!2 ~ c#4@2 b3!2 f#4@2 b3!2 f#4 ~", I: "c#4@2 ~ c#4!2 ~ c#4@2 ~ c#4!2 ~ c#4 ~ c#4 ~",
  J: "g#3@2 ~ g#3!2 ~ g#3@2 ~ g#3!2 ~ g#3 ~ g#3 ~", K: "[c#4,e4,g#4]!16", L: "[c#4,e4,a4]!16",
  M: "[a3,b3,e4,a4]!6 [g#3,b3,e4,g#4]!10", N: "[b3,d#4,f#4]!16", O: "[b3,d#4,b4]!16",
})).s("gm_lead_2_sawtooth").gain(0.36)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@33 A@3 B A C D C E F A@3 D ~@16 A@3 B A C D C E F A@2 ~@2 G H ~@2 G ~@2 A@3 B A C D C E F A I A C D@2 A@3 B A C D@2
  J@3 ~
>`.pickRestart({
  A: "[b3,e4]@3 [b3,e4] [b3,e4]@2 [b3,e4]@3 [b3,e4] [b3,e4]@2 [b3,e4]@2 [b3,e4]@2", // E5
  B: "[b3,g#4]@3 [b3,g#4] [b3,g#4]@2 [b3,g#4]@3 [b3,f#4] [b3,f#4]@2 [b3,f#4]@2 [b3,f#4]@2", // E B5
  C: "[b3,f#4]@3 [b3,f#4] [b3,f#4]@2 [b3,f#4]@3 [b3,f#4] [b3,f#4]@2 [b3,f#4]@2 [b3,f#4]@2", // B5
  D: "[a3,e4]@3 [a3,e4] [a3,e4]@2 [a3,e4]@3 [a3,e4] [a3,e4]@2 [a3,e4]@2 [a3,e4]@2", // A5
  E: "[c#4,e4]@3 [c#4,e4] [c#4,e4]@2 [c#4,e4]@3 [c#4,e4] [c#4,e4]@2 [c#4,e4]@2 [c#4,e4]@2", // C#m
  F: "[b3,d#4]@3 [b3,d#4] [b3,d#4]@2 [b3,d#4]@3 [b3,d#4] [b3,d#4]@2 [b3,d#4]@2 [b3,d#4]@2", G: "a3@3 g#3@5",
  H: "f#3@15 ~", I: "[a3,d4]@3 [a3,d4] [a3,d4]@2 [a3,d4]@3 [a3,d4] [a3,d4]@2 [a3,d4]@2 [a3,d4]@2", J: "[g#3,e4]/3",
})).s("gm_distortion_guitar").gain(0.13).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@26 A B A B A C D E F@3 E G@2 H I J@3 K L ~@9 A B A B A M N E O@3 E G@2 P I J@3 ~@9 E F@3 E G@2 P I Q@3 E R@4 O@3 S@7
  ~
>`.pickRestart({
  A: "~@4 e4 d#4 b3@2, ~@3 b3@3 ~@2", B: "a3 ~", C: "b3@3 b3", D: "a3 b3 a3 c#4@2 b3 a3@2", E: "[g#4,b4,e5]@7 ~",
  F: "[[f#4,b4,d#5]@11 ~@5 [b4,c#5]@10 ~@6 [c#5,e5]@4 ~@2 [g#4,c#5,e5]@4 [f#4,b4,d#5]@5 ~, ~@15 e4@10 ~@6 g#4@4 ~@13]/3", // B Bsus2 C#m B
  G: "[[f#4,b4,d#5]@11 ~@5 [b4,e5]@10 ~@6, ~@15 e4@10 ~@7]/2", // B E5
  H: "[f#4,b4]@3 f#4 f#4@2 f#4@2 ~ f#4 f#4@2 [f#4,b4]@4, d#4, ~ b4!2 ~", I: "[e4,g#4,c#5]@7 ~",
  J: "[[d#4,g#4,b4]@11 ~@5 [e4,a4]@32, ~@15 c#4@32 ~]/3", K: "b4 ~ e5 ~ e5 ~@3 b4 e5 e5@2 e5@2 b4@2",
  L: "~@2 e5 ~ e5@3 ~ b4 e5!2 ~ e5@4", M: "~@2 d#4 e4@3 d#4@2", N: "[a3,c#4] b3 a3 ~@2 b3 a3@2, ~@6 c#4@7 ~@3",
  O: "[[f#4,b4,d#5]@11 ~@5 [b4,c#5]@10 ~@6 [c#5,e5]@4 ~@2 [g#4,c#5,e5]@4 [f#4,b4,d#5]@6, ~@15 e4@10 ~@6 g#4@4 ~@13]/3", // B Bsus2 C#m B
  P: "[f#4,b4]@3 f#4 f#4@2 f#4@2 ~ f#4 f#4@2 [f#4,b4]@4, d#4@15 ~, ~ b4!2 ~", // B5
  Q: "[[d#4,g#4,b4]@11 ~@5 a4@21 ~ d5@4 d5@6, ~@15 c#4@32 ~, ~ e4@2]/3", // G#m
  R: "[[f#4,b4,d#5]@11 ~@5 [b4,e5]@10 ~@6 e4@2 ~ e4 e4@2 e4@3 e4 e4@2 e4@3 ~ e5@14 ~@2, ~@15 e4@10 ~@5 e5@14 ~@20, ~@34 b4@11 ~@2 [g#4,b4]@14 ~@3]/4", // B E5 G#m
  S: "[[g#4,b4,e5]@14 ~@2 [b4,d#5]@11 ~@5 [b4,e5]@10 ~@6 e4@2 ~ e4 e4@2 e4@3 e4 e4@2 e4@3 ~ [g#4,b4]@48, ~@15 f#4@12 ~@4 e4@10 ~@5 e5@14 ~@52, ~@50 b4@11 ~@2 e4@48 ~]/7", // E B E5 G#m
})).s("gm_electric_guitar_clean").gain(0.28).pan(0.7)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  A@4 B@4 C@4 D@3 E@2 B@4 F@4 G@8 ~@4 H@2 I@2 ~@3 J ~@2 B@4 F@4 K@8 ~@4 H@2 I@2 ~@3 J ~@13 H@2 I@2 L@2 ~ J H@2 ~@6 H@2
  ~@6
>`.pickRestart({
  A: "[~@15 d#4, e3!2 a2!2 e3!2 b2!2, ~@2 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@5 ~, ~ e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 e4 d#4 ~]/4",
  B: "[~@17 b3 ~@12 d#4@2, e3!2 a2!2 e3!2 b2!2, ~@2 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 ~@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@5 ~, ~ e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 e4 d#4 ~]/4",
  C: "[~@17 b3 ~@12 d#4@2, e3!2 a2!2 c#3!2 b2!2, ~@2 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 ~@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@5 ~, ~ e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 e4 d#4 ~]/4",
  D: "[~@12 e4 d#4 ~ b2 ~@5 b3 ~ b3, a2@4 b2@4 c#3@7 ~ a2@4 b2@4, ~ b3@2 b3@2 b3@2 b3@2 b3@2 b3@3 b3@3 b3@2 b3@2 ~@3, ~@4 e4@7 ~ e4@8 d#4@4 ~@12 e4@8 e4@4]/3",
  E: "[~@15 b3, e3!2 a2!2, ~ b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 b3@2 ~, ~ e4@2 e4@2 e4@2 e4]/2",
  F: "[~@17 b3 ~@8 e4!2 ~@2 d#4@2, e3!2 a2!2 c#3!2 b2!2, ~@2 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 ~@4 b3@4 b3@4 b3@4 b3@8 b3@5 ~, ~ e4@2 e4@2 e4@2 e4@2 e4@2 e4@2 ~ d#4 ~]/4",
  G: "[~@15 b2 ~@15 b2 ~@14 b3@2 ~@5 b3@2 ~@6 b3 a3@2, a2@8 b2@8 c#3@14 ~@2 a2@8 b2@8 c#3@14 ~@2 a2@8 b2@8 c#3@15 ~ b2@16 a2@16, ~ b3@2 a3@2 b3@2 b3@2 b3@2 b3@3 b3@2 ~ b3@2 a3@2 b3@2 b3@2 b3@2 b3@3 b3@2 ~ b3@2 a3@2 b3@2 b3@2 b3@2 b3@3 ~@3 b3@2 b3@2 ~@2 b3@2 b3@2 c#4@3 ~@2, ~@2 c#4@4 d#4@4 d#4@3 d#4@4 ~ c#4@4 d#4@4 d#4@3 d#4@4 ~ c#4@4 d#4@4 d#4@3 d#4@4 ~ d#4@2 e4@5 ~ a3@3 ~@3]/8",
  H: "[[e4,b4] ~ b4@2 a4@2 b4@4 a4@4 [e4,b4]@13 ~@5, ~@2 e4@11 ~@19]/2", I: "[~@4 e5@4 b4@17 ~@7]/2",
  J: "~@4 a4@2 b4@9 ~",
  K: "[~@15 b2 ~@15 b2 ~@14 b3@2 ~@2 d#4 b3@2 b3@2 ~@6 b3 a3@2, a2@8 b2@8 c#3@14 ~@2 a2@8 b2@8 c#3@14 ~@2 a2@8 b2@8 c#3@15 ~ b2@16 a2@16, ~ b3@2 a3@2 b3@2 b3@2 b3@2 b3@3 b3@2 ~ b3@2 a3@2 b3@2 b3@2 b3@2 b3@3 b3@2 ~ b3@2 a3@2 b3@2 b3@2 b3@2 b3@3 ~@3 b3@2 ~@4 b3@2 b3@2 c#4@3 ~@2, ~@2 c#4@4 d#4@4 d#4@3 d#4@4 ~ c#4@4 d#4@4 d#4@3 d#4@4 ~ c#4@4 d#4@4 d#4@3 d#4@4 ~@2 e4@5 ~@2 a3@3 ~@3]/8",
  L: "[~@10 b4@17 ~@5, ~@6 e4@7 ~@19]/2",
})).s("gm_electric_guitar_jazz").gain(0.29).pan(0.4)

// other · distortion guitar
const distortion_guitar_2 = note("<~@77 A ~@2 B A C D E F G H I@2 J K ~@15 L M@3 ~>".pickRestart({
  A: "a3!6 g#3 ~@9", B: "a2!16", C: "f#3@9 ~ f#4@6", D: "b4@9 ~ g#4@6", E: "e5@3 e5", F: "b5@13 ~@3",
  G: "a5@3 g#5@2 e5 e5@2 b4@8", H: "a4@3 g#4@3 f#4 e4 f#4@5 ~ e4@2",
  I: "[g#4@3 b4@3 b4@2 f#5@4 e5@2 b5@8 b5@2 b5@3 b5@3 b5 ~, ~@4 b4@3 ~@9]/2", J: "c#6@6 e5@3 e5 e5@2 e5@2 c#6@2",
  K: "e5@3 g#4@3 f#4@10", L: "~@3 f#5@5", M: "[e4,e5]/3",
})).s("gm_distortion_guitar").gain(0.56).pan(0.4)

// chords · pad poly
const pad_poly = note(`<
  ~@33 A@2 B@2 C@2 D@2 E@2 F@2 G@2 ~@16 A@2 B@2 C@2 D@2 E@2 F@2 H@3 I H@3 J@2 A@2 B@2 C@2 D@2 E@2 K L C@2 M@2 A@2 B@2
  C@2 N@5 ~
>`.pickRestart({
  A: "[[g#4,b4]@2 [f#4,a4] [g#4,b4]@2 a4@2 b4@9, ~@5 f#4@11]/2", B: "[e4@3 f#4, b4]/2", C: "[g#4 f#4, b4]/2",
  D: "[e4 f#4, b4]/2", E: "[c#5 d#5, g#4]/2", F: "[b4,e5]/2", G: "[g#4 b4, e5]/2", H: "[g#4@8 a4@11 g#4@5, e4]/3",
  I: "[d#4,f#4]", J: "[d#4,f#4]/2", K: "[b4,e5]", L: "[a4,d5]", M: "[e4,b4]/2", N: "[e4,b4]/5",
})).s("gm_pad_poly").gain(0.26).pan(0.4)

// other · synth strings 1
const synth_strings_1 = note("<~@25 A B A B A B C D ~@14 E D E C E D B C A B A B A B C D ~@49>".pickRestart({
  A: "a2 b2", B: "c#3", C: "b2", D: "a2", E: "e3",
})).s("gm_synth_strings_1").gain(0.44).pan(0.6)

// other · pad sweep
const pad_sweep = note("<~@15 A@5 ~@24 B ~@29 B ~@19 C ~@17>".pickRestart({
  A: "[~ b5@2 ~@2, ~@2 b4@33 ~@5]/5", B: "~ a4", C: "~@4 e5@4 a4@7 ~",
})).s("gm_pad_sweep").gain(0.18)

// chords · pad warm
const pad_warm = note(`<
  A@3 B C@4 D@3 E F G@2 H@2 I@4 J@4 K@8 L@4 M@4 N@2 O@2 P@2 I@4 J@4 K@8 L@4 M@4 N@2 O@2 Q@4 R@5 L@4 M@4 N@2 S@2 T@4 L@4
  T@4 U@3 ~
>`.pickRestart({
  A: "[g#3 a3 g#3, e4, b3 ~@47]/3", B: "e4@7 d#4@9, f#3", C: "[g#3@16 a3@16 g#3@16 e4@7 d#4@9, b3, e4@3 f#3]/4",
  D: "[g#3 a3 [g#3,c#4], e4, b3@2 ~]/3", E: "e4@7 d#4@9, [f#3,b3]", F: "[a3,e4] [f#3,d#4], b3",
  G: "[[g#3,c#4]@2 a3 [f#3,d#4], e4@3 ~, ~ b3]/2", H: "[g#3 a3, [b3,e4]]/2",
  I: "[g#3@2 a3@2 g#3@2 ~ d#4, b3, e4@7 ~, ~@3 f#3]/4", J: "[g#3@2 a3@2 [g#3,c#4]@2 ~ d#4, b3, e4@7 ~, ~@3 f#3]/4",
  K: "[[e3,c#4] f#3 g#3@2 ~ f#3 g#3@2 ~ f#3 [e3,g#3,c#4]@2 f#3@2 [e3,a3]@2, [a3,b3]@2 [e3,c#4]@3 d#4@3 [a3,b3]@2 ~@2 b3@4, ~ d#4@3 [a3,b3]@2 [e3,c#4]@3 d#4@7]/8", // C#m A5 Asus2 C#m Asus2 C#m
  L: "[[e4,g#4]@16 [d#4,f#4]@16 a4@16 g#4@7 [d#4,f#4]@9, b4, ~@32 [c#4,e4]@23 ~@9]/4", // E D#m C#m
  M: "[[e4,g#4] [d#4,f#4] [c#4,e4,a4] [d#4,f#4], b4]/4", N: "[[c#4,e4] [d#4,f#4], [b3,g#4]]/2", O: "[a3,c#4,e4,b4]/2",
  P: "[g#3 [a3,c#4], [e3,b3,e4]]/2", Q: "[g#4@8 a3@8 a4@3 g#4@5 [d#4,f#4]@8, b4, [c#4,e4] b3, ~@2 e4 ~]/4",
  R: "[g#4@8 a3@8 a4@3 g#4@5 [d#4,f#4]@16, b4, [c#4,e4]@2 b3@3, ~@2 e4 ~@2]/5", S: "[[c#4,e4,b4] [d4,f#4,a4], a3]/2",
  T: "[[e4,g#4] [d#4,f#4] [c#4,e4,a4]@2, b4]/4", U: "[e3,g#3,b3,b4]/3",
})).s("gm_pad_warm").gain(0.29)

// drums · kick
const kick = s("bd").struct("<~@17 A@15 B A@41 C A@8 D A@11 E A@3 F A@7 C@2 ~@3>".pickRestart({
  A: "x!2", B: "x ~ x!2", C: "x", D: "x ~@2 x ~ x ~@2", E: "x ~@3 x!2 ~@2", F: "x!2 ~@2",
})).gain(0.72)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@32 [~@9 x!3 ~@4] ~@42 [~@3 x ~@4]!8 ~@29>").gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@17 A@45 B A@7 C A@3 D A@8 E A@7 F A@7 G A@7 F ~@4>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@2 x!2", C: "~@4 x ~@7 x ~@2 x", D: "~@4 x ~@3 x ~@2 x!2 ~@3", E: "~@2 x ~@5 x ~@3 x!4",
  F: "~@2 x ~@3 x!2", G: "~@6 x ~ x ~ x ~ x!4",
})).gain(0.64)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@46 A ~@15 B ~@11 C ~@3 D ~@12 B ~@15 E ~@4>".pickRestart({
  A: "~@7 x", B: "~@13 x ~ x", C: "~@5 x ~@2", D: "~@13 x ~@2", E: "~@3 x!3 ~@2",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@16 [~@3 x] ~@95>").gain(0.64)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@16 A B ~@7 C@8 B D B D B D B D B D B D B D ~@8 C@7 E ~@36 F ~@7 G ~@4
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@3 x ~@12", C: "~ x ~ x ~ x ~ x ~@7 x", D: "~ x ~ x ~@12", E: "~@5 x ~ x ~@7 x", F: "~@5 x ~ x",
  G: "~@3 x ~ x ~ x",
})).gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@46 A ~@7 B ~@7 C ~@11 D ~@3 E ~@28 F ~@4>".pickRestart({
  A: "~@6 x ~@2 x!2 ~@5", B: "~@5 x ~@2", C: "~@2 x ~@2 x ~@2", D: "~@13 x!2 ~", E: "~@10 x ~@4 x", F: "~@4 x!4",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@51 A ~@2 B ~@6 C D E F@7 E F@3 ~@17 E F@2 G F@3 H ~@5 I ~@6>".pickRestart({
  A: "x", B: "~@7 x", C: "~@3 x", D: "x!2 ~@2 x ~@3", E: "~ x!7", F: "x!8", G: "x!6 ~ x", H: "x!4 ~@4", I: "~@15 x",
})).gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@46 A ~@27 B ~@3 A ~@28 C ~@4>".pickRestart({
  A: "~@3 x ~@3 x", B: "~@3 x ~@4", C: "~@2 x!3 ~ x ~@9",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@33 A ~@7 A ~@5 A ~@15 A ~@7 A ~@3 A ~@3 A ~@2 B C A ~@2 B A ~@3 A ~@2 B ~@4 D ~@2 B A ~@2 A@2 ~@3
>`.pickRestart({
  A: "x", B: "~@3 x", C: "~ x ~@2 x ~@3", D: "x!2 ~@2",
})).gain(0.64)

// drums · ride bell
// … 12 more lines

More by Nek