Strudelify

Experiencia religiosa

Enrique Iglesias

KeyC majorTempo114 bpm
0:00/0:00
// Experiencia religiosa — Enrique Iglesias
// 114 bpm, 4/4, key C 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(114/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 · piano
const piano = note(`<
  A@4 B@2 C D@4 E F G H I@2 J@2 K@2 L@2 M N ~@15 O@7 P Q@4 R S@2 T U V@2 W@2 K@2 L@2 M N ~@45
>`.pickRestart({
  A: "[~@10 a3@2 c4@2 g2@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 c2 ~ [a3,c4,f4]@6 ~@2 [a3,c4,f4]@6 ~@2, ~ c3@7, ~@8 g3@7 ~ c2@29 ~@3 c2@16]/4", // C F
  B: "[f4@2 ~@2 c4@2 a4@2 g4@2 ~@4 c5@2 [f4,a4]@7 ~ [f4,a4]@6 ~@2, a2 e2 [d2,d3]@2, ~@2 a3@5 ~@3 c4@20 ~@2]/2", // F D
  C: "[f3,a3,c4]@6 ~@2 [f3,a3,c4]@7 ~, g2@15 ~", // F
  D: "[[g3,c4,e4]@6 ~@2 [g3,c4,e4]@8 ~@4 [a3,c4,f4]@4 ~@2 [a3,c4,f4]@4 g2@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 ~@2 [g3,c4,e4]@6 [d2,d3] ~ [e2,e3,g3,c4,e4]@7 ~, c2@31 ~ c2@20 ~@12, c3@23 ~ c3@29 ~@11]/4", // C F C D C
  E: "[a3,c4,f4]@6 ~@2 [a3,c4,f4]@7 ~, [f2,f3]@15 ~", // F
  F: "f4@2 ~@10 e4@3 ~, f3 e3, ~@2 c4@6 ~@2 c4@5 ~, ~@2 f4@3 ~@3, ~@6 c5@7 ~@3",
  G: "[c4,f4,a4]@3 ~ [c4,f4,a4]@3 f#2, d3, e4 ~@15", H: "[a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~, g2@11 ~@5",
  I: "[[g3,c4,e4]@7 ~ [g3,c4,e4]@6 ~@2 e4@2 g3@2 c4@2 e4 ~ [c3,c4,e4]@4 [b2,b3,g4]@4, [c2,c3]@3 ~]/2", // C Em C
  J: "[[a3,c4,e4,a4]@8 [a3,c4,e4]@6 ~@2 [a3,c4,e4]@7 ~ [g2,e4]@8, a2@12 [g3,b3]@3 ~]/2", // Am C G
  K: "[[a3,c4]@4 ~@3 f4 ~@5 e4 g4@2, f3@3 e3, f2@5 ~@3, e4@14 ~@2 a4@11 ~@5]/2", // Am
  L: "[[a3,d4,f4]@4 ~@12 [a3,c4,f4]@5 ~@3 [a3,c4,f4]@4 d3@4, d3@10 ~@2 d3@13 ~@7, ~ d2@7, ~@8 [a3,d4,f4]@7 ~@17]/2", // Dm F Dm
  M: "[b3,d4,g4]@5 ~@3 [c4,d4,g4]@5 ~@3, g2 a2", N: "[b3,d4,g4]@6 ~@2 [g2,b3,d4,g4]@7 ~, b2 ~",
  O: "[~@8 e4@2 f4@2 g4@2 ~@2 [c4,f4,a4]@14 c5 ~@3 c4@2 f4@2 c4@2 a4@2 c4@2 f4@2 ~@2 e4@7 ~ [c4,e4,g4]@6 g2@2 [c4,e4,g4]@6 ~@4 d4@2 e4@2 c4@2 [f3,a3]@14 c3@2 ~@2 c5@4 f4@2 g4@2 c5@2 g4@2 c5@2, ~@14 f2@30 ~@4 c2@29 ~@3 f2@21 ~@11, ~@16 f3@28 ~@2 c4@9 ~@17 c4@4 ~@36, ~@32 c5@16 d#4 ~@23 g4@23 ~@17, ~@48 c3@15 ~ c3@12 ~@20 f3@8 e3@8]/7", // F C F
  P: "[d3,f4]@6 [e3,c4] [f3,f4]", // Dm C F
  Q: "[~@8 g2@8 d#4 e4@11 ~@4 [a4,d5,f5]@2 [g4,c5,e5]@4 ~@2 [e4,f4,a4] ~@17 [g3,c4,e4]@2 ~@4, c4@28 ~@4 c#5 ~@7 c4@8 c3@14 ~@2, g3@8 c3@15 c2@8 ~, ~@21 [e4,g4]@3 ~@8]/4", // Dm C Fmaj7 C Em
  R: "~@10 [e2,e3,c4,e4,g4]@5 ~", S: "[[c4,f4,a4]@6 ~@3 e4 f4 ~@3 f4 c5, f2@11 c5@2 e4@2 ~, f3@15 ~ f3@8 e3@8]/2",
  T: "d3@6 e3 f3, [c4,f4,a4]", U: "~ g2, [g3,c4,d4,f4]",
  V: "[~@4 [c2,g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,d4,f4]@3 ~@7 c5 ~ d5@4 ~@2 d5@2, c3 c3@2 b2, ~ [g3,e4,g4], ~@2 c2 ~]/2", // C G7 C
  W: "[[a3,c4,e4,a4]@8 [a3,c4,e4]@6 ~@2 [a3,c4,e4]@7 ~ [g2,e4]@8, a2@12 [g3,b3]@3 ~, c5 ~@15]/2", // Am C G
})).s("gm_piano").gain(0.14)

