Strudelify

Mas Alla (Beyond)

Gloria Estefan

KeyA majorTempo93 bpm
0:00/0:00
// Mas Alla (Beyond) — Estefan Gloria
// 93 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(93/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 · electric guitar jazz
const electric_guitar_jazz = note("<~ A B C D E ~@32 A B C D ~@80>".pickRestart({
  A: "~@3 f#4@5, d3@15 ~, ~ a3@7, ~ d4@3", B: "~@6 e4@9 ~, d3@15 ~, ~@2 a3@13 ~, ~@4 c#4@11 ~",
  C: "~@3 g4@4 ~, d3@15 ~, ~ a3@6 ~, ~@2 c4@5 ~", D: "~@5 b3 d4 ~, d3@7 ~, ~ b3@4 ~@3, ~ d4@2 ~, ~@3 g4@4 ~",
  E: "~@6 g4@4 a#3@5 ~, d3@15 ~, ~@2 a#3@7 ~@7, ~@2 d4@3 ~@3",
})).s("gm_electric_guitar_jazz").gain(0.26)

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

// other · tubular bells
const tubular_bells = note(`<
  ~@22 A B ~@2 C D ~@2 A B ~@33 A B ~@2 C D ~@2 A B ~@22 E F ~@2 G H ~@2 E F ~@2 G H ~@11
>`.pickRestart({
  A: "~@4 a5 ~@3 f#5 ~@7", B: "~@4 a5 ~@3 d5 ~@3 f#5 ~@3", C: "a4 ~@7 b5@7 ~", D: "a5@11 ~@5", E: "~@4 b5 ~@3 g#5 ~@7",
  F: "~@4 b5 ~@3 e5 ~@3 g#5 ~@3", G: "b4 ~@7 c#6@7 ~", H: "b5@11 ~@5",
})).s("gm_tubular_bells").gain(0.38)

// chords · epiano2
const epiano2 = note(`<
  ~ A B C D E F G H I J K L M F G H I J K L M N O P Q R S T U N O P Q R S T U V@2 W@2 F G H I J K L M F G H I J K L M X
  Y Z@2 X AA Z N O P Q R S T U N O P Q R S T AB AC AD AE AF AG AH AI AJ AC AD AE AF AG AH AI AJ AK AL U AM AN AO AP AQ
  AK AL U AM AN AO AP AQ AR@2 AS AT@5 ~
>`.pickRestart({
  A: "[a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@9 ~, d2@7 ~", B: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@7 ~@3, d2@7 ~",
  C: "[a3,c4,f#4]@2 ~@2 a3 ~ [a3,c4,f#4]@7 ~@3, ~ d2@7", D: "[g3,b3,d4]@5 ~ [g3,b3,d4]@9 ~", E: "[d2,g3,a#3,d4]@15 ~",
  F: "[d3,a3,d4,f#4]@14 [d4,f#4,a4] ~", G: "~@12 e5@3 ~, [d3,a3,c#4,e4]@7 ~, ~@10 a4@5 ~", H: "[e4,a4,c#5]@15 ~",
  I: "[b4,a5]@6 [b4,d5,f#5]@6 [f#4,b4,d5]@3 ~, d4@15 ~, f#4@3 ~", J: "~@6 d5@6 a4@3 ~, [d4,e4,g4,b4]@15 ~",
  K: "d4@10 ~@2 g4@2 a4 ~, b4, g4@3 ~, ~@10 d4@5 ~", L: "~@12 a4@2 e4 ~, [c4,e4,g4]@15 ~",
  M: "[b3,d4,g4,a4]@8 [c#4,e4,a4]@7 ~", N: "[a3,d4,f#4]@11 ~ [a3,c#4,e4]@3 ~", O: "[f#3,b3,d4]@11 ~ [a3,c#4,e4]@3 ~",
  P: "[g3,b3,d4]@15 ~", Q: "[f#3,a3,d4]", R: "[a3,c#4,e4]@7 ~ [a#3,c#4,e4]@7 ~", S: "[a3,d4,f#4]@15 ~", T: "[g3,b3,d4]",
  U: "[a3,c#4,e4]@15 ~", V: "[~@2 d4 ~@2 d4@2 ~ [c#4,e4]@7 ~, d3 ~, ~@2 a3@11 ~ a3@18, ~@6 f#4@9 ~@17]/2",
  W: "[[c4,e4]@15 ~ [b3,d4]@15 ~, g3@31 ~]/2", X: "[b3,d4,f#4,g4]@15 ~", Y: "[b3,d4,f#4]@15 ~",
  Z: "[a3,d4,e4]@7 ~ [a3,c#4,e4]@7 ~", AA: "[b3,d4,f#4,a4]@15 ~", AB: "[a3,c#4,e4]@8 [a3,b3,e4,f#4]@7 ~",
  AC: "[e3,b3,e4,g#4]@14 [e4,g#4,b4] ~", AD: "~@12 f#5@3 ~, [e3,b3,d#4,f#4]@7 ~, ~@10 b4@5 ~", AE: "[f#4,b4,d#5]@15 ~",
  AF: "[c#5,b5]@6 [c#5,e5,g#5]@6 [g#4,c#5,e5]@3 ~, e4@15 ~, g#4@3 ~", AG: "~@6 e5@6 b4@3 ~, [e4,f#4,a4,c#5]@15 ~",
  AH: "e4@10 ~@2 a4@2 b4 ~, c#5, a4@3 ~, ~@10 e4@5 ~", AI: "~@12 b4@2 f#4 ~, [d4,f#4,a4]@15 ~",
  AJ: "[c#4,e4,a4,b4]@8 [d#4,f#4,b4]@7 ~", AK: "[b3,e4,g#4]@11 ~ [b3,d#4,f#4]@3 ~",
  AL: "[g#3,c#4,e4]@11 ~ [b3,d#4,f#4]@3 ~", AM: "[g#3,b3,e4]", AN: "[b3,d#4,f#4]@7 ~ [c4,d#4,f#4]@7 ~",
  AO: "[b3,e4,g#4]@15 ~", AP: "[a3,c#4,e4]", AQ: "[b3,d#4,f#4]@15 ~",
  AR: "[[b3,e4,g#4]@5 ~@9 [a3,c#4,e4]@16 ~@2, ~@6 [b3,d#4,f#4]@7 ~@19, ~@5 b4@8 ~@3]/2", // E A B
  AS: "[c#4,e4,g#4]@6 [b3,d#4,f#4]@7 ~@3", AT: "[[a3,c#4,e4]@18 ~ [e2,g#3,b3,e4]@56 ~@5]/5",
})).s("gm_epiano2").gain(0.24).pan(0.6)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@2 A@2 B C ~@7 D E@2 F G@2 H I J K L H M N O P Q K L H M N O P Q M R S B T@3 ~@4 D E@2 F G@2 H I J H U D@2 V@2 W K L
  H M N O P Q K L H M N O P X Y Z AA AB AC AD M AE AF@2 AG AH@2 AI AJ AK AL AM AI AN AO AP AQ AR AL AM AI AN AS AP AQ AR
  AT@2 AU AV@6
