Strudelify
Farolito (Little Star) cover art

1995 · Abriendo Puertas

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, A@4 for four bars: 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 AK AM AN AO AN AP AQ AR AS AT@2 B C D E@2 F@2 AU AV AW AX AN 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@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 ~ g#4@4 ~@11 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] ~ a#4 b4@2 ~ [f#4,a#4] ~ [e4,g#4]@2, ~@16 g#4@3 ~@5", // B E 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 [c#4,e4]@2 [b3,d#4]@2, ~@9 f#4 ~@2", // E D#m E D#m E 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 g4@2 ~@2 [g4,a#4] ~@3, ~ b4@2 d#4@2 ~@4 d#4@2 ~", // 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@2 g#4@2 ~@3 g#4@6 ~@11, b4@13 ~@11, ~ d#4@2 ~@3",
  AE: "~@3 b3 [a#3,f#4]@2 [g#3,e4]@6 ~@2 [c#4,a#4]@2 ~ [a#3,b3] [a#3,f#4]@5 ~, ~ g#4 ~@6 g#4 ~@3", // D#m C#m F# Bmaj7 D#m
  AF: "[d#4,b4]@8 ~@6 [f#4,b4] d#4 ~@8", AG: "~@3 [d#4,f#4,b4] ~@10 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: "[g#4,b4]@2 d#4 ~ d#4 ~ [g#4,b4] ~ d#4 ~@3 [g#4,b4]@8 ~@4", // G#m
  AN: "[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#
  AO: "[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
  AP: "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",
  AQ: "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] ~@4 [a#3,d#4,g4] ~@4", // D#
  AR: "[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
  AS: "[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#
  AT: "[[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@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 ~ g#4@4 ~@11 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 …
  AU: "~@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
  AV: "~@2 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 d#4 [b3,g#4] ~@4 [b3,d#4,g#4] ~ [b3,d#4,g#4] ~@3 [b3,d#4,g#4] ~@3", // G#m E G#m
  AW: "~@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
  AX: "~@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
  AY: "[b3,d#4,g#4] ~@5 [b3,d#4,g#4] ~@5 [b3,d#4,g#4] ~@6 b3 ~@4, ~@9 [d#4,g#4] ~@2", // G#m G#5
  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] ~@4 [b3,d#4,f#4] ~@4 [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] ~ [b3,e4,g#4] ~@3 [b3,e4] g#4 ~@2", // G#m E E5
  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 [e4,g#4] b3 ~@4", // 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 d#4@2 ~@2 d#4@2 g#4@2 ~@2 [b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5, g#4 ~@3, ~@2 b3@3 ~@7", // 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 [d#4,f#4] b3 ~@2 [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#m B D#
  BS: "~@2 d#4 [b3,g#4] ~@2 [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] ~", // E G#m E
  BT: "~@2 [d#4,f#4] b3 ~@2 [d#4,f#4] b3 ~@2 [b3,d#4,f#4] ~@3 [a#3,d#4,g4] ~@3 [d#4,g4] a#3 ~@2 [a#3,d#4,g4] ~", // D#m B D#
  BU: "~@2 [d#4,g#4] b3 ~@2 [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#5 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 D F G ~@5 H I J E D K L ~@21 A B M E D N L ~@5 H B O E D P Q E D E L ~@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: "~@2 g#4@4 ~@8 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2",
  E: "~@2 g4@4 ~@8 a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2", F: "~@2 g4@3 ~@10 a#4!2 ~ g#4@2 a#4 ~ b4@2", G: "~@2 g#4@3 ~@19",
  H: "~@8 g#4 ~ a#4 ~ b4 ~ b4 ~ d#5@3 ~ d#5 ~ e5@2", I: "~@2 b4 ~ e5@3 ~ b4@3 ~ b4@3 ~ a#4 ~ a#4 ~ a#4@2 b4@2",
  J: "~@2 g#4@10 ~@3 g#4!2 ~ g4 ~ g#4 ~ a#4@2", K: "~@2 g4 ~ a#4@3 ~ g4@4 ~@2 a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2",
  L: "~@2 g#4@5 ~@17", M: "~@2 g#4@6 ~@6 g#4 ~ g#4 ~ g4@2 g#4 ~ a#4@2",
  N: "~@2 g4 ~ a#4@3 ~@2 g4@3 ~@2 a#4 ~ a#4 ~ g#4 ~ a#4@2 b4@2", O: "~@2 g#4@8 ~@4 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2",
  P: "~@2 g4@2 ~@2 a#4@2 ~ g4@4 ~ a#4 ~ a#4 ~ g#4 ~ a#4 ~ b4@2", Q: "~@2 g#4@5 ~@7 g#4 ~ g#4 ~ g4 ~ g#4 ~ a#4@2",
})).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 AB AD AE AF AG AH AI@2 AJ AK AL AM B AN AO
  AP AQ AR AS AT AU AV AW@2 AX@2 ~@7 AY AZ BA BB BA BB BA BB BC BD BE BD BF BG BH BI BJ BK BL BM BN BB BA BO ~