// bass · electric bass finger · "bajo"
const bass = note(`<
  ~@17 A@2 B@2 C@2 D E F@2 G@2 H I J K L@2 G@2 M I N@2 O P Q J R S M I T U V W X S Y Z AA AB AC AD AE AF AG H D E AH AI
  AJ AK AL AM AN@2 AH AO X AP AL AQ AR@2 AS AT AU AV AW AX AY@2 AZ BA BB BC BD BE BF@2 BG BH BI BJ BK BL BM@2 BN BO BB
  BP ~
>`.pickRestart({
  A: "[a1@3 g1]/2", B: "[f1@3 e1]/2", C: "d1/2", D: "g1 a1", E: "b1 g1", F: "[c2@15 e2]/2", G: "[f2@12 ~ f2 e2@2]/2",
  H: "d2", I: "g2 g1", J: "c2@15 ~", K: "c2@4 g1 a1 d2@2", L: "[c2@10 ~ c2 e2@4]/2", M: "d2@6 e2 f2",
  N: "[c2@11 g1 c2 d2 e2@2]/2", O: "f2@11 ~@5", P: "~@3 c2 a2@3 f2, ~@8 g2 ~@7", Q: "c2@13 ~ g1@2", R: "f1@13 ~ f1 ~",
  S: "f1 e2", T: "c2@12 ~@2 c2 ~", U: "c2@6 g2 a2", V: "c2@11 ~@3 g1@2", W: "c2@5 e2@3", X: "f2@7 c2", Y: "d2@6 ~ g2",
  Z: "g1 g2", AA: "c2@7 ~", AB: "c2 b1", AC: "a1@4 ~ e1 g1@2", AD: "a1 g1", AE: "f1", AF: "f2 e2", AG: "d2@7 a1",
  AH: "c2@7 g1", AI: "c2@2 c2@4 ~ g1", AJ: "f1@7 c2", AK: "f2@3 ~ f2@5 ~ f2@2 e2@4", AL: "d2@5 e2 f2 a2",
  AM: "g2@3 d2 g1 d2 g2@2", AN: "[c2@7 ~@3 g1@2 a1@2 c2@5 ~ c2@2 ~@2 g2@2 a2@2 g2@4]/2", AO: "c2 ~ c2@5 e2",
  AP: "f2 c2 f1@3 f2 e2@2", AQ: "g2@3 d2 g2 d2@2 g1", AR: "[c2@9 e3 d3 ~ c3 g2 c2@2]/2", AS: "c#2@7 g#1",
  AT: "c#2@3 ~ c#2@10 ~@2", AU: "f#1@14 f1 ~", AV: "f#1@2 f1 ~ f#1@8 f2@4", AW: "d#2@5 f1 f#1 g1",
  AX: "g#1@6 d#1@2 g#1 ~ g#1@4 g#1 ~", AY: "[c#1@10 ~ g1 g#1@2 c#2@8 a#2 g#2 c#3@2 a#2@4 g#2@2]/2",
  AZ: "c#2@5 g#1 a#1 g#1", BA: "c#2@3 ~ c#2@7 ~ a#1@2 g#1@2", BB: "f#1@7 c#1", BC: "f#1@3 c#2 f#2@2 f2@2",
  BD: "d#2@5 f2 f#2 g2", BE: "g#2@3 d#2 g#1@2 g#1 a#1", BF: "[c#2@6 ~@2 a#2@2 c#3@2 c#3@7 ~ a#3@4 g#3@4 a#2@4]/2",
  BG: "c#2@10 ~@2 a#1 ~ c#2 ~", BH: "c#2 ~ a#1 ~ c#2@6 d#2@2 f2@2 c#2@2", BI: "f#2@7 c#2", BJ: "f#1@4 f#1 c#1 f1 ~",
  BK: "d#1@5 d#1 f1 f#1", BL: "g#1@6 d#1@2 g#1@3 ~ g#1@4", BM: "[~@20 a#2@3 ~ g#2@3 ~ d#2@4, c#1@23 ~@9]/2",
  BN: "c#1@7 c#1", BO: "c#1 ~ c#1@5 f1", BP: "f#1 ~ f#1@6",
})).s("gm_electric_bass_finger").gain(0.71)

