Strudelify

Io ho in mente te

Equipe 84

KeyE majorTempo142 bpm
0:00/0:00
// Io ho in mente te — Equipe 84
// 142 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(142/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(`<
  ~@2 A B A B C D C E A B A B C D C F G B G B A H I A B A B C D C F A J A B A K L M N O P Q R S L T N U N V W S L X Y Z
  AA Z S AB A@2 L@2 AC N AC AD AA AE A L@2 AF AG AF AH AI@2 ~
>`.pickRestart({
  A: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", B: "g1 ~ g1 ~ g1 ~ g1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  C: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", D: "f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", E: "a1 ~@7",
  F: "a1 ~ a1 ~ a1 ~ a1 ~ a1@8", G: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2",
  H: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2@2", I: "a1@15 ~", J: "g1 ~ g1 ~ g1 ~ g1 ~ a1 ~ a1 ~ a1 ~ a1@2",
  K: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", L: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
  M: "e1 ~ e1 ~ e1@2 e1 ~ e1 ~ e1 ~ e1 ~ e1@2", N: "a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ b1 ~ b1 ~ b1@2",
  O: "e1 ~ e1 ~ e1 ~ e1 ~ e1@2 e2@2 e1 ~ e1@2", P: "a1 ~ a1 ~ a1 ~ a1@2 b1 ~ b1 ~ b1 ~ b1@2",
  Q: "a1 ~ a1 ~ a1@2 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", R: "g#1 ~ g#1 ~ g#1@2 g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~",
  S: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", T: "e1@2 e1@2 e1 ~ e1 ~ e1@3 ~ g#1 ~ e1@2",
  U: "e1@5 ~ e1@3 ~ e1@2 g#1@2 e1@2", V: "e2 ~ e2 ~ e2@2 e2@2 e2@2 e2 ~ e2 ~ e2@2",
  W: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~", X: "b1", Y: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2@2",
  Z: "a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ b1 ~ b1 ~ b1 ~", AA: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~",
  AB: "g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~", AC: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~",
  AD: "a1 ~ a1 ~ a1 ~ a1@2 b1 ~ b1 ~ b1 ~ b1 ~", AE: "d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~",
  AF: "e1@5 ~ e1 ~ e1@5 ~ e1 ~", AG: "a1@6 a1 ~ b1@6 b1 ~", AH: "a1@6 a1 ~ b1@5 ~ b1 ~", AI: "e1/2",
})).s("gm_electric_bass_finger").gain(0.57)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@2 A B C B D E D F G B H B I E D J ~@7 G B H B I E D J ~@24 K L M L N O P@2 Q@2 ~@16
>`.pickRestart({
  A: "d4@2 d3@2 d4@2 d3@2 d4@2 d3@2 d4 ~ f#3 ~", B: "g3 ~ g3 ~ g3 ~ g3 ~ a3 ~ a3 ~ a3 ~ a3 ~",
  C: "d4 ~ d3 ~ d4 ~ d3@2 d4 ~ d3 ~ d4 ~ f#3 ~", D: "g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~",
  E: "f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~ f#3 ~", F: "a3 ~@7", G: "d4@2 d3 ~ d4@2 d3@2 d4@2 d3 ~ d4@2 d3 ~",
  H: "d4 ~ d3 ~ d4 ~ d3@2 d4@2 d3 ~ d4@2 f#3 ~", I: "g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3@2",
  J: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3@2", K: "e4@2 e3@2 e4@2 e3@2 e4@2 e3@2 e4 ~ e3 ~",
  L: "a3 ~ a3 ~ a3 ~ a3 ~ b3 ~ b3 ~ b3 ~ b3 ~", M: "e4 ~ e3@2 e4 ~ e3@2 e4 ~ e3@2 e4 ~ e3 ~",
  N: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~", O: "g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~ g#3 ~",
  P: "d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~", Q: "b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~",
})).s("gm_electric_guitar_muted").gain(0.42).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@18 A@2 B@2 C@3 ~@7 D@8 E@2 F@2 G@4 E@2 F@2 H I J K L ~@6 M@2 N O@8 N P@7 ~
>`.pickRestart({
  A: "[[a3,d4]@2 ~@2 a3@2 ~@2 a3@2 f#3@2 [a3,d4]@2 f#3 ~ [b3,d4]@2 ~@2 b3@2 d4 ~ c#4 ~@3 c#4@2 e4 ~, d3@12 ~@4 g2@7 ~ [a2,e4]@5 ~@3, f#3 ~ f#3@6 ~@7 [g3,a3]@3 g3@6 ~@2 a3@6, ~@6 d4@5 ~@21]/2", // D5 Bm A5 Gsus2
  B: "[d4@2 ~@2 d4@2 ~@2 d4@2 a3@2 d4 a3@2 ~ b3@2 ~@2 b3@2 d4@2 [c#4,e4]@2 ~@2 c#4@2 e4 ~, d3@9 ~@7 g2@5 ~@3 a2@5 ~@3, f#4@5 ~ f#4@5 ~@4 d4@4 ~@13, ~@2 a3@7 ~@7 g3 ~ g3@7 ~ a3@6]/2", // C#m
  C: "[[d4,f#4]@2 ~@2 d4 ~ d4 ~ d4@2 a3@2 [d4,f#4] a3 e4 ~ [c3,e4]@2 ~@2 c4@2 ~@2 c4@2 g3@2 c4@2 g3@2 [a2,a3,c#4]@15 ~, d3@12 ~@6 g3@7 ~@23, ~@2 a3@6 ~@7 c4@5 ~@4 c3@4 ~@20, ~@6 f#4@4 ~@12 e4@5 ~ e4@19 ~]/3", // D C A
  D: "[~@16 d3@12 ~@4 d4@5 ~@3 e4@5 ~@3 d3@12 ~@4 d4@5 ~@3 e4@4 ~@4 a4@12 ~@4 e4@12 ~@8 c#4@2 ~@4 b3@2 f#4@2 b3@2, ~@14 d4@14 ~@3 [a3,b3]@6 ~ a3@6 ~@3 [f#3,a3]@13 ~@2 g3@7 ~@2 [b3,c#4]@5 ~@2 d4@14 ~@2 c4@13 ~@3 b3@2 b2@16, ~@15 [f#3,a3]@13 ~@2 g3@7 ~@2 [b3,c#4]@6 ~ d4@14 ~@3 [a3,b3]@6 ~ a3@6 ~@3 [e4,f#4]@13 ~@3 d4@13 ~@3 d#4@16 ~, ~@96 g4@10 ~@5 c#4@3 b3@6 c#4@7 ~, ~@56 f#4@2 ~ f#4@2 ~@3]/8", // Asus2 F#m Bsus2 F#m Bsus2 Asus2 Esus2
  E: "[e4@4 b3@2 ~@2 b3@2 g#3@2 ~@2 g#3 ~ c#4@2 ~@12 b3@2, g#3@7 ~@5 b3@4 ~@2 a3@10 ~@4, b3@3 ~@3 e4@5 ~ e4@8 c#4@7 ~ f#4@4, ~@11 e4@2 d#4@3, ~@24 b3@5 ~@3]/2",
  F: "[~@2 b3@2 ~@2 b3@2 ~@4 e4 ~ e4 ~@5 c#4@2 e4@2 ~@2 d#4@2 f#4@2 d#4 ~, g#3@7 ~ g#3@7 [a3,c#4]@2 ~ a3@10 ~@4, ~@4 e4@6 b3@4 ~@2 [c#4,e4]@4 ~@4 b3@7 ~]/2", // A C#m
  G: "[c#4@2 ~@2 c#4@2 ~@2 c#4@2 a3@4 ~ b3@3 ~@2 b3@2 b3@2 ~@2 g#3@4 ~@8 e4@6 ~@8 d#4@2 ~@4 b3@2 c#4@2 b3 ~, ~@2 a3@7 ~@6 c#4@12 ~@4 c#4@14 ~ f#4@6 ~@2 f#4@8 ~@2, ~@6 e4@6 ~@2 d#4@6 ~@2 d#4@6 ~@3 b3@3 a3@11 ~@2 c#4@2 ~ c#4@7 ~@7, ~@18 g#3@6 b3@4 ~@2 a3@2 e4@4 b3@9 ~@2 d#4@5 ~@4 d#4@7 ~, ~@6 b3 ~]/4",
  H: "b3@2 e4@2 ~@2 e4@3 ~@3 b3@3 c#4, g#3@9 ~ [g#3,e4]@5 ~, ~@4 b3@7 ~@5", // C#m
  I: "[c#4,e4] ~ c#4 ~ c#4 g#3 c#4 [a3,e4], c#3@3 ~, ~ g#3@3 ~@4, ~@3 e4@2 ~@3", // C#m A5
  J: "c#4 d#4 e4 c#4 d#4 [a3,e4] c#4 [a3,f#4], a2@15 ~, ~@2 a3@7 ~@7", // A5 D
  K: "d#4 e4 [d#4,f#4] d#4 e4 [b3,f#4] d#4 e4, b2@7 ~, ~ b3@3 ~@4", L: "[b2,b3,d#4,f#4]",
  M: "[~@7 f#4, d4 f#4 e4 d4 f#4 e4 d4 ~, ~ e4@2 d4@2 f#4@2 e4@2 d4@2 f#4@2 e4@2 ~]/2",
  N: "d#4 e4 f#4 d#4 e4 f#4 d#4 e4",
  O: "[f#4@2 d#4@2 e4@2 f#4@2 d#4@2 ~@2 f#4@3 ~ e4@11 ~@5 a3@6 ~@2 b3@6 ~@2 e4@13 ~@3 a3@6 ~@2 b3@6 ~@2 g#3@14 ~@2 d4@5 ~@23 d4@4, ~@10 e4@4 ~ [g#3,b3]@13 ~@2 e4@8 f#4@8 ~@16 e4@8 f#4@7 ~@17 a4@8 ~@2 d4@4 f#4@4 e4@4 d4@4 f#4@8, ~@31 [b3,c#4]@7 ~ [c#4,d#4]@7 ~ [g#3,b3]@14 ~@2 [b3,c#4]@8 [c#4,d#4]@7 ~ [b3,e4]@15 ~ [e4,f#4]@7 d3@25 ~, ~@53 e4@2 d4@2 f#4@2 e4@4 ~]/8", // G#m Bsus2 C#sus2 G#m Bsus2 C#sus2 E5 Esus2
  P: "[f#4@2 d#4@2 e4@2 f#4@2 d#4@2 e4@2 f#4@3 ~ e3@5 ~@3 g#3@2 a3@2 b3@2 ~ c#4 c#4@2 d4@2 e4@2 ~ d#4 d#4@2 e4@2 f#4@2 ~@2 e3@5 ~@3 g#3@2 a3@2 b3!2 ~ c#4 c#4@2 d4@2 e4@2 ~ d#4 d#4@2 e4@2 ~@4 e3@31 ~, ~@15 b3@12 ~@3 e4@5 ~@3 f#4@6 ~@2 e4@13 ~@3 e4@6 ~@2 f#4@5 ~ f#4@4 ~@32, ~@15 g#3@7 e3@6 ~@3 b3@6 ~@2 c#4@5 ~@3 g#3@7 e3@4 ~@6 a3@7 ~ b3@6 ~ [g#3,b3]@33, ~@32 a3@7 ~ b3@6 ~ b3@13 ~@3 b3@6 ~@2 c#4@4 ~@3 e4@34]/7", // G#m
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.3)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@33 A B A B C@2 D E F G F H@4 G F I F J K@4 ~@5 L@4 M G F G N O@5 G F G F P@2 ~
>`.pickRestart({
  A: "d3@5 ~ d3@2 f#3@2 g3@2 a3@4", B: "b3 c4 d4@2 c#4 d4 e4@2",
  C: "[~@2 d4@2 ~@4 d4@2 a3@2 [d4,f#4]@2 a3@2 e4@2 ~@2 c4@2 c4 ~ c4@2 g3@2 [c4,e4]@2 f#4@2, a3@4 [a3,f#4]@4 ~@10 g3@7 ~@7, ~@3 a4@6 ~@2 e4@2 g4@2 ~]/2", // D C D
  D: "b3 ~@3 c#4@2 ~@4 b3@2 [f#4,b4]@2 b3@2, ~ f#4@3 ~@2 f#4@4 ~@6, ~ b3@3 c#4@4", // B5
  E: "e3@5 ~@3 g#3@2 a3@2 b3@4, ~@3 e3@2 ~@3", F: "c#4 d4 e4@2 d#4 e4 f#4@2", G: "e3@5 ~ e3@2 g#3@2 a3@2 b3@4",
  H: "[~@6 e4@8 ~ b3@3 ~@4 d#4@6 ~@10 e4@6 ~@8 d#4@2 ~@4 b3@2 ~@2 b3 ~, a3@11 ~@3 g#3@2 ~@2 g#3@9 ~@3 a3@14 ~@3 d#4@4 ~@5 d#4@7 ~, ~@4 b3@8 ~@3 d#4@5 b3@8 ~@3 [b3,c#4]@4 ~ b3@8 ~@2 b3@10 ~@8, ~@32 a2@12 ~@4 b2@11 ~ [b2,f#4]@4, ~@32 e4@6 ~@9 f#4@6 ~ f#4@4 ~@6]/4", // Bsus2 B5
  I: "e3@3 e3 g#3 a3 b3@2", J: "~@12 g#3 ~ [g#3,e4]@2, e3@7 ~, ~@2 g#3@9 ~@5, ~@4 b3@6 b3@5 ~, ~@6 e4@7 ~@3",
  K: "[c#4 ~@2 d#4 ~ g#3 c#4 ~ [c#4,e4]@2 b3 ~ b3 a3 ~@4 d#4 ~ d#4 b3 d#4 ~ f#4@8, c#3@11 ~@5 a2@12 ~@4 b2@12 ~@2 b2@17 ~, ~@2 g#3@7 ~@6 a3@10 ~@6 d#4@3 ~@30, ~@4 c#4@6 ~@5 b3@4 ~@11 b3@3 ~ b3@6 ~@7 [b3,d#4]@17, ~@6 e4@6 ~@2 e4@2 ~@6 e4@6 ~@3 f#4@6 ~ f#4@7 ~@19]/4", // C#m B
  L: "[~@38 e4@7 ~@2 [f#3,b3]@5 ~@2 b3@2 d#4@2 ~@4 f#4@2, ~@14 f#3@17 ~ f#3@13 ~@7 f#3@5 ~@7, ~@15 [a3,d4]@19 a3@11 ~@13 b3@5 ~, ~@16 e4@20 d4@9 ~ d#4@7 ~@7 d#4@4]/4", // B5 D5
  M: "~ d#4 ~@2 d#4 ~@2 b3, b3@2 f#4@2 ~ f#4@3, ~@3 b3@3 d#4@2", N: "c#4@2 d4@2 e4@4 d#4 ~ e4@2 f#4@4",
  O: "[~@2 b3 ~ b3 ~ b3 ~ a4@2 ~@8 e4 ~ e4 ~ e4 ~@3 d#4 ~@2 b3 ~@3 d#4 ~@4 f#4 d#4, e3@14 ~ e4@4 ~ e4@4 d4@8 d3@15 b3@2 ~ b3@7 ~@5 b3@8 ~@2 b3@8, ~@2 g#3@6 ~@2 g#3@4 ~ f#4@13 a4@7 ~@3 a4@5 ~@5 b2@14 ~@2 b2@15 ~, ~@6 e4@7 ~ d4@8 a4@4 e4@7 ~ d4@5 ~@3 d4@4 ~ d#4@4 ~@5 d#4@9 ~@5 d#4@7 ~@3, ~@16 d3@14 f#4@4 ~@12 f#4@6 ~@2 f#4@5 ~ f#4@6 ~@2 f#4@7 ~@5]/5",
  P: "[~@3 e4@13, e3, ~ g#3@15, ~ b3@7]/2",
})).s("gm_electric_guitar_clean").gain(0.41).pan(0.7)

