Strudelify
KeyE majorTempo98 bpm
0:00/0:00
// Candela — Buena Vista Social Club
// 98 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// chords · piano
const piano = note(`<
  ~@6 A@2 B@2 C ~@17 A@2 C ~ A@2 C ~ A@2 C ~ A@2 C ~ A@2 C ~ A@2 C ~ A@2 C ~ A@2 C ~ A@2 C ~@17 D E@25 F
>`.pickRestart({
  A: "[~@8 [b4,d5]@5 [d5,f5]@2 [c5,e5]@4 [a4,c5]@2 [c5,e5]@2 [b4,d5]@5 [d5,f5]@2 [c5,e5] [b4,d5]]/2", // Bm Dm C Am C Bm Dm C …
  B: "[[c5,e5]@2 [b4,d5] [a4,c5]@4 [b4,d5]@6 [d5,f5]@2 [c5,e5]@4 [a4,c5]@2 [c5,e5]@2 [b4,d5]@5 [d5,f5]@2 [c5,e5] [b4,d5]]/2", // C Bm Am Bm Dm C Am C …
  C: "[c5,e5]@2 [b4,d5] [a4,c5]@5 ~@8", D: "~@11 [b4,d5] [d5,f5]@2 [c5,e5]@2",
  E: "[a4,c5]@2 ~@9 [b4,d5] [d5,f5]@2 [c5,e5]@2", F: "[a4,c5] ~@7",
})).s("gm_piano").gain(0.05)

// bass · acoustic bass
const bass = note(`<
  ~ A@2 B C D E F C G H B C D E F C G H B C D E F C G I J K D E F C G H B C D E F C G H B C D E F C G H B C D E F C G H
  B C D E F C G H B C D E F C G H B C D E F C G H B C D E F C G H B C D E F C G H B C D E F C G L
>`.pickRestart({
  A: "[~@14 a1@4 ~ f2 e2 ~ b1@4 ~ f2 e2 ~ e2@2]/2", B: "a1@2 ~ f2 e2 ~ b1@4 ~ f2 e2 ~ e2 ~",
  C: "a1@2 ~ f2 e2 ~ b1@4 ~ f2 e2 ~ a1 ~", D: "a1@2 e2 f2 e2 ~ b1@4 ~ f2 e2@2 a1 ~",
  E: "a1 e2 ~ f2 e2 ~ b1@4 ~ f2 e2@2 a1 ~", F: "a1@2 ~ f2 e2@2 b1@4 ~ f2 e2 ~ a1 ~",
  G: "a1@2 ~ f2 e2 ~ b1@4 ~ f2 e2 ~ a1@2", H: "~@3 f2 e2 ~ b1@4 ~ f2 e2 ~ e2@2", I: "~@3 f2 e2 ~ b1@2 d2@3 ~ d#2@3 ~",
  J: "e2@3 ~ f2@3 ~ f#2@4 g#2@3 ~", K: "a2 ~@2 a1@3 ~@2 b1@2 ~ e2 ~@2 a1 ~", L: "a1 ~@7",
})).s("gm_acoustic_bass").gain(0.43)

