Strudelify

Zorba's Dance

Trio Hellenique

KeyG majorTempo106 bpm
0:00/0:00
// Zorba's Dance — Trio Hellenique
// 106.3 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 116 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(106.3/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 · "A.PIANO 1"
const piano = note(`<
  A B@3 C D E F@2 G H I@3 J@3 K L@2 M N O@2 P Q@3 R S@2 T U V@2 W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO@3
  AP AQ@2 AR@8 AS@2 AT AU AV AW AX AY@3 AZ BA@3 BB BC BD BE BF BG BH BI BJ BI BK BL BM BN BO@8 BP@3 BQ@2 BR BS BT BU BV
  BW BX BY
>`.pickRestart({
  A: "~@7 g2@13 ~ [g3,b3,g4]@2 ~@9, ~@21 d4 ~@10", // G
  B: "[~@3 d2@13 [g3,b3,d4,g4]@2 ~@12 g2@13 ~ [b3,g4]@2 ~@12 d2@13 [g3,b3,d4,g4]@2 ~@12 g2@11, ~@44 [g3,d4] ~@51]/3", // G Em G G5
  C: "~@2 [g3,b3,g4]@2 ~@12 d2@13 [g3,b3,d4,g4]@2 ~, ~@2 d4 ~@29", D: "~@11 g2@13 [b3,g4]@2 ~@6, ~@24 [g3,d4] ~@7",
  E: "~@5 d2@13 [g3,b3,d4,g4]@2 ~@12", // G
  F: "[g2@12 ~ [g3,b3,g4]@2 ~@11 d2@12 [g3,b3,d4,g4]@2 ~@12 g2@12, ~@13 d4 ~@50]/2", // G
  G: "[b3,g4]@2 ~@11 d2@12 ~ [g2,g3,b3,d4,g4]@2 ~@4, [g3,d4] ~@31", H: "~@4 a2@6 [a3,c4,a4] ~@5, ~@20 e4 ~@11",
  I: "[e2@12 ~ [a3,c4,e4,a4]@2 ~@11 a2@12 [c4,a4]@2 ~@11 e2@12 [a3,c4,e4,a4]@2 ~@11 g2@12 ~ [g3,b3,g4]@2 ~@5, ~@38 [a3,e4] ~@50 d4 ~@6]/3", // Am F Am G A5
  J: "[~@5 d2@12 ~ [g3,b3,d4,g4]@2 ~@11 a2@12 [c4,a4]@2 ~@11 d2@12 [a3,c4,d4,f#4]@2 ~@11 g2@12 [g3,b3,g4]@2 ~, ~@43 [a3,e4] ~@49 d4 ~@2]/3", // G F D7 G A5
  K: "~@10 d2@12 ~ [g3,b3,d4,g4]@2 ~@7", // G
  L: "[~@3 g2@12 ~ [b3,g4]@2 ~@10 d2@12 ~ [g3,b3,d4,g4]@2 ~@11 g2@10, ~@16 [g3,d4] ~@47]/2", // Em G G5
  M: "~@2 [g3,b3,g4]@2 ~@11 d2@12 [g3,b3,d4,g4]@2 ~@3, ~@2 d4 ~@29", N: "~@4 g2@6 [b3,g4] ~@5, ~@20 [g3,d4] ~@11",
  O: "[~ d2@12 ~ [g3,b3,d4,g4]@2 ~@11 g2@12 [g3,b3,g4]@2 ~@10 d2@12 ~, ~@39 d4 ~@24]/2", // G
  P: "[g3,b3,d4,g4]@2 ~@11 g2@12 [b3,g4]@2 ~@5, ~@25 [g3,d4] ~@6", // G Em G5
  Q: "[~@6 d2@12 [g2,g3,b3,d4,g4]@2 ~@11 a2@12 ~ [a3,c4,a4]@2 ~@10 e2@12 ~ [a3,c4,e4,a4]@2 ~@11 a2@12 [c4,a4]@2, ~@44 e4 ~@49 [a3,e4] ~]/3", // G Am F A5
  R: "~@11 e2@12 [a3,c4,e4,a4]@2 ~@7", // Am
  S: "[~@4 g2@12 [g3,b3,g4]@2 ~@11 d2@12 ~ [g3,b3,d4,g4]@2 ~@10 a2@10, ~@16 d4 ~@47]/2", // G
  T: "~@3 [c4,a4]@2 ~@10 d2@12 ~ [a3,c4,d4,f#4]@2 ~@2, ~@3 [a3,e4] ~@28", U: "~@9 g2@12 [g3,b3,g4]@2 ~@9, ~@21 d4 ~@10",
  V: "[~@2 d2@12 [g3,b3,d4,g4]@2 ~@11 g2@12 ~ [b3,g4]@2 ~@10 d2@12, ~@40 [g3,d4] ~@23]/2", // G Em G5
  W: "~ [g3,b3,d4,g4]@2 ~@11 g2@10 [g3,d4,g4] ~@7, ~@12 b3 ~@3", X: "~@3 d2@10 [g3,b3,d4,g4] ~@9 g2@9",
  Y: "[g3,b3,d4,g4] ~@8 d2@8 ~ [g3,b3,d4,g4] ~@8 g2@5", Z: "~@3 [g3,b3,d4,g4] ~@7 d2@7 [g3,b3,d4,g4] ~@7 g2@6",
  AA: "~@2 [g3,b3,d4,g4] ~@6 d2@7 ~ [g3,b3,d4,g4] ~@6 g2@7 [g3,b3,d4,g4]", // G
  AB: "~@7 d2@6 [g3,b3,d4,g4] ~@6 g2@6 ~ [g3,b3,d4,g4] ~@4", // G
  AC: "~@2 d2@6 [g3,b3,d4,g4] ~@6 g2@6 [g3,b3,d4,g4] ~@5 d2@5", // G
  AD: "~ [g3,b3,d4,g4] ~@6 g2@6 [g3,b3,d4,g4] ~@5 d2@6 [g2,g3,b3,d4,g4] ~@5", // G
  AE: "a2@5 ~ [a3,c4,e4,a4] ~@5 e2@6 [a3,c4,e4,a4] ~@5 a2@5 [a3,c4,e4,a4] ~@2", // Am
  AF: "~@3 e2@6 [a3,c4,e4,a4] ~@5 a2@5 [a3,c4,e4,a4] ~@5 e2@5 [a3,c4,e4,a4]", // Am
  AG: "~@5 a2@5 ~ [a3,c4,e4,a4] ~@4 e2@5 [a3,c4,e4,a4] ~@5 g2@5", // Am
  AH: "[g3,b3,d4,g4] ~@5 d2@5 [g3,b3,d4,g4] ~@4 g2@5 [g3,b3,d4,g4] ~@5 d2@5", // G
  AI: "[g2,g3,b3,d4,g4] ~@4 a2@5 [a3,c4,e4,a4] ~@4 e2@5 [a3,c4,e4,a4] ~@4 a2@5 [a3,c4,e4,a4] ~", // G Am
  AJ: "~@3 e2@5 [a3,c4,e4,a4] ~@4 g2@4 ~ [g3,b3,d4,g4] ~@4 d2@5 [g3,b3,d4,g4] ~@3", // Am G
  AK: "~ g2@4 [g3,b3,d4,g4] ~@4 d2@5 [g3,b3,d4,g4] ~@3 g2@4 ~ [g3,b3,d4,g4] ~@4 d2@3", // G
  AL: "~ [g3,b3,d4,g4] ~@4 g2@4 [g3,b3,d4,g4] ~@4 d2@4 [g3,b3,d4,g4] ~@4 g2@4 [g3,b3,d4,g4] ~@3", // G
  AM: "~ d2@4 [g3,b3,d4,g4] ~@4 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@4 g2@4 [g3,b3,d4,g4]", // G
  AN: "~@3 d2@4 [g3,b3,d4,g4] ~@4 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@4 g2@3", // G
  AO: "[~ [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@4 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@4 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@4 d2@4 [g3,b3,d4,g4] ~@3 g2@3 ~ [g3,b3,d4,g4] ~@3 a1@3 ~ [g3,b3,d4,g4] ~@3, ~@84 g1@3 ~@5 b1@3 ~]/3", // G
  AP: "c2@4 [g3,c4,e4,g4] ~@3 g1@4 [g3,c4,e4,g4] ~@3 c2@4 [g3,c4,e4,g4] ~@3 e2@4 [g3,c4,e4,g4] ~@3", // C
  AQ: "g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3", // G
  AR: "[g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g2,g3,b3,d4,g4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g2,g3,b3,d4,g4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@2]/8", // G Am G Am G
  AS: "[~@2 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@2 d2@4 [g3,b3,d4,g4] ~@4 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@3]/2", // G
  AT: "~ [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g2,g3,b3,d4,g4] ~@3 a2@3", // G
  AU: "~ [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@3", // Am
  AV: "~ [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 e2@4 [a3,c4,e4,a4] ~@3 g2@3", // Am
  AW: "~ [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@3 [g2,g3,b3,d4,g4] ~@4 a2@3", // G
  AX: "[a3,c4,e4,a4] ~@3 a2@4 [a3,c4,e4,a4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 g2@4", // Am D7
  AY: "[g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4", // G
  AZ: "[g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4]", // G
  BA: "~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4]", // G
  BB: "~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@3 [g3,b3,d4,g4] ~", // G
  BC: "~@2 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~", // G
  BD: "~@2 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4] ~", // G
  BE: "~@2 d2@4 [g3,b3,d4] ~@3 d3@4 [a3,c4,d4,f#4] ~@3 c3@4 [a3,c4,d4,f#4] ~@3 b2@4 [a3,c4,d4,f#4] ~", // G D7
  BF: "~@2 a2@4 [a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~", // D7 G
  BG: "~@2 d2@4 [g3,b3,d4,g4] ~@3 d3@4 [a3,c4,d4,f#4] ~@2 c3@4 [a3,c4,d4,f#4] ~@4 b2@3 [a3,c4,d4,f#4] d2@2", // G D7
  BH: "~ e2@2 ~@2 [a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@2, ~@5 f#2@2 ~@25", // D7 G
  BI: "~ d2@4 [g3,b3,d4,g4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 a2@4 [a3,c4,d4,f#4] ~@2", // G D7
  BJ: "~ d2@4 [a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@2", // D7 G
  BK: "~ d2@4 [a3,c4,d4,f#4] ~@3 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3", // D7 G
  BL: "d2@4 [g3,b3,d4,g4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 a2@4 [d2,a3,c4,d4,f#4] ~@3", // G D7
  BM: "e2@2 ~@2 [a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3, ~@2 f#2 ~@13", // D7 G
  BN: "d2@4 [g3,b3,d4,g4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3", // G D7
  BO: "[d2@4 [a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@2 d2@4 [g3,b3,d4,g4] ~@4 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@2]/8", // D7 G
  BP: "[~@2 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@3 [g3,b3,d4,g4] ~@4 g2@3 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@3]/3", // G
  BQ: "~ [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@3", // G
  BR: "~ [g3,b3,d4,g4] ~@3 d3@4 [a3,c4,d4,f#4] ~@3 c3@4 [a3,c4,d4,f#4] ~@3 b2@4 [a3,c4,d4,f#4] ~@3 a2@3", // G D7
  BS: "~ [a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@3 [g3,b3,d4,g4] ~@3 d2@4", // D7 G
  BT: "[g3,b3,d4,g4] ~@3 d3@4 [a3,c4,d4,f#4] ~@3 c3@4 [a3,c4,d4,f#4] ~@3 b2@4 [a3,c4,d4,f#4] ~@3 e2@2 ~@2, ~@12 d2 ~@3", // G D7
  BU: "[a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4, f#2 ~@15", // D7 G
  BV: "[g3,b3,d4,g4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3 d2@4", // G D7
  BW: "[a3,c4,d4,f#4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4", // D7 G
  BX: "[g3,b3,d4,g4] ~@3 a2@3 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4] ~@3 a2@4 [a3,c4,d4,f#4] ~@3 d2@4 [a3,c4,d4,f#4]", // G D7
  BY: "~@3 g2@4 [g3,b3,d4,g4] ~@3 d2@4 [g3,b3,d4,g4] ~@16, ~@15 g1@2 ~@15", // G
})).s("gm_piano").gain(0.4)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@19 A B C D@2 E F@3 G H@2 B I J@2 K L M N O P Q R S T U V W X Y Z AA AB AC@3 AD AE@2 AF@8 AG@2 AH AI AJ AK AL AM@3 AN
  AO@4 AP@2 AQ AR AS AT AU AV AU AW AX AY AZ BA@8 BB@3 BC@2 BD BE BF BG BH BI BJ BK
