Strudelify

Como Me Duele Perderte

Gloria Estefan

KeyF♯ majorTempo142 bpm
0:00/0:00
// Como Me Duele Perderte — Estefan Gloria
// 142 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 174 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.

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A@2 B@2 C@2 D@3 E F G@2 H@3 I@2 J K L M@2 N@2 O P Q R@2 S T U V W X Y Z AA AB AC AD AE AF@2 AG AH@2 ~ AI@2 AJ@2 AK@2
  AL ~@2 AM AN@2 AO@2 AP@2 AQ AR AS@2 AT AU AV@2 AW AX AY AZ BA@2 BB BC BD BE BF BG BH BI BJ BK BL BM ~@2 BN AH@2 ~ BO@2
  BP@2 BQ@2 BR BS BT@2 BU@2 BV@2 BW BX BY BZ CA CB CC@2 CD CE CF CG CH CI CJ CK CL CM CN BI CO@2 CP CQ@2 ~ CR@2 CS@2
  CT@2 CU@2 CV@5 ~@24
>`.pickRestart({
  A: "[c#5@2 ~@4 c#5@3 ~@5 c#5@4 ~@4 c#5 ~ c#5@3 ~@3 a#4 ~]/2",
  B: "[d#5@2 a#4@2 f#4 ~ c#5@4 ~@4 c#5@4 ~@8 c#5@4 f#4 ~, ~@22 f#4@7 ~@3, ~@23 a#4@4 ~@5, ~@6 d#5 ~]/2",
  C: "[b4@3 ~ f#4 ~ [d#4,b4] ~@3 [d#4,a#4]@4 [d#4,g#4]@4 f#4@2 ~@6 f#4@3 ~@3, ~@22 d#4@7 ~@3]/2", // G#m D#5 G#5
  D: "[[c#4,g#4]@2 ~@2 f4 ~ [c#4,f#4]@4 g#4@3 ~ [c#4,g#4] ~ [c#3,c#4,f4]@20 ~@12, ~@5 g#3@7 ~@4]/3", E: "~@4 c#4@11 ~",
  F: "~@10 f#4@5 ~, ~@3 c#4@4 ~",
  G: "[~@4 f#4 ~ [d#4,a#4]@4 g#4 ~@3 [d#4,g#4]@5 ~@3 f#4@4 g#4@3 ~ [d#4,g#4] ~, ~@22 d#4@7 ~@3]/2", // D#5 G#5
  H: "[~@6 b4@3 ~ a#4@2 ~@2 [d#4,a#4]@4 [d#4,g#4]@3 ~ [d#4,a#4]@4 [d#4,c#5]@3 ~ [d#4,c#5]@5 ~@3 [f4,a#4]@4 ~@4 [f4,a#4]@2, ~ d#4 ~@6]/3", // D#5 G#5 D#5 D#7 A#5
  I: "[~@10 g#4@4 f4@2 f#4@4 ~@2 [c#4,a#4]@5 ~@3 [c#4,f#4] ~, ~@6 c#4@13 ~@13]/2", // F# F#5
  J: "~@2 c#4 ~ c#4 ~ [c#4,a#4]@7 ~ [c#4,f#4] ~", K: "~@4 d#4 ~ f#4@5 ~@3 [d#4,a#4] ~, ~@6 d#4@3 ~@7",
  L: "~@2 [d#4,a#4]@3 ~ [d#4,g#4] ~@3 [d#4,a#4]@2 g#4@2 ~@2", // D#5 G#5 D#5
  M: "[~@16 b4@2 a#4@3 ~ a#4@3 ~ a#4@3 ~@3, ~@14 d#4@7 ~ d#4@7 ~@3, ~@15 f#4@2 ~@15]/2",
  N: "[~@6 f4@4 c#4@3 ~ [c#4,g#4]@4 ~@2 f4 ~@5 f4@2 c#4@2 ~@2, ~@11 [c#4,f#4]@3 ~@2]/2", O: "~@6 c#4@9 ~, ~@4 a#3@11 ~",
  P: "~@3 b3@2 ~@2 c#4, ~ f#3@3, ~@5 d#4@3", Q: "~@6 c#4@5 ~@5, ~@4 a#3@7 ~@5",
  R: "[~@10 c#4@4 b3@4 ~@8 b3@4 c#4 ~, ~@3 d#4@3 ~@5 g#3@4 ~]/2", S: "[g#3,d#4]@4 c#4 ~@5 c#4@5 ~, ~@6 g#3@7 ~@3",
  T: "~@4 [b3,d#4] ~ [b3,d#4]@9 ~", U: "~@2 [g#3,c#4] ~@3 [g#3,c#4]@2 [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4]@4",
  V: "~@6 f#4@3 ~ [c#4,g#4]@5 ~, ~@4 c#4@5 ~@7", W: "~@5 f#4@2 ~, ~@4 c#4@11 ~, ~@3 f4@3 ~@2",
  X: "~@4 d#4@2 ~@6 f#4@3 ~, ~@3 b3@3 ~@2, ~@10 d#4@5 ~",
  Y: "~@2 [d#4,f#4] ~ [d#4,f#4]@4 ~@2 [c#4,f4] ~ [c#4,f4,g#4]@4", // D#m C#
  Z: "~@8 g#4@2 a#4@3 ~@3, ~@3 c#4@11 ~@2, ~@6 f#4@5 ~@5", AA: "~@4 f4@2 f#4@4 g#4@5 ~",
  AB: "~@4 b3@2 ~@4 f#4@4 [d#4,f#4] ~, ~@6 d#4@7 ~@3", AC: "~@2 b3@2 ~@2 f#4@2 ~@2 [c#4,f4] ~@3 [c#4,f4]@2, ~ d#4 ~@2",
  AD: "~@2 c#4 ~@7 g#4@5 ~, ~@4 c#4@11 ~, ~@6 f#4@7 ~@3", AE: "~@5 f#4@2 ~, ~@2 c#4@5 ~, ~@3 f4@3 ~@2",
  AF: "[~@10 f#4@11 ~@2 d#4@6 ~@3, ~@4 b3@17 ~ b3@5 ~@5, ~@6 d#4@15 ~@11]/2", AG: "~@5 d#4@3, ~@4 g#3@11 ~, ~@3 b3@4 ~",
  AH: "[[g#3,c#4]@5 ~@3]/2", AI: "[~@14 c#5@4 a#4 ~@3 c#5@4 a#4@2 f#4 ~ f#4 ~]/2",
  AJ: "[c#5@2 a#4 ~ f#4 ~ d#5@4 a#4 ~@3 [f#4,c#5]@4 f#4 ~@3 d#5 ~@3 a#4@2 f#4 ~ [f#4,a#4] ~, ~@24 d#5@5 ~@3]/2", // F#5 F#
  AK: "[[f#4,a#4]@2 f#4@2 b4 ~ [f#4,b4]@2 ~@2 f#4 ~@3 c#5@4 b4 ~@3 c#5@4 f#4@3 ~ f#4 ~, ~@11 f#4 ~@4]/2", // F# B5
  AL: "f#4@3 ~@7 f#4@6, ~@4 f#4@5 ~@7, ~@3 c#5@5", AM: "~@2 a#3@3 ~ [a#3,c#4] ~@3 [a#3,c#4]@5 ~",
  AN: "[~@4 d#4 ~ f#4@4 d#4@2 f#4 ~ d#4@7 ~@5 g#4@4 f#4@2, ~@22 [d#4,a#4]@7 ~@3]/2", // D#5
  AO: "[~@6 d#4@4 a#4 ~@3 [d#4,a#4]@4 [d#4,g#4] ~@3 [d#4,g#4]@7 ~@3, ~@6 b4@3 ~@23]/2", // D#5 G#5
  AP: "[~@2 c#4@2 f4 ~ [c#4,f#4]@4 f4@2 c#4 ~ [c#4,g#4]@4 f#4 ~@3 f#4@4 f4@4 [c#4,f#4] ~, ~@22 c#4@7 ~@3]/2", // F#5 C#5 F#5
  AQ: "~@4 [c#4,a#4] ~ [c#4,g#4]@4 f#4 ~@3 [c#4,f#4] ~", AR: "~@6 [c#4,a#4]@4 g#4 ~@3 f#4 ~",
  AS: "[~@4 d#4 ~ f#4@4 d#4@2 ~@2 [d#4,a#4]@6 ~@2 [d#4,g#4]@4 ~@4 d#4 ~]/2", // D#5 G#5
  AT: "~@8 b4@2 ~@4 [d#4,g#4] ~, ~@6 d#4@7 ~@3", AU: "~@2 [d#4,g#4]@4 f#4@4 g#4@5 ~",
  AV: "[~@10 f#4@4 ~@2 g#4@2 a#4@2 g#4@2 ~@6 c#4 ~@3, ~@4 c#4@9 ~ c#4@12 f4@4 ~@2, ~@6 f4@7 ~@2 f4@6 ~ f#4@7 ~@3]/2",
  AW: "~@10 d#4@5 ~, ~@4 a#3@11 ~, ~@3 c#4@3 ~@2", AX: "~@5 d#4@3, ~@4 f#3@11 ~, ~@6 b3@9 ~",
  AY: "~@8 d#4 ~ d#4 ~@3 [a#3,e4]@2, ~@4 a#3@7 ~@5, ~@3 c#4@2 ~@3", AZ: "~@2 [a#3,d#4]@3 ~ c#4@4 ~@4 a#3@2, ~@5 b3@3",
  BA: "[~@10 b3@3 ~@3 f#4@4 d#4@2 b3@4 g#3@5 ~, ~@6 g#3@7 ~ g#3@11 ~@7]/2",
  BB: "~@10 c#4@3 ~ [f#3,c#4]@2, ~@2 f#3@5 ~, ~@6 b3@7 ~@3", // F#5
  BC: "~@2 g#3@3 ~ g#3 ~ [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4] ~ [g#3,c#4]@2", // C#5
  BD: "~@4 c#4 ~ [c#4,f#4]@4 [c#4,g#4]@3 ~ [c#4,g#4] ~", BE: "~@6 f4@4 f#4@4 c#4 ~, ~@4 c#4@6 c#4@3 ~@3",
  BF: "~@4 b3@2 ~@4 f#4@5 ~, ~@6 d#4@9 ~", BG: "~@2 [d#4,f#4]@3 ~ [d#4,f#4]@2 ~@2 [c#4,f4,g#4] ~ [c#4,f4,g#4]@4",
  BH: "~@10 g#4@4 [c#4,a#4] ~, ~@2 c#4@5 ~, ~@6 f#4@7 ~@3", BI: "~@10 f#4@5 ~, ~@4 c#4@11 ~, ~@3 f4@4 ~",
  BJ: "~@4 b3@2 ~@4 f#4@3 ~ [d#4,f#4] ~, ~@6 d#4@7 ~@3", BK: "~@2 [d#4,f#4] ~@3 [d#4,f#4]@3 ~ f4 ~ [c#4,f4]@4",
  BL: "~@6 f#4@4 [c#4,g#4]@3 ~ [c#4,f#4] ~, ~@2 c#4@3 ~@3", BM: "~@3 f4@2 f#4@2 ~, ~@4 c#4@9 ~@3",
  BN: "~@3 d#4@3 ~@2, g#3@15 ~", BO: "[~@6 c#5@5 ~@3 f#4@4 a#4@3 ~@5 a#4@2 f#4@2 f#4@2, ~@22 f#4@5 ~@5, ~@6 c#5 ~]/2",
  BP: "[~@2 f#4 ~ a#4 ~ c#5@4 f#4@3 ~ a#4@4 f#4@3 ~ c#5 ~@3 a#4@2 f#4@3 ~, ~@6 c#5 ~]/2",
  BQ: "[a#4@4 ~@2 c#5@4 a#4@2 ~@2 f#4@5 ~@7 a#4@3 ~ f#4 ~, ~@20 f#4@7 ~@5, ~@11 c#5@3 ~@2]/2",
  BR: "~@2 c#5 c#5@3 ~@2, f#4@13 ~@3", BS: "~@6 g#4@9 ~, ~ f4@6 ~",
  BT: "[~@4 f#4@5 ~@9 a#4@4 ~@4 c#5@5 ~, ~@10 f#4@11 ~ f#4@10, ~@4 c#5 ~@3]/2",
  BU: "[~@8 f#4@2 ~@5 d#4, ~@4 d#4@9 ~ d#4@13 ~@5, ~@6 f#4@10 ~@4 a#4@5 ~ f#4@6, ~@22 g#4@7 ~@3]/2",
  BV: "[~@6 f#4@5 ~@7 g#4@3 ~@7 f#4@2 d#4@2, ~@4 d#4@9 ~ d#4@15 ~@3, ~@8 f#4@2 ~ a#4@3 ~@2, ~@13 g#4@2 ~]/2",
  BW: "~@4 f#4@2 ~@4 [d#4,f#4]@3 ~ f4 ~, ~ d#4@4 ~@3, ~@3 g#4@3 ~@2", // D#m
  BX: "~ c#4 f4 f#4@2 [c#4,f4] ~@2, ~@6 c#4@3 ~@7, ~@6 f4 ~@9", // C#
  BY: "~@2 d#4 ~@2 d#4@2 ~, a#3@3 a#3@4 ~, ~ c#4@2 f4@3 ~@2", BZ: "~@2 b3 d#4@2 c#4 b3 c#4, ~@3 f#3@5",
  CA: "~@3 c#4@2 d#4 ~ [a#3,e4], ~ a#3@2 ~", CB: "~ d#4@2 c#4@2 ~@2 a#3, ~@2 a#3@3 ~@5 b3@6",
  CC: "[~@2 b3 c#4@2 ~ b3 ~@2 c#4@2 ~@2 b3@3, ~@6 g#3@3 ~ g#3@4 g#3@8 g#3@10, ~@7 d#4@3 ~@6]/2",
  CD: "~@4 [f#3,b3] ~ [f#3,b3] ~@3 [f#3,b3]@3 ~ [f#3,b3]@2", // B5
  CE: "~@2 [g#3,c#4] ~@3 [g#3,c#4]@3 ~ [g#3,c#4] ~ [g#3,c#4]@4, ~@12 d#4 ~@3", // C#5
  CF: "~@5 [c#4,g#4]@2 [c#4,g#4], ~@4 c#4@5 ~@7, ~@3 f#4@3 ~@2", CG: "~@4 g#4@5 ~ [c#4,f#4]@5 ~, ~@3 [c#4,f4]@6 ~@7",
  CH: "~@3 b3 f#4 ~ [b3,f#4]@4 ~@4 f#4@2, ~@5 d#4@3", // B5
  CI: "~@2 [d#4,f#4] ~@3 f4@2 ~@2 [c#4,f4,g#4] ~ [c#4,f4,g#4]@4, ~ [d#4,f#4] ~@2", // D#m C# D#m
  CJ: "~@3 g#4@2 [c#4,a#4]@2 [c#4,g#4], ~ c#4@2 ~@5, ~@4 f#4@5 ~@7", // F# C#5
  CK: "~@4 [c#4,f4,g#4] ~ [f4,g#4]@4 f#4@5 ~, ~@6 c#4@9 ~", CL: "~@4 b3@2 d#4@4 [d#4,f#4]@3 ~ [d#4,f#4] ~",
  CM: "~@2 [d#4,f#4] ~ [d#4,f#4]@2 [d#4,f#4]@3 ~ f4 ~ [f4,g#4]@4", // D#m Fm
  CN: "~@10 g#4@3 ~ [c#4,a#4]@2, ~@4 c#4@9 ~@3, ~@6 f#4@7 ~@3", CO: "[~@7 f#4@7 ~@2, ~@5 d#4@9 ~@2]/2",
  CP: "~@10 g#4@5 ~, ~@4 b3@7 ~@5, ~@3 d#4@5", CQ: "[[c#4,f4]@5 ~@3]/2",
  CR: "[c#5@3 ~ f#4 ~ c#5@4 a#4@4 ~@4 c#5@3 ~ f#4 ~ c#5 ~ c#5@2 ~@2 f#4@2, ~@14 f#4@7 ~@7 a#4@4]/2",
  CS: "[~@4 c#5 ~ a#4@4 ~@4 c#5@4 f#4@3 ~@3 c#5 ~ c#5 ~ c#5@2 a#4@2, ~@10 f#4@8 ~@4 f#4@9 ~, ~@23 a#4@4 ~@5]/2",
  CT: "[~@6 b4@4 ~@4 c#5@4 b4@3 ~@3 [f#4,c#5]@2 b4@4 ~@2, ~@4 f#4@5 ~ f#4@11 ~@11]/2", // F#5
  CU: "[[f#4,c#5]@3 ~ f#4 ~ [f#4,c#5]@3 ~ [f#4,b4]@2 ~@2 [f4,g#4]@4 f4@3 ~ [f4,a#4] ~ [f4,a#4]@2 ~@2 f4@4, ~@13 g#4@3]/2", // F#5 B5 Fm A#5
  CV: "[~@2 f#4@16 ~@4 f#4@9 ~ [c#4,f#4]@33 ~@15, c#4@16 ~@2 f#3@13 [f#2,f#3]@34 ~@15, ~@5 c#4@3 ~@12]/5", // F#5 F#
})).s("gm_acoustic_guitar_nylon").gain(0.24)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  A B ~@2 C D E F ~ G H I ~@3 J K L M N O ~@2 P Q ~@3 R S T ~@5 J ~ U ~@5 V ~@4 W ~@2 X ~@2 Y ~ Z@2 ~ AA D ~@5 AB AC AD
  AE ~ AF ~@4 AG ~@2 AH ~@7 AI ~@4 AJ ~@3 AK ~@2 AL AM AN AO AP ~@4 AQ ~ AR ~@2 AS ~@2 AT ~@4 AU ~@2 AV ~@2 J ~ AW AX@2
  ~@4 AY ~ AZ ~@2 BA BB ~@30
>`.pickRestart({
  A: "~@5 a#4 ~@2", B: "~@2 a#4@2 ~@6 a#4@2 f#4 ~@3", C: "f#4@3 ~@13", D: "~@4 d#4 ~@11", E: "~@2 c#4@3 ~@5 c#4@3 ~@3",
  F: "a#3", G: "~@6 f#4@9 ~", H: "~@2 a#3@5 ~", I: "~ d#4 ~@6", J: "~@10 g#4 ~@5", K: "~@8 g#4 ~@3 f#4@2 ~@2",
  L: "~@4 c#4 ~@5 g#4 ~@5", M: "~@10 g#4@2 f#4 ~@3", N: "~@10 d#4 ~@5", O: "~@14 f#4 ~", P: "~@2 c#4@3 ~@3",
  Q: "~@2 c#4@3 ~@11", R: "~@4 e4 ~@11", S: "~@14 g#3 ~", T: "~@13 b3@2 ~", U: "~@2 c#4@13 ~", V: "~@10 f#4@3 ~@3",
  W: "~@6 c#5@4 a#4 ~@5", X: "~@4 a#4 ~@11", Y: "~@2 b4@3 ~@11", Z: "[~@14 f#3@7 ~@11]/2", AA: "~@2 a#4 ~@11 d#4@2",
  AB: "~@12 f#4 ~@3", AC: "~@4 d#4 ~@5 [d#4,f#4]@3 ~@3", AD: "~@10 a#4@3 ~@3", AE: "~@6 d#4@9 ~", AF: "~@14 c#4 ~",
  AG: "~@6 d#4 ~", AH: "~@4 c#4 ~ c#4 ~@9", AI: "~@10 c#4 ~@5", AJ: "~ b3 ~@2", AK: "~@4 f#4@9 ~@3", AL: "~@14 a#4 ~",
  AM: "~@4 f#4 ~@11", AN: "~@2 a#4@3 ~@7 f#4 ~@3", AO: "~@2 a#4@3 ~@11", AP: "~@11 c#5@4 ~", AQ: "~@6 f#4 ~",
  AR: "~@14 d#4 ~", AS: "~@2 f#3@3 ~@11", AT: "~@2 g#3@3 ~@11", AU: "~@8 f#4 ~@7", AV: "~@3 c#4@2 ~@3",
  AW: "~@14 g#4 ~", AX: "[~@3 b3@11 ~@2]/2", AY: "~ a#4 ~@6", AZ: "~@2 f#4 ~@13", BA: "~@6 f#4 ~@5 f#4@3 ~",
  BB: "~ b4 ~@6",
})).s("gm_acoustic_guitar_nylon").gain(0.14)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon_3 = note(`<
  A B@2 C@2 D E@3 F@2 G@2 H@2 I@2 J@2 G@2 K@2 L@2 M@2 N@2 O@2 P Q R@2 S T U@2 S V W@2 X@2 Y@3 ~ F@2 G@2 H@2 Z AA F@2 G@2
  H@2 AB@2 F@2 G@2 H@2 AC@2 AD AE AF@2 AG@2 P AH AI@2 S AJ AK@2 S AJ R@2 AL@2 Y@3 ~ F@2 G@2 H@2 AM@2 F@2 G@2 H@2 Z AA AD
  AE AF@2 O@2 P AH AN@2 S V R@2 S AJ AO@2 AP@2 Y@3 ~ F@2 G@2 H@2 Z AA AQ@2 ~@27
>`.pickRestart({
  A: "a#3 ~@5 [c#4,f#4]@2, f#2@3 c#3@5, [c#4,f#4] [c#4,f#4]@2 ~, ~ a#3@4 a#3@3", // F#5
  B: "[~@7 f#2 ~@6 [d#4,f#4]@2, f#2@4 c#3@3 ~ d#3@3 a#2@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [c#4,f#4]@3 f#4@5 ~@6, ~@5 c#4@3 d#4@2 [d#4,f#4]@4 ~@2]/2", // D#m F#5 D#m
  C: "[~@7 d#3 b3 ~@5 [d#4,f#4]@2, d#3@4 a#2@3 ~ b2@3 f#2@5, ~ a#3@4 a#3@3 ~ b3@4 b3@3, ~@2 [d#4,f#4]@3 [d#4,f#4]@5 [d#4,f#4]@4 ~@2]/2", // D#m
  D: "~@7 f#2, f#2@4 f#2@3 ~, ~ b3@4 [b3,d#4,f#4]@3, ~@2 [d#4,f#4]@3 ~@3", // B D#m
  E: "[g#3@2 ~@12 g#4@21 ~@13, c#3@3 g#2@5 ~@16, [c#4,f4] [c#4,f4]@2 [c#4,f4] ~@8, ~ g#3@4 g#3@3 ~@16]/3", // C#
  F: "[~@7 [c#4,f#4], f#2@4 c#3@3 f#2@4 c#3@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [c#4,f#4]@3 [c#4,f#4]@5 [c#4,f#4]@4 ~@2]/2", // F#5
  G: "[d#4 ~@27 [d#4,f#4]@4, d#3@4 a#2@3 d#3@4 a#2@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [d#4,f#4]@3 [d#4,f#4]@5 [d#4,f#4]@4 ~@2]/2", // D#m
  H: "[b3 ~@27 [d#4,f#4]@4, b2@4 f#2@3 b2@4 f#2@5, ~ b3@4 b3@4 b3@4 b3@3, ~@2 [d#4,f#4]@3 [d#4,f#4]@5 [d#4,f#4]@4 ~@2]/2", // D#m
  I: "[[g#3,c#4,f4] ~@27 [c#4,f4]@4, c#3@4 g#2@3 c#3@4 g#2@5, ~ g#3@4 g#3@4 g#3@4 g#3@3, ~@2 [c#4,f4]@3 [c#4,f4]@5 [c#4,f4]@4 ~@2]/2", // C#
  J: "[[a#3,f#4] ~@27 [c#4,f#4]@4, f#2@4 c#3@3 f#2@4 c#3@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [c#4,f#4]@3 [c#4,f#4]@5 [c#4,f#4]@4 ~@2]/2", // D#m F#5
  K: "[b3 ~@27 [d#4,f#4]@4, b2@4 f#2@3 f#2@4 f#2@5, ~ b3@4 b3@4 b3@4 b3@3, ~@2 [d#4,f#4]@3 [d#4,f#4]@5 [d#4,f#4]@4 ~@2]/2", // D#m
  L: "[[g#3,c#4,f4] ~@19 [c#4,f4]@2 g#2 ~@3 [c#3,g#3,c#4,f4]@5 ~, c#3@4 g#2@3 c#3@4 ~@5, ~ g#3@4 g#3@4 g#3@2 ~@5, ~@2 [c#4,f4]@3 [c#4,f4]@5 ~@6]/2", // C#
  M: "[~@10 [a#3,c#4,f4]@4 a#2 f#4@3 ~@10 [d#4,f#4]@4, a#2@8 f2@6 ~ [b2,d#4]@6 ~ f#2@10, ~@2 a#3@8 ~@5 b3@2 ~ b3@8 b3@6, ~@2 [c#4,f4]@3 ~@5 [d#4,f#4]@4 ~@2]/2", // A#m D#m B C# D#m
  N: "[f4 ~@13 a#2@2 ~@12 [c#4,g4]@4, a#2@4 f2@3 ~ d#3@3 a#2@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [c#4,f4]@3 c#4@5 [c#4,g4]@4 ~@2, ~@5 f4@3 g4@2 ~@6]/2", // C#dim C# C#dim
  O: "[[g#3,b3,d#4] ~@27 [b3,d#4]@4, g#2@4 d#3@3 g#2@4 d#3@5, ~ g#3@4 g#3@4 g#3@4 g#3@3, ~@2 [b3,d#4]@3 [b3,d#4]@5 [b3,d#4]@4 ~@2]/2", // G#m B
  P: "[b3,d#4,f#4] ~@13 b2@2, b2@4 f#2@3 ~, ~ b3@4 [b3,d#4,f#4]@3, ~@2 [d#4,f#4]@3 ~@3", // B D#m
  Q: "g#3@2 ~@2 [c#4,f4]@2 [c#3,g#3,c#4,f4] ~@3 [c#3,g#3,c#4,f4] ~@5, c#3@3 ~@5, [c#4,f4] ~@3, ~ g#3@2 ~@5", // C#
  R: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,f#4]@2 f4@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ [a#3,c#4,f4]@2 ~@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ a#2 g#2, f#2@2 ~@2 c#3@2 ~ [a#3,c#4]@2 ~@7, ~@4 a#2 ~ f2 ~]/2", // F# A#m
  S: "[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [g#2,b3,d#4,f#4]@2, g#2 ~ d#3 ~", // B G#m7
  T: "[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 f4 ~ [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ c#3@2, b2 ~ c#3 ~", // B C#
  U: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,a#3,f#4]@2 [g#3,f4]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ [g#3,c#4,f4]@2 ~@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ a#2@2, f#2@2 ~@2 c#3@2 ~ c#4@2 ~@7, ~@4 a#2 ~ f2 ~]/2", // F# C#
  V: "[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 ~@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ c#3@2, b2 ~ c#3 ~", // B C#
  W: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,f#4]@2 f4@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ [a#3,c#4,f4]@2 ~@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ a#2 b2, f#2@2 ~@2 c#3@2 ~ [a#3,c#4]@2 ~@7, ~@4 a#2 ~ f2 ~]/2", // F# A#m
  X: "[[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@4 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b2,b3,d#4,f#4] ~@3 [b2,b3,d#4,f#4]@5 ~, b2@2 ~@2 f#2@2 ~ b2@3 ~@6]/2", // B
  Y: "[~@7 g#2 [c#3,c#4,f4]@10 ~@6, g#2@4 d#3@3 ~@17, ~ g#3@4 g#3@4 ~@15, ~@2 [b3,d#4]@3 [b3,d#4]@3 ~@16]/3", // C# B
  Z: "~@7 b2, b2@4 f#2@3 ~, ~ b3@4 [b3,d#4,f#4]@3, ~@2 [d#4,f#4]@3 ~@3", // B D#m
  AA: "g#3@2 g#3@2 [c#4,f4] ~ [c#3,g#3,c#4,f4] ~@3 [c#3,g#3,c#4,f4]@5 ~, [c#3,c#4,f4]@5 ~@11", // C#
  AB: "[[g#3,c#4,f4] ~@27 [c#4,f4]@3 [f#2,a#3,f#4], c#3@8 g#2@6 c#3@8 g#2@9 ~, ~@2 g#3@8 g#3@8 g#3@8 g#3@5 ~, ~@2 [c#4,f4]@3 [c#4,f4]@5 [c#4,f4]@4 ~@2]/2", // C# F# C#
  AC: "[[g#3,c#4,f4] ~@19 [c#4,f4]@2 [c#3,g#3,c#4,f4] ~@3 [c#3,g#3,c#4,f4]@5 ~, c#3@4 g#2@3 c#3@4 ~@5, ~ g#3@4 g#3@4 g#3@2 ~@5, ~@2 [c#4,f4]@3 [c#4,f4]@5 ~@6]/2", // C#
  AD: "~@7 a#2, a#2@4 f2@3 ~, ~ a#3@4 [a#3,c#4,f4]@3, ~@2 [c#4,f4]@3 ~@3", // A#m C#
  AE: "b3 ~@5 [d#4,f#4]@2, b2@3 f#2@5, [d#4,f#4] [d#4,f#4]@2 ~, ~ b3@4 b3@3", // D#m
  AF: "[[a#3,c#4,f4] ~@9 f4@4 ~@14 [c#4,g4]@4, a#2@4 f2@3 d#3@4 a#2@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [c#4,f4]@3 c#4@5 [c#4,g4]@4 ~@2, ~@7 g4@3 ~@6]/2", // A#m C#dim C# C#dim
  AG: "[[b2,g#3,b3,d#4,f#4] ~@27 [b3,d#4]@4, g#2@4 d#3@3 g#2@4 d#3@5, ~ g#3@4 g#3@4 g#3@4 g#3@3, ~@2 [b3,d#4]@3 [b3,d#4]@5 [b3,d#4]@4 ~@2]/2", // G#m7 B
  AH: "g#3@2 ~@4 g#2@2 ~@2 [c#3,g#3,c#4,f4] ~@5, c#3@3 ~@5, [c#4,f4]!2 ~@2, ~ g#3@3 ~@4", // C#
  AI: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,f#4]@2 f4@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ [a#3,c#4,f4]@2 ~@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~@2 g#2, f#2@2 ~@2 c#3@2 ~ [a#3,c#4]@2 ~@7, ~@8 a#2@2 ~@2 f2@2 ~ a#2]/2", // F# A#m
  AJ: "[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 [g#3,c#4,f4] ~ [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ c#3@2, b2 ~ c#3 ~", // B C#
  AK: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,a#3,f#4] ~@3 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ [g#3,c#4,f4]@2 ~@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ a#2@2, f#2@2 ~@2 c#3@2 ~ c#4@2 ~@7, ~@15 [c#3,g#3,f4]@2 ~@15, ~@4 a#2 ~ f2 ~]/2", // F# C#
  AL: "[[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@4 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 d#3 ~ [g#2,b3,d#4,f#4]@5 ~, g#2@2 ~@2 d#3@2 ~ g#2@3 ~@6]/2", // B G#m7
  AM: "[~@10 [b3,d#4,f#4]@4 b2 [c#3,c#4,f4]@3 g#3@2 ~@2 [c#3,g#3,c#4,f4] ~@3 [c#3,g#3,c#4,f4]@5 [f#2,a#3], b2@4 f#2@3 ~@9, ~@2 b3@8 ~@5 g#3@2 ~@15, ~@2 [d#4,f#4]@3 ~@11]/2", // B C# F# D#m
  AN: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,a#3,f#4]@2 [g#3,f4]@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ [g#3,c#4,f4]@2 ~@2 [g#3,c#4,f4]@2 [g#3,c#4,f4] ~ a#2 g#2, f#2@2 ~@2 c#3@2 ~ c#4@2 ~@7, ~@4 a#2 ~ f2 ~]/2", // F# C#
  AO: "[[a#3,c#4,f#4]@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@2 [a#3,c#4,f#4]@2 [a#3,c#4,f#4] ~ [f#2,f#4] f4@2 ~ [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ [a#3,c#4,f4]@2 ~@2 [a#3,c#4,f4]@2 [a#3,c#4,f4] ~ a#2@2, f#2@2 ~@2 c#3@2 ~ [a#3,c#4]@2 ~@7, ~@15 a#2@5 ~@4 f2@4 ~@4]/2", // F# A#m
  AP: "[[b3,d#4,f#4]@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 ~@2 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@4 [b3,d#4,f#4]@2 [b3,d#4,f#4] ~ [b3,d#4,f#4]@2 f#2 ~ [b2,b3,d#4,f#4]@5 ~, b2@2 ~@2 f#2@2 ~ b2@3 ~@6]/2", // B
  AQ: "[b4 ~@27 [c#4,f#4]@4, f#2@4 c#3@3 f#2@4 c#3@5, ~ a#3@4 a#3@4 a#3@4 a#3@3, ~@2 [c#4,f#4]@3 [c#4,f#4]@5 [c#4,f#4]@4 ~@2]/2", // F#5
})).s("gm_acoustic_guitar_nylon").gain(0.14).pan(0.4)