// chords · drawbar organ
const drawbar_organ = note(`<
  ~@18 A B C D A E F A G H@2 I J I K L@4 C M N O P O Q K R S T O P U P O V S W@2 ~@6 X@2 Y@2 O Q O Q O Z@2 AA@2 U Q U Q
  AB@2 ~
>`.pickRestart({
  A: "[f#4,a4,d5]@15 ~", B: "[g4,b4,d5]@7 ~ [a4,c#5,e5]@8", C: "[f#4,a4,d5]", D: "[g4,b4,d5] [a4,c#5,e5]",
  E: "[e4,g4,c5]@15 ~", F: "[e4,a4,c#5] ~@7", G: "[g4,b4,d5]@7 ~ [a4,c#5,e5]@7 ~",
  H: "[a4@8 a#4@8 [g4,b4]@8 [a4,c#5,e5]@7 ~, d5@23 ~@9, f#4 ~]/2", I: "[g4,b4,d5]", J: "[f#4,a4,c#5]", K: "[a4,c#5,e5]",
  L: "[[f#4,a4]@2 [g4,b4] [a4,c#5,e5], d5@3 ~]/2", M: "[e4,g4,c5]", N: "[d#4,f#4,b4]", O: "[g#4,b4,e5]",
  P: "[a4,c#5,e5]@8 [b4,d#5,f#5]@7 ~", Q: "[a4,c#5,e5] [b4,d#5,f#5]", R: "[g#4,b4,d#5]@15 ~", S: "[a4,c#5,e5]@15 ~",
  T: "[f#4,b4,d#5]@15 ~", U: "[g#4,b4,e5]@15 ~", V: "[g#4,c#5,e5]@15 ~", W: "[[f#4,b4,d#5]@9 ~@7]/2",
  X: "[[f#4,a4,d5]@31 ~]/2", Y: "[[f#4,b4,d#5]@31 ~]/2", Z: "[f#4,a4,d5]/2", AA: "[f#4,b4,d#5]/2", AB: "[g#4,b4,e5]/2",
})).s("gm_drawbar_organ").gain(0.09).pan(0.6)

