Strudelify

Farolito (Little Star)

Gloria Estefan

KeyB majorTempo180 bpm
0:00/0:00
// Farolito (Little Star) — Estefan Gloria
// 180 bpm, 6/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 136 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(180/6)

// 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 · "untitled"
const acoustic_guitar_nylon = note(`<
  ~@3 A@2 B C D E@2 F@2 ~@12 G H I J K L M N O P Q R ~@7 A@2 B C D E@2 F@2 S T U V W X Y Z AA AB AC AD ~@2 AE AF AG AH
  AI AJ@5 AK AL AM AN AO AP AO AQ AR AS AT AU@2 B C D E@2 F@2 AV AW AX AW AO AY AZ BA ~@7 BB BC BD BE BF BG BH BI BJ BK
  BL BM BN BO BP BO BQ BR BS BT BU BV BW ~@2
>`.pickRestart({
  A: "[~@8 [b3,d#4] ~ [b3,d#4]@2 [e4,g#4] ~ [e4,g#4] ~ [g#4,b4]@3 ~ [f#4,a#4] ~ [e4,g#4] ~@2 g#4 [e4,g#4]@5 ~ [a#3,f#4] ~ [a#3,f#4] ~ [a#3,f#4]@2 [b3,g#4]@2 f#4 ~ f#4 ~ c#4@2 [b3,d#4]@2, ~@23 [f#4,a#4]@2 ~@16 g#4@2 e4@2 ~@3, ~@24 e4@2 ~@14 a#3@3 ~@5]/2", // B E G#m F# E D#m E B …
  B: "~@2 [b3,d#4]@5 ~ b3 d#4 [b3,d#4] ~ [e4,g#4] ~ [e4,g#4] ~ [g#4,b4]@3 ~ [f#4,a#4] ~ [e4,g#4]@2, ~@16 a#4 ~@7", // B E G#m F# E
  C: "~@2 [e4,g#4]@3 ~ [a#3,f#4] ~ [a#3,f#4] ~ [a#3,f#4]@4 [b3,g#4] ~ [a#3,f#4] [b3,g#4] [a#3,f#4]@2 [c#4,e4]@2 [b3,d#4]@2", // E D#m E D#m E D#m C#m B
  D: "~@2 [b3,d#4]@5 ~ f#3 b3 [a#3,c#4] ~ [b3,d#4] ~ [b3,d#4] ~ [d#4,f#4]@3 ~ [d#4,f#4] ~ [e4,g#4]@2", // B A#m B D#m E
  E: "[~@2 [b3,d#4] ~ [b3,d#4]@3 ~ [b3,d#4]@3 ~ [b3,d#4]@3 ~ [a#3,c#4] ~ [a#3,c#4] ~ [a#3,c#4]@2 [b3,d#4]@4 [g#3,b3] ~ [d#3,g#3]@3 ~@2 b3 [a#3,c#4] ~ [b3,d#4] ~ [b3,d#4] ~ [d#4,f#4]@3 ~ [d#4,f#4] ~ [e4,g#4]@2, ~@16 f#3 ~@7]/2", // B A#m B G#m G#5 A#m B D#m …
  F: "[~@2 [b3,d#4] ~ [e4,g#4]@3 ~ [b3,d#4]@3 ~ [b3,d#4]@3 ~ [a#3,c#4] ~ [a#3,c#4] ~ [a#3,c#4] ~ [b3,d#4]@4 [g#3,b3]@2 [d#3,g#3]@5 ~@15]/2", // B E B A#m B G#m G#5
  G: "~@2 [e4,g#4]@2 [f#4,a#4] ~ [g#4,b4]@4 ~@4 [f#4,a#4]@2 [g#4,b4]@2 [a#4,c#5]@5 ~", // E F# G#m F# G#m A#m
  H: "~@2 [d#4,b4]@2 [e4,c#5]@2 [f#4,d#5]@5 ~@13", // G#m C#m D#m
  I: "~@2 [e4,g#4] ~ [f#4,a#4]@2 [g#4,b4] ~@2 e4@3 ~@3 f#4 [g#4,b4]@2 [a#4,c#5]@2 [f#4,a#4]@3 ~, ~@4 g#4@2 ~ a#4 ~@4", // E F# G#m A#m F#
  J: "~@2 [d#4,b4]@2 [e4,c#5] ~ [f#4,d#5] ~ [d#4,b4]@2 [e4,c#5]@2 [f#4,d#5]@6 ~@6", // G#m C#m D#m G#m C#m D#m
  K: "~@2 d#4@2 f#4@2 d#4@2 [d#4,f#4,b4] ~@5 [d#4,a#4]@2 g4@2 ~@2 [g4,a#4]@2 ~@2, ~ b4@2 ~@6 d#4@2 ~", // B D#5 Gm
  L: "~@2 b3@2 d#4@2 ~@2 [d#4,g#4]@5 ~@11, ~@2 g#4@4 b3@5 ~@13", // G#5
  M: "~@2 d#4@2 f#4@2 ~@2 [f#4,b4]@2 ~@4 [d#4,a#4]@2 ~ d#4@3 [g4,a#4] ~@3, ~ b4@2 d#4@2 ~@3 g4 ~@3", // B5 D#5 Gm
  N: "~ b3 d#4 ~ [d#4,g#4]@5 ~@3, ~@2 g#4@4 b3@11 ~@7", // G#5
  O: "[g4,a#4] ~ d#4@2 c#4 ~ [g4,a#4] ~ d#4 ~@3 [g4,a#4] ~ d#4@2 c#4@2 [g4,a#4] ~ d#4 ~@3", // Gm
  P: "[d#4,g#4] ~ d#4@2 b3@2 [d#4,g#4] ~ b3 ~@3 [d#4,g#4] ~ [d#4,g#4]@2 b3@2 [d#4,g#4] ~ b3 ~@3", // G#5
  Q: "[g4,a#4] ~ d#4@2 c#4@2 [g4,a#4] ~ d#4 ~@3 [g4,a#4] ~ d#4@2 c#4@2 a#4 ~ d#4 ~@3", // Gm
  R: "[d#4,g#4] ~ d#4 ~ b3 ~ [d#4,g#4]@2 ~@16", S: "~@2 b3 e4@2 ~@3 c#4 f#4@2 ~, ~@2 g#3@7 ~@5 a#3@8 ~@2",
  T: "~@2 d#4 f#4@2 ~@7, ~ b3@4 ~@7", U: "~@3 g#4@2 ~@2 c#4 f#4 a#4@2 ~, ~ b3@4 ~@7, ~@2 e4@3 ~@7",
  V: "~@4 f#4@2 b4@3 ~@15, ~@2 d#4@7 ~@15", W: "[d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,g4,a#4] ~@5 [d#4,g4,a#4] ~@5",
  X: "[d#4,g#4,b4] ~@5 [d#4,g#4,b4] ~@9 b3@4 c#4@4", Y: "d#4@4 e4@4 ~ f#4@3 g4@4 g#4@4 a#4@4", Z: "b4@5 ~@7",
  AA: "d#4 g4 ~ g4@2 ~@7, a#4@5 ~@3, ~@2 d#4@5 ~@5", AB: "d#4 g#4 ~ g#4@4 ~@5, b4@7 ~@5, ~@4 d#4@9 ~@11",
  AC: "d#4 g4 ~ g4@3 ~@6, a#4@13 ~@11, ~ d#4@2 ~@3", AD: "d#4 g#4 ~ g#4@3 ~@6, b4@13 ~@11, ~ d#4@2 ~@3",
  AE: "~@2 [b3,g#4]@2 [a#3,f#4]@2 [g#3,e4]@6 ~@2 [c#4,a#4]@2 ~ a#3 [a#3,f#4]@5 ~, ~@8 [b3,g#4] ~@3", // E D#m C#m F# D#m E
  AF: "[d#4,b4]@8 ~@6 [f#4,b4] d#4 ~@8", AG: "~@2 [d#4,f#4,b4] ~@11 g4 [d#4,a#4] ~@8", AH: "~@2 [d#4,g#4,b4] ~@21",
  AI: "[f#4,b4,d#5] ~@5 [f#4,b4,d#5] ~@5 [d#4,g4,a#4] ~@5 [d#4,g4,a#4] ~@5", // B D#
  AJ: "[~@2 g#4@2 ~@6 g#4@9 ~@6 a#4@14 ~@10 b4@10 ~@13 a#4@11 ~@12 b4@13 ~@12, ~ b4@5 g#4@4 ~@13 g4@13 ~@11 g#4@12 ~@12 g4@10 ~@13 g#4@14 ~@12, ~ d#4@2 ~ d#4@14 ~@5 d#4@15 ~@8 d#4@11 ~@13 d#4@12 ~@11 d#4@12 ~@15, ~@8 b4@11 ~@101]/5",
  AK: "[g4,a#4]@2 d#4 ~ d#4 ~ [g4,a#4] ~ d#4 ~@3 [g4,a#4]@2 d#4 ~ d#4 ~ [g4,a#4] ~ d#4 ~@3", // Gm
  AL: "[g#4,b4] ~ d#4 ~ d#4 ~ [g#4,b4] ~@2 d#4 ~@2 [g#4,b4]@2 d#4 ~ d#4 ~ [g#4,b4] ~ d#4 ~@3", // G#m
  AM: "[g4,a#4]@2 d#4 ~ d#4 ~ [g4,a#4] ~ d#4 ~@3 [g4,a#4] ~ d#4 ~ d#4 ~ [g4,a#4] ~ d#4 ~@3", // Gm
  AN: "[g#4,b4]@2 d#4 ~ d#4 ~ [g#4,b4] ~ d#4 ~@3 [g#4,b4]@8 ~@4", // G#m
  AO: "[d#4,g4,a#4] ~@5 [d#4,g4,a#4] ~@5 [d#4,g4,a#4] ~@5 [d#4,g4,a#4] ~@5", // D#
  AP: "[d#4,g#4,b4] ~@5 [d#4,g#4,b4] ~@5 [d#4,g#4,b4] ~@5 [d#4,g#4,b4] ~@5", // G#m
  AQ: "d#4@2 g#4 ~@3 g#4@2 g#4@7 d#4@4 ~@5, b4@4 d#4@9 ~@11, ~@8 b4@13 ~@3",
  AR: "d#4 [a#3,g4] [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@5 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@5", // D#
  AS: "[b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [d#4,g#4] b3 ~@4 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@5", // G#m G#5 G#m
  AT: "[a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@5 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@5", // D#
  AU: "[[b3,d#4,g#4]@4 ~@4 [b3,d#4] ~ [b3,d#4]@2 [e4,g#4] ~ [e4,g#4] ~ [g#4,b4]@3 ~ [f#4,a#4] ~ [e4,g#4] ~@2 g#4 [e4,g#4]@5 ~ [a#3,f#4] ~ [a#3,f#4] ~ [a#3,f#4]@2 [b3,g#4]@2 f#4 ~ f#4 ~ c#4@2 [b3,d#4]@2, ~@23 [f#4,a#4]@2 ~@16 g#4@2 e4@2 ~@3, ~@24 e4@2 ~@14 a#3@3 ~@5]/2", // G#m B E G#m F# E D#m E …
  AV: "~@2 [c#4,d#4,a#4] ~ [c#4,d#4,a#4] ~@3 a#4 [c#4,d#4] ~@4 [c#4,d#4,a#4] ~ [c#4,d#4,a#4] ~@3 [d#4,a#4] c#4 ~@2", // D#7 C#sus2 D#7 D#5
  AW: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@5 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3", // G#m
  AX: "~@2 [c#4,d#4,a#4] ~ [c#4,d#4,a#4] ~@3 a#4 [c#4,d#4] ~@4 [c#4,d#4,a#4] ~ [c#4,d#4,a#4] ~@3 [c#4,d#4,a#4] ~@3", // D#7 C#sus2 D#7
  AY: "[b3,d#4,g#4] ~@5 [b3,d#4,g#4] ~@5 [b3,d#4,g#4] ~@5 [b3,d#4,g#4] ~@5", // G#m
  AZ: "~@2 [c#4,d#4,a#4] ~ [c#4,d#4,a#4] ~@3 [c#4,d#4,a#4] ~@5 [c#4,d#4,a#4] ~ [c#4,d#4,a#4] ~@3 [c#4,d#4,a#4] ~@3", // D#7
  BA: "[b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,e4,g#4] ~@11", // G#m E
  BB: "~@12 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3", // E
  BC: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@4 [b3,d#4,f#4] ~@2 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3", // B D#
  BD: "[b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3", // G#m E
  BE: "[b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3", // B D#
  BF: "[b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,d#4,g#4]@2 ~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3", // G#m E
  BG: "~@2 [b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 d#4 [b3,f#4] ~@4 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3", // B B5 D#
  BH: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [d#4,g#4] b3 ~@4 [b3,e4,g#4] ~ [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3", // G#m G#5 E
  BI: "~@2 [b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@5 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3", // B D#
  BJ: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@5 [b3,e4,g#4] e4 [b3,g#4] ~@3 [b3,e4,g#4] ~@3", // G#m E
  BK: "~@2 [b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 f#4 d#4 b3 ~@3 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~ a#3 ~", // B D#
  BL: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@4 [b3,d#4,g#4] b3 ~@3 [e4,g#4] b3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~ b3 ~", // G#m E
  BM: "~@2 [b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~ b3 ~@3 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4]@2 a#3 ~", // B D#
  BN: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~ [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5", // G#m E
  BO: "[b3,d#4,f#4] ~@5 [b3,d#4,f#4] ~@5 [a#3,d#4,g4] ~@5 [a#3,d#4,g4] ~@5", // B D#
  BP: "b3@2 ~@4 d#4@2 g#4@2 ~@2 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5, g#4 ~@3, ~ d#4 ~@10, ~ b3@2 ~@5", // E
  BQ: "b3@2 d#4@2 ~@2 d#4@2 g#4@2 [d#4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~, g#4 b3@2 ~@3", // G#5 E
  BR: "~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~", // B D#
  BS: "~@2 [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3 [b3,e4,g#4] ~", // G#m E
  BT: "~@2 [d#4,f#4] b3 ~@2 [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~@3 [a#3,d#4,g4] ~", // D#m B D#
  BU: "~@2 [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3 [e4,g#4] b3 [b3,e4,g#4] ~@3 [b3,e4,g#4]@3 ~", // G#m E
  BV: "~@2 [b3,d#4,f#4] ~ [b3,d#4,f#4] ~@3 [b3,d#4,f#4] ~@5 [a#3,d#4,g4] ~ [a#3,d#4,g4] ~@3 [a#3,d#4,g4]@3 ~", // B D#
  BW: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@5 [b3,e4,g#4] ~ [b3,e4,g#4] ~@3 [b3,e4,g#4] ~@3", // G#m E
})).s("gm_acoustic_guitar_nylon").gain(0.38).pan(0.3)

// other · harmonica
const harmonica = note(`<
  ~@15 A B C B D E F G H ~@5 I J K L M N O ~@21 P Q R S T U O ~@5 I V W L M X T L M S Y ~@56
>`.pickRestart({
  A: "~@9 g#4 a#4 ~ b4 ~ b4 ~ d#5@2 ~@2 d#5 ~ e5@2", B: "~@2 b4 ~ e5@3 ~ b4@2 ~@2 b4@3 ~ a#4 ~ a#4 ~ a#4 ~ b4@2",
  C: "~@2 g#4@3 ~@3 g#4 ~ a#4 ~ b4 ~ b4 ~ d#5@3 ~ d#5 ~ e5@2", D: "~ g#4@4 ~@9 g#4 ~ g#4 ~ g4@2 g#4 ~ a#4@2",
  E: "~@2 g4@3 ~@9 a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2", F: "~@2 g#4@3 ~@9 g#4 ~ g#4 ~ g4@2 g#4 ~ a#4@2",
  G: "~@2 g4@3 ~@10 a#4!2 ~ g#4@2 a#4 ~ b4@2", H: "~@2 g#4@3 ~@19", I: "~@8 g#4 ~ a#4 ~ b4 ~ b4 ~ d#5@3 ~ d#5 ~ e5@2",
  J: "~@2 b4 ~ e5@3 ~ b4@3 ~ b4@3 ~ a#4 ~ a#4 ~@2 b4@3, ~@10 a#4 ~", K: "~@2 g#4@10 ~@2 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2",
  L: "~@2 g4@4 ~@8 a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2", M: "~@2 g#4@4 ~@8 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2",
  N: "~@2 g4 a#4@3 ~@2 g4@4 ~@2 a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2", O: "~@2 g#4@5 ~@17",
  P: "~@9 g#4 a#4 ~ b4 ~ b4 ~ d#5@3 ~ d#5 ~ e5@2", Q: "~@2 b4 ~ e5@2 ~@2 b4@2 ~@2 b4@3 ~ a#4 ~ a#4 ~ a#4 ~ b4@2",
  R: "~@2 g#4@6 ~@6 g#4 ~ g#4 ~ g4@2 g#4 ~ a#4@2", S: "~@2 g4@5 ~@7 a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2",
  T: "~@2 g#4@5 ~@7 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2", U: "~@2 g4 ~ a#4@3 ~@2 g4@3 ~@2 a#4 ~ a#4 ~ g#4 ~ a#4@2 b4@2",
  V: "~@2 b4 ~ e5@3 ~ b4@2 ~@2 b4@3 ~ a#4 ~ a#4 ~ a#4@2 b4@2", W: "~@2 g#4@8 ~@4 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2",
  X: "~@2 g4@2 ~@2 a#4@2 ~ g4@4 ~ a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2", Y: "~ g#4@3 ~@8",
})).s("gm_harmonica").gain(0.64).pan(0.7)

// chords · orchestral harp
const orchestral_harp = note(`<
  ~@43 A B C D E F G H I J K L M@3 N O P Q R S T U ~ V W X ~@2 Y Z AA@2 AB AC AD AE AF AG AH AI AJ AK@2 AL AM AN AO AP
  AQ AR AS AT AU AV AW AX AY@2 AZ@2 ~@7 BA BB BC BD BC BD BC BD BE BF BG BF BH BI BJ BK BL BM BN BO BP BD BC BQ ~
>`.pickRestart({
  A: "a#6 [d#6,e6,f#6,g#6] [a#5,b5,c#6] [e5,f#5,g#5] [b4,c#5,d#5] [f#4,g#4,a#4] [c#4,d#4,e4] [g#3,a#3]@2 [b3,c#4,d#4,e4] [f#4,g#4,a#4,b4] [c#5,d#5,e5] ~ e5@2 g#5 ~ g#5 ~@2 [f#5,a#5] ~ [e5,g#5]@2, ~@7 b3 ~@5 g#5 ~@2 b5@2 ~@6", // Emaj7 A#m E B F# C#m G#sus2 C#m7 …
  B: "~@2 [e5,g#5]@4 ~@3 [a#4,f#5]!2 ~ [a#4,f#5] ~ [b4,g#5] ~ [a#4,f#5]@3 ~ [g#4,e5] ~ [f#4,d#5]@2", // E D#m E D#m C#m D#m
  C: "~@2 [f#4,d#5]@5 ~ [f#4,d#5] f#4 d#5 ~ [e5,g#5] ~ [e5,g#5] ~ b5@2 ~@2 [f#5,a#5] ~ [e5,g#5]@2, ~@16 g#5 ~@7", // D#m E F# E
  D: "~@2 [e5,g#5]@3 ~@4 [a#4,f#5]!2 ~ [a#4,f#5] ~ [b4,g#5] ~ [a#4,f#5,g#5]@3 ~ [g#4,e5] ~ [f#4,d#5]@2", // E D#m E D#m C#m D#m
  E: "~@2 [f#4,d#5]@3 ~@3 b4 ~ c#5 ~ [b4,d#5] ~ [b4,d#5] ~ [d#5,f#5]@2 ~@2 [d#5,f#5] ~ [e5,g#5]@2", // D#m B D#m E
  F: "~@2 [b4,d#5] ~ [b4,d#5]@3 ~ [b4,d#5] ~@3 d#5@2 ~@2 [g4,c#5] ~ [g4,c#5] ~ [g4,c#5] ~ [g4,d#5]@2, ~@10 g4@3 ~@11, ~@11 a#4@2 ~@11", // B Gdim Cm
  G: "~@2 [g#4,b4]@5 ~ b4 ~ c#5 ~ [b4,d#5] ~ [b4,d#5] ~ [d#5,f#5]@3 ~ [d#5,f#5] ~ g#5@2, ~@22 e5 ~", // G#m B D#m
  H: "~@2 [b4,d#5] ~ [b4,d#5]@3 ~ [b4,d#5] ~@3 d#5@3 ~ [g4,c#5] ~ [g4,c#5] ~ c#5 ~ d#5@2, ~@5 g4@2 ~@3 g4@2, ~@11 a#4@2 ~@11", // B Gdim
  I: "~@2 [g#4,b4]@5 ~@17", J: "~@6 b4@6 ~@6 c#5@5 ~, ~ e4@4 ~@2 f#4@4 ~, ~@4 g#4@7 ~@5 a#4@6 ~@2",
  K: "~@3 d#5@2 ~@7, ~ f#4@4 ~@7, ~@2 b4@3 ~@7",
  L: "~ g#4@2 e4 b3@2 e4@5 ~@3 f#4 ~ c#4@2 f#4@5 ~, b4 ~@5 c#5 ~@5, ~@13 a#4@2 ~@9",
  M: "[~ b4 f#4 ~ d#4@2 f#4@4 ~@14 d#5@2 ~@3 [f#4,b4] d#5 ~@5 a#4@7 ~@6 b4@6 ~@9 [g#3,g#4]@2 ~@2 [a#3,a#4]@2 ~@2, d#5@2 ~@20 f#4@3 ~@9 d#4@9 ~@4 [d#4,g#4]@7 ~@18, ~@23 b4@2 ~@10 g4@2 ~@35]/3", // B5 G# A# G#5
  N: "[b3,b4] ~ [c#4,c#5] ~ [d4,d5] ~ d#5 ~ [f4,f5] ~ [g4,g5] ~, ~@12 d#4 ~@11", O: "[g#4,g#5] ~@7",
  P: "d#4@2 ~ a#4 ~@2 d#5@2 e5@2 d#5@5 ~@9, ~ g4 ~@10", Q: "~ d#4 g#4@2 b4 ~ d#5@2 e5@2 d#5@7 ~@7",
  R: "~ c#5 g4 ~ [g#4,b4] ~ [a#4,c#5]@3 ~@15, ~ a#4@2 ~@21", S: "[b4,d#5]@2 [g#4,b4] ~ [a#4,c#5] ~ [b4,d#5]@2 ~@16",
  T: "e6 b5 g#5 ~ b5@2 e6@3 ~@2 f#6@2 ~ a#5@2 c#6@2 f#6@2 ~@4, ~@13 c#6@2 ~@9", U: "d#6@2 b5 f#5 b5 ~ d#6@3 ~@15",
  V: "~@16 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~@3", // B
  W: "~@4 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~@6 [a#4,d#5] g4 ~@3 [g4,a#4,d#5] ~@3", // B D#5 D#
  X: "~@4 [g#4,b4,d#5] ~@4 [g#4,d#5] ~@14, ~@4 b4 ~@7", // G#m G#5
  Y: "~@2 a#4 ~ [b4,d#5] ~ [c#5,e5]@3 ~@15, e5 ~@11, ~ c#5@2 ~@21", // B C#m
  Z: "~@2 g#4 ~ [a#4,c#5] ~ [b4,d#5]@2 ~@16, d#5 ~@11, ~ b4@2 ~@21", // A#m B
  AA: "[~@2 a#4 ~ [b4,d#5] ~ [c#5,e5]@5 ~@12 d#5@2 ~ g#4 ~ [a#4,c#5] ~ [b4,d#5]@4 ~@14, e5 ~@23, ~ c#5@2 ~@22 b4@2 ~@21]/2", // B C#m A#m B
  AB: "c#5@2 a#4@2 g4@2 a#4@2 c#5@2 a#4@2 g4@2 a#4@2 c#5@2 a#4@2 g4@2 a#4 ~",
  AC: "~@2 b4 ~ g#4@2 ~ b4@2 ~ b4@2 g#4@2 b4@2 d#5@2 b4@2 g#4@2 b4 ~, ~ d#5@2 ~@6 d#5@2 ~@13",
  AD: "~ a#4@2 g4@2 ~ a#4@2 c#5@2 a#4@2 g4@2 a#4@2 c#5@2 ~ g4@2 ~ a#4 ~, c#5 ~@8 a#4 ~@2",
  AE: "~ b4@2 g#4@3 b4@2 d#5@2 b4@2 g#4@6 g#4@3 ~@3, d#5 ~@11",
  AF: "~@2 c#5@2 a#5 ~@2 [c#5,c#6]@8 ~@5 [c#5,c#6] ~@3, c#6 ~@11, ~ a#5@2 ~@21", // C#
  AG: "[d#5,d#6] ~@2 [e5,e6] ~@4 d#6@7 ~@9, ~@7 d#5@7 ~@10", // D# E
  AH: "[c#5,c#6]@2 ~@2 [d#5,d#6] ~@3 [c#5,c#6]@7 ~@5 [b4,b5] ~ [a#4,a#5] ~", // C# D# C# B A#
  AI: "[b4,b5]@5 ~@3 [a#4,a#5]@2 ~@2 [g#4,g#5]@6 ~@6", // B A# G#
  AJ: "d#6@2 d#5 d#6 ~ d#6 ~@2 d#5 e6 ~@2 d#6 ~ d#5 ~ d#6 ~ d#6 ~ d#5 ~ d#6 ~",
  AK: "d#6 ~ d#5 ~ d#6 ~ d#6 ~ d#5 ~ e6 ~ d#6 ~ d#5 ~ d#6 ~ d#6 ~ d#5 ~ d#6 ~",
  AL: "[d#5,d#6]@4 ~ [e3,f#3,g#3] [a#3,b3] c#4 [e4,f#4] [g#4,a#4,b4,c#5] [d#5,e5] f#5 [e5,g#5] e5 g#5 ~ b5@2 ~@2 [f#5,a#5] ~ [e5,g#5]@2, ~@7 d#4@2 ~@7 g#5 ~@7", // D# E Bmaj7 Esus2 C#7 Emaj7 E F# …
  AM: "~@2 [e5,g#5]@3 ~@3 f#5 [g#4,a#4] [a#4,f#5] a#4 f#5 ~ [b4,g#5] ~ [a#4,f#5]@3 ~ [g#4,e5] ~ [f#4,d#5]@2", // E G#sus2 D#m E D#m C#m D#m
  AN: "~@2 [f#4,d#5]@5 ~ [b4,d#5] ~ [b4,d#5] ~ [e5,g#5] ~ [e5,g#5] ~ [g#5,b5] ~@3 [f#5,a#5] ~ [e5,g#5]@2", // D#m B E G#m F# E
  AO: "~@2 [e5,g#5]@3 ~@4 [a#4,f#5]!2 ~ [a#4,f#5] ~ [b4,g#5] ~ [a#4,f#5]@2 ~@2 [g#4,e5] ~ [f#4,d#5]@2", // E D#m E D#m C#m D#m
  AP: "~@2 [f#4,d#5]@4 ~@2 b4 ~ c#5 ~ [b4,d#5] ~ [b4,d#5] ~ [d#5,f#5]@3 ~ [d#5,f#5] ~ [e5,g#5] ~", // D#m B D#m E
  AQ: "~@2 [b4,d#5] ~ [b4,d#5]@2 ~@2 [b4,d#5] ~@3 d#5@3 ~ [g4,c#5] ~ [g4,c#5] ~ [g4,c#5] ~ d#5@2, ~@10 g4@4 ~@7 g4@3, ~@11 a#4@3 ~@10", // B Gdim
  AR: "~@2 [g#4,b4]@5 ~ b4 ~ c#5 ~ [b4,d#5] ~ [b4,d#5] ~@2 [d#5,f#5] ~@2 [d#5,f#5] ~ g#5@2, ~@22 e5 ~", // G#m B D#m
  AS: "~@2 [b4,d#5] ~ [b4,d#5]@2 ~@2 [b4,d#5] ~@3 d#5@3 ~ [g4,c#5] ~ g4 c#5!2 ~ d#5@2, ~@10 g4@5 ~@5 g4@4, ~@11 a#4@4 ~@9", // B Gdim
  AT: "~@2 [g#4,b4]@6 ~@4 g#5@2 b5 ~ d#6@2 b5@2 g#5@2 b5 ~", // G#m
  AU: "[g5,a#5] ~@5 [g5,a#5,d#6] ~@5 [g5,a#5,d#6] ~@5 [g5,a#5,d#6] ~@5, d#6 ~@11", // Gm D#
  AV: "[g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@5", // G#m
  AW: "~@2 [g5,a#5,d#6] ~@5 [g5,a#5,d#6] ~@5 [g5,a#5,d#6] ~@5 [g5,a#5,d#6] ~@3", // D#
  AX: "~@2 [g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@4 g#5 [b5,d#6] ~@5 [g#5,b5,d#6] ~@3", // G#m B G#m
  AY: "[~ g5 d#5@2 g5@2 ~ g5@2 ~ g5 a#5@2 g5@2 ~ g5 a#5@2 g5@2 ~ g5 b5@2 g#5 d#5@2 g#5@2 ~ g#5@2 ~ g#5 ~@2 g#5 ~@2 g#5 ~@2 g#5@2 ~ g#5 ~, a#5@2 ~@4 a#5@2 ~ d#5@2 ~@4 d#5@2 ~@4 d#5@2 ~@7 b5@2 ~ d#5@2 ~ b5@2 ~ d#5@2 ~ b5@2 ~ d#5@2 ~]/2",
  AZ: "[~ g5 ~@2 g5 ~@2 g5@2 ~ g5 ~@2 g5 ~@2 g5 ~@2 g5 ~@2 g#5@2 b5@3 ~@21, a#5@2 ~ d#5@2 ~ a#5@2 ~ d#5@2 ~ a#5@2 ~ d#5@2 ~ a#5@2 ~@2 d#5@5 ~@21]/2",
  BA: "~ [b2,c#3,d#3] g#3 [a#3,b3] [c#4,d#4] [e4,f#4] [g#4,a#4] c#5 d#5 e5@2 ~ [e5,g#5,b5] ~@5 [e5,g#5,b5] ~@5, ~ [e3,f#3]@2 ~@4 b4@2 ~@15", // B Bmaj7 C#sus2 Esus2 G#sus2 E Esus2
  BB: "[d#5,f#5] b5 ~@4 [d#5,f#5,b5] ~@5 [d#5,g5,a#5] ~@5 [d#5,g5,a#5] ~@5", // D#m B D#
  BC: "[d#5,g#5,b5] ~@5 [d#5,g#5,b5] ~@5 [e5,g#5,b5] ~@5 [e5,g#5,b5] ~@5", // G#m E
  BD: "[d#5,f#5,b5] ~@5 [d#5,f#5,b5] ~@5 [d#5,g5,a#5] ~@5 [d#5,g5,a#5] ~@5", // B D#
  BE: "[d#5,g#5,b5] ~@5 [d#5,g#5,b5] ~@5 [b4,e5,g#5] ~@5 [b4,e5,g#5] ~@5", // G#m E
  BF: "[b4,d#5,f#5] ~@5 [b4,d#5,f#5] ~@5 [a#4,d#5,g5] ~@5 [a#4,d#5,g5] ~@5", // B D#
  BG: "[b4,d#5,g#5] ~@5 [b4,d#5,g#5] ~@5 [b4,e5,g#5] ~@5 [b4,e5,g#5] ~@5", // G#m E
  BH: "[b4,d#5,g#5] ~@5 [b4,d#5,g#5] ~@5 b5@2 ~ e5@3 g#5@3 ~@3, ~@7 g#5 ~@4", // G#m
  BI: "b5@2 f#5@2 ~@2 f#5@3 ~@3 [d#5,a#5]@2 g5 ~@3 g5@2 ~@4, ~@4 d#5@7 ~@5 d#5@7 ~", // D#5
  BJ: "[d#5,b5]@2 g#5 ~@3 g#5@4 ~@2 [e5,b5]@2 ~@4 g#5@4 ~@2, ~@2 d#5@3 ~@2 g#5 ~@4, ~@5 e5@2 ~", // G#m E5
  BK: "~@3 f#5@2 ~ a#5 g5 ~ g5 ~@2, b5@3 d#5@6 ~@2 d#5@3 ~@2 d#5@6 ~@2, ~ f#5 ~@10",
  BL: "b5 ~ d#5@2 g#5@2 b5@3 ~@2 b5@2 ~@2 g#5@2 ~ b5@2 ~@4, ~ g#5@2 ~@10 g#5@2 ~@9, ~@7 e5 ~@4",
  BM: "~@2 d#5@2 f#5@2 b5@4 ~@2 a#5 g5 ~ g5@2 ~ a#5@3 ~@3, b5 ~@11, ~ f#5@2 ~@11 d#5@2 ~ d#5@5 ~@2",
  BN: "~ g#5 d#5@2 g#5@2 b5@4 ~@2 b5 g#5@2 ~ g#5@2 [e5,b5]@4 ~@2, b5@2 ~@13 e5@2 ~@7", // E5
  BO: "~ f#5 d#5@2 f#5@2 b5@4 ~ a#5@2 g5@2 [d#5,g5]@2 ~ a#5@3 ~@3, b5@2 ~@15 d#5@4 ~@3", // D#
  BP: "~ g#5 ~ g#5 ~@2 b5@4 ~@2 [e5,g#5,b5] ~@5 [e5,g#5,b5] ~@5, b5@2 d#5@7 ~@15", BQ: "[d#5,f#5,b5] ~@23",
})).s("gm_orchestral_harp").gain(0.22)

// chords · brass section
const brass_section = note(`<
  ~@35 A B A B C D E D ~@32 F G H@2 I J@2 K@2 L@2 M@2 ~@8 J@2 N@2 L@2 O@2 B A B C D E D A B A B C D E D A B A B C D E D
  A B A B C D E D ~
>`.pickRestart({
  A: "~@2 [d#4,d#5] [g#4,g#5]@2 [f#4,f#5]", B: "[d#4,d#5] ~@7", C: "~@2 [d#4,b4,d#5] [g#4,e5,g#5]@2 [f#4,d#5,f#5]",
  D: "[d#4,b4,d#5] ~@7", E: "~@9 b4@3 [g#4,e5,g#5]@8 [f#4,d#5,f#5]@4, ~@2 [d#4,d#5] ~@3",
  F: "~@14 [g#3,b3] ~ [g#3,b3] ~ [g3,a#3] ~ [g#3,b3] ~ [a#3,c#4]@2", // G#m Gm G#m A#m
  G: "~@2 [g3,a#3]@4 ~@8 [a#3,c#4] ~ [a#3,c#4] ~ b3 g#3 [a#3,c#4] ~ [b3,d#4]@2", // Gm A#m B
  H: "[~@2 [g#3,b3]@5 ~@7 [g#3,b3] ~ [g#3,b3] ~ [g3,a#3] ~ [g#3,b3] ~ g3 a#3@2 ~ g3@5 ~@7 [a#3,c#4] ~ [a#3,c#4] ~ [g#3,b3] ~ [a#3,c#4] ~ [b3,d#4]@2, ~@22 c#4@3 a#3@5 ~@18]/2", // G#m Gm G#m A#m G#m A#m B
  I: "~@2 b3@5 ~@17, ~ g#3@5 ~@18",
  J: "[~@7 g3 [a#3,a#4] ~ [c#4,c#5]@3 ~ [c#4,e5] e4 [b3,d#4,d#5]@3 ~ [a#3,c#4,c#5] ~ [b3,d#4,d#5]@4 ~@22, ~@5 [d#3,g3]@2 ~@2 a#3@3 ~@36, ~@3 g4 ~@20]/2", // A# C# C#m B A#m B D#
  K: "[~@6 [d#3,g3]@2 [g3,a#4] a#3 [a#3,c#4,c#5]@3 ~ c#4 [d#4,e4] ~ d#4@2 ~ [a#3,c#4] ~ [b3,d#4,d#5]@4 ~@22, ~@6 g4 ~@7 e5@2 [b3,d#5]@3 ~ c#5@2 ~@26]/2", // D# Gm A#m Emaj7 A#m B
  L: "[~@6 [g3,g4] g3 [a#3,a#4] ~ [c#4,c#5]@3 c#4 [e4,e5] ~ [d#4,d#5]@3 a#3 [c#4,c#5] ~ [d#4,d#5]@4 ~@22, ~@6 d#3@2 ~ a#3@3 ~@3 b3@3 ~@3 b3@4 ~@23]/2", // G A# C# E D# C# D#
  M: "[~@6 g3!2 [a#3,a#4] ~ [c#4,c#5]@3 ~ [e4,e5] ~ [b3,d#4,d#5]@3 ~ [c#4,c#5] ~ [b3,d#4,d#5]@5 ~@21, ~@6 [d#3,g4]@2 ~ a#3@3 ~@2 c#4@2 ~@4 a#3@2 ~@26]/2", // A# C# E B C# B D#
  N: "[~@6 [d#3,g3]@2 [g3,a#4] a#3 [a#3,c#4,c#5]@3 ~ [c#4,e5] [d#4,e4] ~ d#4@2 ~ [a#3,c#4] ~ [b3,d#4,d#5]@4 ~@22, ~@6 g4 ~@9 [b3,d#5]@3 ~ c#5@2 ~@26]/2", // D# Gm A#m C#m Emaj7 A#m B
  O: "[~@6 g3!2 [a#3,a#4] ~ [c#4,c#5]@3 ~ [e4,e5] ~ [b3,d#4,d#5]@3 ~ [c#4,c#5] ~ [b3,d#4,d#5]@5 ~@5 [d#4,d#5]@4 [g#4,g#5]@8 [f#4,f#5]@4, ~@6 [d#3,g4]@2 ~ a#3@3 ~@2 c#4@2 ~@4 a#3@2 ~@26]/2", // A# C# E B C# B D# G# …
})).s("gm_brass_section").gain(0.46).pan(0.6)

// bass · electric bass finger
const bass = note(`<
  ~@43 A B C D E F@2 G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ Q AK AL AM AE AM AG AN AO@2
  AP@4 AQ@3 AR AS AT AU AV@3 ~@7 AW AX AY AZ BA M BB M BC BD BB AZ BE@2 BF@3 BG BB BH BI BH BB ~@2
>`.pickRestart({
  A: "~@8 f#2@3 ~ e2@3 ~ b1@3 ~ e1@4", B: "~@4 b1@3 ~@2 f#1@5 ~@2 c#2@3 ~ b1@4",
  C: "~@4 f#2@3 ~ b1@2 ~@2 e2@3 ~ b1@3 ~ e1@4", D: "~@4 g#1@3 ~@2 f#1@5 ~@2 a#1@3 ~ b1@4",
  E: "~@4 f#2@3 ~ b1@4 ~@4 f#2@3 ~ b1@4",
  F: "[~@4 c#2@3 ~@2 d#2@4 ~@3 a#1@3 ~ g#1@6 ~@2 a#1@3 ~ b1@5 ~@3 f#2@2 ~@2 b1@4]/2",
// … 120 more lines

More by Gloria Estefan