// chords · piano
const piano = note(`<
  A@2 B@2 C@2 D@3 A@2 B@2 C@2 ~@2 E@2 B@2 C@2 F@2 ~@24 A@2 B@2 C@2 G@2 A@2 B@2 C@2 H I J@2 K@2 C@2 L@2 ~@24 A@2 B@2 C@2
  G@2 M@2 B@2 C@2 F@2 ~@24 A@2 B@2 C@2 H ~@30
>`.pickRestart({
  A: "[[f#3,a#3,f#4]@4 ~@2 [f#3,a#3,c#4]@6 ~@2 [f#3,a#3,f#4]@6 ~@2 [f#3,a#3,c#4]@5 ~@5]/2", // F#
  B: "[[f#3,d#4]@5 ~ [f#3,a#3]@7 ~ [f#3,d#4]@6 ~@2 [f#3,a#3]@6 ~@4]/2", // D#m F# D#m F#
  C: "[[f#3,b3]@2 ~ [d#3,f#3]@3 ~ [f#3,b3]@3 ~ [d#3,f#3]@3 ~@2]/2", // B5 D#m B5 D#m
  D: "[[f#3,b3]@5 ~ [f#3,b3]@3 ~ [f#3,b3]@2 ~@2 [g#3,c#4]@20 ~@14]/3", // B5 C#5
  E: "[a#3@4 ~@2 [f#3,a#3,c#4]@6 ~@2 [f#3,a#3]@6 ~@2 c#4@5 ~@5, ~@13 f#4@6 ~@2 [f#3,a#3]@5 ~@6]/2", // F#
  F: "[[g#3,c#4]@5 ~ [f3,g#3]@7 ~ [g#3,c#4]@6 ~@2 [f3,g#3]@8 ~@2]/2", // C#5 Fm C#5 Fm
  G: "[[f#3,b3]@5 ~ [f#3,b3]@3 ~ [f#3,b3]@2 ~@2 [g#3,c#4]@12 ~@6]/2", H: "[f#3,b3,d#4]@4 ~@2 [f#3,b3,d#4]@5 f#4@4 ~",
  I: "~@5 c#5 ~ g#4, ~@3 f#5@3 a#4@2",
  J: "[f#4@6 [f#3,a#3,c#4]@6 ~@2 [a#3,f#4]@8 [f#3,a#3,c#4]@5 ~@5, a#3@2 ~ f#4@4 f#3@3 ~ g#3@5]/2", // F# D#m F#
  K: "[[f#3,d#4]@6 [f#3,a#3]@7 ~ [f#3,d#4]@6 ~@2 [f#3,a#3]@6 ~@4]/2", // D#m F# D#m F#
  L: "[[g#3,c#4]@5 ~ [f3,g#3]@7 ~@2 [g#3,c#4]@6 ~ [f3,g#3]@8 ~@2]/2", // C#5 Fm C#5 Fm
  M: "[a#3@4 ~@2 [f#3,a#3,c#4]@6 ~@2 [f#3,a#3]@6 ~ [f#3,a#3,c#4]@5 ~@6, ~@13 f#4@6 ~@13]/2", // F#
})).s("gm_piano").gain(0.19)

