Strudelify
Hear My Voice cover art

Hear My Voice

Gloria Estefan

KeyD minorTempo119 bpm
0:00/0:00
// Hear My Voice — Estefan Gloria
// 119 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 12 "#SYNBASS 2" Syn Bass 2 -> synth bass 2; ch 14 "#EL.PERC 1" Elec Perc 1 -> synth drum
// note: Full arrangement: all 146 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(119/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 · "FINGERDBAS"
const bass = note(`<
  ~@10 A@2 B@4 C@4 D E F G ~ H I J K H L M ~ B@4 N@4 O@4 B@4 P@4 Q R S T U V I J W H X Y Z AA ~@5 AB AC ~@2 AD AE AF AE
  AF AE AF AE AF AE AF AE AF AE AG AH@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@4 AP@2 AQ@8 AR@4 AS ~ AT AU AV@8 AW@8 AX@2 AY
>`.pickRestart({
  A: "[g2@3 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g2@2]/2",
  B: "[g1@3 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g1@5 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g2@2]/4",
  C: "[g1@3 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g1@5 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@2 ~ d2@2]/4",
  D: "c2@3 g1@3 c2@2 c2!2 g1@2 bb1@2 c2@2", E: "d2@3 a1@3 d2@2 d2!2 a1@2 d2@2 a1@2",
  F: "eb2@3 bb1@3 eb2@2 eb2!2 bb1@2 eb2@2 d2@2", G: "c2@3 ~@3 d2@3 ~@3 eb2@3 ~", H: "f1@3 c2@3 f2@5 c2@3 eb2@2",
  I: "f2@3 c2@3 f2@5 c2@3 f2@2", J: "g1@3 d2@3 g2@5 d2@3 f2@2", K: "g2@3 d2@3 g2@6 d2@2 g2@2",
  L: "f2@3 c2@3 f2@4 f2@2 c2@2 f2@2", M: "g1@3 g2@3 d3@2 ~@8",
  N: "[g1@3 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g1@5 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2 g2@2 d2@2]/4",
  O: "[f2@3 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g1@5 d2@3 f2@5 d2@3 g2@5 d2@3 f2@2 d2!3 ~ c2@2 bb1 ~]/4",
  P: "[g1@3 d2@3 f2@5 d2@3 g2@5 d2@3 f2@5 d2@3 g1@5 d2@3 f2@5 d2@3 g2@5 d2@3 f2@4 d2@2 c2@2 d2@2]/4",
  Q: "c2@3 g1@3 c2@4 g1@2 bb1@2 c2@2", R: "d2@3 a1@3 d2@2 d2!2 a1@2 d2@2 c2@2",
  S: "eb2@3 bb2@3 eb3@2 eb3@2 bb2@2 eb2@2 d2@2", T: "c2@3 ~@3 d2@3 ~@4 d2 [b1,c2] [g1,a1], ~@6 eb2 ~",
  U: "~@12 eb3 [b2,c3,d3] [g2,a2] f2", V: "f2@3 c2@3 f2@5 c2@3 eb2@2", W: "g2@3 d2@3 g2@4 g2@2 f2@2 d2@2",
  X: "f2@3 c2@3 f2@6 f1@2 f2@2", Y: "g2@3 d2@3 g2@4 g2@2 d2@2 g2@2", Z: "g2@2 ~ bb2 g2@2 ~ d3 ~ c3 ~ bb2 g2@2 ~@2",
  AA: "~@5 f2 g2 a2@2 [g2,ab2] [f2,gb2] ~@5", AB: "f1@3 g1@3 g1@6 ~@3 d2", AC: "g2 ~@15", AD: "~@11 d2@2 ~ g2@2",
  AE: "g1@2 ~ d2@3 a2@4 ~ d2@3 a2@2", AF: "~@3 d2@3 g2@4 ~ d2@2 ~ g1@2", AG: "~@3 d2@3 g2@3 f2 d2 c2 bb1 ~ g1@2",
  AH: "[g1@2 ~ d2@3 ~@2 a2@3 d2@3 a2@5 d2@2 ~@3 g2@3 d2@2 ~ g1@2]/2",
  AI: "[g1@2 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@2]/2",
  AJ: "[g1@2 ~ d2@3 a2@4 ~ d3 ~@2 a2@4 ~ d3@3 g2@4 ~ d2@2 ~ g1@2]/2",
  AK: "[g1@2 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g1@3 ~ c2@2 ~ bb1@3]/2",
  AL: "[a1@2 ~ eb2@3 d2@2 d1@3 gb2@3 g2@5 d2@3 c2@4 ~ bb1@2 ~ a1@2]/2",
  AM: "[a1@2 ~ c2@3 d2@2 ~@3 a1@3 g1@4 ~ d2@3 c2@4 ~ bb1@2 ~ g1@2]/2",
  AN: "[a1@2 ~ eb2@3 d2@4 ~ gb2@3 g2@4 ~ d2@3 c2@4 ~ bb1@2 ~ a1@2]/2",
  AO: "[a1@2 ~ c2@3 d2@4 ~ a1@3 g1@4 ~ d2@3 c2@4 ~ bb2@2 ~ a2@4 ~ eb2@3 d2@4 ~ gb2@3 g2@4 ~ d2@3 c2@4 ~ bb1@2 ~ a1@2, ~@27 a2 ~@36]/4",
  AP: "[a1@2 ~ c2@3 d2 ~ d2@3 a1@3 ~ c2@4 a1 ~ bb1 ~ g1 ~ d2 ~ g2 ~@4]/2",
  AQ: "[~@12 g1@2 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@3 ~@2 d2@3 g2@4 ~ d2@2 ~ g2@2 g1@2 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@3 ~@2 d2]/8",
  AR: "[~@2 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@3 ~ a1 ~]/4",
  AS: "c2 ~ a1 bb1 ~ g1 ~@10", AT: "~@7 d2 f2 ~ gb2@2 g2 ~ bb2 g2", AU: "~@7 d2 eb2 ~ d2@2 ~@4",
  AV: "[~@5 d2!2 d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@3 ~@2 d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@3 ~@2 d2]/8",
  AW: "[~@2 g2@2 g2 f2 d2 c2 bb1@2 g1@4 ~ d2@3 a2@4 ~ d2@3 a2@4 ~ d2@3 g2@4 ~ d2@2 ~ g1@4 ~ d2@3 a2@4 ~ d2@3 a2@3 ~@2 d2@3 g2@4 ~ d2@2 ~ g2@2 d2@3 d3@3 d2@5 d3@3 d2@5 d3@3 d2@5 d3@3 d2@2 d2@3 d3@3 d2@5 d3@3 d2@2 d2@3 d3]/8",
  AX: "[~@2 d2@4 c2@2 ~ bb1@3 a1@3 eb2@3 d2!2 ~ c3 bb2 a2 gb2 eb2 d2 ~@5]/2", AY: "~@5 d2 ~ g2 ~@8",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note("<~@10 A B ~@2 C D ~@2 E F ~@19 C D ~@2 E F ~@2 C D ~@2 E F ~@93>".pickRestart({
  A: "~@2 bb5 ~@3 bb5 ~ [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@4", // Gm
  B: "~ [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2", // Gm
  C: "~@2 [d5,g5,bb5] ~@2 bb5 ~@2 [d5,g5,bb5] ~@2 bb5 ~@4", // Gm
  D: "~ [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2 bb5 ~@2 [d5,g5] ~@2", // Gm G5
  E: "~@2 [d5,g5,bb5] ~@5 [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@4", F: "~ [d5,g5,bb5] ~@2 [d5,g5,bb5] ~@2 [g5,bb5,d6] ~@8",
})).s("gm_percussive_organ").gain(0.4)

// chords · percussive organ · "ORGAN 2" · soft notes
const percussive_organ_soft = note("<~@10 A ~@3 B C ~@23 B C ~@6 B C ~@97>".pickRestart({
  A: "~@2 [d5,g5] ~@3 [d5,g5] ~@9", B: "~@5 [d5,g5] ~@5 [d5,g5] ~@4", C: "~@10 [d5,g5] ~@2 bb5 ~@2",
})).s("gm_percussive_organ").gain(0.24)

// chords · clavinet · Gm F Eb Gm
const clavinet = note(`<
  ~@4
  [~ [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@4 [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@3]
  ~@3
  [~ [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~@2]
  [~ [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2]
  [~ [d4,g4,bb4] ~@2 [d4,g4,bb4] ~@11]
  ~@135
>`).s("gm_clavinet").gain(0.4)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@10 A B C B C B C B C B D E F G ~ H@2 I@2 H@2 J ~@2 K L M C B C B C B C B C B C B C B C B D E F N ~ H@2 I@2 H@2 I ~
  H@2 I@2 H@2 O ~@50 P@5 ~@18
>`.pickRestart({
  A: "~@14 [g3,g4]!2", B: "[f3,f4]!6 [g3,g4] [f3,f4] ~@8",
  C: "[f3,f4]!2 f4 [f3,f4] f4 [f3,f4] [g3,g4]!2 [f3,f4]!2 ~ [f3,f4] f4 [f3,f4] [g3,g4]!2", // F G F G
  D: "[g3,bb3,d4,g4,bb4] ~ [eb3,g3] [g3,bb3,d4,g4,bb4] ~ [eb3,g3,bb3] [g3,bb3,d4,g4,bb4] ~ [g3,bb3,d4,g4,bb4] ~ [g3,bb3,d4,g4,bb4] ~ [g3,bb3,d4,g4,bb4] [eb3,g3,bb3] ~@2", // Gm Eb Gm Eb Gm Eb
  E: "[a3,d4,f4,a4,c5] ~ [f3,a3] [a3,d4,f4,a4,c5] ~ [f3,a3,d4] [a3,d4,f4,a4,c5] ~ [a3,d4,f4,a4,c5] ~ [a3,d4,f4,a4,c5] ~ [a3,d4,f4,a4,c5] [f3,a3,d4] ~@2", // Dm7 F Dm7 Dm Dm7 Dm
  F: "[bb3,eb4,g4,bb4,d5] ~ [g3,bb3] [bb3,eb4,g4,bb4,d5] ~ [g3,bb3,eb4] [bb3,eb4,g4,bb4,d5] ~ [bb3,eb4,g4,bb4,d5] ~ [bb3,eb4,g4,bb4,d5] ~ [bb3,eb4,g4,bb4,d5] [g3,bb3,eb4] ~@2", // Ebmaj7 Gm Ebmaj7 Eb Ebmaj7 Eb
  G: "[c3,g3,bb3,eb4,g4]@3 ~@3 [d3,a3,c4,f4,a4]@3 ~@3 [eb3,bb3,d4]@4, ~@11 [g4,bb4]@5", // Cm7 Dm7 Ebmaj7 Gm
  H: "[f3,c4,f4,a4] ~@2 [f3,c4,f4,a4] ~ c4 [f3,c4,f4,a4] ~ [f3,c4,f4,a4] ~@2 [f3,c4,f4,a4] ~ [c4,f4] [f3,c4,f4,a4] ~", // F F5 F
  I: "[g3,d4,f4,bb4] ~@2 [g3,d4,f4,bb4] ~ d4 [g3,d4,f4,bb4] ~ [g3,d4,f4,bb4] ~@2 [g3,d4,f4,bb4] ~ [d4,f4] [g3,d4,f4,bb4] ~", // Gm7 Dm Gm7
  J: "[f2,c3,f3,c4]@3 [g2,d3,g3,d4]@2 ~ [g2,d3,g3,d4]@5 ~@5", K: "c4 [a3,bb3] bb3 c4 d4 eb4 f4 g4 a4 bb4 c5 d5@5",
  L: "c5 [c5,d5] ~ [bb4,c5] bb4 [bb4,c5] c5 d5 c5@3 ~ f5!4", // Csus2 Bbsus2
  M: "[eb5,f5] d5 c5!2 d5 eb5 d5 c5 [bb4,d5] a4 g4 f4 g4@2 ~ g4", // Ebsus2 Bb
  N: "[c3,g3,bb3,eb4,g4,bb4]@3 ~@3 [d3,a3,c4,f4,a4,c5]@3 ~@3 [eb3,bb3,d4]@4, ~@11 [g4,bb4,d5]@5", // Cm7 Dm7 Ebmaj7 Gm
  O: "[f2,c3,f3,c4,a4]@3 [g2,d3,g3,d4,bb4]@2 ~ [g2,d3,g3,d4,bb4]@5 ~@5", // F Gm
  P: "[~@12 [g3,g4] ~ [d4,g4] [g3,bb3,d4,g4]@2 [g3,bb3] [g2,d3,g3,d4,bb4]@2 gb4 ~ [c4,gb4] [d3,gb3,a3,c4,gb4]@2 a2 [a2,d3,c4,a4]@2 [gb3,gb4] ~ [c4,gb4] [d3,a3,c4,gb4]@2 [gb3,a3] [a2,d3,gb3,c4,a4]@2 [d3,g4] ~ [d4,g4] [d3,g3,bb3,d4,g4]@2 g2 [g2,d3,d4,bb4]@2 [g3,g4] ~ [d4,g4] [g3,bb3,d4,g4]@2 [g3,bb3] [g2,d3,g3,d4,bb4]@2 gb4 ~ [c4,gb4] [d3,gb3,a3,c4,gb4]@2 a2 ~ c5 [gb3,gb4,c5] [gb3,a4,c5] [c4,gb4,c5] [d3,a3,c4,gb4]@2 [gb3,a3,c5] ~ c5 d3 ~ d4 bb4!2 [g2,a4] [g2,d3,d4,g4]@2 ~@4, ~@12 [g2,d3]@6 ~@2 a2@5 ~@3 a2@6 ~@2 g2@5 ~@3 [g2,d3]@6 ~@2 a2@5 ~ [a2,d3,c4,a4]@2 a2@6 [a2,d3,gb3,c4,a4]@2 g2@5 ~@7, ~@12 d4@2 ~@7 [gb3,a4]@2 ~@6 [gb3,a4]@2 ~@5 d4@2 ~@6 d4@2 ~@7 [gb3,a4]@2 ~@8 c5 ~@4 d4@2 ~@10, ~@13 [g3,bb4]@2 ~@5 [d3,c4]@3 ~@5 [d3,c4]@3 ~@6 [d3,g3,bb4]@2 ~@6 [g3,bb4]@2 ~@5 [d3,c4]@3 ~@5 [d3,c4]@3 ~@6 [d3,g3]@2 [d3,g3,bb3,d4]@3 ~@6]/5", // G G5 Gm Cdim D7 Gb Cdim D7 …
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@12 A ~ A ~ A ~ A ~ B C D ~@2 E@2 F@2 E@2 ~@5 G A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B C D ~@2 E@2 F@2 E@2 F ~ E@2 F@2 E@2
  ~@51 H I@2 J@2 ~@18
>`.pickRestart({
  A: "~@2 f3 ~ f3 ~@5 [f3,f4] ~ f3 ~@3", B: "~@2 bb3 ~@13", C: "~@2 d4 ~@13", D: "~@2 eb4 ~@13",
  E: "~@2 [c4,f4] ~@2 f4 ~@4 [c4,f4] ~@5", F: "~@2 [d4,f4] ~@2 f4 ~@4 [d4,f4] ~@5", G: "~@14 f4 ~", H: "~@6 bb3 ~",
  I: "[~@2 bb3@2 a3@3 ~@3 [gb3,a3]@2 a3@2 ~ gb3@2 ~ a3@2 bb3@3 ~@3 [g3,bb3]@2 bb3@2 ~@2]/2", // Gbm Gm
  J: "[~@2 bb3@2 a3@3 ~@3 [gb3,a3]@2 a3@2 ~ gb3@2 ~ a3@2 bb3@3 ~@3 [g3,bb3]@2 ~@4]/2", // Gbm Gm
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.6)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@31 A ~@33 B C ~@5 D ~@18 E@2 F@2 G@2 H@2 I ~@3 J K L@2 M N O@2 ~@8 P Q R S T ~@11 U V W X Y Q R Z@2 AA AB
>`.pickRestart({
  A: "[f4,f5]@3 [g4,g5]@3 [g4,g5]@6 ~@4", // F G
  B: "g5@2 ~ [bb4,bb5] [g4,g5]@2 ~ [d5,d6] ~ [c5,c6] ~ [bb4,bb5] [g4,g5]@2 ~@2, g4 ~@15", // Bb G D C Bb G
  C: "~@5 f3 g3 [a3,f4,a4,a5,c6]@3 ~@6", D: "[f3,f4,f5]@3 [g3,g4,g5]@3 [g3,g4,g5]@6 ~@4",
  E: "[~@2 [g3,g4]!2 [bb3,bb4]!2 ~ [a3,a4] ~ [a3,a4] ~ [gb3,gb4] ~ [g3,g4] [a3,a4]@6 ~@12]/2", // G Bb A Gb G A
  F: "[[g3,bb3,g4,bb4] ~ [a3,c4,a4,c5] ~ [bb3,d4,bb4,d5]!2 ~ [a3,c4,a4,c5] ~ [a3,c4,a4,c5] ~ [gb3,a3,gb4,a4] ~ [g3,bb3,g4,bb4] [a3,c4,a4,c5]@6 ~@12]/2", // Gm Am Bb Am Gbm Gm Am
  G: "[[d4,g4,d5,g5]!4 [g4,bb4,g5,bb5]!2 ~ [gb4,a4,gb5,a5] ~ [gb4,a4,gb5,a5] ~ [c4,gb4,c5,gb5] ~ [eb4,g4,eb5,g5] [d4,a4,d5,a5]@6 ~@7 [bb3,g4,bb4,g5] ~ [c4,a4,c5,a5] [d4,bb4,d5,bb5] ~]/2", // G5 Gm Gbm Cdim Eb D5 Eb F …
  H: "[[d4,g4,d5,g5] ~ [gb4,a4,gb5,a5] ~ [g4,bb4,g5,bb5]!2 ~ [gb4,a4,gb5,a5] ~ [gb4,a4,gb5,a5] ~ [c4,gb4,c5,gb5] ~ [eb4,g4,eb5,g5] [d4,a4,d5,a5]@10 ~@2 [a3,g4,a4,e5,c6]@3 [g3,f4,g4,d5,bb5]@3]/2", // G5 Gbm Gm Gbm Cdim Eb D5 Am7 …
  I: "~@2 [b4,ab5] [a4,bb4,gb5,g5] ~@12, [g3,d4,eb4,c5,a5] ~@3", J: "eb4 d4 [c4,gb4,a4] [d3,bb3,d4,bb4], ~ gb3@2 ~",
  K: "[e3,a3,e4,a4,c5] [f3,g3,f4,g4,d5] [e3,e4,g4,bb4,e5] [f3,d4,g4,bb4,f5]", // Am G7 Edim Gm7
  L: "[[g3,g4,g5]@3 [g3,g4,g5]!3 ~ [ab3,ab4,ab5]@4 [a3,a4,a5]@4 [c4,c5,c6]@3 ~ [a3,a4,a5] ~ [bb3,bb4,bb5] ~ [g3,g4,g5] ~@8]/2", // G Ab A C A Bb G
  M: "~ a4 ab4 a4 c5 bb4 a4 g4 gb4 a4 c5 d5 [eb5,f5] eb5 d5 c5", // Ebsus2
  N: "[d4,f4,g4,bb4,d5]@2 [d4,f4,g4,bb4,d5]!2 ~ [d4,f4,g4,bb4,g5] ~ [c4,e4,g4,a4,a5] ~@8", // Gm7 Am7
  O: "[[g3,eb4,g4,d5,g5]@3 [g3,eb4,g4,d5,g5]!3 ~ [ab3,d4,gb4,ab4,c5,ab5]@4 [a3,gb4,a4,c5,a5]@4 [c4,c5,c6]@3 ~ [a3,a4,a5] ~ [bb3,bb4,bb5] ~ [g3,g4,g5] ~ [d4,d5,d6] ~ [g4,g5,g6] ~@4]/2", // Ebmaj7 Ab7 Gbdim C A Bb G D …
  P: "~@13 [d4,g4,d5,g5]!3", // G5
  Q: "[g4,bb4,g5,bb5]!2 ~ [gb4,a4,gb5,a5] ~ [gb4,a4,gb5,a5] ~ [c4,gb4,c5,gb5] ~ [eb4,g4,eb5,g5] [d4,a4,d5,a5]@6", // Gm Gbm Cdim Eb D5
  R: "~@7 [bb3,g4,bb4,g5] ~ [c4,a4,c5,a5] [d4,bb4,d5,bb5] ~ [d4,g4,d5,g5] ~ [gb4,a4,gb5,a5] ~", // Eb F Gm G5 Gbm
  S: "[g4,bb4,g5,bb5]!2 ~ [gb4,a4,gb5,a5] ~ [gb4,a4,gb5,a5] ~ [c4,gb4,c5,gb5] ~ [eb4,g4,eb5,g5] [d4,a4,d5,a5]@2 ~@2 [a3,a4,a5] ~", // Gm Gbm Cdim Eb D5 A
  T: "[c4,c5,c6] ~ [a3,a4,a5] [bb3,bb4,bb5] ~ [g3,g4,g5] ~@10", U: "~@14 [g3,g4]!2",
  V: "[bb3,bb4]!2 ~ [a3,a4] ~ [a3,a4] ~ [gb3,gb4] ~ [g3,g4] [a3,a4]@6", W: "~@12 [g3,bb3,g4,bb4] ~ [a3,c4,a4,c5] ~",
  X: "[bb3,d4,bb4,d5]!2 ~ [a3,c4,a4,c5] ~ [a3,c4,a4,c5] ~ [gb3,a3,gb4,a4] ~ [g3,bb3,g4,bb4] [a3,c4,a4,c5]@6", // Bb Am Gbm Gm Am
  Y: "~@12 [d4,g4,d5,g5]!4", // G5
  Z: "[[g4,bb4,g5,bb5]!2 ~ [gb4,a4,gb5,a5] ~ [gb4,a4,gb5,a5] ~ [c4,gb4,c5,gb5] ~ [eb4,g4,eb5,g5] [d4,a4,d5,a5]@10 ~@2 [a3,g4,a4,e5,c6]@3 [g3,f4,g4,d5,bb5]@3 [g3,eb4,g4,d5,g5]@3 [g3,eb4,g4,d5,g5]]/2", // Gm Gbm Cdim Eb D5 Am7 Gm7 Ebmaj7
  AA: "[g3,eb4,g4,d5,g5]!2 ~ [ab3,d4,gb4,ab4,c5,ab5]@4 [a3,gb4,a4,c5,a5]@4 ~@5", AB: "~@5 [d4,d5,d6] ~ [g4,g5,g6] ~@8",
})).s("gm_brass_section").gain(0.56)

// other · trumpet
const trumpet = note("<~@110 A B C D E F G H I J K@2 L M ~@22>".pickRestart({
  A: "~@13 [g5,ab5] [b5,c6] [d6,eb6,e6]", B: "f6@12 eb6 d6 c6 ~", C: "d6@11 ~@5",
  D: "~@3 d6 ~ c6 bb5 c6 d6@2 ~@3 g4 bb4 d5", E: "g5 a5 ~ gb5 ~ eb5 ~ c5 ~ db5 ~ [gb4,d5]@2 [d5,eb5] [f4,c5] [gb4,d5]",
  F: "gb4@2 [a4,gb5] [c5,a5] ~ [bb4,g5] ~ c6@7 g5 ~, bb5 ~@15", G: "~@3 db6 ~ c6@2 ~ [bb5,db6]@2 c6 ~ [bb5,db6]@2 c6 ~",
  H: "~@5 g5 ~ g5 bb5@2 bb5 ~@2 d5 f5 e5", I: "eb5 d5@2 d5 f5 e5 eb5 d5 ~ d5 db5 d5 bb5@2 bb5!2",
  J: "c6 ~@5 g5 ~ d5@2 bb4 ~ f5@2 f5!2", K: "[eb5@2 ~ a5 ~ a5 ~ gb5 ~ g5 a5@8 ~ a5@2 a5 g5 gb5 g5 a5 bb5 c6 d6 ~@3]/2",
  L: "~@5 eb6 ~ c6@2 bb5 a5 g5 gb5@2 a5 ~", M: "c6 ~ a5 bb5 ~ g5 ~@10",
})).s("gm_trumpet").gain(0.64).pan(0.6)

// other · trumpet · soft notes
const trumpet_soft = note("<~@110 A B C ~ D E F ~@4 G ~@24>".pickRestart({
  A: "~@14 [a5,bb5] db6", B: "~@14 db6!2", C: "~@10 eb6 d6 [d6,eb6] eb6 ~@2", D: "~@13 [gb4,g4] ~@2",
  E: "~@2 [bb4,g5] ~@11 [f5,a5,b5] e5", F: "~@8 g5@2 [gb5,a5] ~ g5@2 [gb5,a5] ~", G: "~@5 bb5 ~@6 db6 c6 b5 ~",
})).s("gm_trumpet").gain(0.32).pan(0.6)

// chords · pad new age · "FANTASIA"
const pad_new_age = note(`<
  ~@12 A ~@3 B C D ~ E F G ~@2 H ~ D ~ H ~@3 A ~@3 A ~@3 B C D ~ A ~@3 B C D ~ E F G ~@2 H ~ D ~ H ~ D ~@81
>`.pickRestart({
  A: "[d4,f4,g4,bb4]", B: "[c4,d4,f4,a4]@3 ~", C: "[bb3,d4,eb4,g4]@3 ~", D: "[d4,f4,g4,bb4]@3 ~",
  E: "[bb3,c4,eb4,g4]@7 ~", F: "[c4,d4,f4,a4]@7 ~", G: "[d4,eb4,g4,bb4]@7 ~", H: "[c4,f4,a4]@3 ~",
})).s("gm_pad_new_age").gain(0.36)

// chords · synth bass 2 · "#SYNBASS 2"
const synth_bass_2 = note(`<
  ~@19 A ~@3 B ~@2 C ~ D ~ C E F ~@3 G ~@7 A ~@3 A ~@3 H ~@3 I ~@2 J ~ K ~ C ~ L M ~@5 N ~@73
>`.pickRestart({
  A: "~@10 g2!2 g1 g2!2 ~", B: "[c2,c3,eb3]@3 ~@3 [d2,d3,f3]@3 ~@3 [eb2,eb3,g3]@3 ~",
  C: "[a3,c4,f4] ~@2 [a3,c4,f4] ~ [a3,c4,f4] f2 ~ [a3,c4,f4] ~ [a3,c4,f4] ~@5", // F
  D: "[bb3,d4,f4] ~@2 [bb3,d4,f4] ~@3 g2!2 g3 [bb3,d4,f4] g3!2 [bb3,d4,f4] ~@2", E: "g1@3 g2@3 d3@4 ~@6",
  F: "~@11 d3 d3@2 d2@2", G: "~@10 [g2,bb3]!2 g1 [g2,bb3] [g2,f4] ~", H: "~@10 [g2,g3]!2 [g1,g2] [g2,g3]!2 ~",
  I: "[c2,eb3,g3,bb3]@3 ~@3 [d2,f3,a3,c4]@3 ~@3 [eb2,g3,bb3,eb4]@3 ~", // Cm7 Dm7 Eb
  J: "[a3,c4,f4] ~@2 [a3,c4,f4] ~ [a3,c4,f4] f3 f2 [a3,c4,f4] ~ [a3,c4,f4] ~@5", // F
  K: "[g2,g3]@2 ~ d3 [g2,g3] d3 f3 [a3,c4] ~ [a3,c4] ~ d3 [f3,a3,c4]@2 ~@2", // G Am F
  L: "g2@2 ~ bb2 g2@2 ~ d3 ~ c3 ~ bb2 g2@2 ~@2", M: "~@5 f2 g2 a2@3 ~@6", N: "f2@3 g2@3 g2@5 ~@5",
})).s("gm_synth_bass_2").gain(0.42).pan(0.3)

// other · piano · "A.PIANO 1"
const piano = note(`<
  ~@25 A@3 B A@2 ~@27 A@3 B A@3 C D@6 ~@5 E F@14 G F@5 H F@10 I ~ J K@3 L K@7 J K@19 M N ~
>`.pickRestart({
  A: "~@6 ab3!2 ~@2 ab3 ~@3 ab3!2", B: "~@6 ab3!2 ~ ab3!2 ~@3 ab3!2", C: "~@4 ab3 ~@2 ab3 ~ ab3 ~ ab3!2 ~@3",
  D: "~@6 ab3!2 ~@2 ab3!2 ~@2 ab3!2", E: "~@7 ab3 ~@3 ab3 ~@3 ab3", F: "~@2 ab3 ~@4 ab3 ~@3 ab3 ~@3 ab3",
  G: "~@2 ab3 ~ ab3 ~@2 ab3!2 ~ ab3!3 ~ ab3!2", H: "~@2 ab3 ~@4 ab3 ~@8", I: "~@2 ab3 ~@4 ab3 ~@3 ab3 ~@4",
  J: "~@14 ab3 ~", K: "~@3 ab3 ~@3 ab3 ~@3 ab3 ~@2 ab3 ~", L: "ab3 ~@2 ab3!2 ~ ab3!3 ~ ab3 ~@3 ab3 ~",
  M: "~@3 ab3 ~@2 ab3 ~@2 ab3 ~@4 ab3 ~", N: "~@3 ab3 ~@3 ab3 ~@8",
})).s("gm_piano").gain(0.48)

// other · synth drum · "#EL.PERC 1"
const synth_drum = note("<~@10 A B ~@11 C@2 ~@6 D E ~@23 F@2 ~@7 G ~@5 H D ~@25 I J ~@46>".pickRestart({
  A: "~@8 g2 ~@2 g2 ~@4", B: "~@2 f5!2 ~@2 b4!2 g3@3 ~ [g2,b2]@3 ~", C: "[~@15 g4@2 ~@2 g4@2 ~@7 c4!2 c4@2]/2",
  D: "~@3 g4@3 d4@2 ~@8", E: "~@8 a4@3 ~ c4@2 a4@2, ~@11 a4@2 ~@3",
  F: "[~@15 g4@2 ~@2 g4@2 ~ g4@2 ~ g4@2 ~ g4 e4 c4 b3]/2", G: "eb4@3 ~ eb4@3 c5@2 bb4@2 ~ eb4@2 eb4 ~, ~@11 c5@2 ~@3",
  H: "~@11 c5 ~@2 c4@2", I: "~@10 c5@3 g4@3", J: "eb4@3 ~@13",
})).s("gm_synth_drum").gain(0.64)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A ~@5 B@14 C B@6 D ~ B@24 C B@8 ~@4 E@3 ~@4 F@21 G F@10 H I J K@10 L M K L K N K@15 O P Q
>`.pickRestart({
  A: "x", B: "x!2", C: "~@4 x ~ x ~@2 x ~@2 x ~@3", D: "x!2 ~@2", E: "x ~@2 x ~@2 x ~@9",
  F: "x ~@2 x ~@2 x ~ x ~@5 x ~", G: "x ~@2 x ~@2 x ~ x ~ x ~@2 x ~@2", H: "x ~@2 x ~@2 x ~ x ~@2 x ~@3 x",
  I: "~@3 x ~ x ~ x ~ x ~ x ~@4", J: "~@12 x ~@2 x", K: "~@2 x ~ x ~@5 x ~ x ~@2 x", L: "~ x!2 ~@2 x!3",
  M: "x ~ x!2 ~ x ~@6 x ~@2 x", N: "~@2 x ~@4 x ~@2 x ~ x ~@2 x", O: "~@2 x ~ x ~ x ~@2 x ~@2 x ~@2 x",
// … 167 more lines

More by Gloria Estefan