>`.pickRestart({
  A: "~@11 g2@5", B: "~@15 d2@12 ~@5", C: "~@2 g2@3 ~@3", D: "[~ d2@12 ~@14 g2@12 ~@12 d2@12 ~]/2", E: "~@13 g2@12 ~@7",
  F: "[~@6 d2@12 g2@2 ~@11 a2@12 ~@13 e2@12 ~@14 a2@12 ~@2]/3", G: "~@11 e2@12 ~@9",
  H: "[~@4 g2@12 ~@13 d2@12 ~@13 a2@10]/2", I: "~@9 g2@12 ~@11", J: "[~@2 d2@12 ~@13 g2@12 ~@13 d2@12]/2",
  K: "~@7 g2@5 ~@4", L: "~@3 d2@10 ~@10 g2@9", M: "~@9 d2@8 ~@10 g2@5", N: "~@11 d2@7 ~@8 g2@6",
  O: "~@9 d2@7 ~@8 g2@7 ~", P: "~@7 d2@7 ~@6 g2@6 ~@6", Q: "~@2 d2@6 ~@7 g2@6 ~@6 d2@5", R: "~@8 g2@6 ~@6 d2@6 g2 ~@5",
  S: "a2@5 ~@7 e2@6 ~@6 a2@6 ~@2", T: "~@3 e2@6 ~@6 a2@5 ~@6 e2@5 ~", U: "~@5 a2@5 ~@6 e2@5 ~@6 g2@5",
  V: "~@6 d2@5 ~@5 g2@5 ~@6 d2@5", W: "g2 ~@4 a2@5 ~@5 e2@5 ~@5 a2@5 ~@2", X: "~@3 e2@5 ~@5 g2@4 ~@6 d2@5 ~@4",
  Y: "~ g2@5 ~@4 d2@5 ~@4 g2@4 ~@6 d2@3", Z: "~@6 g2@4 ~@5 d2@4 ~@5 g2@4 ~@4",
  AA: "~ d2@4 ~@5 g2@4 ~@4 d2@4 ~@5 g2@4 ~", AB: "~@3 d2@4 ~@5 g2@4 ~@4 d2@4 ~@5 g2@3",
  AC: "[~@5 d2@4 ~@5 g2@4 ~@4 d2@4 ~@4 g2@4 ~@5 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@5 d2@4 ~@4 g2@3 ~ g1@3 ~ a1@3 ~ b1@3 ~]/3",
  AD: "c2 ~ g1 ~ c2 ~ e2 ~", AE: "g2 ~ d2 ~ g2 ~ d2 ~",
  AF: "[g2@4 ~@3 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 g2 ~@3 a2@4 ~@4 e2@4 ~@4 a2@4 ~@4 e2@4 ~@4 a2@4 ~@4 e2@4 ~@4 a2@4 ~@4 e2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3 d2@4 g2 ~@3 a2@4 ~@4 e2@4 ~@4 a2@4 ~@4 e2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@2]/8",
  AG: "[~@6 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3 d2@4 ~@5 g2@4 ~@3 d2@4 ~@4 g2@3]/2",
  AH: "~@5 d2@4 ~@4 g2@4 ~@4 d2@4 g2 ~@3 a2@3", AI: "~@5 e2@4 ~@4 a2@4 ~@4 e2@4 ~@4 a2@3",
  AJ: "~@5 e2@4 ~@4 a2@4 ~@4 e2@4 ~@4 g2@3", AK: "~@5 d2@4 ~@4 g2@4 ~@4 d2@3 g2 ~@4 a2@3", AL: "~ a2 ~ d2 ~ d2 ~ g2",
  AM: "~ d2 ~ g2 ~ d2 ~ g2", AN: "~@4 d2@4 ~@4 g2@4 ~@3 d2@4 ~@4 g2@4 ~", AO: "~@3 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~",
  AP: "~ d2@2 ~@2 g2@2 ~@2 d2@2 ~@2 g2@2 ~", AQ: "~ d2@2 ~@2 d3@2 ~@2 c3@2 ~@2 b2@2 ~",
  AR: "~ a2@2 ~@2 g2@2 ~@2 d2@2 ~@2 g2@2 ~", AS: "~@2 d2@4 ~@4 d3@4 ~@3 c3@4 ~@5 b2@4 d2@2",
  AT: "~ e2@2 ~@2 f#2@2 ~@2 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3", AU: "~ d2@4 ~@4 a2@4 ~@4 d2@4 ~@4 a2@4 ~@3",
  AV: "~ d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3", AW: "~ d2@4 ~@4 g2@4 ~@3 d2@4 ~@4 g2@4 ~@4",
  AX: "d2@4 ~@4 a2@4 ~@4 d2@4 ~@4 a2@4 d2 ~@3", AY: "e2 ~ f#2 ~ g2@2 ~@2 d2@2 ~@2 g2@2 ~@2", AZ: "d2 ~ a2 ~ d2 ~ a2 ~",
  BA: "[d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3 d2@4 ~@5 g2@4 ~@3 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@2]/8",
  BB: "[~@6 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3 d2@4 ~@4 g2@4 ~@4 d2@3]/3",
  BC: "~@5 g2@4 ~@4 d2@4 ~@4 g2@4 ~@4 d2@3", BD: "~@5 d3@4 ~@4 c3@4 ~@4 b2@4 ~@4 a2@3",
  BE: "~@5 g2@4 ~@4 d2@4 ~@4 g2@4 ~@3 d2@4", BF: "~@2 d3@2 ~@2 c3@2 ~@2 b2@2 d2 ~ e2 ~",
  BG: "f#2 ~ g2@2 ~@2 d2@2 ~@2 g2@2 ~@2 d2@2", BH: "~ a2 ~ d2 ~ a2 ~ d2", BI: "~ g2 ~ d2 ~ g2 ~ d2",
  BJ: "~@4 a2@4 ~@3 d2@4 ~@4 a2@4 ~@4 d2@4 ~", BK: "~@3 g2@4 ~@4 d2@4 g1@2 ~@15",
})).s("gm_acoustic_bass").gain(0.3)

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

// other · acoustic guitar steel · "+MANDOLIN"
const acoustic_guitar_steel = note(`<
  ~@19 A@2 B C@2 D@3 E@2 F G@3 ~@2 H@2 I@2 J K@3 L M N O P Q R@2 S@2 T U@2 V W X@6 Y Z@8 AA AB AC AD AE@6 AF AG AH AI AJ
  AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL
