Strudelify

Don't Wanna Lose You

Gloria Estefan

KeyG minorTempo98 bpm
0:00/0:00
// Don't Wanna Lose You — Estefan Gloria
// 98 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 2 "BASS" named as a bass, played on electric bass finger (its electric guitar jazz patch is not one)
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
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.

// bass · electric bass finger · "BASS"
const bass = note(`<
  ~@2 A B C D E F G H I F J H K L J M N O P Q J R A S A S A T U F J V K F J V W L G X Y Z@2 H J R A B A AA A T AB A B A
  B A T AB AC AD AE AF S AG AH D AI AJ AK AL AK AL AK AM AN AO AL AO AP AK AQ AR AO AL AK AL AS AM AT AU ~
>`.pickRestart({
  A: "g2@5 ~ g2 ~ g2@4 c2@2 d2@2", B: "f2@5 ~ f2 ~ f2@4 c2@2 d2@2", C: "g2@4 ~@2 g2 ~ g2@5 ~ g2@2",
  D: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1@2", E: "f1@5 ~@11", F: "eb2@5 ~ eb2 ~ eb2@5 ~ eb2@2", G: "c2@4 ~@2 c2 ~ c2@5 ~ c2@2",
  H: "g1@4 ~@2 g1 ~ g1@5 ~ g1 ~", I: "ab1@5 ~ ab1 ~ bb1@5 ~ bb1@2", J: "c2@5 ~ c2 ~ c2@5 ~ c2@2",
  K: "ab1@5 ~ ab1@2 bb1@5 ~ bb1@2", L: "db2@5 ~ db2 ~ db2@5 ~ db2@2", M: "ab1@5 ~ ab1 ~ ab1@5 ~ eb2@2",
  N: "ab2@5 ~ ab2@2 eb2@2 ab1@3 ~ ab1@2", O: "eb2@5 ~ eb2 ~ eb2@4 d2@2 c2 ~", P: "c2@5 ~ c2 ~ c2@5 ~ g1 ~",
  Q: "g1@4 ~@2 g1 ~ g1@4 ~@2 g1@2", R: "f2@5 ~@11", S: "f2@5 ~ f2 ~ f2@5 ~ f2@2", T: "f2@5 ~ f2@2 bb1@5 ~ bb1@2",
  U: "f2@4 ~@2 f2 ~ f2@8", V: "g1@4 ~@2 g1 ~ g1@5 ~ g1@2", W: "ab1@4 ~@2 ab1@2 bb1@5 ~ bb1@2",
  X: "ab1@4 ~@2 ab1 ~ ab1@6 eb2@2", Y: "ab2@5 ~ eb2@2 ab1@5 ~ ab1@2",
  Z: "[eb2@5 ~ eb2 ~ eb2@4 d2@2 c2@6 ~@2 c2 ~ c2@5 ~ c2@2]/2", AA: "f2@4 ~@2 f2 ~ f2@4 c2@2 d2@2",
  AB: "f2@5 ~ f2@2 c2@2 d2@2 f2@2 d2@2", AC: "g2@5 ~ g2 ~ g2@5 ~ g2 ~", AD: "g2@5 ~ g2 ~ g2@6 f2@2",
  AE: "bb1@5 ~ bb1 ~ bb1@5 ~ bb1 ~", AF: "bb1@5 ~ bb1 ~ bb1 ~ bb1@3 ~ bb1@2", AG: "d2@3 ~@5",
  AH: "g2@5 ~ g2 ~ g2@5 ~ g2@2", AI: "f2@5 ~ f2 ~ f2 ~ f2@3 ~ f2@2", AJ: "f1@3 ~@13",
  AK: "ab2@5 ~ ab2 ~ ab2@4 db2@2 eb2@2", AL: "gb2@5 ~ gb2 ~ gb2@4 db2@2 eb2@2", AM: "gb2@5 ~ gb2@2 b1 ~ b1@3 ~ b1@2",
  AN: "gb2@5 ~ gb2@2 db2@2 eb2@2 gb2@2 eb2@2", AO: "ab2@4 ~@2 ab2 ~ ab2@4 db2@2 eb2@2",
  AP: "gb2@4 ~@2 gb2 ~ gb2@4 db2 ~ eb2@2", AQ: "gb2@4 ~@2 gb2@2 b1 ~ b1@3 ~ b1@2", AR: "gb1@2 ~ gb1 db2 eb2 gb2 eb2",
  AS: "ab2@5 ~ ab2 ~ ab2@4 db2@2 eb2 ~", AT: "gb2@5 ~@3 db2@2 eb2@2 gb2@2 eb2@2", AU: "~ gb1@2 ~",
})).s("gm_electric_bass_finger").gain(0.6)

