Strudelify
Cielito Lindo cover art

Trini Lopez: Ao Vivo Outra Vez

Cielito Lindo

Trini Lopez

KeyG majorTempo160 bpm
0:00/0:00
// Cielito Lindo — Trini Lopez
// 160 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/3)

// 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 · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@4 A B A C D E F@2 G@6 H@2 I J K L M N@7 O P@3 ~@4 A B A C D E F@2 G@6 H@2 I J K L M N@7 O P@3 Q R S T U V@2 W X Y Z
  AA X AB AC@2 AD@6 AE@2 AF AG AH AI AJ AK@7 AL AM@3 AN AO AP AQ@5 AR AS AT AU AR AV AW@2 AX@6 AY@2 AZ BA BB BC BD BE@7
  BF BG@3 BH BI BJ BK BL BM BN BO
>`.pickRestart({
  A: "[d2,d3] ~@4 [a3,d4,f#4]@10 ~", B: "[a1,a2] ~@4 [a3,c#4,g4]@8 ~@3", C: "[a1,a2] ~@4 [a3,c#4,g4]@10 [d2,d3]",
  D: "~@5 [a3,d4,f#4]@10 ~", E: "[d#2,d#3]@2 ~@3 [a3,c#4,f#4]@9 ~@2",
  F: "[[e2,e3]@2 ~@8 b2 ~@5 e3@5 ~@11, ~@5 [g3,b3,e4,g4]@17 ~@10]/2", // E Em
  G: "[[a1,a2]@2 ~@3 [g3,c#4,e4,g4]@10 e2@2 ~@4 [g3,c#4,e4,g4]@10 [a1,a2]@2 ~@4 [g3,c#4,e4,g4]@10 e2@2 ~@4 [g3,c#4,e4,g4]@10 ~ a1@2 ~@3 [g3,c#4,e4,g4]@10 e2@2 ~@4 [g3,c#4,e4]@10 ~, ~@63 a2@2 ~@19 g4@10 ~@2]/6", // A C#dim A C#dim
  H: "[[d2,d3]@2 ~@8 a2@2 ~@4 d3@5 ~@11, ~ [a3,d4,f#4]@4 ~@3]/2", I: "[d2,d3]@4 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,f#4]@2 ~@4",
  J: "[f#2,f#3]@3 ~@2 [a#3,d4,f#4]@2 ~@3 [a#3,d4] ~@5, ~@5 f#4 ~@2", K: "[g2,g3]@3 ~@2 [b3,d4,g4] ~@4 [d4,g4] b3 ~@4",
  L: "[e2,e3]@3 ~@2 [b3,d4,g4] ~@4 [b3,d4,g4] ~@5", M: "[a2,a3]@3 ~@2 [b3,d4,g4] ~@4 [b3,d4,g4] ~@5",
  N: "[[a1,a2]@3 ~@2 [c#4,g4] ~@4 [a3,c#4,g4] ~@4 [d2,d3]@4 ~ [d4,f#4]@2 ~@4 [a3,d4,f#4] ~@5 d3@3 ~@2 [a3,d4,f#4]@2 ~@9 d3@3 ~@2 [f#3,a3]@10 [d#2,d#3]@4 ~ b3@6 c4@5 [e2,e3]@3 ~@3 [g3,b3]@10 [a1,a2]@2 ~@4 [g3,a3,e4]@10 ~, ~@5 a3@2 ~@13 a3 ~@10 d2@3 ~@13 d2@3 ~@18 f#3@10 ~@34]/7", // A C#dim A7 D F#m D# E G …
  O: "[e2,e3]@3 ~@2 [g3,b3]@11", // E G
  P: "[[a1,a2]@2 ~@3 b3@5 c#4@5 [d2,d3]@2 ~@9 a2@2 ~@3 d3@4 ~@13, ~@5 g3@10 ~@6 [f#3,d4]@15 ~@12]/3", // A D
  Q: "[f#4,a4,d5] ~@4 [f#4,a4,d5] ~@2 d4 ~ [d4,f#4,a4,d5] ~@2 b3 ~ d5, d4@5 ~@11", // D
  R: "[g4,a4] ~@4 [g4,a4,d5] ~@2 e4 ~ [e4,g4,a4,d5] ~@2 b3 ~ d5, e4@5 ~@11", // Gsus2 Em7
  S: "[f#4,a4] ~@4 [f#4,a4,d5] ~@2 d4 ~ [d4,f#4,a4,d5] ~ b3 ~@2 [e4,g4,a4,e5], d4@5 ~@11", T: "~@5 [a2,a3]@6 ~@5",
  U: "[f#4,a4,d5] ~@4 [f#4,a4,d5] ~@2 d4 ~ [d4,f#4,a4,d5] ~@2 b3 ~@2, d4@5 ~@11", // D
  V: "[[g4,a4,d5] ~@4 [g4,a4,d5] ~ e4 ~@2 [e4,g4,a4,d5] ~@2 b3 ~ [f#4,a4,d5] ~@5 [f#4,a4,d5] ~@2 d4 ~ [d4,f#4,a4,d5] ~ b3 ~@2 [c4,f4,g4,a#4,d5], e4@5 ~@10 d4@6 ~@11]/2", // Gsus2 Em7 D Gm7
  W: "~@5 [c2,c3,e4,g4,a#4,c5]@6 ~@5", X: "~@5 [c4,f4,a4]@9 ~@2", Y: "[c2,c3] ~@4 [c4,e4,a#4]@8 ~@3",
  Z: "[f2,f3] ~@4 [c4,f4,a4]@10 ~", AA: "[c2,c3] ~@4 [c4,e4,a#4]@10 [f2,f3]", AB: "[f#2,f#3]@2 ~@3 [c4,e4,a4]@9 ~@2",
  AC: "[[g2,g3]@2 ~@8 d3 ~@5 g3@5 ~@11, ~@5 [a#3,d4,g4,a#4]@17 ~@10]/2", // G Gm
  AD: "[[c2,c3]@2 ~@3 [a#3,e4,g4,a#4]@10 g2@2 ~@4 [a#3,e4,g4,a#4]@10 [c2,c3]@2 ~@4 [a#3,e4,g4,a#4]@10 g2@2 ~@4 [a#3,e4,g4,a#4]@10 ~ c2@2 ~@3 [a#3,e4,g4,a#4]@10 g2@2 ~@4 [a#3,e4,g4]@10 ~, ~@63 c3@2 ~@19 a#4@10 ~@2]/6", // C Edim C Edim
  AE: "[[f2,f3]@2 ~@8 c3@2 ~@4 f3@5 ~@11, ~ [c4,f4,a4]@4 ~@3]/2", AF: "[f2,f3]@4 ~ [c4,f4,a4]@2 ~@3 [c4,f4,a4]@2 ~@4",
  AG: "[a2,a3]@3 ~@2 [c#4,f4,a4]@2 ~@3 [c#4,f4] ~@5, ~@5 a4 ~@2", AH: "[a#2,a#3]@3 ~@2 [d4,f4,a#4] ~@4 [f4,a#4] d4 ~@4",
  AI: "[g2,g3]@3 ~@2 [d4,f4,a#4] ~@4 [d4,f4,a#4] ~@5", AJ: "[c3,c4]@3 ~@2 [d4,f4,a#4] ~@4 [d4,f4,a#4] ~@5",
  AK: "[[c2,c3]@3 ~@2 [e4,a#4] ~@4 [c4,e4,a#4] ~@4 [f2,f3]@4 ~ [f4,a4]@2 ~@4 [c4,f4,a4] ~@5 f3@3 ~@2 [c4,f4,a4]@2 ~@9 f3@3 ~@2 [a3,c4]@10 [f#2,f#3]@4 ~ d4@6 d#4@5 [g2,g3]@3 ~@3 [a#3,d4]@10 [c2,c3]@2 ~@4 [a#3,c4,g4]@10 ~, ~@5 c4@2 ~@13 c4 ~@10 f2@3 ~@13 f2@3 ~@18 a3@10 ~@34]/7", // C Edim C7 F Am F# G A# …
  AL: "[g2,g3]@3 ~@2 [a#3,d4]@11", // G A#
  AM: "[[c2,c3]@2 ~@3 d4@5 e4@5 [f2,f3]@2 ~@9 c3@2 ~@3 f3@4 ~@13, ~@5 a#3@10 ~@6 [a3,f4]@15 ~@12]/3", // C F Dm
  AN: "~@2 c5@2 ~ e5@3 d6@3 c6@2 f5@3, a4@15 ~", AO: "~@2 g#4@3 c#4@3 d#4@2 f4@3 c5@3, g#5@15 ~",
  AP: "~@3 d5@2 e5@3 c6@2 f#5@3 c5@2 ~, [g4,a#4]", // Gm
  AQ: "[~@3 f4@2 g3@3 a3@3 b3@2 ~@51 f5@16, [b4,d#5], g5@4 ~, ~@13 c#3@67]/5", AR: "~@5 [g3,c4,e4]@9 ~@2",
  AS: "[g1,g2] ~@4 [g3,b3,f4]@8 ~@3", AT: "[c2,c3] ~@4 [g3,c4,e4]@10 ~", AU: "[g1,g2] ~@4 [g3,b3,f4]@10 [c2,c3]",
  AV: "[c#2,c#3]@2 ~@3 [g3,b3,e4]@9 ~@2", AW: "[[d2,d3]@2 ~@8 a2 ~@5 d3@5 ~@11, ~@5 [f3,a3,d4,f4]@17 ~@10]/2",
  AX: "[[g1,g2]@2 ~@3 [f3,b3,d4,f4]@10 d2@2 ~@4 [f3,b3,d4,f4]@10 [g1,g2]@2 ~@4 [f3,b3,d4,f4]@10 d2@2 ~@4 [f3,b3,d4,f4]@10 ~ g1@2 ~@3 [f3,b3,d4,f4]@10 d2@2 ~@4 [f3,b3,d4]@10 ~, ~@63 g2@2 ~@19 f4@10 ~@2]/6", // G Bdim G Bdim
  AY: "[[c2,c3]@2 ~@8 g2@2 ~@4 c3@5 ~@11, ~ [g3,c4,e4]@4 ~@3]/2", AZ: "[c2,c3]@4 ~ [g3,c4,e4]@2 ~@3 [g3,c4,e4]@2 ~@4",
  BA: "[e2,e3]@3 ~@2 [g#3,c4,e4]@2 ~@3 [g#3,c4] ~@5, ~@5 e4 ~@2", BB: "[f2,f3]@3 ~@2 [a3,c4,f4] ~@4 [c4,f4] a3 ~@4",
  BC: "[d2,d3]@3 ~@2 [a3,c4,f4] ~@4 [a3,c4,f4] ~@5", BD: "[g2,g3]@3 ~@2 [a3,c4,f4] ~@4 [a3,c4,f4] ~@5",
  BE: "[[g1,g2]@3 ~@2 [b3,f4] ~@4 [g3,b3,f4] ~@4 [c2,c3]@4 ~ [c4,e4]@2 ~@4 [g3,c4,e4] ~@5 c3@3 ~@2 [g3,c4,e4]@2 ~@9 c3@3 ~@2 [e3,g3]@10 [c#2,c#3]@4 ~ a3@6 a#3@5 [d2,d3]@3 ~@3 [f3,a3]@10 [g1,g2]@2 ~@4 [f3,g3,d4]@10 ~, ~@5 g3@2 ~@13 g3 ~@10 c2@3 ~@13 c2@3 ~@18 e3@10 ~@34]/7", // G Bdim G7 C Em C# D F …
  BF: "[d2,d3]@3 ~@2 [f3,a3]@11", // D F
  BG: "[[g1,g2]@2 ~@3 a3@5 b3@5 [c2,c3]@2 ~@9 g2@2 ~@3 c3@4 ~@13, ~@5 f3@10 ~@6 [e3,c4]@15 ~@12]/3", // G C
  BH: "[d2,d3]@3 ~@2 [g3,b3,f4] ~@4 [g3,b3,f4] ~@5", BI: "[g1,g2]@3 ~@2 [g3,b3,f4] ~@4 [g3,b3,f4] ~@5",
  BJ: "[c2,c3]@3 ~@2 [g3,c4,e4] ~@4 [g3,c4,e4] ~@5", BK: "[g1,g2]@3 ~ e4 [g3,c4] ~@4 [g3,c4,e4] ~@5",
  BL: "[f1,f2]@3 ~@2 [a3,c4,f4] ~@4 [a3,c4,f4] ~@5", BM: "[g1,g2]@3 ~@2 [b3,d4,f4,g4] ~@4 [b3,d4,f4,g4] ~@5",
  BN: "[c2,c3,c4,e4,g4]@2 ~@8 [g2,c4,e4,g4] ~@5", BO: "[c4,e4,g4] ~@7",
})).s("gm_string_ensemble_1").gain(0.21)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note(`<
  ~@3 A B C B D E@2 F@7 G@3 H@5 I@3 J K@5 L@2 ~@3 A B C B D E@2 F@7 G@3 H@5 I@3 J K@5 L@2 ~@8 M N M O P@2 Q@7 R@3 S@5
  T@3 U V@5 W@2 ~@8 X Y X Z AA@2 AB@7 AC@3 AD@5 AE@3 AF AG@5 AH@2 AI AJ AK AJ AL AM AN@2