// other · oboe
const oboe = note(`<
  ~@10 A B@8 C@8 D@2 ~ E F G ~ H@2 I ~ J@2 K ~ L M N ~ O P N ~ Q R S ~@28 T@4 U V W X Y Z AA AB AC AD AE AF AG AH AE
  AI@2 V AJ AK AL ~
>`.pickRestart({
  A: "~@5 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5!2",
  B: "[~ e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 d5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5 f5@2 e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 e5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5 f5@2 e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 d5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5 f5@2 e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 e5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5!2]/8",
  C: "[~ e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 d5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5 f5@2 e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 d5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5 f5@2 e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 d5@2 c5 ~@3 e5 ~ e5 ~ e5 ~ d5 f5 ~ f5 f5@2 e5 ~@3 e5 ~ e5 ~ e5 ~ b4 d5 ~ d5 e5@2 c5 ~@5 a4 d5!3 e5 f5@2 d5@2]/8",
  D: "[e5 ~@3 f5 ~ f5 ~ g5@2 e5 ~ d5 ~ e5 d5@2 c5 ~@14]/2", E: "~@7 a5@2 ~@2 g5 ~ f5@2 e5",
  F: "~@3 g5 ~ f5 ~ e5 ~@3 e5 g5 ~ f5 e5", G: "f5 ~ g5 e5 ~@12",
  H: "[~@3 a5 ~ g5 ~ e5 g5!2 ~ f5 g5 ~ f5 f5@2 e5 ~@3 d5 g5 f5!2 ~ e5 ~@2 d5 ~ e5]/2", I: "f5 ~ e5 f5 ~ g5 e5@2 ~@8",
  J: "[~@5 a5 g5 ~ e5 g5!2 e5 ~ g5 f5 f5@2 e5 ~@5 b4 ~ d5 g5 f5 e5 ~ d5 e5]/2", K: "~ f5 ~ g5 f5 ~ e5@2 ~@8",
  L: "~@4 g5 ~ f5 g5 f5 ~ g5 f5 e5 f5 ~ a5", M: "g5 ~ f5 e5 ~@3 b4 d5 g5 ~ f5 e5 ~ d5 e5", N: "~ f5 ~ g5 f5 ~ e5 ~@9",
  O: "~@7 a5 ~ g5 d5 g5 ~ f5 g5 f5", P: "~ f5 e5 ~ b4 d5 ~ g5 f5 ~ e5 d5 ~ e5 d5 e5", Q: "~@7 b4 ~@3 g5 ~ f5 ~ e5",
  R: "~@3 d5 ~ f5 ~ e5 ~@3 e5 g5 ~ f5 e5", S: "f5 ~ g5 e5@2 ~@2 e5@8 ~", T: "[e5@61 ~@3]/4",
  U: "~ e5!4 ~ e5 ~ e5 ~ e5@2 ~@4", V: "~ e5!4 ~ d5 c5 d5@2 e5@2 ~@4", W: "e5 ~ e5!3 ~ e5!3 ~ e5 ~@4 e5",
  X: "e5!5 ~ e5!3 ~ e5@2 ~@4", Y: "~ e5!4 ~ d5 c5 d5 ~ e5@2 ~@4", Z: "e5!5 ~ d5 c5 d5 ~ e5@2 ~@4",
  AA: "e5@2 ~ e5!2 ~@3 e5@2 e5 ~@5", AB: "e5 ~ e5!3 ~ e5 d5 e5@2 e5 ~@5", AC: "~ e5!3 e5@2 d5 c5 d5@2 e5@3 ~@3",
  AD: "e5@2 ~ e5!2 ~ e5!3 ~ e5@2 ~@4", AE: "~ e5!4 ~ e5!3 ~ e5@2 ~@4", AF: "~ e5 ~ e5 e5@2 d5 ~ e5 ~ e5@2 ~@4",
  AG: "e5!4 e5@2 d5 c5 d5@2 e5@2 ~@4", AH: "~ e5 ~ e5!2 ~ e5!3 ~ e5@2 ~@4", AI: "[e5@15 ~]/2",
  AJ: "~ e5!3 e5@2 d5 c5 d5 ~ e5@2 ~@2 e5!2", AK: "e5!4 e5@2 d5 c5 d5 ~ e5@2 ~@4",
  AL: "~ e5!3 e5@2 d5 c5 d5 ~ e5@2 ~@4",
})).s("gm_oboe").gain(0.46)