// other · tenor sax
const tenor_sax = note("<~@67 A@3 B ~@24>".pickRestart({
  A: "[f4 ~@5 f4!2 a4@2 c5@2 a4@2 c5@6 f4@10 f5@8 c5@4 a4@2 f4@2 d4 c4]/3", B: "f4@6 d4@2 f4 ~ a4@6",
})).s("gm_tenor_sax").gain(0.35).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~ A B@4 C D E F G H I J K L M N O P@2 Q@2 R S T U V W X Y Z AA AB AC AD AE AF AG AH M AI AJ AK AL AM AN AO U AP AQ AR
  AS AT AU AV AW U AX AY AZ BA BB@6 BC BD@2 BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BH BR BX BY ~
>`.pickRestart({
  A: "~@4 c4 d4 f4 d4", B: "~@4 f4@2 d4@3 ~@3 f4@2 d4@2", C: "[c4,f4]@7 ~@9",
  D: "~ bb3, ~@2 eb3@13 ~, ~ g3@3, ~@3 eb4@5", E: "~@3 c4@4 g3, c3@7 ~, ~@2 g3@11 ~@3, ~@2 eb4@5 ~",
  F: "~@8 g3@5 ~@3, d4, ~ g3@2 d3@4 ~, ~ g2@2 ~", G: "~@2 eb4 c4 d3 ~ bb3@2, eb3@8 ~@2 [f3,g3]@5 ~, ~ ab3@2 ~ d4@4",
  H: "~@2 bb3@3 g3 ~ g3, eb3@15 ~, ~@2 g3@7 ~@7, ~ eb4@3", I: "~@3 c4@4 g3, c3@13 ~@3, ~ g3@5 ~@2, ~@2 eb4@5 ~",
  J: "~@4 bb3@2 g3@2 ~@2 g3@3 ~ g3 ~, ~@2 bb2@11 ~@3, ~ d4@3, ~@8 d3@5 ~@3",
  K: "~@4 c4@4 ~@4 bb3@3 ~, eb3 d3, ~@2 ab3@6 ~@2 f3@5 ~", L: "~@2 [db4,f4,ab4,bb4] ~@3 [db4,f4,ab4,bb4] ~",
  M: "~@2 [c4,e4,g4,bb4] ~@3 [c4,e4,g4,bb4] ~", N: "~@4 [c4,eb4,ab4] ~@7 [c4,eb4,ab4] ~@3",
  O: "~@4 [b3,eb4,ab4] ~@7 [b3,eb4,ab4]@2 ~@2", // Abm
  P: "[~@2 bb3@2 ~@2 bb3@2 eb4@2 bb3 ~ [d3,d4,f4] ~@17 g3@2, eb3@5 ~@2 c3@8 ~, ~@4 g4@7 ~@3 eb4@6 c4@6 eb4@6, ~@9 g3@5 c4@2, ~@24 g4@5 ~@3]/2", // Dm
  Q: "[~@12 bb3@2 g3@4 ~@8 g3@2 ~@2 g3 ~, ~@2 g3@4 ~@3 c3@6 ~, ~@3 bb3@2 d4@2 ~@4 e4@4 ~, ~@8 g4@7 ~@5 g4@11 ~, ~@12 c4@3 ~]/2",
  R: "[f3,c4] ~@3", S: "~@4 [bb3,d4,g4]@3 ~@5 [bb3,d4,g4]@2 ~@2", T: "[a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@6 [a3,c4,f4]@3 ~",
  U: "~@4 [bb3,d4,g4]@3 ~@5 [bb3,d4,g4]@3 ~", V: "~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4] ~",
  W: "~@4 [bb3,d4,g4] ~@2 [bb3,d4,g4] ~@2 [bb3,d4,g4] ~ [bb3,d4,g4]!2 ~@2", // Gm
  X: "~@4 [a3,c4,f4]@4 ~@2 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~", Y: "[a3,c4,f4]@3 ~ [a3,c4,f4]@9 ~@3",
  Z: "~@3 bb3@5, eb3@7 ~, ~ g3@7, ~ eb4@3", AA: "~@6 c4@9 ~, c3, ~ g3@6 ~, ~ eb4@3",
  AB: "~@3 [d4,g4] [c4,f4] d4@2 [g3,c4], ~@2 d3@11 ~@3, ~@5 bb3 ~@2", AC: "f3@5 ~@9 d4@2, bb3@5 f3@3, ~@2 d4 bb3",
  AD: "~@6 g3 eb3, eb3@13 ~@3, ~@2 g3@9 ~@5, ~@4 eb4@9 ~@3, ~@3 bb3@4 ~",
  AE: "~@5 c4@3, c3 g3, ~@2 g3@4 eb3@9 ~, ~ eb4@3",
  AF: "~@2 [d4,g4] c4 ~@2 d4@2, ~@2 d3@13 ~, ~@3 f4@3 ~@2, ~@8 g3@7 ~, ~@10 bb3@5 ~", // G5
  AG: "~@4 ab3@2 c4@4 ~@2 bb3@3 ~, ~ eb3@2 ~@2 f3@3", AH: "~@4 [db4,f4,ab4,bb4]@3 ~@5 [db4,f4,ab4,bb4]@2 ~@2",
  AI: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~", AJ: "~@2 [b3,eb4,ab4] ~@3 [b3,eb4,ab4] ~",
  AK: "~@2 [bb3,eb4,g4] ~@3 [bb3,d4,f4] ~", AL: "~@3 eb3, ~ g3@3 c4@4, ~@2 eb3@3 g3@3, ~@3 eb4@5",
  AM: "~@12 g3@3 ~, ~ d3@5 ~@2, ~@2 g3@3 bb3@3, ~@3 g4@5, ~ d4",
  AN: "~@6 c4 g3, ~@2 c3@11 ~@3, ~ g3@2 ~, ~@6 c4@4 e4@5 ~, ~@4 g4@3 ~", AO: "[f3,a3,c4,f4]@3 ~@13",
  AP: "[a3,c4,f4]@3 ~ [a3,c4,f4] ~@7 [a3,c4,f4]@3 ~", AQ: "~@4 [bb3,d4,g4]@3 ~@5 [bb3,d4,g4]@4",
  AR: "~@4 [a3,c4,f4]@5 ~@3 [a3,c4,f4]@4, ~@4 b3 ~@11", // F
  AS: "~@4 [bb3,d4,g4]@2 ~ [bb3,d4,g4] ~@2 d4 ~ [bb3,d4,g4] [bb3,d4,g4]@2 ~", // Gm
  AT: "~@4 [a3,c4,f4]@4 ~@4 [bb3,d4,f4]@3 ~", // F Bb
  AU: "a3 ~ [a3,c4,f4] ~ c4@3 ~ c4@2 d4@2 [a3,c4,f4]@2 d4@2, ~@4 [a3,f4]@7 ~@5", // F Dm
  AV: "~@4 [bb3,d4,g4]@2 ~ [bb3,d4,g4] ~@2 bb3 ~ [bb3,d4,g4]@4", // Gm
  AW: "bb3 ~@3 [a3,c4,f4]@3 ~@3 [a3,c4,f4] ~ [a3,c4,f4]@4", AX: "~@4 [a3,f4]@5 ~@3 [a3,c4,f4]@4, ~@4 c4@3 ~@9",
  AY: "~@4 [bb3,d4,g4]@2 ~ [bb3,d4,g4] ~@2 [bb3,d4,g4] ~ [bb3,d4,g4] [bb3,d4,g4]@3", // Gm
  AZ: "~@4 [a3,c4]@4 d4@6 bb3 ~, ~@2 f4@5 ~, ~@8 bb3@5 ~@3", BA: "[a3,c4,f4]@13 ~@3",
  BB: "[~@4 bb3@14 ~@10 bb3@5 ~@3 db4@2 f4 ~ bb4@17 ~@7 f4@13 ~ gb3 ~ [d4,gb4]@5 ~@11, ~@22 bb3@4 d4@8 bb3@25 ~@3 f3@14 ~@20, ~@24 g4@10 ~@4 db4@20 ~@5 [a3,c4]@13 ~@3 [a3,c4]@6 ~@11]/6", // D Am
  BC: "[bb3,d4,g4]@3 ~", BD: "[[bb3,db4,f4,g4]@12 ~@4 [c4,f4]@15 ~, ~@15 a3@15 ~@2]/2", BE: "[a3,c4,f4] ~@7",
  BF: "~@4 [b3,eb4,ab4] ~@2 [b3,eb4,ab4] ~@2 [b3,eb4,ab4] ~ [b3,eb4,ab4] ~ eb4 ~, ~@13 [b3,eb4,ab4]@2 ~", // Abm
  BG: "~@4 [bb3,db4,gb4]@4 ~@2 [bb3,db4,gb4] ~ [bb3,db4,gb4]@4", // Gb
  BH: "~@4 [b3,eb4,ab4]@2 ~ [b3,eb4,ab4] ~@4 [b3,eb4,ab4]@4", BI: "~ [bb3,db4,gb4] ~ [db4,gb4], ~@6 bb3 ~",
  BJ: "~@4 [b3,eb4,ab4]@2 ~ [b3,eb4,ab4] ~@2 b3 ~ [b3,eb4,ab4]@4", // Abm
  BK: "~@4 [bb3,db4,gb4]@3 ~@3 [b3,eb4,gb4] ~ [b3,eb4,gb4]@3 ~", // Gb B
  BL: "[bb3,db4,gb4]@3 ~ [bb3,db4,gb4] ~@3 db4@2 eb4 ~ [bb3,db4,gb4]@2 eb4@2", // Gb
  BM: "~@4 [b3,eb4,ab4]@2 ~ [b3,eb4,ab4] ~@2 [b3,eb4,ab4] ~ [b3,eb4,ab4] [b3,eb4,ab4]@3", // Abm
  BN: "~@2 bb3 ~ [bb3,db4,gb4]@4 db4 ~ db4 ~ [bb3,db4,gb4]@4", BO: "~@4 [b3,eb4,ab4]@4 b3 ~ eb4 ~ [b3,eb4,ab4]@4",
  BP: "~@2 bb3 ~ [bb3,gb4]@4 db4@2 eb4@2 [db4,gb4]@2 eb4@2, ~@4 db4@3 ~@5 bb3@4", // Ebm Gb5
  BQ: "~@4 [b3,eb4,ab4]@2 ~ [b3,eb4,ab4] ~@2 [eb4,ab4] ~ [b3,eb4,ab4] [b3,eb4,ab4]@3", // Abm Ab5 Abm
  BR: "~ [bb3,db4,gb4] ~ [b3,eb4,gb4]", // Gb B
  BS: "~@2 gb4 ~ [bb3,gb4]@4 db4@2 eb4 ~ [bb3,db4,gb4]@2 [bb3,db4,eb4] ~, ~@4 db4@3 ~@9", // Ebm Gb Eb7
  BT: "~@4 [b3,eb4,ab4]@2 ~ [b3,eb4,ab4] ~@2 b3 ~ [eb4,ab4] [eb4,ab4]@3, ~@3 b3", // Abm Ab5
  BU: "~@2 bb3 ~ [bb3,db4,gb4]@4 ~@2 bb3 ~ [bb3,db4,gb4]@4", BV: "~ [b3,eb4,ab4] ~ [b3,eb4,ab4]",
  BW: "~@4 [bb3,db4,gb4]@2 ~ [bb3,db4,gb4] ~@2 [bb3,db4,gb4] ~ [bb3,db4,gb4] [bb3,db4,gb4]@3", // Gb
  BX: "~@4 db4 eb4 [db4,gb4] eb4", BY: "~@4 [bb3,db4,gb4]@7 ~@5",
})).s("gm_electric_guitar_clean").gain(0.35).pan(0.7)

// chords · epiano2 · "E.PIANO"
const epiano2 = note(`<
  ~@2 A B C@2 D E F G H E I J K@4 L M@4 N O P O Q O R S T@3 U V W X Y@5 Z@3 AA@2 AB AC AD AE AF AG@2 AB AH AF AE O AI AJ
  AK@4 AL AM AN AO@2 AP AQ AR AS AT AS AU AV AS AR AS AW AS AX AY AS AZ AS AW AS AX BA BB ~