// other · percussive organ
const percussive_organ = note(`<
  ~@25 A B C D E F G H ~@7 I J K J L M N M O J O P Q@3 R@2 ~@6 S T U V K J O J N W X Y Z N AA N AB AC@2 ~
>`.pickRestart({
  A: "c#5@2 d5 ~ d5@2 a4 ~ c#5@2 d5 ~ d5@2 a4@2", B: "b4@2 c#5@2 d5@2 b4@2 c#5@2 d5@2 e5@2 c#5 ~",
  C: "c#5@2 d5 ~ d5@2 a4 ~ c#5@2 d5 ~ d5@2 a#4@2", D: "b4@2 c#5@2 d5@2 b4 ~ c#5 ~ d5 ~ e5@2 c#5@2", E: "d5", F: "c#5",
  G: "b4 c#5 d5@6", H: "c#5 d5 e5 c#5 d5 e5@3", I: "e5@7 ~ g#5@2 a5@2 b5@4", J: "c#6 d6 e6@2 d#6 e6 f#6@2",
  K: "e5@5 ~ e5@2 g#5@2 a5@2 b5@4", L: "e5@15 ~", M: "d#5", N: "e5", O: "e5@3 e5 g#5 a5 b5@2",
  P: "c#6@2 d6@2 e6@4 d#6@2 e6@2 f#6@3 ~", Q: "e5/3", R: "d#5/2", S: "d5 e5 f#5 d5 e5 f#5 d5 e5",
  T: "f#5 d5 e5 f#5 d5 e5 f#5@2", U: "b4 d#5 f#5 b4 d#5 f#5 b4 d#5", V: "f#5 b4 d#5 f#5 b4 d#5 f#5@2", W: "a5",
  X: "d5@2 e5@2 f#5@2 d5@2 e5@2 f#5@2 d5@3 ~", Y: "d#5 e5 f#5 d#5 e5 f#5 d#5 e5", Z: "f#5 d#5 e5 f#5 d#5 e5 f#5@2",
  AA: "c#5@8 d#5@7 ~", AB: "c#5 d#5", AC: "[e5@3 ~]/2",
})).s("gm_percussive_organ").gain(0.26)