>`.pickRestart({
  A: "[~@7 [g3,c4,e4]@9]/2", B: "[g3,b3,d4]", C: "[g3,a#3,d4]", D: "[g3,b3,d4] [a3,c#4,e4]",
  E: "[a3@8 ~@4 d4@4 e4@7 ~ a4@8, d3@3 ~, f#3@15 ~ [f#3,a3,c#4]@15 ~, d4@3 ~@5, ~ a3 ~@2]/2", F: "[e3,a3,c#4,e4]",
  G: "[[f#3,b3,d4,f#4]@9 e3 f#3 g3@5]/2", H: "[b3,d4,g4]", I: "[g3,c4,e4,g4]", J: "[b3,d4,g4] [c#4,e4,a4]",
  K: "[d4,f#4,a4,d5]@3 [c#4,e4,a4,c#5]", L: "[b3,d4,f#4,b4]@3 [a3,c#4,e4,a4]", M: "[a3,d4,f#4]",
  N: "[a3,c#4,e4] [a#3,c#4,e4,g4]", O: "f#4@3 ~ c#5@2 b4@2, [a3,d4]@15 ~, ~@6 f#4@9 ~", P: "g3 b3, [d4,g4,b4]@15 ~",
  Q: "[a3,c#4,e4] [c#4,e4,a4]", R: "[a3,c#4,e4]", S: "[g3,c4,e4]", T: "[[a3,a4]@11 ~@5]/3", U: "[b3,d4,f#4]",
  V: "[e4 f#4 b4 e5 [f#4,d5]@4, [b3,d4]@31 ~, g4 ~]/2", W: "[g3,b3,d4] [a3,c#4,e4], a5@15 ~",
  X: "[a3,c#4,e4] [b2,a3,b3,e4,f#4]", Y: "b3@3 g#3", Z: "[g#3,b3,f#4]", AA: "[e4,g#4,b4,c#5]", AB: "[c#4,e4,g#4]",
  AC: "f#3@2 c#4 f#4", AD: "e4", AE: "[a3,c#4,e4] [b3,d#4,f#4]",
  AF: "[b3@8 ~@4 e4@4 f#4@7 ~ b4@8, e3@3 ~, g#3@15 ~ [g#3,b3,d#4]@15 ~, e4@3 ~@5, ~ b3 ~@2]/2", AG: "[f#3,b3,d#4,f#4]",
  AH: "[[g#3,c#4,e4,g#4]@9 f#3 g#3 a3@5]/2", AI: "[c#4,e4,a4]", AJ: "[a3,d4,f#4,a4]", AK: "[c#4,e4,a4] [d#4,f#4,b4]",
  AL: "[e4,g#4,b4,e5]@3 [d#4,f#4,b4,d#5]", AM: "[c#4,e4,g#4,c#5]@3 [b3,d#4,f#4,b4]", AN: "[b3,e4,g#4]",
  AO: "[d#4,f#4] [c4,d#4,f#4,a4]", AP: "g#4@3 ~ d#5@2 c#5@2, [b3,e4]@15 ~, ~@6 g#4@9 ~", AQ: "a3 c#4, [e4,a4,c#5]@15 ~",
  AR: "[b3,d#4,f#4] [d#4,f#4,b4]", AS: "[b3,d#4,f#4] [c4,d#4,f#4,a4]",
  AT: "[[b3,e4,g#4]@3 [b3,d#4,f#4]@4 [a3,c#4,e4]@9]/2", AU: "[c#4,e4,g#4]@3 [b3,d#4,f#4]@5",
  AV: "[[a3,c#4,e4]@19 [e2,e3,g#3,b3,e4]@68 ~@9]/6", // A E
})).s("gm_string_ensemble_1").gain(0.16)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A B C D@2 E ~@3 F G H I J K L M N G H I O P Q R@2 S T U V P Q R@2 S T U W X C Y@2 K Z AA AB G H I J K L M N G H I AC
  AD AE AF AG AH Q AI P Q R@2 S T U V P Q R@2 S T U AJ AK AL AM AN L AO AP AQ AK AR AS AT L AO AU AV AW AX AY@2 AZ BA BB
  BC AW AX AY@2 AZ BA BB BD BE@2 BF@6 ~
>`.pickRestart({
  A: "~@7 a3", B: "f#4@3 ~ a4@2 d4@6 ~@2 f#4@2", C: "e4@4 a4@2 c#4@6 ~@2 e4 f#4",
  D: "[g4@2 f#4@2 e4@2 d4@5 ~ e4@2 d4@7 ~ d4 ~ b4@2 a4@2 g4@2 a#4@2]/2", E: "~ g4 e4 d4 a#3@3 ~",
  F: "~@8 f#4@2 e4@2 [d4,f#4]@2 a3 ~, ~@2 a4 ~, ~@8 e4 ~@7", // D
  G: "~@2 [g3,b3,e4]@3 ~ [g3,b3,e4] ~@3 [g3,b3,e4] ~ [g3,b3,e4]@2 [g3,b3,e4] ~", // Em
  H: "~@2 [g3,b3,d4]@3 ~ [g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~", // G
  I: "~@2 [g3,c4,e4]@3 ~ [g3,c4,e4] ~@3 [g3,e4]@2 c4 ~ [g3,c4,e4] ~, ~@10 c4 ~@5", // C
  J: "~@2 a3 b3 [b3,c#4] e4 a4!2 a4@7 ~, ~@8 b4 ~@7", // Bsus2
  K: "~@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~@3 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~", // D
  L: "~@2 [a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~@3 [a3,c#4,f#4] ~ [a3,c#4,f#4] ~ [a3,c#4,f#4] ~", // F#m
  M: "~@2 [a3,c#4,e4,f#4]@3 ~ [a3,c#4,e4,f#4] ~@3 [a3,c#4,f#4]@3 ~ [a3,c#4,f#4] ~", // F#m7 F#m
  N: "~@2 [b3,d4,f#4]@2 ~@2 [b3,d4,f#4] ~@3 [a3,b3,d4,f#4]@3 ~ [a3,b3,d4,f#4] ~", O: "~@2 [d5,e5]@2 d5@2 b4@2 a4@5 ~@3",
  P: "~@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~@3 [a3,d4,f#4] ~@3 [a3,c#4,e4] ~", // D A
  Q: "~@2 [b3,d4,f#4]@3 ~ [b3,d4,f#4] ~@3 [b3,d4,f#4]@3 ~ [b3,d4,f#4] ~", // Bm
  R: "[~@2 [g3,b3,d4]@3 ~ [g3,b3,d4] ~@3 [g3,b3,d4]@3 ~ [b3,d4] ~ d4 ~ [d4,f#4]@2 [a3,e4]@2 [a3,d4]@2 [d4,a4]@5 ~@3, ~@15 [f#3,a3]@2 ~@15]/2", // G Bm D A5 D5 F#m
  S: "~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3 [a#3,c#4,e4]@3 ~ [c#4,e4] ~", // A A#dim C#m
  T: "~@2 [b3,d4,f#4]@3 ~ [a3,b3,d4,f#4] ~@3 [a3,b3,d4,f#4]@3 ~ [a3,b3,d4,f#4] ~", // Bm Bm7
  U: "~@2 [b3,d4,g4]@3 ~ [b3,d4,g4] ~@3 [b3,d4,g4]@3 ~ [b3,d4,g4] ~", V: "~@2 e5 d5 c#5 a4 e4 d4 c#4@6 ~@2",
  W: "~@2 e5 d5 c#5 a4 e4 d4 c#4@3 a3 b3 c#4 d4 e4", X: "~@2 a4 d4@3 ~ f#4, f#4@13 ~@3",
  Y: "[g4@2 f#4@2 e4@2 d4@5 ~ e4@2 d4@5 ~ e5@2 d5@8 ~@2]/2",
  Z: "~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // A
  AA: "~@2 [a3,d4,f#4]@3 ~ [a3,b3,d4,f#4] ~@3 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~, ~@2 b3 ~@13", // D Bm7 D
  AB: "~@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~ e4 ~ e4@2 [d4,f#4]@2 a3 ~, ~@2 [f#4,a4] ~", // D F#m
  AC: "~@5 [g3,e4] ~ f#4, ~@13 a3@2 ~", // C
  AD: "b3@2 [g3,b3,d4,e4]@2 ~@2 [g3,b3,d4,e4] ~@3 [g3,b3,d4,e4]@3 ~ [g3,b3,d4,e4] ~, g4 ~", // Em7
  AE: "~@2 [f#3,b3,d4]@3 ~ [f#3,b3,d4] ~@3 [f#3,b3,d4]@3 ~ [f#3,b3,d4] ~", // Bm
  AF: "~@2 [a3,d4,e4]@3 ~ [a3,d4,e4] ~@3 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", AG: "e5@3 ~ d5@2 ~@2 c#5@2 a4 ~ f#4 e4 d4 a3",
  AH: "b3@2 [g3,b3,e4]@3 ~ [g3,b3,e4] ~@3 [g3,b3,e4]@3 ~ [g3,b3,e4] ~", AI: "a4 ~ a3 e4 a4@8 ~@4, ~ d4@3 ~@12",
  AJ: "a4 ~ a4 b4 a4@2 a3@2 b3@6 ~@2", AK: "~@2 [b3,e4,g#4]@3 ~ [b3,e4,g#4] ~@3 [b3,e4,g#4]@3 ~ [b3,e4,g#4] ~",
  AL: "~@2 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4] ~@3 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4] ~", // B
  AM: "~@2 [b3,e4,g#4]@3 ~ [b3,c#4,e4,g#4] ~@3 [b3,e4,g#4]@3 ~ [b3,e4,g#4] ~, ~@2 c#4 ~@13", // E C#m7 E
  AN: "~@2 [b3,e4,g#4]@3 ~ [b3,e4,g#4] ~ [f#4,g#4]@2 f#4 ~ [e4,g#4]@2 b3 ~, ~@2 b4 ~", // E F#sus2 E
  AO: "~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~ [a3,c#4,e4] ~", // A
  AP: "~@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~@3 [d4,f#4] ~ d4 ~ [a3,d4,f#4] ~, ~@5 a3 ~@2", // D
  AQ: "~@2 b3 c#4 [c#4,d#4] f#4 b4 [b4,c#5] b4@7 ~", // C#sus2 Bsus2
  AR: "~@2 [b3,d#4,g#4]@3 ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [b3,d#4,g#4] ~", // G#m
  AS: "~@2 [b3,d#4,f#4,g#4]@3 ~ [b3,d#4,f#4,g#4] ~@3 [b3,d#4,g#4]@3 ~ [b3,d#4,g#4] ~", // G#m7 G#m
  AT: "~@2 [c#4,e4,g#4]@2 ~@2 [c#4,e4,g#4] ~@3 [b3,c#4,e4,g#4]@3 ~ [b3,c#4,e4,g#4] ~", // C#m C#m7
  AU: "~@2 [a3,d4,f#4]@3 ~ [a3,d4,f#4] ~@3 [a3,f#4]@2 d4 ~ [a3,d4,f#4] ~, ~@10 d4 ~@5", // D
  AV: "~@2 [e5,f#5]@2 e5@2 c#5@2 b4@5 ~@3", AW: "~@2 [b3,e4,g#4]@3 ~ [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,d#4,f#4] ~",
  AX: "~@2 [c#4,e4,g#4]@3 ~ [c#4,e4,g#4] ~@3 [c#4,e4,g#4]@3 ~ [c#4,e4,g#4] ~", // C#m
  AY: "[~@2 [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~@3 [a3,c#4,e4]@3 ~ [c#4,e4] ~ e4 ~ [e4,g#4]@2 [b3,f#4]@2 [b3,e4]@2 [e4,b4]@5 ~@3, ~@15 [g#3,b3]@2 ~@15]/2", // A C#m E B5 E5 G#m
  AZ: "~@2 [b3,d#4,f#4]@3 ~ [b3,d#4,f#4] ~@3 [c4,d#4,f#4]@3 ~ [d#4,f#4] ~", // B Cdim D#m
  BA: "~@2 [c#4,e4,g#4]@3 ~ [b3,c#4,e4,g#4] ~@3 [b3,c#4,e4,g#4]@3 ~ [b3,c#4,e4,g#4] ~", // C#m C#m7
  BB: "~@2 [c#4,e4,a4]@3 ~ [c#4,e4,a4] ~@3 [c#4,e4,a4]@3 ~ [c#4,e4,a4] ~", BC: "~@2 f#5 e5 d#5 b4 f#4 e4 d#4@6 ~@2",
  BD: "~@7 [a3,b3]", BE: "[[e4,g#4]@4 b4@2 f#4@4 b4@4 [c#4,e4]@8 ~@7 g#4 c#5 d#5, ~@6 d#4@7 ~@19]/2",
  BF: "[[g#4,e5]@2 [f#4,d#5]@2 [e4,c#5]@2 b4@4 [b3,g#4]@2 [a3,f#4]@2 [g#3,e4]@9 b3@2 ~@7 b4 ~ a4 ~@4 b3@2 a3@2 g#3@20 ~@33, ~@6 d#4@2 ~@17 a3@7 ~@5 e4@49 ~@10, ~@28 e4@7 g#4@52 ~@9]/6", // C#m D#m C#m E D C#m
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@10 [x ~@2 x!2 ~@3]!106 x ~@5>").gain(0.35)

// drums · rim
const rim = s("rim").struct("<[x!4] ~@9 [~ x ~ x]!106 ~@6>").gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<~@64 [~@11 x!2 ~@3] ~@57>").gain(0.35)

// drums · crash
const crash = s("cr").struct("<~@65 x ~@31 x ~@7 x ~@16>").gain(0.2)

// drums · ride
const ride = s("rd").struct("<~@5 A@2 B A C ~@28 D E@3 ~@23 F@9 G H F I F@2 I ~@16 F@19 A ~@5>".pickRestart({
  A: "x", B: "x ~@14 x", C: "x ~@9 x!3 ~@3", D: "x ~ x!3 ~ x ~", E: "x!4", F: "x!8", G: "x ~ x!6", H: "x!3 ~ x!3 ~",
  I: "x!7 ~",
})).gain(0.25)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@38 A B@2 C ~@32 D E ~ F ~@2 F ~@41>".pickRestart({
  A: "~ x ~@3 x ~ x", B: "~ x ~ x ~ x ~ x", C: "~ x ~ x ~ x ~@2", D: "~ x ~@6", E: "~@3 x ~@3 x", F: "~@7 x",
})).gain(0.15)

// drums · bongos
const bongos = s("bongo:4").struct("<~@9 [~@6 x!3 ~@7] ~@112>").gain(1.04)

// drums · congas
const congas = s("conga:13").struct("<~@10 [~@3 x ~@4]!106 ~@6>").gain(1.27)

// drums · congas
const congas_2 = s("conga:33").struct("<~@10 [~@6 x!2]!106 ~@6>").gain(1.27)

// drums · shaker
const shaker = s("sh").struct("<~@10 [x ~ x!3 ~ x ~ x ~ x ~ x ~ x ~]!106 ~@6>").gain(0.3)

stack(
  electric_guitar_jazz, bass, tubular_bells, epiano2, string_ensemble_1, acoustic_guitar_nylon, kick, rim, high_tom,
  crash, ride, ride_soft, bongos, congas, congas_2, shaker
)

More by Gloria Estefan