>`.pickRestart({
  A: "~@13 [a4,a5]@3", B: "[d5,d6]@2 ~@3 [d5,d6]@8 [b4,b5]@3", C: "[c#5,c#6]@11 [a4,a5]@5",
  D: "[c#5,c#6]@10 [a4,a5]@5 ~", E: "[[d5,d6]@2 ~@3 [d5,d6]@8 [b4,b5]@8 [c#5,c#6]@8 [a4,a5]@3]/2",
  F: "[~ [a4,a5]@2 [g4,g5]@2 [e4,e5]@13 e5@3 [d#5,f#5]@2 ~ g5@2 [c#5,a5]@3 [b4,b5]@2 ~ c#6@4 ~ c#6@5 c#6@11 b4@5 ~@3 a5@2 ~@2 f#5@2 e5@2 [b4,g5]@5 ~@3 d5@2 c#5@3 b4@3 f#5@5 g5@5 a5@3 c#5@2 ~ e5@2 g5@3 a5@3 c#6@3, [g4,g5]@2 ~@21 d5@3 ~@5 a4@22 b5@8 ~@3 g5@4 ~@32 a5@5 ~@7, ~@58 c#5@5 e5@2 ~@9 e5@11 a4@14 ~@13]/7", // A G E D#m F#m B Em G
  G: "[f#6@2 e6@3 g5@5 ~@3 c#6@2 e5@2 f#5@2 e5@2 d6@13 a5@3 b5@2 c#6@2 ~ d6@3 e6@3, ~@5 b5@8 ~@2 c#6@6 ~@27, ~@10 f#5@6 ~@5 d5@11 ~@16]/3",
  H: "[~@2 f6@3 e6@3 d#6@2 d6@3 ~@5 c6@3 b5@3 a#5@2 ~ a5@2 ~@6 g5@2 f#5@3 f5@2 e5@3 d#5@2 ~@3 c#5@3 b4@3 a#4@3 a4@2 g#4@2 ~@3 d#6@3 d6@3 c#6@2 c6@3 b5@3, f#6@16 e6@11 ~@2 g#5@6 ~@13 d5@13 ~@2 e6@15 ~@2, ~@13 c#6@6 ~@7 d6@6 b5@32 [g4,b4]@5 ~@11]/5", // G
  I: "[a#5@2 a5@3 g#5@3 g5@2 ~@3 f5@2 ~@3 d#5@2 ~@3 c#5@3 c5@3 b4@2 a#4@3 c5@3 a4@3 ~@2 [a3,f#4,d5,a5]@5 ~, e6@10 f#5@9 ~@29, ~@11 d6@4 e5@3 ~@3 d5@17 ~@10, ~@16 f#6@5 d6@19 ~@8]/3", // D
  J: "[d5,b5]@5 ~@5 [a3,d5,a5]@6, [b3,f#4]@3 ~@7 f#4@4 ~@2", // G D5 B5
  K: "[[f#5,b5]@5 [b3,f#4]@4 ~ [a3,f#4,c5,a5]@4 ~ [g4,e5,b5,g6]@4 ~@2 [g4,e5,b5,g6]@5 ~ [g5,e6]@7 ~@3 [a4,e5,c#6]@5 ~ a5@4 ~ [e5,b5]@5 ~@5 [e5,a5]@11 [g3,e4,b4,g5]@5 ~ e4@4 ~, [b3,f#4]@3 ~@23 [e4,b4]@8 ~@8 [c#4,a4,c#5]@5 [b3,g4]@5 ~@6 [c#4,a4]@6 ~@10 [a3,a4,a5]@6]/5", // B5 F#dim Em C A E5 A5 Em …
  L: "[[d4,d5,f#5]@2 [e4,g4,c#5,e5]@3 [f#4,a4,d5]@17 ~@10]/2", M: "[f5,f6]@2 ~@3 [f5,f6]@8 [d5,d6]@3",
  N: "[e5,e6]@11 [c5,c6]@5", O: "[e5,e6]@10 [c5,c6]@5 ~",
  P: "[[f5,f6]@2 ~@3 [f5,f6]@8 [d5,d6]@8 [e5,e6]@8 [c5,c6]@3]/2", // F D E C
  Q: "[~ [c5,c6]@2 [a#4,a#5]@2 [g4,g5]@13 g5@3 [f#5,a5]@2 ~ a#5@2 [e5,c6]@3 [d5,d6]@2 ~ e6@4 ~ e6@5 e6@11 d5@5 ~@3 c6@2 ~@2 a5@2 g5@2 [d5,a#5]@5 ~@3 f5@2 e5@3 d5@3 a5@5 a#5@5 c6@3 e5@2 ~ g5@2 a#5@3 c6@3 e6@3, [a#4,a#5]@2 ~@21 f5@3 ~@5 c5@22 d6@8 ~@3 a#5@4 ~@32 c6@5 ~@7, ~@58 e5@5 g5@2 ~@9 g5@11 c5@14 ~@13]/7", // C A# G F#m C D Gm A#
  R: "[a6@2 g6@3 a#5@5 ~@3 e6@2 g5@2 a5@2 g5@2 f6@13 c6@3 d6@2 e6@2 ~ f6@3 g6@3, ~@5 d6@8 ~@2 e6@6 ~@27, ~@10 a5@6 ~@5 f5@11 ~@16]/3",
  S: "[~@2 g#6@3 g6@3 f#6@2 f6@3 ~@5 d#6@3 d6@3 c#6@2 ~ c6@2 ~@6 a#5@2 a5@3 g#5@2 g5@3 f#5@2 ~@3 e5@3 d5@3 c#5@3 c5@2 b4@2 ~@3 f#6@3 f6@3 e6@2 d#6@3 d6@3, a6@16 g6@11 ~@2 b5@6 ~@13 f5@13 ~@2 g6@15 ~@2, ~@13 e6@6 ~@7 f6@6 d6@32 [a#4,d5]@5 ~@11]/5", // A#
  T: "[c#6@2 c6@3 b5@3 a#5@2 ~@3 g#5@2 ~@3 f#5@2 ~@3 e5@3 d#5@3 d5@2 c#5@3 d#5@3 c5@3 ~@2 [c4,a4,f5,c6]@5 ~, g6@10 a5@9 ~@29, ~@11 f6@4 g5@3 ~@3 f5@17 ~@10, ~@16 a6@5 f6@19 ~@8]/3", // F
  U: "[f5,d6]@5 ~@5 [c4,f5,c6]@6, [d4,a4]@3 ~@7 a4@4 ~@2", // Dm F5 D5
  V: "[[a5,d6]@5 [d4,a4]@4 ~ [c4,a4,d#5,c6]@4 ~ [a#4,g5,d6,a#6]@4 ~@2 [a#4,g5,d6,a#6]@5 ~ [a#5,g6]@7 ~@3 [c5,g5,e6]@5 ~ c6@4 ~ [g5,d6]@5 ~@5 [g5,c6]@11 [a#3,g4,d5,a#5]@5 ~ g4@4 ~, [d4,a4]@3 ~@23 [g4,d5]@8 ~@8 [e4,c5,e5]@5 [d4,a#4]@5 ~@6 [e4,c5]@6 ~@10 [c4,c5,c6]@6]/5", // D5 Adim Gm D# C G5 C5 Gm …
  W: "[[f4,f5,a5]@2 [g4,a#4,e5,g5]@3 [a4,c5,f5]@17 ~@10]/2", X: "[c5,c6]@2 ~@3 [c5,c6]@8 [a4,a5]@3",
  Y: "[b4,b5]@11 [g4,g5]@5", Z: "[b4,b5]@10 [g4,g5]@5 ~",
  AA: "[[c5,c6]@2 ~@3 [c5,c6]@8 [a4,a5]@8 [b4,b5]@8 [g4,g5]@3]/2", // C A B G
  AB: "[~ [g4,g5]@2 [f4,f5]@2 [d4,d5]@13 d5@3 [c#5,e5]@2 ~ f5@2 [b4,g5]@3 [a4,a5]@2 ~ b5@4 ~ b5@5 b5@11 a4@5 ~@3 g5@2 ~@2 e5@2 d5@2 [a4,f5]@5 ~@3 c5@2 b4@3 a4@3 e5@5 f5@5 g5@3 b4@2 ~ d5@2 f5@3 g5@3 b5@3, [f4,f5]@2 ~@21 c5@3 ~@5 g4@22 a5@8 ~@3 f5@4 ~@32 g5@5 ~@7, ~@58 b4@5 d5@2 ~@9 d5@11 g4@14 ~@13]/7", // G F D C#m Em A Dm F
  AC: "[e6@2 d6@3 f5@5 ~@3 b5@2 d5@2 e5@2 d5@2 c6@13 g5@3 a5@2 b5@2 ~ c6@3 d6@3, ~@5 a5@8 ~@2 b5@6 ~@27, ~@10 e5@6 ~@5 c5@11 ~@16]/3",
  AD: "[~@2 d#6@3 d6@3 c#6@2 c6@3 ~@5 a#5@3 a5@3 g#5@2 ~ g5@2 ~@6 f5@2 e5@3 d#5@2 d5@3 c#5@2 ~@3 b4@3 a4@3 g#4@3 g4@2 f#4@2 ~@3 c#6@3 c6@3 b5@2 a#5@3 a5@3, e6@16 d6@11 ~@2 f#5@6 ~@13 c5@13 ~@2 d6@15 ~@2, ~@13 b5@6 ~@7 c6@6 a5@32 [f4,a4]@5 ~@11]/5", // F
  AE: "[g#5@2 g5@3 f#5@3 f5@2 ~@3 d#5@2 ~@3 c#5@2 ~@3 b4@3 a#4@3 a4@2 g#4@3 a#4@3 g4@3 ~@2 [g3,e4,c5,g5]@5 ~, d6@10 e5@9 ~@29, ~@11 c6@4 d5@3 ~@3 c5@17 ~@10, ~@16 e6@5 c6@19 ~@8]/3", // C
  AF: "[c5,a5]@5 ~@5 [g3,c5,g5]@6, [a3,e4]@3 ~@7 e4@4 ~@2", // F C5 A5
  AG: "[[e5,a5]@5 [a3,e4]@4 ~ [g3,e4,a#4,g5]@4 ~ [f4,d5,a5,f6]@4 ~@2 [f4,d5,a5,f6]@5 ~ [f5,d6]@7 ~@3 [g4,d5,b5]@5 ~ g5@4 ~ [d5,a5]@5 ~@5 [d5,g5]@11 [f3,d4,a4,f5]@5 ~ d4@4 ~, [a3,e4]@3 ~@23 [d4,a4]@8 ~@8 [b3,g4,b4]@5 [a3,f4]@5 ~@6 [b3,g4]@6 ~@10 [g3,g4,g5]@6]/5", // A5 Edim Dm G D5 G5 Dm A5 …
  AH: "[[c4,c5,e5]@2 [d4,f4,b4,d5]@3 [e4,g4,c5]@17 ~@5 g4@3 ~@2]/2", AI: "f5@10 ~ d5@2 ~@3", AJ: "~@5 g4 ~@4 g4 ~@5",
  AK: "e5@10 c5@3 ~@3", AL: "a4@5 c5@5 a4@4 ~@2", AM: "b4@5 d5@5 g5@3 ~@3", AN: "[g5@21 ~@11]/2",
})).s("gm_string_ensemble_2").gain(0.36)

// bass · pizzicato strings · "PIZZICATO"
const bass = note(`<
  ~@4 A B A B A C D E B F B G B G H I A J K G L B A@2 M C G B G B H I ~@4 A B A B A C D E B F B G B G H I A J K G L B
  A@2 M C G B G B H I ~@8 N O N O N J P Q O R O K O K S T N L U K V O N@2 W J K O K O S T ~@8 O X O X O Y H I X M X A X
  A Z V O G N A K X O@2 AA Y A X A X Z V ~@8