// chords · drawbar organ · "organo"
const drawbar_organ = note(`<
  ~@16 A B@2 C@2 D@2 E@2 F@8 G@2 H@2 I@2 G@2 ~@2 J@4 K@2 L@2 M@4 N@6 O@2 P@2 Q R S@8 G@2 H@2 I@2 G@2 T@8 U@2 V@2 W@2 U@2
  T@8 U@2 V@2 ~
>`.pickRestart({
  A: "~@2 e5 g5", B: "[a5@12 e5 g5 e5 d5, [e4,a4,c5], ~@24 d#5 ~@3 d5 ~@3]/2",
  C: "[[c4,f4,a4,c5]@3 [e4,g4,b4], b4 ~@31]/2", // F Em
  D: "[[d4,f4,a4,c5]@28 [a4,b4] [e4,g4] [a3,b3,c4,d4] [e3,f3,g3], ~@29 f4@2 ~]/2", // Dm7 Asus2 Em D7 Em
  E: "[[g4,b4] [a4,c5] d5 g4, d4, ~ b4]/2", // G Am
  F: "[[e4,g4]@16 [f4,a4]@14 [e4,g4]@2 ~@8 g4@8 [e4,g4]@10 [f4,a4]@3 [f4,a4]@3, c5, ~@2 [d4,f4] ~]/8", G: "[e4,g4]/2",
  H: "[[f4,a4]@7 [e4,g4]]/2", I: "[~ g4, [d4,f4]]/2", J: "[e4@4 f4@3 e4, c4]/4", K: "[d4,f4]/2",
  L: "[~@14 e5 d5, [c4,e4], ~@28 d5 ~@3]/2", M: "[[e4,g4]@4 [f4,a4]@3 [e4,g4], c5]/4",
  N: "[a4@16 ~@16 e4@21 ~@7 [b2,c3,d3,e3,f3,g3,a3] [b3,c4,d4,e4,f4] [g4,a4,b4,c5,d5] [f5,g5] a5@24 g5@8, [d4,f4] ~@2, ~@16 g4@40 ~@7 [c5,e5]@33]/6", // Bm7b5 Bdim G Fsus2 Dm C
  O: "[[f5,a5]@3 [e5,g5], c5@31 ~]/2", // F Em
  P: "[[d5,f5]@26 [a4,b4,c5,e5] [e4,f4,g4] [b3,c4,d4] [f3,g3,a3] ~@2, a4@25 ~@7]/2", Q: "[g3,g4] [a3,a4]",
  R: "~@8 [d4,d5]@4 a4 [e4,f4,c5] [a3,b3,c4,d4] [e3,f3,g3], [g3,b3,g4,b4]@7 ~", // D Fmaj7 D7 Em G
  S: "[[e4,g4]@16 [f4,a4]@14 [e4,g4]@2 ~@8 g4@8 [e4,g4]@10 [f4,a4]@3 [f4,a4]@3, c5, [c3,d3] ~@63 [d4,f4]@32 ~@32]/8", // Em F Em F Csus2 Dm
  T: "[[f4,g#4]@16 [f#4,a#4]@14 [f4,g#4]@2 ~@8 g#4@8 [f4,g#4]@10 [f#4,a#4]@3 [f#4,a#4]@3, c#5, ~@2 [d#4,f#4] ~]/8", // Fm F# Fm F# D#m
  U: "[f4,g#4]/2", V: "[[f#4,a#4]@7 [f4,g#4]]/2", W: "[~ g#4, [d#4,f#4]]/2",
})).s("gm_drawbar_organ").gain(0.1)