// other · oboe · soft notes
const oboe_soft = note(`<
  ~@6 A B C B D ~@17 A B E ~ A B E ~ A B E ~ A B E ~ A B E ~ A B E ~ A B E ~ A B E ~ A B F ~@22 G ~@5 H ~@15
>`.pickRestart({
  A: "~@8 d5 ~@2 d5 ~ f5 ~ e5", B: "~@3 c5 ~ e5 ~ d5 ~@3 d5 f5 ~ e5 d5", C: "e5@2 d5 c5 ~@3 d5 ~@3 d5 ~ f5 ~ e5",
  D: "e5@2 d5 c5 ~@12", E: "e5 ~ d5 c5 ~@12", F: "e5 ~ d5 c5@3 ~@10", G: "~@7 d5 ~@8", H: "~@6 d5 ~@9",
})).s("gm_oboe").gain(0.06)

// other · soprano sax
const soprano_sax = note(`<
  ~@6 A B C B D ~@17 A B D ~ A B D ~ A B D ~ A B D ~ A B D ~ A B D ~ A B D ~ A B D ~ A B D ~@17 E F@4 G@2 F G F@3 H F H
  F@11 I
>`.pickRestart({
  A: "~@8 b4 ~@2 b4 ~ d5 ~ c5", B: "~@3 a4 ~ c5 ~ b4 ~@3 b4 d5 ~ c5 b4", C: "c5 ~ b4 a4 ~@3 b4 ~@3 b4 ~ d5 ~ c5",
  D: "c5 ~ b4 a4 ~@12", E: "~@11 b4 d5@2 c5 ~", F: "a4 ~@10 b4 d5@2 c5@2", G: "a4@2 ~@9 b4 d5@2 c5@2",
  H: "a4 ~@10 b4 d5@2 c5 ~", I: "a4 ~@15",
})).s("gm_soprano_sax").gain(0.5).pan(0.7)

// other · trumpet
const trumpet = note("<~@28 A ~@25 B C D E F@2 G H I ~@44>".pickRestart({
  A: "~@3 a5@2 ~@11", B: "~@7 e5 ~ f5 e5 b5 ~ g#5 e5 d5", C: "~ [c5,d#5] e5 [g5,a5] ~ g#5 a5 e5 ~ d5 c5 b4 ~ a4 g#4 b4",
  D: "a4 b4 c5 d5 e5@4 e5 ~@2 f5 e5@2 ~ f5", E: "e5@2 ~ f5 e5@2 ~ f5 e5 ~@7",
  F: "[~@7 a5 ~ a5!3 ~ a5!2 a5@2 ~@6 f5 ~ e5 d5 c5 b4 a4 g#4 b4]/2", G: "a4 ~ e4 g4 f#4@3 ~@8 f5, ~@4 g4 ~@11",
  H: "e5@2 ~ f5 e5@2 ~@4 a5 c6 b5 a5 g#5 b5", I: "a5 ~@2 e5 ~ e5 ~ e5@9",
})).s("gm_trumpet").gain(0.62)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D E B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C
  D A B C D F G H I J K L M N O P Q R S T U V B C D A B C D A B C D A B C D A B C D A B C D A B ~