>`.pickRestart({
  A: "[bb3,d4,g4]@9 ~@3 [bb3,d4,g4]@4", B: "[c4,f4]@3 ~, a3@15 ~",
  C: "[[bb3,d4,g4]@3 ~ [db4,g4]@3 a4, ~@15 bb3@13 ~@4, ~@16 f4@11 ~@5]/2", D: "[a3,c4,f4] ~@3", E: "[bb3,eb4,g4]@7 ~",
  F: "[c4,eb4,g4]@7 ~", G: "d4@10 ~@2 d4@2 bb3 ~, bb3@13 ~@3, g4@8 ~@2 g4@5 ~", H: "[ab3,c4,eb4]@8 [bb3,d4,f4]@7 ~",
  I: "[c4,eb4]@5 ~ c4 eb4, g4@15 ~, ~@5 g3@3", J: "[d4,g4]@10 ~@2 d4@2 bb3 ~, bb3@3 ~, ~@10 g4@5 ~",
  K: "[[ab3,c4,eb4]@8 [bb3,d4,f4]@6 ~@2 [ab4,bb4]@12 ~@4 [g4,bb4]@13 ~@3 [eb4,ab4]@15 ~, ~@15 [db4,f4]@13 ~@3 [c4,e4]@14 ~@2 c4@16 ~]/4", // Ab Bb Absus2 Gm Ab5 Db C
  L: "eb4@8 ~@2 eb4@4 b3 ~, ab4@7 ~, b3@7 ~ b3@5 ~@3",
  M: "[[eb4,g4]@10 bb3 ~ [bb3,d4,f4] ~ [g3,c4]@6 ~@8 c4@2 ~@4 bb3@2 ~@8 bb3@2 ~@14 c4@2 ~@2, bb3@9 ~@5 eb4@8 c4@4 eb4@6 ~@4 d4@5 ~ d4@6 [c4,e4]@12 ~@4, ~@20 g3@8 ~@2 g3@8 bb3@5 ~@3 g3@11 ~ g3@4 ~@2, ~@24 g4@15 ~ g4@7 ~@17]/4", // Eb Bb C5 C
  N: "[f3,a3,c4,f4]@5 ~@11", O: "[bb3,d4,g4]@11 ~ [bb3,d4,g4]@3 ~", P: "[a3,c4,f4]@11 ~ [a3,f4]@4, ~@6 c4 ~",
  Q: "[c4,f4]@5 ~ c4 f4, a3@9 ~ a3@6", R: "[a3,c4,f4]@7 ~ [bb3,d4,f4]@7 ~, ~@4 f3 ~@3", S: "[a3,c4,f4]@13 ~@3",
  T: "[[bb3,eb4]@16 ~@2 c4@2 ~@4 g4@7 ~@9 g3@5 ~@3, g4@22 c4@10 ~@4 d4@11 ~, ~@16 g3@19 ~@3 bb3@9 ~, ~@10 eb4@7 g4@7]/3", // Eb5
  U: "[ab3,c4,eb4] [bb3,d4], ~@4 f4@3 ~", V: "~@2 eb4@5 bb3, g4@7 ~, eb4 ~@3, ~@2 bb3@11 ~@3",
  W: "~ bb3 c4@6, [eb4,g4]", X: "~ d4@3, g4, g3@7 ~, ~@2 bb3@13 ~",
  Y: "[[ab3,c4,eb4]@8 [bb3,d4,f4]@6 ~@2 [ab4,bb4]@13 ~@3 [g4,bb4]@13 ~@3 ab4@13 ~@3 [eb4,ab4]@13 ~@3, ~@15 [db4,f4]@14 ~@2 [c4,e4]@14 ~@2 [c4,eb4]@15 ~ b3@16 ~]/5", // Ab Bb Absus2 Gm Ab5 Db C Cm
  Z: "[[bb3,eb4,g4]@11 bb3 [d4,f4]@2 c4@7 ~@9 c4 ~@3 bb3@2 [g3,d4]@10 ~@2, ~@12 bb3 ~ [eb4,g4]@10 g4@6 ~@2 g4@13 ~@3, ~@22 c4@6 g3@7 ~ bb3@8 ~@4]/3", // Eb Dm G5 Eb
  AA: "[~@2 e4@4 ~@2 f4@3 ~@5, [g3,g4]@12 ~@3 [f3,a3,c4]@6 ~@11, ~ c4@5 ~@10]/2", // G F
  AB: "[bb3,d4,g4]@10 bb3 ~ [bb3,d4,g4]@3 ~", AC: "[a3,c4,f4]@11 ~ [a3,c4,f4]@4", AD: "[bb3,d4,g4]@7 ~",
  AE: "[a3,c4,f4]@7 ~", AF: "[bb3,d4,g4]@15 ~",
  AG: "[[a3,c4]@7 ~ [bb3,d4]@6 ~@2 [a3,c4,f4]@10 ~@4 a3 ~, f4@14 ~ f3@13 [c4,f4]@4]/2", // Am Bb F F5
  AH: "[a3,c4,f4]@11 ~ [a3,c4,f4]@3 ~", AI: "[a3,c4]@7 ~ [bb3,d4]@7 ~, f4@7 ~",
  AJ: "[c4,f4]@8 ~@3 g4 ~@2 f4@2, a3@3 ~ f3@2 a4@2, ~@9 a3@5 ~@2, ~@10 c4@5 ~, ~@11 c5@5", // F5
  AK: "[~@24 d5@2 ~@4 d4 ~@29 bb3@3 ~, g3@14 ~@2 g3@12 ~@6 db4@18 bb4@4 f4@7 ~, bb4@6 g4@15 ~ g4@4 bb4@8 ~@4 g4@12 db5@8 db4@6, ~ d4@8 ~ d4@4 g4@3 ~ f4@9 g4@4 ~, ~@4 bb3@12 ~@2 bb3@11 ~@3 bb3@10 bb4@6 f5@13 ~@3]/4",
  AL: "~@12 a4@2 c4 ~, a4@2 c4 ~, ~ c4@2 a3@5, ~ f3@3, ~@5 f4@2 ~", AM: "[c4,d4,gb4,a4] ~@3",
  AN: "[bb3,d4,g4]@4 ~ g4 d4 g4, ~@2 bb3 ~", // Gm
  AO: "[~@3 bb4 ~@3 g4@2 ~@2 f4@2 a4 f4@2, bb3@15 ~@3 a3@10 ~@4, ~@2 db4@9 ~ db4@4 ~@4 c4@8 ~@4, ~@4 f4@7 ~ bb4@6 ~@14, ~@8 db5@11 ~@13]/2",
  AP: "[f3,a3,c4] ~@7", AQ: "[b3,eb4,ab4]@8 ~@4 [eb4,gb4,b4]@3 ~", AR: "[db4,gb4,bb4]@7 ~",
  AS: "[b3,eb4,ab4]@9 ~@3 [eb4,gb4,b4]@3 ~", AT: "db4@11 ~ db4@3 ~, [gb4,bb4]@15 ~",
  AU: "[db4,gb4,bb4]@6 ~@2 [eb4,gb4,b4]@7 ~", AV: "[db4,gb4]@7 ~ db4@2 eb4@2 [db4,gb4]@2 eb4 ~, bb4@5 ~@3, ~@8 gb4 ~@7",
  AW: "[db4,gb4,bb4]@15 ~", AX: "[db4,gb4,bb4]@7 ~ [eb4,gb4,b4]@7 ~",
  AY: "[db4,gb4,bb4]@8 db4@2 eb4@2 [db4,gb4]@2 eb4 ~", AZ: "gb4@8 db4@2 eb4@2 [db4,gb4]@2 eb4 ~, bb4@13 ~@3, db4@7 ~@9",
  BA: "[db4,gb4,bb4]@3 ~@5 db4@2 eb4@2 gb4@2 eb4 ~", BB: "~@4 [bb3,db4,gb4]@9 ~@3",
})).s("gm_epiano2").gain(0.4).pan(0.3)

// chords · synth strings 2 · "SYN STRING"
const synth_strings_2 = note(`<
  ~@2 A B C@2 D E@3 F@4 G H@2 I@2 J@4 K A L A B A M N O@3 P@4 Q R@4 S@5 A L A B A T@2 A B A B A U L V@4 W@2 X@2 Y ~ Z AA
  AB AC AB AD@2 AE AC AE AC AE AF AG AE AC Z AC AE AH AG AI ~
