Strudelify

Ci sei tu

Nek

KeyF majorTempo135 bpm
0:00/0:00
// Ci sei tu — Nek
// 135 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 142 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(135/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(`<
  ~@16 A B A C A D E F G H I J G H I K L M N O L M N O P Q R S A B A C A D E F G H I J G H I T L M N O L M N O L M N O L
  M N O P Q R U P Q V W A B A C A D O X L M N O L M N Y L M N O L M N Z L M N O L M N O L M N O L M N Z L M N O AA M N
  AB AA AC N O AA M N Z AD ~
>`.pickRestart({
  A: "c2@2 ~@4 c2@2 ~@2 c2@2 d2 ~ d2@2", B: "g1@2 ~@2 g1 ~ g1 ~@3 g1@2 bb1@4",
  C: "g1@2 ~@2 g1 ~ g1@2 ~@2 g1@2 bb1@2 ~@2", D: "g1@3 ~@3 g1@2 ~@2 g1 ~ bb1@2 g1@2", E: "f1@4 ~@2 f1 ~@3 f1@2 c2@4",
  F: "f1@4 ~@2 f1@2 ~@2 f1@2 c2 ~ c2@2", G: "d2 ~@2 d2@3 ~ d2", H: "e2 ~@2 e2@3 ~ e2", I: "f2 ~@2 f2@3 ~ f2",
  J: "e2@2 ~@4 e2@7 ~ e2@2", K: "gb2!5 g1!3", L: "c2!6 d2!2", M: "g1!6 a1!2", N: "bb1!8", O: "f1!8",
  P: "c2 ~@2 e2@2 f2@3", Q: "g1@2 ~@4 g1@3 ~ g1@2 g1 ~ g1@2", R: "c2@2 ~@4 e2@4 f2@5 ~",
  S: "g1@2 ~@4 g1@4 g1@2 g1 ~ g1@2", T: "gb2!4 g1!4", U: "g1@3 ~@3 g1@2 bb1 ~ bb1 ~ bb1 ~ bb1@2",
  V: "f1@4 ~@2 f1@3 ~ f1@2 c2 ~ c2@2", W: "f1@5 ~ f1@3 ~ f1@2 c2 ~ c2@2", X: "gb1!8", Y: "f1!4 f2 f1 f2 f1", Z: "f2!8",
  AA: "c2!3 e2!2 f2!3", AB: "f1!5 c2!2 f1", AC: "g1!3 e2!2 f2!3", AD: "c2@3 ~@13",
})).s("gm_electric_bass_finger").gain(0.59)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@2 B@4 C@2 A@2 B@4 D@2 A@2 B@4 D@2 E F G F H@2 G I J K@2 L J M@2 L N O N O A@2 B@4 D@2 E F G F P@2 G I J M@2 L J M@2
  L J K@2 L J K@2 L N O N O N O Q@2 A@2 B@4 G I J K@2 L J K@2 L J K@2 L J K@2 L J R@2 S T U@2 L J K@2 L J K@2 L J K@2 L
  J K@2 L J K@2 L J K@2 S ~@2
>`.pickRestart({
  A: "[e4@10 ~@6 [bb3,d4]@15 ~, g3, c4 ~, ~@5 f4@11]/2", B: "[e4@5 ~@3 [bb3,d4]@8, g3@31 ~, c4@15 ~@17, ~@5 f4@11]/2",
  C: "[e4@5 ~@3 [bb3,d4]@7 ~, g3@15 ~, c4 ~, ~@5 f4@10 ~]/2", D: "[~ g4, [c4,f4,a4]]/2", E: "[a3,d4,f4]",
  F: "[d4,e4,g4]", G: "[a3,c4,f4]", H: "[[a3,f4] [e4,g4], d4]/2", I: "[c4,gb4]", J: "[c4,e4]", K: "[d4,f4]/2",
  L: "[c4,f4]", M: "[~ d4@31, f4]/2", N: "[c4,e4,g4]", O: "[bb3,d4,f4]", P: "[[a3,f4] [e4,g4], d4@31 ~]/2",
  Q: "[a3,c4,f4]/2", R: "[[d4,f4]@31 ~]/2", S: "[c4,f4]@15 ~", T: "[c4,e4]@15 ~", U: "[~ d4@30 ~, f4@31 ~]/2",
})).s("gm_string_ensemble_2").gain(0.12)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@23 A@2 B C D@2 E F G H@4 I@4 J@5 ~@6 K@2 B C D@2 E F G H@4 L@4 H@4 M@5 ~@7 N@4 O@2 F G P@4 Q@4 P@4 R@2 S@2 P@8 T@4
  U@4 T@4 P@4 U@4 V@4 W@2