>`.pickRestart({
  A: "d2 ~@15", B: "a1 ~@15", C: "d#2 ~@7", D: "e2 ~@9 b2 ~@5", E: "e3 ~@15", F: "~ e2 ~@14", G: "e2 ~@15",
  H: "d2 ~@9 a2 ~@5", I: "d3 ~@15", J: "f#2 ~@7", K: "g2 ~@15", L: "a2 ~@15", M: "~ d2@2 ~@13", N: "f2 ~@15",
  O: "c2 ~@15", P: "g2 ~@9 d3 ~@5", Q: "g3 ~@15", R: "~ g2 ~@14", S: "f2 ~@9 c3 ~@5", T: "f3 ~@15", U: "a#2 ~@15",
  V: "c3 ~@15", W: "~ f2@2 ~@13", X: "g1 ~@15", Y: "c#2 ~@7", Z: "c2 ~@9 g2 ~@5", AA: "~ c2@2 ~@13",
})).s("gm_pizzicato_strings").gain(0.2).pan(0.4)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  A B A B C D C E F G H I J K L K M N O P Q@4 R S T@2 U V W X Y Z AA AB A B A B C D C E F G H I J K L K M N O P Q@4 R S
  T@2 U V W X Y Z AA AB ~@8 AC AD AE AF AG AH AI AJ AK AL AM AL AN AO AP AQ AR@4 AS AT AU@2 AV AW AX AY AZ BA BB BC ~@8
  BD BE BF BG BH BI BJ BK BL BM BN BM BO BP BQ BR BS@4 BT BU BV@2 BW BX BY BZ CA CB CC CD CE@2 CF@2 CG CH CI CJ
>`.pickRestart({
  A: "d2@2 [f#4,d5] a4 ~ [f#4,a4,d5] ~@2 [f#4,a4,d5] ~ [f#4,a4,d5] ~@2 a1 ~@2", // D
  B: "e2@2 [g4,c#5,e5] ~@2 [g4,c#5,e5] ~ [g4,c#5,e5] ~@2 [g4,c#5,e5] ~@2 a1 ~@2", // C#dim
  C: "d2@5 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@2 [f#4,a4,d5] ~@4", D: "a1@5 [g4,c#5,e5]@7 ~@4", E: "a1@4 ~ [g4,c#5,e5]@6 ~@5",
  F: "d2 ~@4 [f#4,a4,d5] ~ [f#4,d5] a4 ~ [f#4,a4,d5] ~@5", G: "d#2@5 [f#4,a4,c#5]@9 ~@2",
  H: "e2@5 [e4,g4,b4] ~@2 [e4,g4,b4] ~ [e4,g4,b4] ~@5", I: "[e3,e4,g4,b4] ~@3",
  J: "a2@5 [e4,g4,a4,c#5] ~@4 [e4,g4,a4,c#5] ~@5", K: "e2@4 ~ [e4,g4,a4,c#5] ~@5 [e4,g4,a4,c#5] ~@4",
  L: "a2@3 ~@2 [e4,g4,a4,c#5] ~@4 c#5 [e4,g4,a4] ~@4", M: "a2@3 ~@2 [e4,g4,a4,c#5] ~@5 [e4,g4,a4,c#5] ~@4",
  N: "e2@3 ~@2 [e4,g4,a4,c#5] ~@5 [e4,g4,a4,c#5] ~@4", O: "d2@5 [f#4,d5] ~@2 [f#4,d5] ~ [a2,f#4,d5] ~@2 [f#4,d5] ~@2",
  P: "[d3,f#4,d5]@3 ~@13", Q: "[[d2,a3] [f#2,a#3] ~ e2, d4@21 ~@11, f#3 [g2,g3,b3]]/4", R: "[a2,g3,b3,d4]",
  S: "[a1,a3,c#4]", T: "[[f#3,a3,d4]@29 ~@3, d2@31 ~]/2", U: "~@5 d2 [f#3,a3] ~ [f#3,a3] ~ [d2,f#3,a3] ~@5",
  V: "~@5 [d#2,f#3,b3] ~@5 [d#2,f#3,c4] ~@4", W: "~@5 e2 [g3,b3] ~ [g3,b3] ~@2 [e2,g3,b3] ~@4",
  X: "~@6 [a2,g3,a3,e4] ~@4 [a2,g3,a3,e4] ~@4", Y: "~@6 [e2,g3,a3,e4] ~ [g3,a3,e4] ~@2 [e2,g3,a3,e4] ~@4",
  Z: "~@5 [g3,b3] ~@5 [a2,g3,c#4] ~@4, ~@5 a2@2 ~@9", AA: "~@5 [d3,f#3,d4] ~@2 [f#3,d4] ~@2 [a2,f#3,d4] ~@4",
  AB: "[d3,f#3,d4] ~@15", AC: "~@5 [a4,c5,f5] ~@2 [a4,c5,f5] ~@2 [a4,c5,f5] ~@4", AD: "c2@5 [a#4,e5,g5]@7 ~@4",
  AE: "f2@5 [a4,c5,f5] ~@2 [a4,c5,f5] ~@2 [a4,c5,f5] ~@4", AF: "c2@4 ~ [a#4,e5,g5]@6 ~@5",
  AG: "f2 ~@4 [a4,c5,f5] ~ [a4,f5] c5 ~ [a4,c5,f5] ~@5", AH: "f#2@5 [a4,c5,e5]@9 ~@2",
  AI: "g2@5 [g4,a#4,d5] ~@2 [g4,a#4,d5] ~ [g4,a#4,d5] ~@5", AJ: "[g3,g4,a#4,d5] ~@3",
  AK: "c3@5 [g4,a#4,c5,e5] ~@4 [g4,a#4,c5,e5] ~@5", AL: "g2@4 ~ [g4,a#4,c5,e5] ~@5 [g4,a#4,c5,e5] ~@4",
  AM: "c3@3 ~@2 [g4,a#4,c5,e5] ~@4 e5 [g4,a#4,c5] ~@4", AN: "c3@3 ~@2 [g4,a#4,c5,e5] ~@5 [g4,a#4,c5,e5] ~@4",
  AO: "g2@3 ~@2 [g4,a#4,c5,e5] ~@5 [g4,a#4,c5,e5] ~@4", AP: "f2@5 [a4,f5] ~@2 [a4,f5] ~ [c3,a4,f5] ~@2 [a4,f5] ~@2",
  AQ: "[f3,a4,f5]@3 ~@13", AR: "[[f2,c4] [a2,c#4] ~ g2, f4@21 ~@11, a3 [a#2,a#3,d4]]/4", AS: "[c3,a#3,d4,f4]",
  AT: "[c2,c4,e4]", AU: "[[a3,c4,f4]@29 ~@3, f2@31 ~]/2", AV: "~@5 f2 [a3,c4] ~ [a3,c4] ~ [f2,a3,c4] ~@5",
  AW: "~@5 [f#2,a3,d4] ~@5 [f#2,a3,d#4] ~@4", AX: "~@5 g2 [a#3,d4] ~ [a#3,d4] ~@2 [g2,a#3,d4] ~@4",
  AY: "~@6 [c3,a#3,c4,g4] ~@4 [c3,a#3,c4,g4] ~@4", AZ: "~@6 [g2,a#3,c4,g4] ~ [a#3,c4,g4] ~@2 [g2,a#3,c4,g4] ~@4",
  BA: "~@5 [a#3,d4] ~@5 [c3,a#3,e4] ~@4, ~@5 c3@2 ~@9", BB: "~@5 [f3,a3,f4] ~@2 [a3,f4] ~@2 [c3,a3,f4] ~@4",
  BC: "[f3,a3,f4] ~@15", BD: "~@5 [e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@4", BE: "g1@5 [f4,b4,d5]@7 ~@4",
  BF: "c2@5 [e4,g4,c5] ~@2 [e4,g4,c5] ~@2 [e4,g4,c5] ~@4", BG: "g1@4 ~ [f4,b4,d5]@6 ~@5",
  BH: "c2 ~@4 [e4,g4,c5] ~ [e4,c5] g4 ~ [e4,g4,c5] ~@5", BI: "c#2@5 [e4,g4,b4]@9 ~@2",
  BJ: "d2@5 [d4,f4,a4] ~@2 [d4,f4,a4] ~ [d4,f4,a4] ~@5", BK: "[d3,d4,f4,a4] ~@3",
  BL: "g2@5 [d4,f4,g4,b4] ~@4 [d4,f4,g4,b4] ~@5", BM: "d2@4 ~ [d4,f4,g4,b4] ~@5 [d4,f4,g4,b4] ~@4",
  BN: "g2@3 ~@2 [d4,f4,g4,b4] ~@4 b4 [d4,f4,g4] ~@4", BO: "g2@3 ~@2 [d4,f4,g4,b4] ~@5 [d4,f4,g4,b4] ~@4",
  BP: "d2@3 ~@2 [d4,f4,g4,b4] ~@5 [d4,f4,g4,b4] ~@4", BQ: "c2@5 [e4,c5] ~@2 [e4,c5] ~ [g2,e4,c5] ~@2 [e4,c5] ~@2",
  BR: "[c3,e4,c5]@3 ~@13", BS: "[[c2,g3] [e2,g#3] ~ d2, c4@21 ~@11, e3 [f2,f3,a3]]/4", BT: "[g2,f3,a3,c4]",
  BU: "[g1,g3,b3]", BV: "[[e3,g3,c4]@29 ~@3, c2@31 ~]/2", BW: "~@5 c2 [e3,g3] ~ [e3,g3] ~ [c2,e3,g3] ~@5",
  BX: "~@5 [c#2,e3,a3] ~@5 [c#2,e3,a#3] ~@4", BY: "~@5 d2 [f3,a3] ~ [f3,a3] ~@2 [d2,f3,a3] ~@4",
  BZ: "~@6 [g2,f3,g3,d4] ~@4 [g2,f3,g3,d4] ~@4", CA: "~@6 [d2,f3,g3,d4] ~ [f3,g3,d4] ~@2 [d2,f3,g3,d4] ~@4",
  CB: "~@5 [f3,a3] ~@5 [g2,f3,b3] ~@4, ~@5 g2@2 ~@9", CC: "~@5 [c3,e3,c4] ~@2 [e3,c4] ~@2 [g2,e3,c4] ~@4",
  CD: "[c3,e3,c4] ~@15", CE: "[d3,g3,b3,f4]/2", CF: "[c3,g3,c4,e4]/2", CG: "[f2,a3,c4,f4]", CH: "[g2,g3,b3,f4]@15 ~",
  CI: "[c3,g3,c4,e4]@7 ~@3 [g2,g3,c4,e4] ~@5", CJ: "[g3,c4]@5 ~@11, e4@3 ~@13, c2 ~@15",
})).s("gm_brass_section").gain(0.22)