>`.pickRestart({
  A: "a#6 [d#6,e6,f#6,g#6] [b5,c#6] [e5,f#5,g#5,a#5] [b4,c#5,d#5] [f#4,g#4,a#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,c#4] ~@5 g#5 ~@2 b5@2 ~@6", // Emaj7 Bsus2 F#7 B F# Emaj7 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, ~@11 [g4,a#4]@3 ~@10", // B Gdim Cm Gm
  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 ~@2 a#4@2 f#4 c#4@2 f#4@5 ~, b4 ~@5 c#5 ~@5",
  M: "[~ b4 f#4 ~ d#4@2 f#4@4 ~@14 d#5@2 ~@4 [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 ~@21 [f#4,b4]@3 ~@8 d#4@9 ~@4 [d#4,g#4]@7 ~@18, ~@35 g4@2 ~@35]/3", // B G# A# B5 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 g4@2 a#4 ~ d#5@2 e5@2 d#5@5 ~@9", 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 ~@5 a#5@2 c#6@2 f#6@2 ~@4, ~@6 f#6 ~@5, ~@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] ~@7 [g4,a#4,d#5] ~@3 [g4,a#4,d#5] ~@3", // B 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] ~@2 c#5@3 ~@14, e5@2 ~@4 e5@3 ~@15, ~ c#5@2 ~@21", // B
  Z: "~@2 g#4 ~ [a#4,c#5] ~ [b4,d#5]@2 ~@16, d#5 ~@11, ~ b4@2 ~@21", // A#m B
  AA: "[~ c#5@2 a#4 [b4,d#5] ~ [c#5,e5]@5 ~@12 d#5@2 ~ g#4 ~ [a#4,c#5] ~@2 b4@3 ~@14, e5@2 ~@23 b4@2 ~@3 d#5@4 ~@14]/2", // B C#m A#m
  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: "~ d#5@2 b4 g#4@2 ~ b4@2 ~ b4@2 g#4@2 b4@2 d#5@2 b4@2 g#4@2 b4 ~, ~@9 d#5@2 ~@13",
  AD: "~ b4@2 ~ g#4@2 b4@2 d#5@2 b4@2 g#4@6 g#4@3 ~@3, d#5 ~@11",
  AE: "~ a#5@2 ~ a#5 ~@2 [c#5,c#6]@8 ~@5 [c#5,c#6] ~@3, c#6@2 ~ c#5@2 ~@19", // C#
  AF: "[d#5,d#6] ~@2 [e5,e6] ~@4 [d#5,d#6]@7 ~@9", // D# E D#
  AG: "[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#
  AH: "[b4,b5]@5 ~@3 [a#4,a#5]@2 ~@2 [g#4,g#5]@6 ~@6", // B A# G#
  AI: "d#6@2 d#5 ~ d#6 ~ d#6 ~ d#5 ~ e6 ~ d#6 ~ d#5 ~ d#6 ~ d#6 ~ d#5 ~ d#6 ~",
  AJ: "d#6 ~ d#5 ~ d#6 ~ d#6 ~ d#5 ~ e6 ~ d#6 ~ d#5 ~ d#6 ~ d#6 ~ d#5 ~ d#6 ~",
  AK: "[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# Esus2 G#sus2 Bsus2 Esus2 C#7 Emaj7 E …
  AL: "~@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
  AM: "~@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
  AN: "~@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
  AO: "~@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] ~ [g4,d#5]@2, ~@5 g4@2 ~@5, ~@11 a#4@3 ~@10", // B Gdim Cm
  AP: "~@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
  AQ: "~@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
  AR: "~@2 [g#4,b4]@6 ~@4 g#5@2 b5 ~ d#6@2 b5@2 g#5@2 b5 ~", // G#m
  AS: "[g5,a#5] ~@5 [g5,a#5,d#6] ~@5 [a#5,d#6] g5 ~@4 [g5,a#5,d#6] ~@5, d#6 ~@11", // Gm D# D#5 D#
  AT: "[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
  AU: "~@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#
  AV: "~@2 [g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@5 [g#5,b5,d#6] ~@3", // G#m
  AW: "[~ g5 ~@2 g5@2 ~ g5@2 ~ g5 ~@2 g5@2 ~ g5 ~@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 ~ d#5@2 ~ a#5@2 ~ d#5@2 ~ a#5@2 ~ d#5@2 ~ a#5@2 ~ d#5@2 ~@7 b5@2 ~ d#5@2 ~ b5@2 ~ d#5@2 ~ b5@2 ~ d#5@2 ~]/2",
  AX: "[~ g5 ~@2 g5 ~@2 g5@2 ~ g5 ~@2 g5 ~ d#5@2 g5 ~ g5 ~@4 b5@3 ~@21, a#5@2 ~ d#5@2 ~ a#5@2 ~ d#5@2 ~ a#5@2 ~@4 a#5@2 ~@2 d#5@5 ~@21, ~@23 g#5@2 ~@23]/2",
  AY: "~ [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 [g#5,b5] e5 ~@4, ~ [e3,f#3]@2 ~@4 b4@2 ~@15", // B Bmaj7 C#sus2 Esus2 C#sus2 E G#m Esus2
  AZ: "[d#5,f#5] b5 ~@4 [d#5,f#5,b5] ~@5 [d#5,g5,a#5] ~@5 [g5,a#5] d#5 ~@4", // D#m B D# Gm
  BA: "[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
  BB: "[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#
  BC: "[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
  BD: "[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#
  BE: "[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
  BF: "[b4,d#5,g#5] ~@5 [b4,d#5,g#5] ~@5 b5@2 g#5@2 e5@2 g#5@3 ~@3", // G#m
  BG: "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
  BH: "[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
  BI: "~@3 f#5@2 ~ [d#5,a#5] g5 ~ g5 ~@2, b5@3 d#5@6 ~@7 d#5@6 ~@2, ~ f#5 ~@10", // D#5
  BJ: "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",
  BK: "~@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",
  BL: "~ 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
  BM: "~ f#5 ~@2 f#5@2 b5@4 ~@3 g5@2 [d#5,g5]@2 ~ a#5@3 ~@3, b5@2 ~ d#5@2 ~@7 a#5@2 ~@3 d#5@4 ~@3", // D#
  BN: "~ g#5 ~ g#5 ~@2 b5@4 ~@2 [e5,g#5,b5] ~@5 [e5,g#5,b5] ~@5, b5@2 d#5@7 ~@15", BO: "[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,a#3]@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 ~@23]/2", // G#m Gm G#m Gm A#m G#m A#m B
  I: "~@2 b3@5 ~@17, ~ g#3@5 ~@18",
  J: "[~@6 g3!2 [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@2 ~@2 a#3@3 ~@36, ~@3 g4 ~@20]/2", // A# C# C#m B A#m B
  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] ~ [b3,d#4,d#5]@4 ~@22, ~@6 d#3@2 ~ a#3@3 ~@3 b3@3 ~@30]/2", // G Gm C# E D# C# B
  M: "[~@6 [d#3,g3,g4]@2 [g3,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, ~@9 a#3@3 ~@2 c#4@2 ~@4 a#3@2 ~@26]/2", // D# Gm C# E B C# B
  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 [d#3,g3,g4]@2 [g3,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, ~@9 a#3@3 ~@2 c#4@2 ~@4 a#3@2 ~@26]/2", // D# Gm C# E B C# B D# …
})).s("gm_brass_section").gain(0.46).pan(0.6)

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

More by Gloria Estefan