>`.pickRestart({
  A: "[bb3,d4,g4]@15 ~", B: "[a3,c4,f4]@15 ~", C: "[~@16 f4@15 ~, [bb3,d4,g4]@31 ~]/2", D: "[a3,c4,f4] ~@3",
  E: "[bb3@16 c4@15 ~ [bb3,d4]@15 ~, g4, eb4@2 ~]/3", // Bb
  F: "[[ab3,eb4]@8 [d4,f4]@8 ~@16 c4@15 ~ [bb3,d4]@15 ~, c4@3 ~ bb3@12 ~@16, ~@8 g4@23 ~, ~ eb4@2 ~]/4", // Ab5 Dm Bb
  G: "[c4,eb4,ab4] [d4,f4,bb4]", H: "[[db4,f4,ab4]@14 ~@2 [c4,e4,g4]@15 ~, bb4]/2",
  I: "[c4@15 ~ b3@14 ~@2, [eb4,ab4]@31 ~]/2", // Ab5
  J: "[[eb4,g4]@12 [d4,f4]@2 eb4@18 [bb3,d4]@16 [c4,e4]@15 ~, bb3@14 g4@49 ~, ~@7 c4@8 ~@17]/4", K: "[a3,c4,f4]@3 ~@13",
  L: "[c4,f4], a3@7 ~", M: "[a3,c4]@8 [bb3,d4]@7 ~, f4@15 ~", N: "[a3,c4,f4]@9 ~@7",
  O: "[bb3@16 c4@14 ~@2 [bb3,d4]@15 ~, g4@47 ~, eb4@2 ~]/3", // Bb
  P: "[[ab3,c4,eb4]@8 [d4,f4]@7 ~@17 c4@14 ~@2 bb3@15 ~, ~ bb3@3 ~@4, ~@16 g4@47 ~, ~@16 eb4@31 ~ d4@13 ~@3]/4", // Ab Dm
  Q: "[ab3,c4,eb4]@4 [bb3,d4,f4]@3 ~", // Ab Bb
  R: "[[db4,f4,ab4]@15 ~ [e4,g4]@16 ~@16 b3@14 ~@2, bb4 [eb4,ab4], ~@16 c4@31 ~@17]/4", // Db Em Ab5
  S: "[[bb3,eb4,g4]@12 [d4,f4]@2 eb4@18 [bb3,d4]@16 [c4,e4]@15 ~ [a3,c4]@3 ~@13, ~@7 g4@25 ~@8, ~@14 c4@16 ~@33 f4@4 ~@13]/5", // Eb Dm Bb C Am
  T: "[[a3,c4]@8 [bb3,d4]@8 [a3,c4]@15 ~, f4@31 ~]/2", U: "[a3,c4]@7 ~ [bb3,d4]@7 ~, f4@7 ~",
  V: "[[bb3,d4]@31 ~ [bb3,db4,f4]@31 ~, g4@63 ~]/4", W: "[f4@15 [d4,gb4]@2 ~@15, [a3,c4]@17 ~@15]/2",
  X: "[d4@15 ~ [db4,f4]@15 ~, [bb3,g4]@31 ~]/2", Y: "[a3,c4,f4]", Z: "[eb4,ab4], b3@7 ~", AA: "[bb3,db4,gb4]",
  AB: "[b3,eb4,ab4]", AC: "[bb3,db4,gb4]@15 ~", AD: "[db4@8 [b3,eb4]@8 [bb3,db4]@15 ~, gb4@31 ~, bb3@3 ~@13]/2",
  AE: "[b3,eb4,ab4]@15 ~", AF: "[bb3,db4]@7 ~ [b3,eb4]@7 ~, gb4@15 ~", AG: "[bb3,db4,gb4]@3 ~@13",
  AH: "[bb3,db4]@7 ~ [b3,eb4]@7 ~, gb4@7 ~", AI: "~@4 [bb3,db4,gb4]@7 ~@5",
})).s("gm_synth_strings_2").gain(0.35)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B C D E@2 F ~@17 G H G I J K L ~@17 G H M H G N H G H G H O P Q R@2 S@2 T U G V W X Y Z AA AB Y AC AB Y AD Y AD AE
  AF AD Y AB AA AB Y AG AH AI ~
>`.pickRestart({
  A: "db-1", B: "~@4 [c3,c4] [d3,d4] [f3,f4] d3, ~@14 d4 ~", C: "[bb3,d4,g4]@13 ~@3, g3", D: "[c4,f4,a4]@7 ~, f3",
  E: "[[d4,g4]@6 ~@2 [db4,f4,g4]@7 ~, [g3,bb3]@10 ~@5 bb3@14 ~@3]/2", F: "[a3,c4,f4,a4]@3 ~@13",
  G: "[bb3,d4,g4]@13 ~@3", H: "[c4,f4,a4]@13 ~@3", I: "[c4,f4,a4]@7 ~", J: "[d4,g4]@5 ~@3, bb3 ~@15",
  K: "[c4,f4,a4]@3 ~ [d4,bb4]@3 ~, ~@2 [bb3,f4] ~", L: "[c4,f4,a4] ~, f3@13 ~@3", M: "[bb3,d4,g4]@3 ~",
  N: "[c4,f4,a4]@7 ~ [d4,f4,bb4]@6 ~@2", O: "[d4,g4,bb4]@5 ~@3", P: "[c4,f4,a4]@5 ~@3 [d4,f4,bb4]@7 ~",
  Q: "[c4,f4,a4]@3 ~", R: "[~@6 g4@23 ~@3, g3@31 ~, ~@2 bb3@27 ~@3, ~ d4@6 ~]/2",
  S: "[~@16 f3@11 ~@5, ~@4 bb3@8 db4@15 ~@5, ~@6 db4@4 f4@17 ~@5, ~@8 g4@19 ~@5, ~@7 bb3@7 ~@2]/2",
  T: "[f3,a3,c4,f4]@13 ~@3", U: "[d3,a3,c4,d4,gb4] ~@3", V: "[bb3,f4,g4]@7 ~, db4@3 ~, gb4 ~@15",
  W: "[a3,c4,f4]@13 ~@3", X: "[f2,f3]@3 ~@13", Y: "[b3,eb4,ab4]@7 ~", Z: "[db4,gb4,bb4]@13 ~@3",
  AA: "[b3,eb4,ab4]@13 ~@3", AB: "[bb3,db4,gb4]@7 ~", AC: "[bb3,db4,gb4]@6 ~@2 [b3,eb4,gb4]@7 ~",
  AD: "[bb3,db4,gb4]@13 ~@3", AE: "ab4 ~@5 ab4@8 ~@2, [b3,eb4]@15 ~", AF: "[bb3,db4,gb4]@3 ~ [b3,eb4,gb4]@3 ~",
  AG: "[bb3,db4,gb4]@7 ~ [b3,eb4,gb4]@6 ~@2", AH: "[bb3,db4,gb4]@5 ~@3 [db3,db4]@2 [eb3,eb4]@2 [gb3,gb4]@2 [eb3,eb4]@2",
  AI: "~@4 [gb2,gb4]@9 ~@3", // Gb
})).s("gm_piano").gain(0.45)