>`.pickRestart({
  A: "[~ [d3,a3], ~@14 f4@17 ~, ~@15 d4@16 ~]/2", B: "[g3,c4,d4], e2@13 ~@3",
  C: "~@6 c4@9 ~, f2@15 ~, ~@2 c3@13 ~, ~@4 f3@11 ~",
  D: "[~@2 e3@2 [e3,g3,c4,d4]@10 ~@2 [d3,a3]@13 ~@3, e2@14 f4@15 ~@3, ~@15 d4@14 ~@3]/2", E: "[e2,g3,c4,d4]@7 ~",
  F: "[f2,f3,c4]@15 ~", G: "[gb2,d4]@13 ~@3",
  H: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@10 ~@2 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 c4@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  I: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@8 ~@4 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 c4@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  J: "[~@6 e4@4 ~@14 bb3@2 c4@2 d4@2 ~@8 e4@4 ~@14 bb3@2 c4@2 d4@2 c4@9 ~@9, c3@15 ~ g2@14 ~@4 g3@14 g2@15 ~@17, ~@2 g3@12 bb3@8 g3@8 c4@5 ~ c4@6 f4@9 ~ d3@12 ~@16, ~@4 c4@6 f4@8 ~@2 d3@11 ~ c3@14 bb3@7 ~ g3@10 ~@16]/5",
  K: "[~@16 [d3,a3]@13 ~@3, ~@14 f4@15 ~@3, ~@15 d4@14 ~@3]/2", // D5
  L: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@9 ~@3 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 c4@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  M: "[~@6 e4@4 ~@12 e4@4 ~@12 [c3,c4]@4 [d3,d4]@4 ~@2 f2@4 [f2,f3]@2 ~@6 [a2,a3]@2 [g2,g3]@13 ~@5, c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@11, ~@2 g3@12 bb3@9 ~@3 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~@17, ~@4 c4@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~@17, ~@20 g3@10 bb3@5 ~ bb3@6 ~@38]/5", // C D F A G C F D
  N: "[~@3 e4@2 ~@2 bb3@2 ~ bb3@2 a3@2 bb3@2 ~@5 f4@2 ~@3 bb3@2 a3@2 g3 ~, c3@14 ~@4 g2@11 ~@3 c3@12 ~@2 g2@17 ~, ~@4 g3@29 ~@3 g3@13 ~ g3@9 ~@5, ~@10 f4@8 ~@20 c4@9 ~@17]/4",
  O: "[~@6 e4@4 ~@4 bb3@4 ~@2 bb3@4 a3@4 bb3@3 ~, c3@7 ~@2 g2@7, ~ g3@7, ~@10 f4@9 ~@13]/2",
  P: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@10 ~@2 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 bb3@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  Q: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@9 ~@3 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 bb3@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  R: "[~@3 e4@2 ~@6 e4@2 f4@3, c3@7 ~ g2@7 ~, ~@2 g3@12 bb3@9 ~@9, ~@4 bb3@6 f4@8 d3@13 ~, ~@10 g3@5 ~]/2",
  S: "[~@3 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 f3@13 ~@11 f3@5 ~, ~@2 bb3@3 ~@11, ~@4 [d3,d4]@4 ~@16 c3@7 ~]/2", // C D F A G C F D
  T: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@8 ~@4 f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 bb3@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  U: "[~@3 e4@2 ~@6 e4@2 ~@6 [c3,c4]@2 [d3,d4]@2 ~ f2@2 [f2,f3] ~@3 [a2,a3] [g2,g3], c3@7 ~ g2@7 ~ bb2@7 [c3,c4]@4 [f2,f3]@2 ~@3, ~@2 g3@12 bb3@11 ~ f4@7 ~@3 [d3,d4]@4 ~@16 c3@7 ~, ~@4 bb3@6 f4@8 d3@13 ~@3 f3@13 ~@11 f3@5 ~, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // C D F A G C F D
  V: "[~@3 e4@2 ~@6 e4@2 ~@6 c4@2 d4@2 c4@2 [a3,a4]@2 [g3,g4]@2 [f3,f4]@3, c3@7 ~ g2@7 ~ bb2@7 ~@9, ~@2 g3@12 bb3@9 ~@3 f4@7 ~@31, ~@4 bb3@6 f4@8 d3@13 ~@3 f3@13 ~@17, ~@20 g3@10 bb3@5 ~ bb3@6 ~@22]/4", // A G F
  W: "[f5@31 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.41).pan(0.4)

// chords · pad metallic · Em7 Bbmaj7 Em7 Bbmaj7 G5 Bb
const pad_metallic = note(`<
  ~@84
  [~@6 [d4,e4,g4]@9 ~, c3@3 ~]
  [~@6 [a3,bb3,d4]@7 ~@3, g2@13 ~@3]
  [~@6 [d4,e4,g4]@9 ~, c3@7 ~]
  [~@6 [a3,bb3,d4,f4]@7 ~@3, g2@13 ~@3]
  [~@6 [d4,g4]@8 c4 ~, c3@13 ~@3, ~@3 c4@3 ~@2]
  [~@3 [f3,bb3,d4]@3 ~@2, g2@13 ~@3]
  ~@52