>`.pickRestart({
  A: "a3 ~@2 e3 c4 ~@3 [g#3,b3] ~@2 e3 [g#3,d4] ~@3", B: "a3 ~@2 e3 [e3,c4] ~@3 b3 ~@2 e3 [g#3,d4] ~@2 e3",
  C: "a3 ~@2 e3 [e3,c4] ~@3 b3 ~@3 [g#3,d4] ~@2 e3", D: "a3 ~@3 [e3,c4] ~@3 [g#3,b3] ~@2 e3 [g#3,d4] ~@2 e3",
  E: "a3 ~@2 [e3,c4] ~@4 [g#3,b3] ~@2 e3 [g#3,d4] ~@3", F: "~ a4 ~ e4 ~@3 d#4 e4 f#4 g#4 a4 b4 ~ g#4 [a4,b4]",
  G: "~@7 b4 g#4 ~ d4 ~ e4 ~@2 c5", H: "~ a4 ~ d4 e4 ~@2 b4 ~ g#4 ~ e4 d#4 e4 d#4 e4",
  I: "c5 ~ e4 ~ d#4 e4 d#4 e4 d5 ~ e4 ~ d#4 e4 d#4 e4",
  J: "~ e5 e4 [c5,e5] ~ e4 [c5,e5] e4 ~ [a4,e5] ~ e4 [b4,e5] ~ e4 [c5,e5]", // C A5 E5 C
  K: "e4 ~ e5 e4 ~ [c5,e5] e4 [b4,e5] ~ e4 [b4,e5] e4 ~ [b4,e5] e4 ~", L: "~@5 a4 b4 c5 d5 d#5 e5 d5 c5 b4 a4 g#4",
  M: "b4 [g#4,a#4] a4 g#4 f4 e4 d4 c4 b3 [a3,b3] g#3 b3 g#3 a3 ~ b3", N: "c4 ~ d4 d#4 e4 ~ g4 ~@4 e4 g4 ~ f4 e4",
  O: "~@3 [a4,c5] ~@3 e4 [b4,d5] ~@2 e4 [b4,d5] ~@2 e4", // Am Bm
  P: "[c5,e5] ~@2 e4 [c5,e5] ~@2 e4 [b4,d5] ~ [b4,d5]!2 ~ [b4,d5] e4 [c5,e5]", // C Bm C
  Q: "~ [c5,e5]!2 e4 ~ [c5,e5]!3 ~ e4 [b4,d5] ~ [b4,d5]!2 e4 ~", // C Bm
  R: "[c5,e5]!3 ~ [e4,c#5] [c5,e5]!2 ~ [c5,e5] e4 ~@5 e5", S: "~ c5 ~ a4 e4 ~@2 e5 b4 g#4 e4 g#4 e4 g#4 b4 e5",
  T: "[c5,e5] ~ e5 ~ c5 a4 e4 a4 e5 ~ b4 g#4 e4 g#4 b4 e5", U: "~ c5 ~ d5 c5 ~ b4 a4 g#4 ~ b4 g#4 d4 e4 ~ f4",
  V: "[a3,e4] ~@2 e3 c4 ~@3 [g#3,b3] ~@2 e3 [g#3,d4] ~@3", // A5 G#m G#dim
})).s("gm_acoustic_guitar_steel").gain(0.21).pan(0.9)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C
  D A B C D E ~@10 F ~@4 A B C D A B C D A B C D A B C D A B C D A B C D A B ~
>`.pickRestart({
  A: "~@7 e3 ~@7 e3", B: "~@7 e3 ~@8", C: "~@7 e3 g#3 ~@2 e3 ~@4", D: "~@3 e3 ~@3 e3 ~@8", E: "~@11 g4 ~@4",
  F: "~@4 c#5 ~@11",
})).s("gm_acoustic_guitar_steel").gain(0.15).pan(0.9)

// other · overdriven guitar
const overdriven_guitar = note("<~@2 A B C ~@69 D@2 E ~ F ~ B G ~@8 H ~ I ~ I ~ I ~ I ~@2 J@2 ~@4>".pickRestart({
  A: "a5@9 ~@7", B: "~@14 [g#4,a4] a4", C: "a4@5 ~@3", D: "[~@15 a4@3 ~@14]/2", E: "~@6 e4@3 ~@7", F: "a4 ~",
  G: "a4@9 ~@7", H: "~ a4 a4@3 ~@11", I: "~ a4 a4@4 ~@10", J: "~ a4 ~@2 a4@4 ~@8",
})).s("gm_overdriven_guitar").gain(0.35)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@2 A B C D E F G H@2 I J K L M N O L P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AJ
  AS AT AU@6 AV AW AX AY AT AU AW AZ BA L@2 AW@2 AU AW AU BB BC BD BE AU BF AU BF AT AU BG AU@2 AW AU AT BH AU BB BF BI
  AU@3 BJ AU@4 AW BK AU BL BM