// other · acoustic guitar steel · "guit ac"
const acoustic_guitar_steel = note("<~@16 A B@5 ~ C D ~@16 E F G ~ H I J K L ~ M N@2 O P Q R ~@54>".pickRestart({
  A: "~@3 [b3,d4], ~@12 a#3 ~@3", // Bm
  B: "[[a3,c4]@6 e3@8 ~@2 [a3,c4]@15 ~ d4@8, ~@12 d#3 ~@17 c3@29 ~@4 a3@17, ~@31 f3@28 ~@3 g3@18]/5", // Am
  C: "[g3,b3] [a3,c4]", D: "[b3,d4] [d4,f4]", E: "~ a3, ~@8 g#3 ~@7", F: "~@6 [c4,d4]@2 c4@2 ~@2 [g3,a3] ~ [c3,d3] ~",
  G: "c3@9 ~@7", H: "~@2 a3 ~@5 g3@2 a3@2 ~@4", I: "c4 ~ c4@2 a3 ~ g3 ~@3 a3@4 ~@2", J: "~ g3 a3 ~ g3 a3 ~@2",
  K: "~@4 a3 ~@3 g3@2 a3 ~@3 d3@2", L: "e3@7 ~", M: "~@4 a3 ~@3 g3@2 a3@2 ~@4",
  N: "[g3@2 a3@2 ~@4 c4 ~ c4@2 a3@2 g3@4 ~@6 g3@2 a3 ~@5]/2", O: "g3@2 a3 ~@5 d3@2 e3@2 g3@2 a3@2",
  P: "c4@2 ~@2 a3 ~@3 c4 ~ c4@2 ~@4", Q: "g3 a3 ~@2 g3 a3 d3 e3", R: "g3@7 ~",
})).s("gm_acoustic_guitar_steel").gain(0.14)

// other · acoustic guitar steel · "guit ac" · soft notes
const acoustic_guitar_steel_2 = note("<~@48 [c4 ~ c4@2 ~@12] ~@4 [~@2 g3 ~@13] ~ [~@12 a3@2 g3 ~] ~@56>")
  .s("gm_acoustic_guitar_steel").gain(0.05)