>`).s("gm_pad_metallic").gain(0.26).pan(0.2)

// chords · pad bowed
const pad_bowed = note("<~@22 A@2 ~@26 A@2 ~@88 B@2>".pickRestart({
  A: "[~@2 [c5,f5]@11 ~@3]/2", B: "[g4,c5,e5]/2",
})).s("gm_pad_bowed").gain(0.31).pan(0.3)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@76 A@4 B C D E@2 ~@57>".pickRestart({
  A: "[e4@2 e4@2 e4 ~ e4 ~ e4@2 ~@4 bb3@4 ~@2 g3@4 a3@4 f3@2 g3@6 e4 ~ e4@2 e4@2 f4@3 ~ g4@4 c4@2 e4@2 f4 e4 d4@2 e4 d4 c4@3 ~, ~@10 f4@13 ~@41, ~@18 c4@5 ~@41]/4",
  B: "~@2 g4 ~ c5!2 c4 bb4 ~ bb4 c5!2 ~ bb4 ~ bb4", C: "c5 c4!2 d5 c4!2 c5 c4!2 bb4 c4!2 [c4,c5] c4 g4 ~",
  D: "[c4,a4] ~ a4@2 g4@2 g4@2 f4@2 f4@2 e4 ~ e4@2, ~@2 c4@13 ~", E: "[d4 c4@2 f3@7 ~@6]/2",
})).s("gm_electric_guitar_jazz").gain(0.45)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@3 A@3 B@2 C@2 D@4 E@2 F@2 G H B@2 E@2 I J K L M N O P Q R S T Q R S T F@6 G H B@2 E@2 I J K L M N O P Q R S T Q R S
  T Q R S T Q R S T F@6 E@2 F@2 G H B@2 O P Q R S T Q R S T Q R S T Q R S T Q R S T Q R S T Q R U T Q R S T Q R S T Q R
  S T Q R S T Q R S T V@2
>`.pickRestart({
  A: "[~@16 [c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~@3 g2@4 [f3,g3,bb3,d4] ~ g2@2 a3@2 bb3 a3 g3@2 f3@2, ~@15 [c3,g3]@4 ~@3 c3@6 ~@2 [f3,g3,bb3,d4]@6 ~@12]/3", // C Csus4 Gm7 C5 Gm7
  B: "[[c3,g3,c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~ [f3,g3,bb3,d4]@6 [f3,g3,bb3,d4] ~ [d3,g3]@2 [c3,f3]@2 [d3,g3]@4 [c3,f3]@2, ~@3 c3@3 ~@10]/2", // C Csus4 Gm7 G5 F5 G5 F5
  C: "[[c3,g3,c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~ [f3,g3,bb3,d4]@6 [f3,g3,bb3,d4] ~ g2@2 [d3,g3]@2 [g2,d3,g3]@2 ~@2 g2@2, ~@3 c3@3 ~@10]/2", // C Csus4 Gm7 G5
  D: "[[c3,g3,c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~ [f3,g3,bb3,d4]@6 [f3,g3,bb3,d4] ~@3 a3@2 ~@2 g2@2 f3 ~ [g3,c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~ [f3,g3,bb3,d4]@6 [f3,g3,bb3,d4] ~ [d3,g3]@2 [c3,f3]@2 [d3,g3]@4 [c3,f3]@2, ~@6 c3@6 ~@10 g2@4 bb3@5 c3@4 ~@3 c3@6 ~@20]/4", // C Csus4 Gm7 C Csus4 Gm7 G5 F5 …
  E: "[[a3,c4,f4]@4 [a3,c4,f4] ~ [a3,c4,f4]@2 f2@2 [a3,c4,f4]@2 [a3,c4,f4] ~ [a3,c4]@3 ~ [a3,c4] ~ [a3,c4,f4] ~ [a3,c4]@3 ~ [a3,c4] ~ [a3,c4,f4]@2 f2 ~, f2@6 ~@8 [f2,f4]@6 ~@2 [f2,f4]@7 ~@3]/2", // F Am F Am F
  F: "[[c3,g3,c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~ [f3,g3,bb3,d4]@6 [f3,g3,bb3,d4] ~ [g2,d3,g3,bb3,d4] ~ [g2,d3,g3]@2 [g2,d3,g3,bb3,d4]@3 ~ g2@2, ~@3 c3@3 ~@10]/2", // C Csus4 Gm7 Gm G5 Gm
  G: "[c3,g3,c4,e4]@3 ~ [c3,g3,c4,e4] ~ [g3,c4,e4]@3 ~ [g3,c4,f4]@2 [g3,c4,f4] ~ [f3,g3,bb3,d4]@2, ~@3 c3@3 ~@2", // C Csus4 Gm7
  H: "[g2,f3,g3,bb3,d4]@3 ~ bb3@2 ~@2 a3@2 ~@2 g2@2 f3 ~, ~@4 d4@11 ~, ~@4 f3@9 ~@3, ~@4 g3 ~ g2@4 bb3@5 ~", // Gm7
  I: "[d3,a3,d4,f4]@3 ~ a3@2 ~@2 a3 ~ a3@2 ~@2 a3@2, ~@4 [d4,f4]@5 ~ [d4,f4]@5 ~, ~@6 d3@5 ~ d3@4", // Dm
  J: "g3@3 ~ g3 ~ [g3,c4,e4]@2 e3@2 g3@2 ~@2 g3 ~, [e3,c4,e4]@7 ~@3 [c4,e4]@6, ~@3 e3", // C
  K: "[a3,c4,f4]@3 ~ a3@2 ~@2 a3 ~ [a3,c4]@2 ~@2 [a3,c4]@2, f3@4 [c4,f4]@5 ~ f4@5 ~, ~@3 f3@2 ~ f3@2", // F Am F5
  L: "g3@2 ~@2 g3 ~ [g3,c4,e4]@2 e3@2 [g3,c4]@2 ~@2 [g3,c4]@2, [e3,c4,e4]@6 ~@4 e4@5 ~, ~@3 e3", // C C5 C
  M: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 [a3,c4,f4]@2 d3@2 a3@2 ~@2 a3@2, d3@3 ~@2 [c4,f4]@3, ~@3 d3", // F F5
  N: "[c4,e4]@4 g3@2 [g3,c4,e4]@2 e3@2 g3@2 ~@2 [g3,c4] ~, e3@7 ~@5 e3@4, g3@2 ~@8 [c4,e4]@5 ~", // C C5 C
  O: "[c4,f4]@4 a3@2 [a3,c4,f4]@3 ~ a3@2 ~@2 a3@2, f3@7 ~@5 f3@4, a3@3 ~@7 [c4,f4]@5 ~", // F5 F F5
  P: "[c4,gb4]@4 [a3,c4]@2 [a3,c4,gb4]@2 gb3@2 a3@2 gb3@2 a3 ~, gb3@7 ~@9, a3@2 ~@8 [c4,gb4]@5 ~", // Cdim Am Gbdim Cdim
  Q: "[c3,c4,e4,g4]@3 ~ c4@2 ~@2 c4@2 c4@2 ~@2 c4 ~, ~@4 [e4,g4]@5 ~ [e4,g4]@4 ~@2, ~@6 c3@5 ~ c3@4", // C Em
  R: "[g2,g3,bb3,d4,f4]@3 ~ g3@2 ~@2 g3@2 [g3,bb3,d4]@2 ~@2 [g3,d4]@2, ~@4 [bb3,d4,f4]@5 ~ f4@5 ~, ~@6 g2@5 ~ g2@4", // Gm7 Gm G5 Bb
  S: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 ~@2 [bb3,d4,f4] ~, bb2@4 ~@2 bb2@5 ~ bb2@4", // Bb
  T: "[f2,c4]@4 a3@2 ~@2 a3@2 [a3,c4,f4]@2 f2@2 [a3,c4,f4] ~, [a3,f4]@3 ~ [c4,f4]@6 ~@6, ~@6 f2@5 ~@5", // F5 F Dm F5
  U: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4]@2 ~@2 [bb3,d4,f4]@2, bb2@4 ~@2 bb2@5 ~ bb2@4", // Bb
  V: "[[c3,g3,c4,e4]@31 ~]/2", // C
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.7)

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