>`.pickRestart({
  A: "~ [a3,c4,e4] [a3,c4] ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // Am E
  B: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [b3,e4] [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2", // Am E5 E
  C: "~ e4 [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3]!2 e3 ~ [g#3,b3,e4] ~@2", // Am G#m E
  D: "~ [c4,e4] [a3,c4,e4] ~@2 [a3,c4,e4] e3 ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // C Am E
  E: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [b3,e4] [g#3,b3,e4] ~", // Am E E5 E
  F: "~ [c4,e4] [a3,c4] ~@2 [c4,e4] [a3,c4] ~@2 [g#3,b3,e4] [g#3,b3] ~@2 [g#3,b3,e4] [g#3,b3] ~", // C Am C Am E G#m E G#m
  G: "~ [c4,e4] [a3,c4,e4] ~@2 [a3,c4,e4]!2 ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] [g#3,b3] ~", // C Am E G#m
  H: "~ e4 [a3,c4,e4] ~@2 [a3,c4,e4] [a3,c4] ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] [g#3,b3] ~", // Am E G#m
  I: "~@2 [a3,c4,e4] ~@2 [a3,c4,e4] [a3,c4] ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4]!2 ~", // Am E
  J: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] [a3,c4] ~@2 [g#3,b3,e4]!2 ~@2 b3 [g#3,b3,e4] ~", // Am E
  K: "~ [c4,e4] [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3] [g#3,b3,e4] ~@2 b3 [g#3,b3,e4] ~", // C Am G#m E
  L: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4]!2 ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4]!2 ~", // Am E
  M: "~ [a3,c4,e4]!2 ~@2 [a3,c4] [a3,c4,e4] ~@2 [b3,e4] [g#3,b3,e4] e3 ~ e4 [g#3,b3,e4] ~", // Am E5 E
  N: "~ [a3,c4,e4]!2 ~@2 [c4,e4] [a3,c4,e4] ~@2 [g#3,b3,e4]!2 ~@2 [g#3,e4] [g#3,b3] ~", // Am C Am E C#m G#m
  O: "~ [c4,e4] [a3,c4,e4] ~@2 [a3,c4,e4]!2 ~@2 [g#3,b3,e4]!2 ~@3 [g#3,b3,e4] ~", // C Am E
  P: "~ [a3,c4] [a3,c4,e4] ~@2 [a3,c4,e4] [a3,c4] ~@2 [g#3,b3,e4]!2 ~@2 [g#3,e4] [g#3,b3,e4] ~", // Am E C#m E
  Q: "~ c4 [a3,c4,e4] e3 ~ [a3,c4,e4] [a3,c4] ~@2 [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] [g#3,b3] ~", // Am E G#m
  R: "~ c4 [a3,c4,e4] e3 ~ [a3,c4,e4]!2 e3 ~ [g#3,e4] [g#3,b3,e4] e3 ~@2 [g#3,b3,e4] e3", // Am C#m E
  S: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] [a3,c4] e3 ~ [g#3,b3,e4]!2 e3 ~ [g#3,e4] [g#3,b3,e4] ~", // Am E C#m E
  T: "~ [a3,c4,e4]!2 e3 ~ c4 [a3,c4,e4] ~@2 [g#3,b3,e4]!2 e3 ~ g#3 [g#3,b3,e4] ~", // Am E
  U: "~ c4 [a3,c4,e4] e3 ~ [c4,e4] [a3,c4,e4] ~@2 [g#3,b3,e4]!2 e3 ~ [b3,e4] [g#3,b3,e4] e3", // Am C Am E E5 E
  V: "~ [c4,e4] [a3,c4,e4] e3 ~ [c4,e4] [a3,c4,e4] e3 ~ [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4]!2 ~", // C Am C Am E
  W: "~ [c4,e4] [a3,c4,e4] e3 ~ [a3,c4,e4] e3 ~@9", X: "~ c4!2 ~@2 [a3,c4] ~@4 [g#3,b3] ~@5",
  Y: "c4 ~@2 [a3,c4,e4]@2 ~@8 [g#3,b3,e4] e3 ~", // Am E
  Z: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] ~@2", // Am E
  AA: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4] [g#3,b3] e3 ~ [g#3,b3,e4] e3 ~", // Am E G#m E
  AB: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] e3 ~@2 [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] e3 ~", // Am E
  AC: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~@3 [b3,e4] [g#3,b3,e4] e3 ~ [g#3,b3,e4] [b3,e4] e3", // Am E5 E E5
  AD: "~ c4 [a3,c4,e4] e3 ~ [a3,c4,e4] [a3,c4] e3 ~ [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] e3 ~", // Am E
  AE: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~ e3 ~ [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] ~@2", // Am E
  AF: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~@3 [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] e3 ~", // Am E
  AG: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] e3 ~@2 [b3,e4] [g#3,b3] e3 ~ [g#3,b3,e4] e3 ~", // Am E5 G#m E
  AH: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~@3 g#3 [g#3,b3] e3 ~ [g#3,b3,e4] e3 ~", // Am G#m E
  AI: "~ [c4,e4] [a3,c4,e4] e3 ~ [a3,c4,e4] e3 ~@2 e4 [g#3,b3] e3 ~ [g#3,b3,e4] e3 ~", // C Am G#m E
  AJ: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] e3 ~@2 [g#3,b3,e4]!2 e3 ~ [g#3,b3,e4] e3 ~", // Am E
  AK: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4]!2 e3 ~ [g#3,b3,e4]!2 e3 ~@2 [g#3,b3,e4] e3", // Am E
  AL: "~ c4 [a3,c4,e4] e3 ~ [a3,c4] [a3,c4,e4] e3 ~ g#3 [g#3,b3,e4] e3 ~@2 [g#3,b3,e4] e3", // Am E
  AM: "~ [a3,c4] [a3,c4,e4] e3 ~ [a3,c4,e4]!2 e3 ~@2 [g#3,b3,e4] e3 ~ [g#3,e4] [g#3,b3,e4] e3", // Am E C#m E
  AN: "~ [a3,c4] [a3,c4,e4] e3 ~ [a3,c4] [a3,c4,e4] e3 ~ g#3 [g#3,b3,e4] e3 ~@2 [g#3,b3,e4] e3", // Am E
  AO: "~ a3 [a3,c4,e4] e3 ~ c4 [a3,c4,e4] e3 ~ [g#3,b3] [g#3,b3,e4] e3 ~ [g#3,b3] ~ e3", // Am G#m E G#m
  AP: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~ e3 ~ [g#3,b3] [g#3,b3,e4] e3 ~ [g#3,b3,e4] ~@2", // Am G#m E
  AQ: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~@3 [b3,e4] [g#3,b3] e3 ~ [b3,e4] b3 e3", // Am E5 G#m E5
  AR: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~ e3 ~ [g#3,b3,e4]!2 e3 ~ [g#3,b3] e3 ~", // Am E G#m
  AS: "~ [a3,c4,e4]!2 e3 ~ [a3,c4,e4] ~@3 [g#3,b3,e4] [g#3,b3] ~@2 [g#3,b3,e4] ~@2", // Am E G#m E
  AT: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3]!2 ~@2 [g#3,b3,e4] ~@2", // Am G#m E
  AU: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // Am E
  AV: "~ [c4,e4] [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // C Am E
  AW: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4] [g#3,b3] ~@2 [g#3,b3,e4] ~@2", // Am E G#m E
  AX: "~ [a3,c4] [c4,e4] ~@2 [a3,c4,e4] ~@3 g#3 [g#3,b3] ~@2 [g#3,b3,e4] ~@2", // Am C Am G#m E
  AY: "~ [a3,e4] [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3]!2 ~@2 [g#3,b3,e4] ~@2", // A5 Am G#m E
  AZ: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4]!2 ~", // Am E
  BA: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4]!2 ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] [g#3,b3] ~", // Am E G#m
  BB: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3] [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2", // Am G#m E
  BC: "~ [a3,c4,e4]!2 ~@2 [a3,e4] [a3,c4] ~@2 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // Am A5 Am E
  BD: "~ [a3,c4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // Am E
  BE: "~ [a3,c4] [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3] [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2", // Am G#m E
  BF: "~ [a3,c4] [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4]!2 ~@2 [g#3,b3,e4] ~@2", // Am E
  BG: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4] [b3,e4] ~@2 [g#3,b3,e4] ~@2", // Am E E5 E
  BH: "~ [a3,c4] [a3,c4,e4] ~@2 [a3,c4,e4] ~@3 [g#3,b3,e4] [g#3,b3] ~@2 [g#3,b3,e4] ~@2", // Am E G#m E
  BI: "~ [a3,c4,e4] [a3,c4] ~@2 [a3,c4,e4] ~@3 [g#3,b3] [g#3,b3,e4] ~@2 [g#3,b3,e4] ~@2", // Am G#m E
  BJ: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [b3,e4] [g#3,b3] ~@2 [g#3,b3,e4] ~@2", // Am E5 G#m E
  BK: "~ [a3,c4,e4]!2 ~@2 [a3,c4] ~@3 [g#3,b3,e4] [g#3,b3] ~@2 [g#3,b3,e4] ~@2", // Am E G#m E
  BL: "~ [a3,c4,e4]!2 ~@2 [a3,c4,e4] ~@3 [g#3,b3] [g#3,b3,e4] ~@5", BM: "[a3,c4,e4] ~@15",
})).s("gm_acoustic_guitar_nylon").gain(0.15).pan(0.2)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@3 A B ~ C D E F G H C I ~ J K L ~ M N O ~ P Q R S T U V W@2 X E Y Z A AA AB ~ C AC AD AE AF AG AH AI ~@2 AJ ~@7 AJ
  AK ~ AJ ~@12 AL AM ~@4 AN AJ ~ AO ~@2 AJ ~@2 AN ~@2 AN AM ~@3 A ~@5 AJ ~@3
>`.pickRestart({
  A: "~@9 g#3 ~@6", B: "~ a3 ~@8 e4 ~@5", C: "~@13 g#3 ~@2", D: "~ a3 ~@3 a3 ~@4 e4 ~@5", E: "~ a3 ~@14",
  F: "~ [a3,c4] ~@12 e4 ~", G: "~ a3 ~@12 e4 ~", H: "~ [a3,e4] ~@14", I: "~ a3 ~@11 [g#3,e4] ~@2",
  J: "~@5 e4 ~@3 g#3 ~@3 g#3 ~@2", K: "~@3 e3 ~ a3 ~@7 b3 ~@2", L: "~@11 e3 ~ g#3 ~@2", M: "~ e4 ~@5 e3 ~@3 e3 ~@4",
  N: "~ a3 ~@13 e3", O: "~ a3 ~@7 b3 ~@3 g#3 ~@2", P: "~@5 [a3,e4] ~@9 e3", Q: "~ a3 ~@3 a3 ~ e3 ~@5 g#3 ~@2",
  R: "~ a3 ~@3 a3 ~@9 e3", S: "~ a3 ~@7 b3 ~@6", T: "~ a3!2 ~@13", U: "a3 ~@15", V: "~@3 e3 ~@2 e3 ~@7 e3 ~",
  W: "~@3 e3 ~@12", X: "~@6 e3 ~@2 g#3 ~@4 g#3 ~", Y: "~@15 e3", Z: "~@6 e3 ~@9", AA: "~@9 b3 e4 ~@5",
// … 117 more lines

More by Buena Vista Social Club