// chords · orchestral harp · "HARP"
const orchestral_harp = note("<~@113 A ~@4 B@3 ~@39>".pickRestart({
  A: "~@2 [a#3,g#4,a#5,g#6] ~@13", // A#7
  B: "[~@29 b5@2 [e5,g5,c6] ~@16, ~@15 c#3@6 c#4@2 g#4 b4@2 c#5 f5 g#5@3 c3@2 ~@15, ~@17 f3@15 ~@16, ~@9 g#3@2 f4@5 ~@8, ~@5 b3@3 ~@4]/3", // C
})).s("gm_orchestral_harp").gain(0.17).pan(0.4)

// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note("<~@117 A B ~@32 C D E F E G H I ~>".pickRestart({
  A: "d#6 ~@15", B: "b5 ~@15", C: "~@11 g5 ~@4", D: "f6@6 ~@5 d6 ~@4", E: "~@5 g5 ~@4 g5 ~@5", F: "e6@4 ~@6 c6 ~@5",
  G: "a5@2 ~@3 c6 ~@4 a5 ~@5", H: "b5 ~@4 d6 ~@4 g6 ~@5", I: "g6 ~@7",
})).s("gm_glockenspiel").gain(0.18)

// drums · clap
const clap = s("cp").struct(`<
  ~@26 A B C D E F G H I J ~@26 A B C D E F G H I J ~@70 A B C D E F G H I J ~@8
>`.pickRestart({
  A: "~@5 x ~ x ~ x!2 ~@5", B: "x ~ x ~ x!2 ~@10", C: "~@6 x!2 ~ x!2 ~@5", D: "x ~ x ~@2 x ~@10",
  E: "~@5 x ~ x!2 ~ x ~@4 x", F: "x ~@2 x ~ x ~@5 x ~ x!2 ~", G: "x ~@2 x ~ x ~@4 x!2 ~ x ~@2",
  H: "x ~ x ~ x ~ x ~@4 x ~ x!2 ~", I: "x ~@4 x ~ x ~ x!2 ~@2 x ~ x", J: "x",
})).gain(0.2)