// drums · rim
const rim = s("rim").struct("<~@16 [~ x ~ x]!15 [~ x ~@2] ~@12 [~ x ~ x]!7 [~ x ~@2] ~@90>").gain(0.75)

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

// drums · low tom
const low_tom = s("lt").struct("<~@31 A ~@19 A ~@31 A ~@39 B ~@18>".pickRestart({
  A: "~@5 x ~@2", B: "~@8 x ~@2 x!2 ~@3",
})).gain(0.68)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@16 A B C@2 A@3 C B D B@2 C B@2 A ~@8 E A@4 B A@2 B C@2 B A@8 ~@16 E A@13 ~@52
>`.pickRestart({
  A: "x!8", B: "x ~ x!6", C: "x ~ x!3 ~ x!2", D: "x!5 ~ x!2", E: "~ x!7",
})).gain(0.6)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@17 A B@2 ~@3 B A C A@2 B A@2 ~@14 A ~@2 A B@2 A ~@90>".pickRestart({
  A: "~ x ~@6", B: "~ x ~@3 x ~@2", C: "~@5 x ~@2",
})).gain(0.38)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 A ~@27 B ~@23 C ~@7 D ~@31 E ~@18>".pickRestart({
  A: "~@4 x ~@2 x", B: "x ~@2 x ~@4", C: "~ x", D: "~@7 x", E: "~@4 x!2 ~@2 x ~@7",
})).gain(0.68)

// drums · open hat
const open_hat = s("oh").struct("<~@15 A ~@14 B ~@44 C ~@14 D E ~@15 C ~@31 C ~@2>".pickRestart({
  A: "~@3 x", B: "~@15 x", C: "~@4 x!4", D: "~@2 x!6", E: "x!5 ~@3",
})).gain(0.68)

// drums · crash
const crash = s("cr").struct(`<
  ~@24 A ~@5 B A@2 ~@3 A ~@3 A ~@2 C A ~@7 A ~@5 A D A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 E F ~@2 E A ~@5 A E A ~@2 G A ~@3 A
  ~@3 A ~@3 H ~@2 G A ~@3 A ~@3 A ~@3 F ~@2 G A ~@2 E A ~@3 A ~@3 A ~
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "~@5 x!2 ~", D: "~@7 x", E: "~@3 x", F: "x!2 ~@2", G: "~@3 x ~ x ~@2", H: "x!2 ~@6",
})).gain(0.68)

// drums · ride
const ride = s("rd").struct("<~@15 A ~@16 B C@7 ~@18 D ~ B C@15 ~@16 B C@30 E B C@15 E ~>".pickRestart({
  A: "~@10 x!2 ~@4", B: "~ x!7", C: "x!8", D: "~ x!3", E: "x",
})).gain(0.53)

// drums · tambourine
const tambourine = s("tb").struct("<~@32 A@8 ~@20 A@16 ~@16 A@31 ~ A@16 ~@2>".pickRestart({
  A: "x!16",
})).gain(0.3)

stack(
  bass, string_ensemble_2, electric_guitar_clean, pad_metallic, pad_bowed, electric_guitar_jazz, acoustic_guitar_steel,
  kick, rim, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat, crash, ride, tambourine
)

More by Nek