// drums · kick
const kick = s("bd").struct("<~@9 A B@7 ~ C@6 A C@7 D C@23 A B@10 C@9 E@4 A ~@2>".pickRestart({
  A: "x", B: "x!4", C: "x!2 ~ x!2 ~@3", D: "x!2 ~ x!2 ~@2 x", E: "x ~@2 x!2 ~@3",
})).gain(0.76)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@17 A ~@5 B ~@8 C ~@14 B ~@18 D ~@16>".pickRestart({
  A: "~ x ~@14", B: "~@11 x ~@4", C: "~@5 x ~@3 x ~@2 x ~@3", D: "x ~ x ~ x ~@5 x ~@2 x ~@2",
})).gain(0.38)

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

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

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@17 [~@8 x!4 ~@4] ~@57 [~@6 x!2] ~@7>").gain(0.69)

// drums · open hat
const open_hat = s("oh").struct("<~ A ~@22 A ~ B ~ B ~ B ~ A ~@35 B ~ B ~ B ~ B ~@8>".pickRestart({
  A: "x", B: "~@7 x",
})).gain(0.69)

// drums · high tom
const high_tom = s("ht").struct("<~@17 [~@4 x!4 ~@8] ~@65>").gain(0.61)

// drums · crash
const crash = s("cr").struct("<~@18 A ~@5 A ~@8 A ~@6 A ~@7 A ~@7 A ~@10 A ~@8 A ~@3 A ~@2>".pickRestart({
  A: "x",
})).gain(0.69)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@8 A B ~@6 A@3 C A C A@2 B A@2 D C A@4 C A C A@2 C E A C A C A@3 F A D A D A@4 B ~@6 A@2 E F A D A D A@4 D G@4 B ~@2
>`.pickRestart({
  A: "~ x ~ x", B: "x", C: "~@2 x ~@2 x!2 ~", D: "~ x!2 ~@3 x ~", E: "~ x!3", F: "x!4", G: "x ~@2 x!2 ~@3",
})).gain(0.69)

stack(
  bass, electric_guitar_muted, acoustic_guitar_steel, electric_guitar_clean, drawbar_organ, percussive_organ, kick,
  snare, snare_soft, hihat, hihat_soft, low_tom, mid_tom, open_hat, high_tom, crash, tambourine
)

More by Equipe 84