// drums · splash
const splash = s("cr").struct(`<
  ~@4 A ~ A ~ B ~ B ~@9 C@6 ~@9 D ~@4 A ~ A ~ B ~ B ~@9 C@6 ~@9 D ~@3 D ~@3 D ~@40 A ~ A ~ B ~ B ~@9 C@6 ~@9 D ~@7 C
>`.pickRestart({
  A: "~@5 x ~@2 x ~@2 x ~@4", B: "~@5 x ~ x ~@2 x ~@5", C: "x", D: "~@5 x ~@10",
})).gain(0.2)

// drums · triangle
const triangle = s("triangles:35").struct(`<
  ~@7 A ~@3 B ~@16 B ~ B ~ B C ~@9 A ~@3 B ~@16 B ~ B ~ B C ~@53 A ~@3 B ~@16 B ~ B ~ B C ~@10
>`.pickRestart({
  A: "~@5 x ~@10", B: "x", C: "~@15 x",
})).gain(1.95)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct(`<
  A@4 ~ B ~ B ~ B ~@26 A@4 ~ B ~ B ~ B ~@26 C@2 D E F C D G ~@41 B ~ B ~ B ~@34
>`.pickRestart({
  A: "~@2 x ~@2 x ~ x ~@2 x ~@5", B: "~@5 x ~@10", C: "x ~@4 x ~@2 x ~@2 x ~@4", D: "x ~@4 x ~ x ~@2 x ~@5",
  E: "x ~@14 x", F: "~@5 x ~ x ~@2 x ~@5", G: "x",
})).gain(0.86)

stack(
  string_ensemble_1, string_ensemble_2, bass, brass_section, orchestral_harp, glockenspiel, clap, splash, triangle,
  jingle_bells
)

More by Trini Lopez