Strudelify

Jaleo (Spanglish)

Ricky Martin

KeyD minorTempo98 bpm
0:00/0:00
// Jaleo (Spanglish) — Ricky Martin
// 98 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 68, 4/4 at bar 68) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 27.
setcpm(98/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 · lead 8 bass lead
const lead_8_bass_lead = note(`<
  ~ A ~@3 B ~@10 C@2 D ~ C@2 D ~ E F G H ~@10 C@2 D ~ I@2 D ~ J K L M ~@12 N O P Q@6 R@4 S@8 ~
>`.pickRestart({
  A: "a1@13 ~@3", B: "f1@3 a1@13", C: "[a3,c4,e4,a4]/2", D: "[a3,d4,f4]", E: "a1@3 a1 ~@3 a1 a1@3 a1 ~@4",
  F: "a1@2 ~ a1 ~@3 a1 a1@2 ~ a1 ~@3 a1", G: "bb1@2 ~ bb1 ~@3 bb1 g1@3 g1 ~@3 g1", H: "a1@2 ~ a1 ~@3 a1!2 ~@7",
  I: "[~@8 a1@5 e2 f2@2 a1@8 ~@8, [a3,c4,e4,a4]]/2", J: "a3@3 a3@2 ~ a3@2 a3@2 g3@2 bb3@4",
  K: "a3@2 ~ a3@2 ~ a3 ~ a3@2 g3@2 bb3@4", L: "bb3@3 bb3@3 bb3 ~ bb3@2 g3 ~ g3@3 ~",
  M: "a3@2 ~ a3@2 ~@3 a3@2 ~ a3@2 ~ d4@2", N: "a1", O: "e1@3 e1@2 ~@11", P: "e1@3 e1 ~@12",
  Q: "[f1@3 f1@2 ~@10 f1@3 ~ f1@2 ~@3 e1@3 e1@13 [bb3,db4,f4,bb4]@32 [bb3,eb4,gb4]@16 ~@8]/6", // Bbm Ebm
  R: "[~@16 bb1@5 f2 gb2@2 bb1@8 ~@8 [bb3,eb4,gb4]@16 ~@8, ~ [bb3,db4,f4,bb4]@4 ~@3]/4", // Ebm Bbm
  S: "[~ [bb3,db4,f4,bb4]@4 [bb3,eb4,gb4]@2 ~]/4", // Bbm Ebm
})).s("gm_lead_8_bass_lead").gain(0.3)

// chords · lead 8 bass lead · soft notes
const lead_8_bass_lead_soft = note("<~@18 A ~@3 A ~@17 A ~@3 A ~@24 B@2 ~@2 B@2 ~@2 B@2 ~@2 B@2 ~>".pickRestart({
  A: "a4", B: "[~ bb4@2 ~]/2",
})).s("gm_lead_8_bass_lead").gain(0.15)

// bass · electric bass finger
const bass = note(`<
  ~@2 A B C D ~@8 E ~ F@2 G H I J G K L M N O P Q R S T Q U V W X F@2 G H I J G Y Z@2 AA AB AC AD AE AF AG AH AI AJ AK
  AL AM AN ~ AO AP C AQ@2 AR AS AT AU AV AW AT AX AY AZ AT AU BA BB BC BD
>`.pickRestart({
  A: "e1@2 ~ e1 ~@10 f1@2", B: "e1@2 ~ e1 ~@10 eb1 e1", C: "f1@2 ~ f1@2 ~@11", D: "f1@2 ~ f1 ~@12",
  E: "e1 ~@2 e1 bb1 ~@2 a1", F: "a1@2 ~ a1@2 ~@3 a1@2 ~ a1 ~ e2 f2@2", G: "d2@2 ~ d2@2 ~@3 d2@2 ~ d2@2 ~@3",
  H: "f2@2 ~ f2@2 ~@3 e2@2 ~ e2 ~@4", I: "a1@2 ~ a1@2 ~@3 a1@2 ~ a1@2 e2 f2@2", J: "a1@2 ~ a1 ~@4 c2@2 b1@2 a1@2 e1@2",
  K: "f2@2 ~ f2@2 ~@3 e2@2 ~ e2@2 ~@3", L: "a1@2 ~ a1@2 ~@3 a1@2 ~ a1@2 ~ bb1@2", M: "a1@2 ~ a1@2 ~@3 a1@2 ~ a1@3 g1@2",
  N: "bb1@2 ~ bb1@2 ~@3 g1@2 ~ g1@2 ~ e1@2", O: "a1@2 ~ a1@2 ~ bb1@2 a1@2 ~@6", P: "d1@2 ~ d1@2 ~@8 a1@3",
  Q: "d1@2 ~ d1 bb1@2 a1@2 d1@2 ~ d1@3 f1@2", R: "bb0@2 ~ bb0@2 ~@6 bb0@5", S: "bb0@3 c1@3 d1@2 bb0@2 ~ bb0@2 c1@2 ~",
  T: "d1@2 ~ d1@2 ~@6 a1@2 e1@3", U: "bb1@2 ~ bb1@2 ~@6 g1@4 ~", V: "bb1@2 c2 bb1@3 g1@2 bb0@3 c1@3 d1@2",
  W: "eb1 ~@2 e1 bb1 ~@2 a1", X: "~@10 f1@2 e1 f1 e1@2", Y: "f2@2 ~ f2@2 ~@3 e2@2 ~ e2@2 ~ eb3@2",
  Z: "a1@2 ~ a1@2 ~@3 a1@3 g1@3 a1 ~", AA: "bb1@2 ~ bb1@2 ~@3 g1@2 ~ g1@3 bb1@2",
  AB: "a1@2 ~ a1@2 ~@3 a1@2 ~ a1@2 ~ d2@2", AC: "d1@3 bb1@5 d1@2 ~ d1 c1@3 f1", AD: "d1@3 bb1@3 a1@2 d1@2 ~@2 d1@3 f1",
  AE: "g1@3 bb1@3 d1@2 g1@2 ~@4 g1 bb1", AF: "bb1@2 ~ bb1@2 ~@3 a1@2 ~ a1 a1@2 g1 a1",
  AG: "d1@2 ~ bb1 bb1@2 a1@2 d1@2 ~ d1 d1@2 c1 f1", AH: "d1@3 bb1@3 a1@2 d1@3 ~ d1@2 c1 f1",
  AI: "g1@2 ~ g1@3 f1@2 g1@2 ~@4 g1 a1", AJ: "bb1@2 ~ bb1@2 ~ bb1@2 a1@2 ~ a1@2 ~ a1 ~", AK: "bb1@3 d2",
  AL: "c2@8 e2@3 d2@3 c2@2", AM: "g1@3 ab1", AN: "a1", AO: "e1@3 e1@2 ~@9 f1@2", AP: "e1@3 e1@2 ~@9 e1@2",
  AQ: "[f1@3 f1@2 ~@3 e1@2 ~ e1 e1@2 e1@9 ~ bb1@2 ~ bb1@2 ~@3]/2", AR: "bb1@2 ~ bb1 ~ f2 gb2@2 bb1@2 ~ bb1@2 ~@3",
  AS: "bb1@2 ~ bb1 ~ f2 gb2@2 eb2@2 ~ eb2@2 ~@3", AT: "eb2@2 ~ eb2@2 ~@3 gb2@2 ~ gb2@2 ~@3",
  AU: "f2@2 ~ f2 ~@4 bb1@2 ~ bb1@2 ~@3", AV: "bb1@2 ~ bb1@2 f2 gb2@2 bb1@2 ~ bb1 ~@4",
  AW: "db2@2 c2@2 bb1@2 f1@2 eb2@2 ~ eb2@2 ~@3", AX: "f2@2 ~@6 bb1@2 ~ bb1@2 ~@3",
  AY: "f1 ~ f1@2 ab1@2 gb1@2 bb1@2 ~ bb1@2 ~@3", AZ: "f1 ~ f1@2 ab1@2 d2@2 eb2@2 ~ eb2@2 ~@3",
  BA: "f1 ~ f1@2 ab1@2 gb1@2 bb1@2 ~ bb1@4 ~", BB: "db2@2 f2@2 eb2@2 gb1@2 eb1@2 ~ eb1@3 ~@2",
  BC: "eb1@2 ~ eb1@3 ~@2 gb1@2 ~ gb1@3 ~@2", BD: "f1@2 ~ f1@3 ~@10",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~ A B C D E ~@8 F ~ G H I J G H I J ~@3 K L ~@3 M ~@3 F ~ G H I J G H I J N O P Q R@2 S T ~@3 U ~@4 V B C D W@2 X Y Z
  AA X Y Z AB X Y Z AA X Y Z AC
>`.pickRestart({
  A: "~@15 [e2,e3,b3,e4]", B: "[e2,e3,b3,e4]@3 [e2,e3,b3,e4] ~@11 [e2,e3,b3,e4]",
  C: "[e2,e3,b3,e4]@3 [e2,e3,b3,e4] ~@11 [f2,f3,c4,f4]", D: "[f2,f3,c4,f4]@3 [f2,f3,c4,f4] ~@11 [f2,f3,c4,f4]",
  E: "[f2,f3,c4,f4]@3 [f2,f3,c4,f4] ~@12", F: "[e2,b2,e3] ~@2 [e2,b2,e3] [bb2,f3,bb3] ~@2 [a2,e3,a3]",
  G: "[a3,c4,e4]@3 [a3,c4,e4] ~@2 [c4,e4] ~ [a3,c4,e4]@3 [a3,c4,e4] ~@2 [c4,e4] ~, ~@5 a3@2 ~@6 a3@2 ~", // Am C Am C
  H: "[a3,c4,e4]@2 ~ [a3,c4,e4] ~@2 [c4,e4] ~ [a3,c4,e4]@2 ~ [a3,c4,e4] ~@2 [c4,e4] ~, ~@5 a3@2 ~@6 a3@2 ~", // Am C Am C
  I: "[f3,a3,d4]@2 ~ [f3,a3,d4] ~@2 [a3,d4] ~ [f3,a3,d4]@2 ~ [f3,a3,d4] ~@2 [a3,d4] ~, ~@5 f3@2 ~@6 f3@2 ~", // Dm D5 Dm D5
  J: "[f2,c3,f3]@2 ~ [f2,c3,f3] ~@4 [e2,b2,e3]@2 ~ [e2,b2,e3] ~@4", K: "~ db4!3 d4 f4 f4@2 a4@2 ab4@2 [f4,g4] f4 e4@2",
  L: "e4 ~", M: "[d3,a3,d4]", N: "[a2,e3,a3]@3 [a2,e3,a3]@2 ~ [a2,e3,a3]@2 [a2,e3,a3]@2 [g2,d3,g3]@2 [bb2,f3,bb3]@4",
  O: "[a2,e3,a3]@3 [a2,e3,a3]@2 ~ [a2,e3,a3] ~ [a2,e3,a3]@2 [g2,d3,g3]@2 [bb2,f3,bb3]@4", // A5 G5 Bb5
  P: "[bb2,d3,bb3]@3 [bb2,d3,bb3]@2 ~ [bb2,d3,bb3]@2 [bb2,d3,bb3]@2 [g2,bb2,g3] ~ [g2,bb2,g3]@4", // Bb Gm
  Q: "[a2,e3,a3]@2 ~ [a2,e3,a3] ~@4 [a2,e3,a3]@2 ~ [a2,e3,a3] ~@2 [d3,a3,d4]@2", // A5 D5
  R: "~ d4!3 e4@2 f4 ab4!2 f4 f4@2 e4 d4 d4@2", S: "~ g4!3 a4@2 bb4 db5!2 bb4 bb4@2 a4 g4 g4@2",
  T: "~ e4!3 f4@2 g4@2 ~ db4!3 d4@2 e4@2",
  U: "[bb2,f3,bb3] ~@2 [bb2,f3,bb3] ~@2 [bb2,f3,bb3] ~ [a2,e3,a3] ~@2 [a2,e3,a3]@2 ~ [a2,e3,a3] ~", // Bb5 A5
  V: "a1@15 [e2,e3,b3,e4]", // E5
  W: "[[f2,f3,c4,f4]@3 [f2,f3,c4,f4] ~@3 [e2,e3,b3,e4] [e2,e3,b3,e4]@3 [e2,e3,b3,e4]@13 [bb3,db4,f4]@3 [bb3,db4,f4] ~@2 [db4,f4] ~, ~@29 bb3@2 ~]/2", // F5 E5 Bbm Db
  X: "[bb3,db4,f4]@3 [bb3,db4,f4] ~@2 [db4,f4] ~ [bb3,db4,f4]@2 ~ [bb3,db4,f4] ~@2 [db4,f4] ~, ~@5 bb3@2 ~@6 bb3@2 ~", // Bbm Db Bbm Db
  Y: "[bb3,db4,f4]@2 ~ [bb3,db4,f4] ~@2 [db4,f4] ~ [gb3,bb3,eb4]@2 ~ [gb3,bb3,eb4] ~@2 [bb3,eb4] ~, ~@5 bb3@2 ~@6 gb3@2 ~", // Bbm Db Ebm Eb5
  Z: "[gb3,bb3,eb4]@2 ~ [gb3,bb3,eb4] ~@2 [bb3,eb4] ~ [gb2,db3,gb3]@2 ~ [gb2,db3,gb3] ~@4, ~@5 gb3@2 ~@9", // Ebm Eb5 Gb5
  AA: "[f2,c3,f3]@2 ~ [f2,c3,f3] ~@4 [bb3,db4,f4]@3 [bb3,db4,f4] ~@2 [db4,f4] ~, ~@13 bb3@2 ~", // F5 Bbm Db
  AB: "[f2,c3,f3]@2 ~@6 [bb3,db4,f4]@3 [bb3,db4,f4] ~@2 [db4,f4] ~, ~@13 bb3@2 ~", AC: "[f2,c3,f3]@2 ~ [f2,c3,f3] ~@12",
})).s("gm_distortion_guitar").gain(0.3)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note(`<
  ~ A ~@4 B C B C B D E F ~@2 G@2 H ~ G@2 H ~@3 I J B C B C B D E F ~@2 G@2 H ~ G@2 H ~ K L M N ~ O P Q R S T ~@3 U V W
  ~@4 X Y Z AA X Y Z AA X Y Z AA ~@5
>`.pickRestart({
  A: "[a4,db5] ~ [a4,db5] ~ db5!2 ~ [a4,db5] ~@8", B: "d4!2 ~ d4 ~@2 d4 ~ d4!2 ~ d4 ~@2 d4 ~",
  C: "~@3 d4 ~ d4!2 ~@2 d4 ~ d4 ~ d4!2 ~", D: "~@3 d4 ~ d4!2 ~@2 d4 ~ d4 ~ d4 [d4,f5] ~",
  E: "d4!2 ~ d4 ~@2 d4 ~ d4!2 ~ [d4,f5] ~@2 d4 ~", F: "~@3 [d4,f5] ~ d4 [d4,f5] ~@2 d4 ~ d4 ~ d4 [d4,f5] ~",
  G: "~@6 [c5,e5,a5] ~@7 [c5,e5,a5] ~", H: "~@6 [d5,f5,a5] ~@7 [d5,f5,a5] ~", I: "[bb3,d4,f4,bb4]",
  J: "[a3,db4,e4] ~, a4@5 ~@11", K: "a2@3 a2@2 ~ a2@2 a2@2 g2@2 bb2@4", L: "a2@2 ~ a2@2 ~ a2 ~ a2@2 g2@2 bb2@4",
  M: "bb2@3 bb2@3 bb2 ~ bb2@2 g2 ~ g2@3 ~", N: "a2@2 ~ a2@2 ~@3 a2@2 ~ a2@2 ~ d3@2", O: "~@6 a5!10", P: "a5!8 ~@8",
  Q: "~@7 a5!9", R: "a5!7 ~@9", S: "~@4 a5!12", T: "a5!2 ~@14", U: "~@3 d4 ~ d5 ~ [d4,d5]!3 ~ [d4,d5]!3 ~ [d4,d5]",
  V: "[db4,db5]!2 ~ [db4,db5]!3 ~ db5 [db4,db5]!2 ~ db5 [db4,db5]!2 ~@2", W: "db4 db5 ~@14", X: "~@14 [db5,f5,bb5] ~",
  Y: "~@6 [db5,f5,bb5] ~@7 [db5,f5,bb5] ~", Z: "~@6 [db5,f5,bb5] ~@7 [eb5,gb5,bb5] ~", AA: "~@6 [eb5,gb5,bb5] ~@9",
})).s("gm_lead_2_sawtooth").gain(0.25)

// chords · lead 2 sawtooth · soft notes
const lead_2_sawtooth_soft = note(`<
  ~ A ~@4 B C B C B D E F ~@14 B C B C B D E F ~@16 G H ~ I J ~@3 K L M ~@21
>`.pickRestart({
  A: "~@4 a4!2 ~@10", B: "~@5 d4 ~@7 d4 ~@2", C: "d4!2 ~@6 d4 ~@7",
  D: "d4 [d4,f5] ~ f5 ~ f5!2 ~ [d4,f5] f5 ~ f5 ~ f5 ~@2", E: "f5!2 ~ f5 ~ [d4,f5] f5 ~ f5!2 ~@3 [d4,f5] f5 ~",
  F: "[d4,f5]!2 ~@3 f5 ~@2 [d4,f5] f5 ~ f5 ~ f5 ~@2", G: "~@8 a5!2 ~@6", H: "~@6 a5 ~@9", I: "~@3 a5 ~@12",
  J: "~@2 a5!2 ~@12", K: "~@3 d5 [d4,d5] d4 ~@10", L: "~@7 db4 ~@3 db4 ~@3 [db4,db5]",
  M: "db5 db4 ~ [db4,db5]!3 ~ [db4,db5]!2 ~@7", // Db
})).s("gm_lead_2_sawtooth").gain(0.15)

// chords · percussive organ
const percussive_organ = note(`<
  ~@6 A@8 ~@2 B@2 C D B@2 C D E@2 F G A@8 ~@2 B@2 C D B@2 C D ~@4 H@7 I ~@9 J@4 K@4 L@4 K@4 M
>`.pickRestart({
  A: "[d6@11 e6 ~@15 e6 d6@15 e6 ~@15 e6 d6@4, [f4,d5], ~@12 d6@15 ~@17 d6@15 ~@5, ~ bb4 ~ bb4]/8", // Dm
  B: "[e4,a4,c5,e5]/2", C: "[d4,f4,a4,d5]", D: "[f4,a4,c5]@2 ~ [f4,a4,c5] ~@4 [e4,ab4,b4]@2 ~ [e4,ab4,b4] ~@4",
  E: "[db4,e4,a4]/2", F: "[d4,f4,bb4]", G: "[e4,a4] ~",
  H: "[[f4,a4]@32 g4@16 f5@7 ~ [db5,e5]@8 f4@32 [g4,bb4]@16, d5@55 ~@9 d5@48, ~@4 bb4@3 a4@5 ~@2]/7", // F Dbm Gm
  I: "[bb4,f5]@2 ~ [bb4,d5,f5] ~@2 [bb4,d5,f5] ~ [db5,e5]@2 ~ [a4,db5,e5]@2 ~ [a4,db5,e5] ~, d5 ~@7 a4 ~@7", // Bb5 Bb Dbm A
  J: "[~@8 [f4,bb4,db5,f5]@32 [eb4,gb4,bb4,eb5]@16 [gb4,bb4,db5]@2 ~ [gb4,bb4,db5] ~@4]/4", // Bbm Ebm Gb
  K: "[[f4,a4,c5]@2 ~ [f4,a4,c5] ~@4 [f4,bb4,db5,f5]@32 [eb4,gb4,bb4,eb5]@16 [gb4,bb4,db5]@2 ~ [gb4,bb4,db5] ~@4]/4", // F Bbm Ebm Gb
  L: "[[f4,a4,c5]@2 ~@6 [f4,bb4,db5,f5]@32 [eb4,gb4,bb4,eb5]@16 [gb4,bb4,db5]@2 ~ [gb4,bb4,db5] ~@4]/4", // F Bbm Ebm Gb
  M: "[f4,a4,c5]@2 ~ [f4,a4,c5] ~@12", // F
})).s("gm_percussive_organ").gain(0.3)

// chords · percussive organ · soft notes
const percussive_organ_soft = note(`<
  ~@6 A@8 ~@2 B@2 ~@2 B@2 ~@4 C D A@8 ~@2 B@2 ~@2 B@2 ~@23 E@3 ~ E@3 ~ E@3 ~ E@3 ~@2
>`.pickRestart({
  A: "[a4 ~ a4 ~, d4]/8", B: "a3/2", C: "~ g4", D: "db4 ~", E: "[~ bb3@4 ~]/3",
})).s("gm_percussive_organ").gain(0.15)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@16 A@2 B ~ A@2 B C@5 ~ D E@2 ~@6 A@2 B ~ A@2 B ~@14 F@2 G@2 ~@4 H I J K H I J K H I J K H I J K ~
>`.pickRestart({
  A: "~@6 a4 ~@7 a4 ~", B: "~@6 f4 ~@7 f4 ~",
  C: "[~@16 [bb3,db4,e4]@29 ~@3 [bb3,d4]@13 ~@3 [a3,db4,e4]@7 ~@9, ~@15 [a2,e3]@30 ~@2 [bb2,d3,f3]@13 ~@3 [a2,db3,e3]@8 ~@9]/5", // Bbdim Bb A A5 Bb A
  D: "~@2 d3 a2", E: "[bb2@29 ~@3]/2", F: "[~@12 e4@2 f4 ~ d4@13 ~@3, ~@9 g3@5 ~@18, ~@11 c4@3 ~ g4@2 ~@15]/2",
  G: "[[a3,db4,e4]@11 ~@5]/2", H: "~@14 bb4 ~", I: "~@6 bb4 ~@7 bb4 ~", J: "~@6 bb4 ~@7 gb4 ~", K: "~@6 gb4 ~@9",
})).s("gm_electric_guitar_clean").gain(0.35)

// other · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@24 A B C ~@7 D E F ~@17 G H I J K ~@25>".pickRestart({
  A: "~@3 f4!2 e4 e4@3 ~@2 e4!2 d4 db4@2, a3@8 ~ a3@7, ~@2 bb3@7 ~ bb3@6",
  B: "~ e3 a3 bb3 db4 bb3 a3 bb3 db4 d4 e4 g4 [f4,g4] e4 d4@2", C: "~ d4 ~ d4 e4 f4!2 a4!2 f4 [f4,a4] f4 e4 d4 d4@2",
  D: "~@8 d4 [bb3,c4] [a3,bb3] [c4,d4] c4 [a3,bb3] [bb3,c4] d4", // Bbsus2 Bbmaj7 Csus2 Bbmaj7 Bbsus2
  E: "[bb3,c4,bb4] [a3,bb3,a4,bb4] [c4,d4,c5,d5] [bb3,c4,bb4,c5] [a3,a4] [bb3,c4,bb4,c5] [c4,d4,c5,d5] [a3,bb3,a4,bb4] [bb3,bb4,c5] [c4,d4,d5] [bb3,c4,bb4,c5] [a3,bb3,a4,bb4] [c4,d4,c5,d5] [c4,bb4,c5] [a3,bb3,a4] [bb3,c4,bb4,c5]", // Bbsus2 Bbmaj7 Csus2 Bbsus2 A Bbsus2 Csus2 Bbmaj7 …
  F: "[d4,e4,d5,e5] ~@15", G: "~ d4!2 a4 a4@2 ab4!2 ~ e4!2 ab4 ab4@2 f4 ~", H: "~ d4!2 f4 f4@2 e4 db4 ~ e4!3 e4@2 d4 ~",
  I: "~ db4 d4 c5 c5@2 bb4 ~@2 d4 g4 a4 a4@2 ab4 ~",
  J: "~ bb3 d4 e4 f4@2 a4 bb4 a4 [bb4,c5] [g4,a4] f4 [db4,d4,e4] [a3,bb3] [f3,g3] [g3,a3]", K: "bb3@13 ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.57)

// chords · pad warm
const pad_warm = note("<~@50 A@7 ~@27>".pickRestart({
  A: "[[f4,a4]@32 g4@16 f5@7 ~ [db5,e5]@8 f4@32 [g4,bb4]@16, d5@55 ~@9 d5@48, ~@4 bb4@3 a4@5 ~@2]/7", // F Dbm Gm
})).s("gm_pad_warm").gain(0.25)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@37 A@2 ~@15 B C D E F ~@25>".pickRestart({
  A: "[~@7 [e3,ab3,b3,d4,e4]!3 ~ [e3,ab3,b3,d4,e4]!2 ~ [e3,a3,c4,e4,a4]@18]/2", // E7 Am
  B: "~ d3!2 a3 a3@2 ab3!2 ~ e3!2 ab3 ab3@2 f3 ~", C: "~ d3!2 f3 f3@2 e3 db3 ~ e3!3 e3@2 d3 ~",
  D: "~ db3 d3 c4 c4@2 bb3 ~@2 d3 g3 a3 a3@2 ab3 ~",
  E: "~ f3 bb3 c4 d4@2 f4 g4 a3 [bb3,c4] [g3,a3] f3 [db3,d3,e3] [a2,bb2] [f2,g2] [g2,a2]", F: "bb2@13 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.45)

// other · acoustic guitar steel · soft notes · E7
const acoustic_guitar_steel_2 = note("<~@37 [~@6 [e3,ab3,b3,d4,e4] ~@9] ~@46>").s("gm_acoustic_guitar_steel").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@3 B C@7 D E ~ A F A G A F A@5 H C@5 I C J E ~ A F A G A F A K L@3 M N O A@3 O A L ~@5 A@3 H N A P Q R A P A S
  L@2 T S L@3 B
>`.pickRestart({
  A: "x ~@2 x ~@4 x ~@2 x ~@4", B: "x ~@2 x ~@12", C: "x ~@2 x ~@2 x ~ x ~@2 x ~@4", D: "x ~@2 x ~@3 x ~@8",
  E: "x ~@2 x!2 ~@2 x", F: "x ~@2 x ~@4 x ~@2 x!2 ~@3", G: "x ~@2 x ~@3 x!2 ~@2 x ~@3 x", H: "x ~@2 x ~@4 x ~@7",
  I: "~@8 x ~@2 x ~ x ~@2", J: "x", K: "x ~@2 x ~@4 x ~@2 x ~ x ~@2", L: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
  M: "x ~@2 x ~@4 x ~ x!2 ~ x!2 ~", N: "~@8 x ~@2 x ~@4", O: "x ~@2 x ~@4 x ~@3 x ~@3", P: "x ~@2 x!2 ~@3 x ~@2 x ~@4",
  Q: "x ~@2 x ~@4 x ~@2 x ~@3 x", R: "x ~@2 x ~@3 x!2 ~@2 x ~@4", S: "x ~@7 x ~@2 x ~@2 x ~",
  T: "x ~@2 x ~@2 x ~ x ~@2 x ~@3 x",
})).gain(0.45)

// drums · rim
const rim = s("rim").struct("<~@6 A@7 B ~@14 A@4 B C A B ~@48>".pickRestart({
  A: "~@2 x ~@4 x", B: "~ x ~@2", C: "~@7 x",
})).gain(0.5)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B@2 C D ~@7 E F ~ G H G@3 H G I G@3 J ~@7 E F ~ G H G@2 K H G I L@3 M G N G@3 N G L ~@4 A B@2 C O P G Q G@2 P Q R
  S T U V W T U X Y
>`.pickRestart({
  A: "~@7 x!3 ~ x!2 ~ x ~", B: "~@3 x ~@2 x ~@4 x ~@2 x ~", C: "~@3 x ~@2 x ~@4 x ~@2 x!2",
  D: "x ~@2 x ~@3 x!3 ~ x!2 ~ x ~", E: "~@8 x ~@2 x ~ x!3", F: "x ~@2 x!2 ~@2 x", G: "~@3 x ~@3 x", H: "~@3 x ~ x ~ x",
  I: "x ~@2 x ~@4 x ~@2 x ~@2 x ~", J: "~@7 x!2 ~@7", K: "~@3 x ~@4", L: "x ~@2 x ~@2 x ~ x ~@2 x ~@2 x ~",
  M: "x ~@2 x ~@4 x ~ x!2 ~ x!2 ~", N: "~@6 x ~@3 x!2 ~@2 x ~", O: "x ~@5 x ~@2 x!3 ~@4", P: "~@7 x",
// … 96 more lines

More by Ricky Martin