Strudelify
Vuelve cover art

1998 · Vuelve

Vuelve

Ricky Martin

KeyF♯ majorTempo65 bpm
0:00/0:00
// Vuelve — Ricky Martin
// 65 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 8 "Steel String" named as a guitar, played on acoustic guitar steel (its pad new age patch is not one); ch 9 "Alto Sax" named as a reed, played on alto sax (its voice oohs patch is not one); ch 12 "Trombone" named as a brass, played on trombone (its choir aahs patch is not one)
// note: duplicate parts dropped: ch 12 "Trombone" trombone (copy of ch 9 "Alto Sax" alto sax, 0.142 beats late)
// note: Full arrangement: all 64 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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 · "Fingered Bass"
const bass = note(`<
  A B A B A B A B C A D E A B A B C A D F G F G H I J K@2 F L F L F M N K N O A O A N P G@3 B Q@5 R Q R Q S T U T U T U
  ~
>`.pickRestart({
  A: "c#2@18 c#2@5 ~ c#2@24", B: "f#1@18 f#1@5 ~ f#1@24", C: "d#2@18 d#2@5 ~ d#2@24", D: "b1@18 b1@5 ~ d#2@24",
  E: "c#2@3 ~@5", F: "c#2@18 c#2@5 ~ f#1@24", G: "b1@18 b1@5 ~ c#2@24", H: "c#2@18 c#2@5 ~ d#2@24",
  I: "c#2@18 c#2@5 ~ f#1@21 ~@3", J: "f#1 ~@8 f#1@3 b1@12", K: "c#2@18 c#2@5 ~ b1@24", L: "f#1@18 f#1@5 ~ c#2@24",
  M: "f#1@18 f#1@5 ~ d#2@24", N: "d#2@18 d#2@5 ~ c#2@24", O: "f#1@18 f#1@5 ~ b1@24", P: "f#1@9 ~@3 f#1 ~@8 f#1@3",
  Q: "d2@18 d2@5 ~ d2@24", R: "g1@18 g1@5 ~ c2@24", S: "e1@18 e1@5 ~ c2@24", T: "d2@18 d2@5 ~ g1@24",
  U: "c2@18 c2@5 ~ d2@24",
})).s("gm_electric_bass_finger").gain(0.46)

// other · rock organ
const rock_organ = note(`<
  A B A B@2 C D C E A F G B C D C E B H I J@2 K@2 I L M@2 N@4 O@2 P Q R S B T B U V W@3 C X C X Y Z AA Z AA Y AB AC AD@2
  AE@2 AF@2
>`.pickRestart({
  A: "f5", B: "c#5", C: "f#5", D: "g#5", E: "d#5", F: "b4 d#5", G: "c#5 ~", H: "b4 a#4", I: "c#5 a#4",
  J: "[b4 c#5@2 a#4]/2", K: "[d#5 c#5@2 a#4]/2", L: "~ b4", M: "c#5 d#5", N: "[g#5 f#5@2 f5]/2", O: "[g#5 f#5@2 d#5]/2",
  P: "f#5 g#5", Q: "c#5 b4", R: "d#5 f5", S: "f#5 d#5", T: "a#4 b4", U: "a#4 c#5", V: "a#4 ~", W: "b4 c#5", X: "a5",
  Y: "d5", Z: "a4", AA: "b4 c5", AB: "e5 g5", AC: "f#5 d5", AD: "[g5 f#5@2 d5]/2", AE: "[g5 a5@2 g5]/2",
  AF: "[e5@2 f#5@3 ~@3]/2",
})).s("gm_rock_organ").gain(0.2).pan(0.1)

// other · rock organ
const rock_organ_2 = note(`<
  A B A B C D E D B A F G C D E D B C H I J@2 K@2 I L M@2 N@4 O@2 P Q R S C T C U V U@3 D W X W B Y Z Y Z B AA AB AC@2
  AD@2 AE ~
>`.pickRestart({
  A: "g#5", B: "f#5", C: "f5", D: "a#5", E: "c#6", F: "d#5 f#5", G: "f5 ~", H: "d#5!2", I: "f5 c#5",
  J: "[d#5 f5@2 c#5]/2", K: "[f#5 f5@2 d#5]/2", L: "~ d#5", M: "f5 f#5", N: "[c#6 a#5@2 g#5]/2", O: "[c#6 a#5@2 f#5]/2",
  P: "a#5 c#6", Q: "f5 d#5", R: "f#5 g#5", S: "a#5 f#5", T: "c#5 d#5", U: "d#5 f5", V: "c#5 ~", W: "d6", X: "a5",
  Y: "d5", Z: "d5 e5", AA: "g5 c6", AB: "a5 g5", AC: "[c6 a5@2 g5]/2", AD: "[c6 d6@2 b5]/2", AE: "g5 a5",
})).s("gm_rock_organ").gain(0.15).pan(0.9)