// other · flute
const flute = note("<~@24 A ~@23 A ~@6 A ~@16 B ~@6 B ~@6 B ~@8>".pickRestart({
  A: "~@10 a5 ~ g5 f5 d5 c5", B: "~@10 bb5 ~ ab5 gb5 eb5 db5",
})).s("gm_flute").gain(0.35).pan(0.1)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@31 A B C D A B C D E B F@2 G B C B H C I C I C J I K I C I C L M ~@10 F N F N F N O F N F N F P Q F N F N F N ~ R ~
>`.pickRestart({
  A: "~@2 eb3!2 ~@2 eb3!2 ~@2 eb3!2 ~@2 eb3!2", B: "~@2 c3!2 ~@2 c3!2 ~@2 c3!2 ~@2 c3!2",
  C: "~@2 g2!2 ~@2 g2!2 ~@2 g2!2 ~@2 g2!2", D: "~@2 ab2!2 ~@2 ab2!2 ~@2 bb2!2 ~@2 bb2!2",
  E: "~@2 db3!2 ~@2 db3!2 ~@2 db3!2 ~@2 db3!2", F: "~@2 ab2!2 ~@2 ab2!2 ~@2 ab2!2 ~@2 ab2!2",
  G: "~@2 eb3!2 ~@2 eb3!2 ~@2 eb3!2 ~@2 eb3 ~", H: "f2 ~@15", I: "~@2 f2!2 ~@2 f2!2 ~@2 f2!2 ~@2 f2!2",
  J: "~@2 f2!2 ~@2 f2!2 ~@2 bb2!2 ~@2 f2!2", K: "~@10 g2!2 ~@2 g2!2", L: "~@2 f2!2 ~@2 f2!2 ~@2 bb2!2 ~@2 bb2!2",
  M: "~@2 f2!2 ~@2 f2!2 ~@2 f2 ~@5", N: "~@2 gb2!2 ~@2 gb2!2 ~@2 gb2!2 ~@2 gb2!2",
  O: "~@2 gb2!2 ~@2 gb2!2 ~@2 gb2 ~ gb2 ~ gb2!2", P: "~@2 gb2!2 ~@2 gb2!2 ~@2 gb2 ab2 ~@2 gb2!2",
  Q: "~@2 gb2!2 ~@2 gb2 ~@3 gb2 ~ gb2 ~ gb2 ~", R: "~@4 gb2@7 ~@5",
})).s("gm_electric_guitar_muted").gain(0.45).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@2 A@4 B A@16 B A@23 B A@19 B A@3 B A@13 B A@6 B C ~>".pickRestart({
// … 35 more lines

More by Gloria Estefan