// chords · distortion guitar · "guit dist"
const distortion_guitar = note(`<
  ~@25 A@2 B@2 C@2 D@2 E@4 C@2 F@2 ~@18 G@2 H@2 I@3 J A@2 B@2 C@2 D@2 E@4 C@2 K@2 L@3 M@2 N@4 ~@20
>`.pickRestart({
  A: "[c3,g3]/2", B: "[f3@7 e3, c4, b3 ~@31]/2", C: "[d3,a3]/2", D: "[c3, g3@3 ~]/2", E: "[[c3,g3]@8 f3@7 e3, ~ c4]/4",
  F: "[~@2 g3@2 ~@2 g3@9 ~, e3@15 ~, ~@4 c4@11 ~]/2", G: "[c4@3 b3, b3 ~@31]/2", H: "[a3@3 g3]/2", I: "[f3@4 g3 a3]/3",
  J: "b3@8 g3@7 ~", K: "[~@4 g3@4 ~@4 g3@18 g#4 [a#4,c#5], e3@15 ~, ~@4 c4@11 ~]/2",
  L: "[f5@10 g#5@3 f5@11 ~@4 f#5@12 c#5@3 g#4@2 a#4@3]/3", M: "[a#4@7 ~ f4@4 d#4@2 c#4@10 a#3@6 ~@2]/2",
  N: "[d#4!2 f4!2 g#4!2 a#4!2 c#5@2 d#5@2 f5@2 g#5@4 a#5 g#5 c#6@4 ~ c#6@9 c#6@3 c#6@3 a#5 [f5,g#5] a#5 [f5,g#5] d#5 c#5 ~ c#5@6 ~@11, ~@23 a#4 ~@8]/4", // Fm
})).s("gm_distortion_guitar").gain(0.18)

// chords · electric guitar clean · "guitel"
const electric_guitar_clean = note(`<
  ~@25 A@2 B@8 C@6 ~@4 D E ~@2 F G H ~ I J ~@12 A@2 B@8 C@6 K@2 L@8 M@6 K@2 L@8 N@3
>`.pickRestart({
  A: "[~@18 g4@13 ~, ~@7 [g3,c4]@25, ~ e4@3, ~@8 g4@9 ~@15, ~@3 a4@3 ~@2]/2", // C5
  B: "[~@8 [f4,a4]@27 ~@5 [d4,f4]@11 ~@5 [d4,g4]@9 ~@7 [e4,g4]@10 ~@2 [d4,f4]@4 ~@2 [d4,f4]@5 ~@13 a4@6 g4@12 ~@2, ~@7 [a3,c4]@29 ~@3 [a3,c4]@13 ~@3 [a3,c4]@11 ~@5 g3@30 ~@2 [g3,c4]@25, ~@71 c4@11 ~@22 e4@24, ~@52 g4@3 ~@9]/8", // F Dm G5 Em Dm Am C5
  C: "[~@8 a4@7 ~@17 a3@5 ~@3 [d4,f4]@11 ~@5 g4@12 ~@4 [e4,g4]@17 ~@7, ~@7 a3@24 ~@8 [a3,c4]@13 ~@3 [a3,c4]@9 ~@7 [g3,c4]@18 ~@7, ~@7 c4@17 e4@6 ~@26 d4@7 ~@33, ~@8 f4@11 ~ f4@10 ~@66, ~@8 a4@6 c4@5 ~@29]/6", // Dm Em Am C5
  D: "~@7 e4", E: "c4@3 e4 c4@3 ~", F: "~@3 [f4,a4]", G: "[e4,g4]@3 ~ [a4,d5]@4 [g4,c5]@4 a4@2 g4@2", H: "e4 ~@3",
  I: "~@3 g4", J: "g5 c5", K: "[~@18 g#4@13 ~, ~@7 [g#3,c#4]@25, ~ f4@3, ~@8 g#4@9 ~@15, ~@3 a#4@3 ~@2]/2",
  L: "[~@8 [f#4,a#4]@27 ~@5 [d#4,f#4]@11 ~@5 [d#4,g#4]@9 ~@7 [f4,g#4]@10 ~@2 [d#4,f#4]@4 ~@2 [d#4,f#4]@5 ~@13 a#4@6 g#4@12 ~@2, ~@7 [a#3,c#4]@29 ~@3 [a#3,c#4]@13 ~@3 [a#3,c#4]@11 ~@5 g#3@30 ~@2 [g#3,c#4]@25, ~@71 c#4@11 ~@22 f4@24, ~@52 g#4@3 ~@9]/8", // F# D#m G#5 Fm D#m A#m C#5
  M: "[~@8 a#4@7 ~@17 a#3@5 ~@3 [d#4,f#4]@11 ~@5 g#4@12 ~@4 [f4,g#4]@17 ~@7, ~@7 a#3@24 ~@8 [a#3,c#4]@13 ~@3 [a#3,c#4]@9 ~@7 [g#3,c#4]@18 ~@7, ~@7 c#4@17 f4@6 ~@26 d#4@7 ~@33, ~@8 f#4@11 ~ f#4@10 ~@66, ~@8 a#4@6 c#4@5 ~@29]/6", // D#m Fm A#m C#5
  N: "[~@8 a#4@7 ~@13 c#4@10 ~@10, ~@7 a#3@24 ~@17, ~@7 c#4@17 f4@6 ~@18, ~@8 f#4@11 ~ f#4@10 ~@18, ~@16 a#4@13 ~@19]/3",
})).s("gm_electric_guitar_clean").gain(0.14)