// other · acoustic guitar steel · "Steel String"
const acoustic_guitar_steel = note(`<
  A B A B A B A B C A D E A B A B C A D F G F G H F I J@2 F K F K F L M J M N A N A M O G@3 B P@5 Q P Q P R S T S T S T
  ~
>`.pickRestart({
  A: "c#3!2", B: "f#2!2", C: "d#3!2", D: "b2 d#3", E: "c#3 ~", F: "c#3 f#2", G: "b2 c#3", H: "c#3 d#3", I: "~ b2",
  J: "c#3 b2", K: "f#2 c#3", L: "f#2 d#3", M: "d#3 c#3", N: "f#2 b2", O: "f#2 ~", P: "d3!2", Q: "g2 c3", R: "e2 c3",
  S: "d3 g2", T: "c3 d3",
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.2)

// chords · acoustic guitar steel · "Steel String"
const acoustic_guitar_steel_2 = note(`<
  A B A B C D A B E F G H I J I J K F L M N@2 O@2 P Q R@2 S@2 T@2 U@2 V R W X F Y F V Z AA@2 AB AC AD AE AF AG AH AI AJ
  AK AL AM AN AO@2 AP@2 AQ ~
>`.pickRestart({
  A: "~@7 g#3, ~ c#4@3 c#4@4, ~@2 g#3@5 ~, ~@3 f3@3 f3@2",
  B: "~@7 a#3, ~ c#4@3 c#4@4, ~@2 a#3@3 a#3@2 ~, ~@3 f#3@3 f#3@2",
  C: "~@7 f3, ~ c#4@3 c#4@4, ~ g#3@2 g#3, ~@3 f3@2 f3@2 ~", D: "~@7 f#3, ~ c#4@3 c#4@4, ~ a#3@2 a#3, ~@3 f#3@2 f#3@2 ~",
  E: "~@7 d#3, ~ f#3@3 f#3@4, ~@2 d#3@5 ~, ~@3 a#3@3 a#3@2", F: "~@7 f3, ~ c#4@5 c#4@2, ~ g#3 g#3@2, ~@3 f3@4 ~",
  G: "~@3 d#3 ~@3 f#3, ~ b3@3 a#3@4, ~@2 f#3@2 ~ f#3@2 ~, ~@3 d#3", H: "~@3 f3 ~@3 g#3, ~ c#4@3 c#4@4, ~ g#3 ~@2",
  I: "~@7 g#3, ~ c#4@3 c#4@4, ~@2 g#3@3 g#3@2 ~, ~@3 f3@3 f3@2", J: "~@7 a#3, ~ c#4@3 c#4@4, ~@2 a#3@5 ~, ~@3 f#3@5",
  K: "~@7 d#3, ~ a#3@5 a#3@2, ~ f#3 f#3@2, ~@3 d#3@4 ~",
  L: "~@3 d#3 ~@3 d#3, ~ b3@3 a#3@4, ~@2 f#3@2 ~ d#3@2 ~, ~@3 f#3",
  M: "~@3 f3 ~@3 f#3, ~ c#4@3 c#4@4, ~@2 g#3@2 ~ f#3@2 ~, ~@3 a#3",
  N: "[~@3 d#3 ~@7 f3 ~@3 f#3, ~ b3@3 ~@2 c#4@3 c#4@3 ~@2 c#4@2, ~ f#3 g#3@3 g#3 a#3@2, ~@7 f3@4 ~@5]/2",
  O: "[~@3 d#3 ~@7 f3 ~@3 f#3, ~ b3@3 c#4@5 c#4@3 ~@2 d#3@2, ~@2 f#3@2 ~@2 f3@5 ~@2 f#3@2 ~, ~@7 g#3@3 g#3@2 a#3@4]/2",
  P: "~@3 f3 ~@3 a#3, ~ c#4@3 ~@4, ~ g#3 ~ f#3", Q: "~@7 f#3, ~ b3, ~@5 f#3@2 ~, ~@3 d#3",
  R: "~@3 f3 ~@3 d#3, ~ c#4@3 ~@2 b3@2, ~ g#3 f#3@2",
  S: "[~@3 f3 ~@7 f#3 ~@3 g#3, ~ c#4@3 c#4@5 c#4@3 c#4@4, ~@2 g#3@2 ~@2 f#3@5 ~@2 g#3@2 ~, ~@7 a#3@3 a#3@2 ~@2 f3@2]/2",
  T: "[~@3 f3 ~@7 f#3 ~@3 g#3, ~ c#4@3 c#4@5 c#4@3 c#4@4, ~@2 g#3@2 ~ a#3@2 a#3@3 a#3@2 ~@4, ~@6 f#3@5 ~@5]/2",
  U: "[~@3 f3 ~@7 f#3 ~@3 f#3, ~ c#4@3 ~@2 c#4@3 c#4@3 ~@4, ~ g#3 a#3@3 a#3 a#3@2, ~@7 f#3@4 ~@3 d#3@2]/2",
  V: "~@3 d#3 ~@3 f3, ~ a#3@3 g#3@4, ~ f#3 ~ c#4", W: "~@3 d#3 ~@3 g#3, ~ a#3@3 c#4@4, ~@2 f#3@2 ~ g#3@2 ~, ~@3 f3",
  X: "~@3 f#3 ~@3 f#3, ~ c#4@3 ~@4, ~ a#3 b3@2", Y: "~@3 f#3 ~@3 d#3, ~ c#4@3 ~@2 b3@2, ~@2 a#3@2 d#3@3 ~",
  Z: "~@3 f#3 ~@4, ~ c#4@3 ~@4, ~ a#3 ~@2", AA: "~@3 d#3 ~@3 g#3, ~ b3@3 c#4@4, ~@2 f#3@2 ~ g#3@2 ~, ~@3 f3",
  AB: "~@3 d#3 ~@3 g#3, ~ b3@3 c#4@4, ~ f#3 ~@2", AC: "~@7 a#3, ~ c#4@3 c#4@4, ~@2 a#3@5 ~, ~@3 f#3@3 f#3@2",
  AD: "~@7 f#3, ~ a3@3 a3@4, ~@2 f#3@3 f#3@2 ~, ~@3 d3@3 d3@2",
  AE: "~@7 f#3, ~ d4@3 d4@4, ~ a3@2 a3, ~@3 f#3@2 f#3@2 ~", AF: "~@7 d3, ~ a3@3 a3@4, ~ f#3@2 f#3, ~@3 d3@2 d3@2 ~",
  AG: "~@7 a3, ~ d4@3 d4@4, ~@2 a3@3 a3@2 ~, ~@3 f#3@3 f#3@2", AH: "~@7 f#3, ~ f#3@6 ~, ~ a3 a3@2, ~@3 d3@5",
  AI: "~@3 g3 ~@3 e3, ~ d4@3 ~@2 g3@2, ~ b3 c4@2", AJ: "~@7 d3, ~ a3@5 a3@2, ~ f#3 f#3@2, ~@3 d3@4 ~",
  AK: "~@3 g3 ~@3 g3, ~ d4@3 ~@2 e3@2, ~ b3 c4@2", AL: "~@7 f#3, ~ d4@5 d4@2, ~ a3 a3@2, ~@3 f#3@4 ~",
  AM: "~@3 e3 ~@3 e3, ~ b3@3 c4@4, ~@2 g3@2 ~ e3@2 ~, ~@3 g3",
  AN: "~@3 d3 ~@3 d3, ~ a3@3 b3@4, ~@2 f#3@2 ~ d3@2 ~, ~@3 g3",
  AO: "[~@3 e3 ~@7 d3 ~@3 b3, ~ c4@3 ~@2 d3@5 ~@3 g3@2, ~@2 g3@2 a3@5 a3@3 d4@4, ~@7 f#3@3 f#3@2 ~ b3@2 ~]/2",
  AP: "[~@3 e3 ~@7 d3 ~@3 d3, ~ c4@3 ~ d3@2 d3@4 ~@2 d3@2 ~, ~@2 g3@2 a3@5 a3@3 b3@4, ~@3 f#3@2 f#3 ~ g3]/2",
  AQ: "~@3 e3 ~@4, ~ c4@3 ~@4, ~ g3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.7)

// chords · pad halo
const pad_halo = note("<A@7 B@3 C@6 D@2 E@4 F@3 G@3 H@7 I J@2 K@5 L@3 M@4 N@8 O@2 P@3 ~>".pickRestart({
  A: "[~@331 g#4@5, ~@7 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@23, ~@13 g#4@30 g#4@20 ~@4 f#4@18 f#4@23 ~ g#4@30 g#4@20 ~@4 f#4@18 f#4@23 ~ g#4@24 g#4@26 ~@4 f#4@12 f#4@12 f#4@17 ~ g#4@30 ~@5, ~@19 f4@18 f4@23 ~ a#4@18 a#4@12 a#4@20 ~@4 f4@18 f4@23 ~ a#4@18 a#4@12 a#4@20 ~@4 f4@12 f4@12 f4@17 ~ a#4@24 a#4@26 ~@4 f4@18 f4@11]/7",
  B: "[~@139 f4@5, ~@7 c#5@18 c#5@40 ~@2 a#4@18 a#4@23 ~ g#4@12 g#4@23, ~@13 a#4@18 a#4@12 a#4@18 d#4@30 d#4@20 ~@33, ~@19 f#4@18 f#4@18 f#4@18 f#4@40 ~@2 f4@24 ~@5, ~@103 c#5@30 c#5@11]/3",
  C: "[~@19 d#4@6 ~@18 f#4@12 ~@12 f4@6 ~@18 g#4@8 ~@184 a#4@5, ~@7 b4@25 ~@5 d#4@16 ~@62 f4@18 f4@23 ~ a#4@30 a#4@20 ~@4 f4@18 f4@23 ~ a#4@30 ~@5, ~@13 f#4@16 ~@2 f#4@12 ~@12 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@23, ~@25 a#4@33 ~@3 g#4@16 ~@32 g#4@18 g#4@12 g#4@20 ~@4 f#4@41 ~ g#4@18 g#4@12 g#4@20 ~@4 f#4@29]/6",
  D: "[~@91 f4@5, ~@7 a#4@30 a#4@28 ~@31, ~@13 f#4@12 f#4@38 ~@4 f4@24 ~@5, ~@19 d#4@24 d#4@17 ~ g#4@12 g#4@23, ~@55 c#5@30 c#5@11]/2",
  E: "[~@19 d#4@6 ~@18 d#4@12 ~@12 f4@6 ~@18 f#4@12 ~@12 d#4@6 ~@66 f#4@5, ~@7 b4@25 ~@5 f#4@16 ~@2 c#5@18 c#5@33 ~@15 g#4@36 g#4@31 ~@4, ~@13 f#4@16 ~@2 d#4@12 ~@42 a#4@16 ~@2 b4@25 ~@5 c#5@18 c#5@30 c#5@11, ~@25 a#4@33 ~@3 g#4@16 ~@2 f#4@12 ~@18 f#4@16 ~@14 f4@24 f4@17 ~@12, ~@169 a#4@23]/4",
  F: "[~@19 d#4@6 ~@66 f#4@12 ~@12 f4@6 ~@12 f#4@11, ~@7 b4@25 ~@11 g#4@18 g#4@18 f#4@12 ~@18 g#4@16 ~@19, ~@13 f#4@16 ~@8 f4@30 f4@18 d#4@16 ~@43, ~@25 c#5@30 c#5@37 ~@11 c#5@18 c#5@23, ~@73 a#4@33 ~@38]/3",
  G: "[~@43 f#4@12 ~@12 f4@6 ~@18 d#4@8 ~@16 f4@6 ~@18 d#4@5, ~@25 b4@33 ~@3 g#4@16 ~@32 g#4@16 ~@19, ~@31 f#4@12 ~@12 c#5@25 ~@5 b4@16 ~@2 c#5@25 ~@5 b4@11, ~@37 d#4@16 ~@20 f#4@33 ~@15 f#4@23]/3",
  H: "[~@19 f4@6 ~@66 g#4@12 ~@12 f4@6 ~@66 g#4@8 ~@16 f4@6 ~@66 f#4@8 ~@16 d#4@6 ~@18 f4@5, ~@7 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@18 c#5@30 c#5@25 ~@5 c#5@18 c#5@32 ~@34 g#4@23, ~@13 g#4@16 ~@8 f#4@30 f#4@20 ~@46 f#4@30 f#4@20 ~@22 g#4@16 ~@80 f#4@16 ~@19, ~@43 a#4@18 a#4@23 ~ f4@16 ~@134 f#4@24 f#4@17 ~ d#4@16 ~@43, ~@79 g#4@12 ~@18 g#4@16 ~@2 a#4@12 a#4@18 a#4@28 ~@32 a#4@36 a#4@12 a#4@30 a#4@25 ~@5 c#5@11]/7",
  I: "~@19 f4@6 ~@18 d#4@5, ~@7 c#5@25 ~@5 b4@11, ~@13 g#4@16 ~@19, ~@25 f#4@23",
  J: "[~@19 d#4@6 ~@18 g#4@12 ~@12 f#4@6 ~@18 f#4@5, ~@7 a#4@25 ~@5 f4@16 ~@20 b4@23, ~@13 f#4@16 ~@2 g#4@12 ~@18 a#4@16 ~@19, ~@25 c#5@30 c#5@25 ~@16]/2",
  K: "[~@67 f#4@6 ~@18 d#4@12 ~@60 d#4@6 ~@18 f4@8 ~@16 f#4@5 ~@24, ~@7 c#5@30 c#5@18 c#5@25 ~@23 c#5@30 c#5@28 ~@20 c#5@16 ~@2 c#5@18 ~@23, ~@13 g#4@12 g#4@38 ~@10 d#4@18 ~@24 f4@24 f4@17 ~ f#4@16 ~@67, ~@19 f4@24 f4@17 ~ a#4@16 ~@8 b4@16 ~@8 g#4@12 g#4@38 ~@10 g#4@33 ~@38, ~@151 a#4@25 ~@29 a#4@11 ~@24]/5",
  L: "[~@19 d#4@6 ~@18 g#4@12 ~@12 d#4@6 ~@18 g#4@12 ~@12 d#4@6 ~@18 g#4@5, ~@7 b4@25 ~@5 f4@16 ~@8 f#4@16 ~@2 g#4@12 ~@12 b4@25 ~@16, ~@13 f#4@16 ~@2 g#4@12 ~@12 b4@25 ~@5 f4@16 ~@8 f#4@16 ~@19, ~@25 c#5@33 ~@15 c#5@33 ~@15 c#5@23]/3",
  M: "[~@187 d4@5, ~@7 c#5@18 c#5@40 ~@38 d5@18 d5@40 ~@31, ~@13 a#4@30 a#4@20 ~@4 d4@18 d4@23 ~@55 d4@12 d4@12 ~@5, ~@19 f#4@18 f#4@23 ~ f#4@18 f#4@12 f#4@20 ~@4 f#4@12 f#4@12 f#4@17 ~ f#4@24 f#4@11, ~@55 a4@18 a4@36 a4@24 a4@18 a4@18 a4@23]/4",
  N: "[~@115 g4@6 ~@18 e4@8 ~@64 g4@6 ~@18 g4@8 ~@64 e4@6 ~@18 e4@12 ~@12 d4@6 ~@18 d4@5, ~@7 d5@18 d5@40 ~@2 d4@41 ~ b4@16 ~@26 a4@30 a4@28 ~@8 c5@33 ~@45 b4@25 ~@23 a4@25 ~@16, ~@13 a4@18 a4@12 a4@18 a4@12 a4@38 ~@10 c5@33 ~@9 d4@24 d4@17 ~ b4@16 ~@32 a4@12 a4@38 ~@22 g4@16 ~@8 f#4@16 ~@8 g4@11, ~@19 f#4@18 f#4@18 f#4@36 f#4@22 ~@20 g4@16 ~@8 f#4@12 f#4@38 ~@22 e4@16 ~@14 f#4@24 f#4@17 ~ g4@16 ~@2 e4@12 ~@36 d4@12 ~@5, ~@103 d5@25 ~@71 d5@25 ~@23 d5@30 d5@28 ~@8 c5@33 ~@15 b4@23]/8",
  O: "[~@19 e4@6 ~@66 b4@5, ~@7 c5@25 ~@11 f#4@18 f#4@18 b4@12 ~@5, ~@13 g4@16 ~@8 d4@30 d4@18 g4@11, ~@25 a4@30 a4@37 ~@4, ~@73 d5@23]/2",
  P: "[~@19 e4@6 ~@66 d4@12 ~@12 e4@8 ~@21, ~@7 c5@25 ~@5 f#4@24 f#4@24 g4@16 ~@8 g4@16 ~@19, ~@13 g4@16 ~@2 d4@12 d4@24 d4@12 d4@12 ~@53, ~@25 a4@30 a4@37 ~@11 c5@25 ~@16, ~@73 b4@33 ~@38]/3",
})).s("gm_pad_halo").gain(0.41)

// other · acoustic guitar steel · "Steel String"
const acoustic_guitar_steel_3 = note(`<
  A B A B A B A B C A D E A B A B C A D F G F G H F I J@2 F K F K F L M J M N A N A M O G@3 B C@5 P C P C Q R S R S R S
  ~
>`.pickRestart({
  A: "f5@18 f5@5 ~ f5@24", B: "a#4@18 a#4@5 ~ a#4@24", C: "f#5@18 f#5@5 ~ f#5@24", D: "d#5@18 d#5@5 ~ f#5@24",
  E: "f5@18 f5@5 ~@25", F: "f5@18 f5@5 ~ a#4@24", G: "d#5@18 d#5@5 ~ f5@24", H: "f5@18 f5@5 ~ f#5@24", I: "~ d#5",
  J: "f5@18 f5@5 ~ d#5@24", K: "a#4@18 a#4@5 ~ f5@24", L: "a#4@18 a#4@5 ~ f#5@24", M: "f#5@18 f#5@5 ~ f5@24",
  N: "a#4@18 a#4@5 ~ d#5@24", O: "a#4@9 ~@3 a#4 ~@11", P: "b4@18 b4@5 ~ e5@24", Q: "g4@18 g4@5 ~ e5@24",
  R: "f#5@18 f#5@5 ~ b4@24", S: "e5@18 e5@5 ~ f#5@24",
})).s("gm_acoustic_guitar_steel").gain(0.46).pan(0.7)

// chords · electric guitar clean · "Clean Electric"
const electric_guitar_clean = note(`<
  A B C D E D F G H I J K L M L N O C P Q R S R T U V W X Y@2 Z@2 U AA@2 W AB AC L AC L AD AE R AF R D AG AH AI AG AH AJ
  AK AL AH AM AN AO AP AQ AN AQ ~
>`.pickRestart({
  A: "g#4@2 ~ f4, c#4, f4@3 ~, ~ g#4", B: "f#4@3 f#4, [c#4,a#4]", C: "[c#4,f4,g#4]", D: "[c#4,f#4,a#4]",
  E: "f4@3 f4, [g#3,c#4]", F: "c#4@2 ~ g#3, f4, g#3@3 ~, ~ c#4", G: "[c#4,f#4,a#4]!2",
  H: "[a#3,d#4,f#4]@3 [a#3,d#4,f#4]@5", I: "[c#4,f4,g#4]@3 [g#3,c#4,f4]@5", J: "[b3,d#4,f#4] [a#3,d#4,f#4]",
  K: "[c#4,f4,g#4] ~", L: "[g#3,c#4,f4]", M: "[a#3,c#4,f#4]@3 [a#3,c#4,f#4]@5", N: "[a#3,c#4,f#4]", O: "[d#4,f#4,a#4]",
  P: "[b3,d#4,f#4]@3 [b3,d#4,f#4] [d#4,f#4,a#4]@4", Q: "[c#4,f4,g#4] [a#3,c#4,f#4]", R: "[b3,d#4,f#4] [c#4,f4,g#4]",
  S: "[c#4,f4,g#4] [c#4,f#4,a#4]", T: "[c#4,f4,g#4] [a#3,d#4,f#4]", U: "[g#3,c#4,f4]@3 [g#3,c#4,f4] [c#4,f#4,a#4]@4",
  V: "~ [b3,d#4,f#4]", W: "[g#3,c#4,f4] [b3,d#4,f#4]", X: "[c#4,f4,g#4] [b3,d#4,f#4]",
  Y: "[[c#4,f4,g#4] [a#3,c#4,f#4]@2 [g#3,c#4,f4]]/2", Z: "[[g#3,c#4,f4] [a#3,c#4,f#4]@2 [g#3,c#4,f4]]/2",
  AA: "[[c#4,f#4,a#4] [a#3,d#4,f#4]@2 [g#3,c#4,f4]]/2", AB: "[a#3,d#4,f#4] [g#3,c#4,f4]",
  AC: "[c#4,f#4,a#4] [b3,d#4,f#4]", AD: "[a#3,d#4,f#4] [c#4,f4,g#4]", AE: "[a#3,c#4,f#4] ~",
  AF: "[b3,d#4,f#4] [g#3,c#4,f4]", AG: "[d4,f#4,a4]", AH: "[a3,d4,f#4]", AI: "a4@5 ~ f#4@2, d4, f#4@3 ~, ~@5 a4@3",
  AJ: "[b3,d4,g4] [g3,c4,e4]", AK: "d4@5 ~ a3@2, f#4, a3@3 ~, ~@5 d4@3", AL: "[b3,d4,g4] [c4,e4,g4]",
  AM: "[g3,b3,e4] [c4,e4,g4]", AN: "[a3,d4,f#4] [b3,d4,g4]", AO: "[g3,c4,e4]@3 [g3,c4,e4] [d4,f#4,a4]@4",
  AP: "[d4,f#4,a4] [b3,d4,g4]", AQ: "[c4,e4,g4] [d4,f#4,a4]",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.4)

// chords · piano
const piano = note(`<
  A B C B C B D E F ~ G ~ H I J K ~@2 L M N@2 O P ~ Q R S T U@4 V W@2 ~ X C X A Y ~ Z AA@2 AB AC@5 AD AE AD AE AF AG
  AH@2 AI@2 AJ@2
>`.pickRestart({
  A: "[f3,g#3,c#4]@3 ~", B: "[f#3,a#3,c#4]@13 ~@3", C: "[f3,g#3,c#4]@13 ~@3", D: "[f3,g#3,c#4]@7 ~",
  E: "[f#3,a#3,c#4]@3 ~", F: "[f#3,a#3,d#4]@3 ~", G: "[b3,d#4,f#4]@13 ~@3", H: "[f3,g#3,c#4]@5 ~@11",
  I: "[f#3,a#3,c#4] ~", J: "[f3,g#3,c#4]@9 ~@7", K: "[f#3,a#3,c#4]@9 ~@7", L: "[f#3,a#3,d#4]@5 ~@3",
  M: "~@4 [f#3,a#3,c#4]@3 ~", N: "[[b3,d#4,f#4]@3 ~ [f3,g#3,c#4]@5 ~@3 [f#3,a#3,c#4]@3 ~]/2",
  O: "[b3,d#4,f#4]@3 ~ [f3,g#3,c#4]@4", P: "~@8 [f#3,a#3,d#4]@7 ~", Q: "~@8 [b3,d#4,f#4]@7 ~",
  R: "[f3,g#3,c#4]@3 ~ [b3,d#4,f#4]@3 ~", S: "[f3,g#3,c#4]@6 ~@2 d#4 ~ d#4 ~@5, ~@2 [b3,f#4] ~",
  T: "[f3,g#3,c#4]@3 ~@5", U: "[~@8 [f3,g#3,c#4]@13 ~@3 [f#3,a#3,c#4]@10 ~@6 [f3,g#3,c#4]@11 ~@5 [f#3,a#3,c#4]@8]/4",
  V: "~ [f#3,a#3,d#4]", W: "[~@8 [f3,g#3,c#4]@11 ~@13]/2", X: "[f#3,a#3,c#4]@3 ~ [b3,d#4,f#4]@3 ~",
  Y: "[f#3,a#3,d#4]@7 ~@9", Z: "[b3,d#4,f#4]@6 ~@2 [f3,g#3,c#4]@7 ~", AA: "[b3,d#4,f#4]@3 ~ [f3,g#3,c#4]@3 ~",
  AB: "[f#3,a#3]@6 [f#3,a#3] ~, c#4@7 ~", AC: "[a3,d4,f#4]@7 ~", AD: "[g3,b3,d4]@4 [g3,c4,e4]@3 ~",
  AE: "[a3,d4,f#4]@13 ~@3", AF: "[g3,b3,e4]@7 ~ [g3,c4,e4]@6 ~@2", AG: "[a3,d4,f#4]@10 ~@2 [b3,d4]!2 ~@2, ~@6 g3 ~",
  AH: "[~@4 [g3,c4,e4]@4 ~@4 [a3,d4,f#4]@9 ~@3 [g3,b3,d4]@7 ~]/2", // C D G
  AI: "[[g3,c4,e4]@6 ~@2 [a3,d4,f#4]@13 ~@3 [g3,b3,d4]@6 ~@2]/2", AJ: "[[g3,c4,e4]@3 ~ [a3,d4,f#4]@5 ~@7]/2",
})).s("gm_piano").gain(0.46).pan(0.6)

// chords · rock organ
const rock_organ_3 = note("<~@47 A@2 B@4 ~@11>".pickRestart({
  A: "[~@5 [f#2,f#3]@7 ~ b4 [c5,d5] [e5,f5] [g5,a5] [b5,c6] [d6,e6,f6] [g6,a6] c7@3 [g6,a6,a#6] ~@2 a5 [e5,f5,g5] [b4,c5,d5] [g4,a4] e4@2 ~@4 c5@2 ~@4 f5@2 ~@4 a4@13 ~@5 d5@2 ~ d5@7 ~@14 a3@5 ~, ~@5 d4@4 ~@3 a4@2 ~@6 b6 ~@3 [e6,f6]@2 b5@2 ~@2 f4 ~ a3@12 ~ d3@43 ~@8, ~@5 c4 ~@19 [c6,d6]@2 ~@14 f#5@3 ~@4 d4@40 ~@8, ~@48 [d5,f#5]@20 ~@10 [c5,f#5]@17 ~, ~@61 a4@34 ~]/2", // F# Csus2 Fmaj7 Gsus2 Cmaj7 Dm Gsus2 Gm …
  B: "[[d3,d4]@17 a3@3 ~@3 d3@11 ~@2 a3@4 ~@2 a3@5 ~ c4 ~@17 a3@5 ~@6 d4@7 ~@6 a3@5 a4@5 ~@20 f#5@23 [g2,b4,g5]@23 ~@26, [a4,d5]@20 c5@15 ~ b4@17 d5@30 ~@12 b4@13 d5@58 ~@26, ~@20 a4@8 ~@20 [d3,d4]@16 ~@7 d3@16 ~@8 d3@48 ~@49, ~@53 a4@19 ~@12 [a4,c5]@12 ~@6 d4@10 ~@80, ~@27 a4@8 ~@13]/4", // D G D5 D Am
})).s("gm_rock_organ").gain(0.26)

// chords · rock organ · soft notes
const rock_organ_soft = note(`<
  ~@47
  [~@8 e4@2 ~ g4@2 ~@10 b6 ~@7 f4@2 ~@2 b4@2 d5@4 a4 ~@6, ~@10 f4@2 ~@21 g4@2 ~@13, ~@17 a4 ~@6]
  [~@20 c5 ~@27]
  [~@5 a4 ~@2]
  ~@14
>`).s("gm_rock_organ").gain(0.15)

// other · overdriven guitar
const overdriven_guitar = note("<~@48 [f#5@12 f#5@14 e5@3 d5@3 a4@6 ~ d5@2 e5@2 ~ f5@2 ~@2] [f#5@9 ~@7] ~@14>")
  .s("gm_overdriven_guitar").gain(0.46).pan(0.9)

// drums · kick
const kick = s("bd").struct("<A@7 B A@3 C A@3 D A@9 E A@16 D A@4 F A@15 G>".pickRestart({
  A: "x ~@2 x!3 ~@2", B: "x ~@5 x ~ x ~ x ~@2 x ~@2", C: "~ x ~@2 x ~@11", D: "x ~@2 x!2 ~@3", E: "x ~@3 x!2 ~@2",
  F: "~ x ~@3 x ~@10", G: "x",
})).gain(0.46)

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

// drums · hihat
const hihat = s("hh").struct(`<
// … 41 more lines

More by Ricky Martin