// bass · acoustic bass
const bass = note(`<
  A@2 B C D E F@3 A@2 C B D@2 G H A@2 C B D E G I J D J B K@2 D L M N O P Q R O P Q S T U V W@2 ~ X A C B D@3 Y X A C B
  D@2 G Z A@2 C B D@2 G Y J D AA B K@2 D AB Q AC O P AD R O P Q N O AE K W@2 ~ X A C B D@3 AF A@2 C B D@3 AG J D AA B
  K@2 D AH Q N O P Q N O P AI R T AJ V W@2 ~ X A C B D@3 Y AK AL@2 ~@26
>`.pickRestart({
  A: "f#1@5 ~ c#2@2 c#2@7 ~", B: "d#2@5 ~ a#2@2 a#2@4 a#1@4", C: "d#2@5 ~ a#2@2 a#2@7 ~", D: "b1@5 ~ f#2@2 f#2@7 ~",
  E: "f#1@5 ~ f#2@2 f#2@7 ~", F: "[c#2@5 ~ g#2@2 g#2@4 ~@2 c#2@23 ~@11, ~@3 g#1 ~@8]/3", G: "c#2@5 ~ g#2@2 g#2@7 ~",
  H: "c#2@5 ~ g#2@2 g#2@4 g#1@4", I: "c#2@5 ~ g#2 ~@3 g#2@6", J: "a#1@5 ~ f2@2 f2@7 ~", K: "g#1@5 ~ d#2@2 d#2@7 ~",
  L: "c#2@5 ~ c#2@2 ~@2 c#2@2 ~@2 g#2@2", M: "f#1@5 ~ c#2@2 c#2@2 ~@4 f#1@2, f#2 ~@15",
  N: "a#1@5 ~ f2@2 f2@2 ~@4 a#1 g#1", O: "g#1@5 ~ d#2@2 d#2@2 ~@4 g#1@2", P: "b1@5 ~ f#2@2 c#2@2 ~@4 c#2@2",
  Q: "f#1@5 ~ c#2@2 c#2@2 ~@4 f#1@2", R: "a#1@5 ~ f2@2 f2@2 ~@4 a#1@2", S: "a#1@5 ~ f2@2 f2@2 ~@4 a#1 b1",
  T: "b1@5 ~ f#2@2 f#2@2 ~@4 b1@2", U: "b1@2 ~ b2 ~ f#2@3", V: "g#1@5 ~ d#2@2 d#2@7 ~, g#2 ~@15", W: "[c#2@5 ~@3]/2",
  X: "f#1@5 ~ c#2@2 c#2@7 ~, f#2 ~@15", Y: "c#2@5 ~ c#3@2 ~@2 g#2@6", Z: "c#2@5 ~ g#2@2 g#2@4 g#1@3 f#1",
  AA: "a#1@5 ~ f2@2 f2@6 d#3 ~", AB: "c#2@5 ~ g#2@2 ~@2 c#2@2 ~@2 g#2@2", AC: "a#1@5 ~ f2@2 f2@2 ~@5 g#1, ~@7 a#1",
  AD: "f#1@5 ~ c#2@2 c#2@2 ~@4 f#1 c#2", AE: "g#1@5 ~ d#2@2 d#2 ~ d#2@6", AF: "c#2@4 ~@2 c#3@2 ~@2 g#2@5 f#2",
  AG: "c#2@2 ~ c#3 ~ g#2@3", AH: "c#2@5 ~ g#2@2 ~@2 c#2@2 ~@3 f#2, ~@7 g#2", AI: "f#1@5 ~ c#2@2 c#2@2 ~@4 f#1 a#1",
  AJ: "b1@5 ~ f#2@2 f#2 ~ f#2@6", AK: "f#2 ~@5 c#2@2 c#2@7 ~", AL: "[f#2@6 c#2@8 ~ f#2@5 ~@12]/2",
})).s("gm_acoustic_bass").gain(0.48)

// other · string ensemble 1
const string_ensemble_1 = note(`<
// … 166 more lines

More by Gloria Estefan