// drums · kick
const kick = s("bd").struct(`<
  ~@23 A@2 B@2 C D B@2 C E B@2 C D B@5 ~ B@2 C B@3 C B@5 C B@2 F B F C F B C G F B@2 C D B@2 C E B@2 C D B@6 C D B@2 C G
  B@2 C D B@6 C D B@2 C G B@2 C D ~
>`.pickRestart({
  A: "~@3 x ~@4", B: "x", C: "x ~@6 x", D: "x ~@2 x", E: "x ~@2 x!2 ~@3", F: "x!2", G: "x ~@2 x ~@4",
})).gain(0.51)

// drums · rim
const rim = s("rim").struct("<~@43 [~ x]!7 ~ [~ x]!8 ~@53>").gain(0.41)

// drums · snare
const snare = s("sd").struct("<~@23 A@9 B A@7 ~@19 A@15 B A@7 C A@7 B A@14 D E A@4 ~>".pickRestart({
  A: "~ x", B: "~ x ~@2 x ~@3", C: "~ x ~@2 x!4", D: "x ~@2 x ~@2 x ~", E: "~@2 x ~@5 x ~@4 x ~@2",
})).gain(0.41)

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

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

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@24 A ~@3 B ~@3 C ~@3 D ~@21 E ~@6 F G ~@3 B ~@3 C ~@3 D ~@3 A ~@3 B ~@3 C ~@3 D ~@3 H ~@3 B ~@2 I J ~@3 D ~
>`.pickRestart({
  A: "~ x ~@6", B: "~@3 x ~@4", C: "~@5 x!2 ~", D: "~ x ~@2", E: "~@5 x ~@2", F: "~@3 x", G: "~@3 x!2 ~@5 x ~@5",
  H: "x!8", I: "~ x!4 ~@2 x!4 ~@2 x!3", J: "x ~@2 x!4 ~@4 x ~@4",
})).gain(0.46)

// drums · open hat
const open_hat = s("oh").struct("<~@42 A ~@3 A ~ A ~@3 A ~ A ~ A ~ B ~ A ~ A ~ A ~ A ~@45>".pickRestart({
  A: "~@3 x", B: "~ x ~@2",
})).gain(0.36)

// drums · high tom
const high_tom = s("ht").struct("<~@23 [~@3 x] ~@57 [~@7 x] ~@16 [x!4 ~@4] ~@13>").gain(0.46)

// drums · crash
const crash = s("cr").struct(`<
  ~@25 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~ A ~@15 A ~@7 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~@2 B A ~@3 A ~@2 B A
  ~@3 A ~@2 B ~
>`.pickRestart({
  A: "x", B: "~@3 x",
})).gain(0.41)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@26 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@19 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@23 ~@2 A@4 ~
>`.pickRestart({
  A: "~ x",
})).gain(0.46)

// drums · ride
const ride = s("rd").struct("<~@16 A B ~@3 B ~@35 C D ~@53>".pickRestart({
  A: "~@6 x!2", B: "x", C: "~ x!7", D: "x!8",
})).gain(0.36)

stack(
  piano, bass, drawbar_organ, acoustic_guitar_steel, acoustic_guitar_steel_2, distortion_guitar, electric_guitar_clean,
  kick, rim, snare, low_tom, hihat, hihat_soft, mid_tom, open_hat, high_tom, crash, tambourine, ride
)

More by Enrique Iglesias