>`.pickRestart({
  A: "[~@5 d5@6 ~@5, ~@19 c#5@2 ~@43]/2", B: "~@5 c#5@2 d5@25", C: "[~@18 e5 ~ d5 c#5@3 c#5@3 d5@23 ~@14]/2",
  D: "[~@10 c#5@2 d5@24 ~@25 b4@2 c5@24 ~@9]/3", E: "[~@9 d5 ~ c5 b4@3 ~ b4@2 c5@19 ~@27]/2", F: "~ a#4 ~ b4@23 ~@6",
  G: "[~@9 e5@2 d5 ~@2 c5 ~ b4 ~ d5@2 c5@2 ~ c5@19 ~@18 d5@3 c5@2 b4 a#4 a4@2 ~ c5@2 ~ c5@2 b4@15 ~@6, ~@22 d5@2 ~@48 b4@3 ~@21]/3",
  H: "[~@13 c#5@6 d5@5 ~ d5@4 ~ d5@4 ~ d5@4 ~ d5@4 ~ d5@4 ~ d5@4 ~ d5@4 d5@4 ~]/2",
  I: "[d5@4 ~ d5@4 d5@4 ~ d5@3 ~ d5@4 ~ d5@4 c#5@4 d5@4 d5@3 ~ d5@4 d5@3 ~ d5@3 ~ d5@3 d5@3 ~ d5@3 ~ d5@2]/2",
  J: "~@2 d5@3 ~ d5@3 d5@3 ~ d5@3 ~ d5@2 e5 ~ d5 ~ c#5 c#5@4 d5@3 ~",
  K: "[d5@3 ~ d5@3 d5@3 ~ d5@3 d5@3 d5@2 ~ d5@3 ~ d5@2 ~ d5@3 ~ d5@2 ~ d5@3 d5@2 ~ d5@3 ~ d5@2 ~ c#5@3 d5@2 ~ d5@3 d5@2 ~ d5@3 ~ d5@2 d5@3 ~ d5@2 ~ d5@3 d5@2 ~ d5@3 d5@2 ~ d5@3 d5@2 ~ d5@3 d5@2 ~]/3",
  L: "b4@3 c5@2 ~ c5@2 ~ c5@2 ~ c5@3 c5@2 ~ c5@2 ~ c5@2 ~ c5@2 c5@2 ~ c5@3",
  M: "c5@2 ~ c5@3 c5@2 ~ c5 ~ d5 c5 ~ b4 b4@3 c5@2 c5@2 ~ c5@2 ~ c5@3 c5@2 ~",
  N: "c5@2 ~ c5@2 c5@2 ~ c5@2 ~ c5@2 c5@2 ~ c5@2 ~ c5@2 ~ c5@2 c#5@2 ~ c#5@3 d5@2",
// … 96 more lines