Strudelify

Reginella

Renzo Arbore

KeyD majorTempo78 bpm
0:00/0:00
// Reginella — Renzo Arbore
// 78 bpm, 3/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 130 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(78/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: edit a riff to change every repeat.

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A@7 B@2 C@5 D@3 E@2 F G H I J@2 K L M N O P@3 Q R S@3 T U V W X Y Z AA AB AC@2 ~@8 AD AE 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 BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ CA CB
  CC CD CE CF CG CH CI CJ CK CL CM CN@2 CO CP CQ CR@3 CS@2 ~
>`.pickRestart({
  A: "[~@31 g3@2 ~@56 d3@2 ~@32 d3@4 ~@15 d4@4 ~@29 d3@2 ~@40 b3@3 g3@4, ~@29 d4@10 g3@11 d3@10 d3@11 a3@21 d4@7 ~@4 g3@7 ~@3 g3@18 d3@7 d3@7 ~ d3@5 ~ d3@4 g3@7 d3@9 ~@5 d3@7 g2@8 d4@29 ~@3, ~@30 a3@22 ~@5 g3@17 d3@4 g3@19 ~@2 d3@9 ~@2 d3@10 a3@15 a3@32 g3@32 d3@3 e4@3 d3@8 c4@7 ~@4, ~@31 g2@36 g2@29 g2@32 g2@32 g2@21 a3@43, ~@33 d3@10 d4@21 d4@17 d3@4 e4@12 ~@10 d4@10 d4@25 ~@7 d4@20 ~@2 d4@17 d3@7 g2@25 ~@4]/7",
  B: "[~@60 g3@3 ~, g2@28 g3@7 d3@3 g3@19 d3@7, ~@3 d3@8 d4@21 g2@32, ~@7 g3@7 d3@7 a3@22 d3@3 a3@17 ~, ~@17 g3@8 d3@7 d4@18 d3@3 d4@10 ~]/2",
  C: "[~@28 d3@4 ~@25 d3@7 ~@11 d4@3 ~@8 d3@3 ~@67 g3@4, g2@30 ~@2 g2@32 g2@30 ~@2 g2@28 g3@8 ~@3 g3@11 g3@10 ~@4, ~@3 d3@7 d4@29 g3@11 g3@14 ~@4 d3@9 ~ d3@8 ~@3 a3@14 g3@11 g3@7 d3@7 g2@32, ~@7 g3@14 d3@3 g3@11 d3@8 d4@28 g3@19 ~@3 d3@5 ~ d3@8 ~@3 d3@8 f#4@12 ~@9 d4@21, ~@14 d3@4 a3@35 a3@23 ~@6 d4@23 ~@2 d4@22 ~@2 d3@11 d3@7 b3@11]/5",
  D: "[~@28 e3@5 ~@27 e3@4 ~@25 g3@7, e2@33 a2@21 a2@10 a2@31 ~, ~@7 g#3@14 g#3@13 ~@2 e3@8 ~@13 b3@18 c4@21, ~@11 d4@24 ~@4 g3@7 ~@4 g3@18 e3@9 ~ e3@7 ~ e3@10, ~@18 e3@6 b2@10 ~@8 c4@29 g3@7 ~@4 b3@14]/3",
  E: "[~@15 g3, a2@31 ~ a2@32, ~@7 e4@11 c4@21 g3@10 ~ g3@10 ~@4, ~@10 a4@10 ~@5 e4@17 ~ c4@14 c4@7, ~@14 g3@14 ~@8 e3@8 ~@2 e3@7 e3@11]/2",
  F: "~@7 f#3@4 a3@3 ~@14 a3@4, d2, ~@9 d4@7, ~@11 d3@5, ~@25 f#3@7",
  G: "~@28 a3@3 ~, d3@10 ~ d3@19 ~@2, ~@7 d4@10 ~ a3@10 ~@4, ~@14 f#3@7 ~@4 f#3@5 ~@2",
  H: "~@7 g3, a2, ~@3 e3@8 c4@11 ~@3 e4@7, ~@7 g3@7 e3@7 ~ e3@10, ~@18 g3@7 ~@7",
  I: "~@14 c4@3 d3@4 ~@7 d3@4, d3@7 a3@12 ~@2 f#3@11, ~@4 f#3@7 d3@6 ~@8 a3@7, ~@7 d4@9",
  J: "[~@3 d3@4 ~@3 d3@4 ~@4 d3@7 ~@3 d3@4 ~@11 d3@3 ~@4 d3@7 b3@7, g2@30 ~@2 g2@31 ~, ~@7 a3@29 ~@3 g3@24 ~, ~@14 d4@29 ~@3 d4@17 ~, ~@25 g3@10 ~ d3@7 ~@21]/2",
  K: "~@3 f#3@4 ~@10 f#3@4 ~@7 b3@4, b2@7 b3@13 ~@4 f#3@8, ~@5 b2@11, ~@14 d4@6 ~ f#4@11",
  L: "~@18 c#3@3 ~@7 f#3@4, f#2@11 f#2@21, ~@4 c#3@14 ~@7 c#3@7, ~@7 a#3@14 e4@11, ~@7 f#3@4 ~@5",
  M: "~@7 b3, b2@21 b2@11, ~@3 f#3@7 f#3@14 f#3@8, ~@7 b3@7 b3@14 ~@4, ~@9 d4@7",
  N: "~@17 g3@4 ~@7 d4@4, a#2@10 ~ a#2@21, ~@3 g3@14 ~@4 a#3@11, ~@7 d4@15 ~@3 g3@7, ~@7 g4@4 ~@5",
  O: "~@7 d4, a2, ~@3 f#3@7 ~ f#3@6 f#3@15, ~@7 a3@14 f#4@11, ~@14 d4@8 ~@3 a3@7",
  P: "[~@4 e3@3 ~@21 a3 ~@10 d4@2 ~@5 b3@4 e4@2 ~@8 d4@2 ~@3 a4@30 ~, a2@17 a2@14 ~@11 e4@8 ~@2 d4@8 ~@3 d4@33, ~@7 d4@14 c#4@10 d4@8 ~@2 b3@2 ~@53, ~@11 e3@11 ~@3 e3@7 ~@4 a3@7 ~@14 a3@7 ~@32, ~@14 a3@8 ~@10 f#4@11 g4@9 ~ f#4@10 ~ f#4@31 ~]/3",
  Q: "~@3 d3@4 ~@11 d3@7 d4@7, g2@27 ~@5, ~@7 b3@25, ~@11 d3@7 ~@14, ~@7 g3@9",
  R: "~@4 b2@3 ~@11 b2@7 d4@7, e2@27 ~@5, ~@7 g#3@25, ~@7 e3@9",
  S: "[~@11 e3@3 ~@4 e3@7 ~@3 e3@3 ~@12 e3@4 ~@3 e3@4 ~@24 e3@4 ~@10 g3@3 ~, a2@30 ~@2 a2@30 ~@2 a2@29 ~@3, ~@4 e3@6 ~@4 g3@21 ~ e3@5 ~@16 e3@5 ~@6 e3@7 ~@11 e3@7 ~@3, ~@7 c4@29 ~@3 g3@18 ~@3 g3@8 ~@3 g3@7 ~@4 g3@8 ~@6, ~@25 e4@11 ~@11 c4@5 ~@23 c4@14 e4@7]/3",
  T: "~@25 f#3@6 ~, d3@7 a3@7 f#3@9 ~@9, ~@4 f#3@7 d3@18 ~@3, ~@9 d4@7",
  U: "~@4 d3@3 ~@3 d3@4 ~@3 d3@5 ~@6 g3@3 ~, g2@31 ~, ~@7 b3@12 ~@3 d4@10, ~@14 g3@5 ~@13",
  V: "~@3 d3@4 ~@18 g3@6 ~, g2@31 ~, ~@7 a3@24 ~, ~@11 d3@7 d3@14, ~@14 d4@17 ~",
  W: "~@3 d3@4 a3@3 d3@4 ~@14 a3@4, g2, ~@7 d4@9, ~@9 d3@3 d3@4, ~@21 g3@11",
  X: "~@4 b2@3 ~@10 b2@4 g#4@11, e2, ~@7 b3@15 ~@10, ~@10 b2@7 ~@15, ~@7 g#3@4 ~@5",
  Y: "~@10 e3@3 ~@4 e3@4 ~@7 g3@4, a2@31 ~, ~@3 e3@7 ~@11 a4@10 ~, ~@7 c4@6 ~ e4@8 ~@3 e3@7",
  Z: "~@3 e3@4 c4@3 ~@18 c4@4, a2, ~@10 e3@11 e3@11, ~@14 g3@11 g3@7, ~@9 e4@7",
  AA: "~@3 e3@4 ~@21 g3@4, a2, ~@7 c#4@14 e4@11, ~@11 e3@7 e3@14, ~@14 g3@7 ~@3 c#4@8",
  AB: "~@7 a3@7 ~@7 d4@11, d3, ~@3 f#3@7 ~@22",
  AC: "[~@10 d3@4 ~@3 d3@4 d4@9 ~@2 [e2,d4]@32, g2 ~, ~@3 d3@7 ~@4 a3@6 ~@11 a3@33, ~@7 g3@13 ~@10 f#3@34]/2", // E7
  AD: "[a3,c#4,e4]@10 [a3,c#4,e4]@10 ~ [a3,c#4,e4]@10 ~", AE: "[a3,c#4,e4]@10 ~ [a3,c#4,e4]@10 [a3,c#4,e4]@10 ~",
  AF: "[g#3,b3,e4]@10 [g#3,b3,e4]@6 ~@5 [g#3,b3,e4]@6 ~@5", // E
  AG: "[g#3,b3,e4]@10 [g#3,b3,e4]@6 ~ e4@3 ~ [g#3,b3,e4]@10 ~", // E
  AH: "[a#3,c#4,f#4]@10 ~ [a#3,c#4,f#4]@10 [a#3,c#4,f#4]@6 ~ a#3@3 ~", // F#
  AI: "[a#3,c#4,f#4]@10 ~ [a#3,c#4,f#4]@6 ~ f#4@3 ~ a#3@10, ~@21 [c#4,f#4]@10 ~", // F# F#5
  AJ: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@6 f#4@3 ~ [b3,d4,f#4]@6 ~@2 [b3,f#4]@3", // Bm B5
  AK: "~ [d4,f#4]@10 [b3,f#4]@6 ~ [b3,f#4]@3 [b3,d4,f#4]@6 ~ [b3,f#4]@3 ~, b3@5 ~@11", // D B5 Bm B5
  AL: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@6 f#4@3 ~ [b3,d4,f#4]@6 ~@5", // Bm
  AM: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@10 [b3,d4,f#4]@10 ~", // Bm
  AN: "[g#3,b3,e4]@10 ~ [g#3,b3]@10 ~ [g#3,e4]@6 ~@4, ~@5 e4@5 ~@6", // E G#m C#m
  AO: "[g#3,b3,e4]@10 ~ [g#3,b3,e4]@10 ~ e4@10, ~@21 [g#3,b3]@10 ~", // E G#m
  AP: "[a3,d4,f#4]@10 ~ [a3,d4,f#4]@10 [a3,d4,f#4]@6 ~ a3@3 ~", // D
  AQ: "[g#3,b3,e4]@10 ~ e4@10 [g#3,b3,e4]@10 ~, ~@5 [g#3,b3]@5 ~@6", // E G#m
  AR: "[a3,c#4,e4]@10 ~ [a3,c#4,e4]@6 ~@5 [a3,c#4,e4]@6 [a3,e4]@3 ~", // A A5
  AS: "[a3,c#4,e4]@6 ~@5 [a3,c#4,e4]@6 ~@4 [a3,c#4,e4]@6 ~ [a3,c#4,e4]@3 ~", // A
  AT: "[g#3,c#4,e4]@10 [g#3,e4]@10 ~ [g#3,c#4,e4]@6 ~@5", // C#m
  AU: "[g#3,c4,d#4]@10 ~ g#3@10 [g#3,c4,d#4]@10 ~, ~@5 [c4,d#4]@5 ~@6", // G# Cm
  AV: "[g#3,c#4,e4]@10 ~ e4@10 ~ [c#4,e4]@10, ~@5 c#4@5 ~@6", AW: "[a3,c4,e4]@5 [c4,e4]@3 ~@3 a3@5, ~@21 [c4,e4]@10 ~",
  AX: "[e4,g#4]@10 ~ [b3,e4,g#4]@10 ~ [b3,e4]@10, ~@21 g#4@10 ~", // E E5
  AY: "[a3,c#4,e4]@10 ~ [a3,c#4,e4]@10 ~ [b3,d#4,f#4]@10", // A B
  AZ: "[b3,e4,g#4]@10 ~ [e4,g#4]@10 ~ [b3,e4]@10, ~@21 g#4@10 ~", // E E5
  BA: "[b3,d4,g#4]@10 ~ [g#3,b3,d4]@10 [g#3,b3,d4,e4]@10 ~", // G#dim E7
  BB: "[a3,c#4,e4]@10 [a3,c#4,e4]@6 ~ e4@3 ~ [a3,c#4,e4]@10 ~", // A
  BC: "[a#3,c#4,f#4]@10 ~ [a#3,c#4,f#4]@6 ~@4 [a#3,c#4,f#4]@6 ~ c#4@3 ~", // F#
  BD: "[b3,d4,f#4]@10 [b3,d4,f#4]@6 ~ d4@3 ~ [b3,d4,f#4]@6 ~ d4@3 ~", // Bm
  BE: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@6 [b3,d4,f#4]@3 ~@2 [b3,d4,f#4]@6 b3@3 ~", // Bm
  BF: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@6 [b3,d4]@3 ~@2 [b3,f#4]@10, ~@21 d4@10 ~", // Bm B5
  BG: "[b3,e4,g#4]@10 [b3,e4,g#4]@6 ~ e4@3 ~ [b3,e4]@6 ~@5", // E E5
  BH: "[a3,c#4,e4]@10 ~ [a3,c#4,e4]@6 ~ [a3,e4]@3 ~ [a3,c#4,e4]@6 [a3,e4]@3 ~", // A A5 A A5
  BI: "[a3,c#4,e4]@10 ~ [a3,c#4,e4]@6 ~@5 [a3,c#4,e4]@6 ~@4", // A
  BJ: "[a3,c#4,e4]@10 ~ e4@6 a3@3 ~ [a3,c#4,e4]@10 ~, ~@5 [a3,c#4]@3 ~@8", // A
  BK: "[a#3,c#4,f#4]@10 ~ [c#4,f#4]@6 a#3@3 ~ [a#3,c#4,f#4]@10 ~, ~@5 a#3@3 ~@8", // F# F#5 F#
  BL: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@6 [b3,d4]@3 ~@2 [b3,d4,f#4]@6 f#4@3 ~", // Bm
  BM: "[b3,d4,f#4]@10 ~ [b3,d4,f#4]@10 ~ [b3,d4,f#4]@10", // Bm
  BN: "[b3,d#4,f#4]@10 ~ [b3,d#4,f#4]@6 ~@5 b3@6 b3@3 ~, ~@21 [d#4,f#4]@6 ~@5", // B D#m
  BO: "[g#3,b3,e4]@10 ~ [g#3,b3,e4]@6 [b3,e4]@3 ~ [g#3,b3,e4]@6 ~ g#3@3 ~", // E E5 E
  BP: "[a3,c#4,e4]@10 [a3,c#4,e4]@6 a3@3 ~@2 [a3,c#4,e4]@6 ~ a3@3 ~", // A
  BQ: "[g3,b3,d4]@10 ~ [g3,b3,d4]@6 g3@3 ~@2 [g3,b3,d4]@10", // G
  BR: "[a3,d4,f#4]@10 ~ d4@10 [a3,d4,f#4]@10 ~, ~@5 [a3,f#4]@5 ~@6", // D
  BS: "[b3,d#4,f#4]@10 ~ [a3,d#4,f#4]@6 a3@3 ~ [a3,d#4,f#4]@10 ~", // B D#dim
  BT: "[g3,b3,e4]@10 ~ [g3,b3,e4]@6 ~@4 [g3,b3,e4]@6 ~ [g3,b3,e4]@3 ~", // Em
  BU: "[g3,b3,e4]@10 ~ [g3,b3,e4]@6 e4@3 ~ [g3,b3,e4]@6 ~@5", BV: "[g3,b3,e4]@10 ~ [g3,b3,e4]@6 ~@5 [g3,b3,e4]@10",
  BW: "[g3,c#4,e4]@10 ~ [a3,c#4,e4]@6 a3@3 ~ [a3,c#4,e4]@6 ~@5", // C#dim A
  BX: "[a3,d4,f#4]@10 ~ [a3,d4,f#4]@6 ~ a3@3 ~ [a3,d4,f#4]@6 a3@3 ~", // D
  BY: "[a3,d4,f#4]@10 ~ [a3,d4,f#4]@6 ~@4 [a3,d4,f#4]@6 ~ a3@3 ~", // D
  BZ: "[a3,d4,f#4]@10 ~ [a3,d4,f#4]@6 ~@5 [a3,d4,f#4]@6 [a3,d4]@3 ~", // D D5
  CA: "[a3,d#4,f#4]@10 ~ [a3,d#4,f#4]@6 ~@4 [a3,d#4,f#4]@10 ~", // D#dim
  CB: "[g3,b3,d4]@10 ~ [g3,b3,d4]@6 ~ b3@3 ~ [b3,e4,g4]@10", CC: "[g3,b3,e4]@10 ~ [g3,b3,e4]@6 ~@4 [g3,b3,e4]@10 ~",
  CD: "[g#3,b3,e4]@10 ~ [g#3,b3,e4]@6 g#3@3 ~@2 [g#3,b3,e4]@6 g#3@3 ~", // E
  CE: "[g3,c#4,e4]@10 ~ [g3,c#4,e4]@6 ~@4 [g3,c#4,e4]@10 ~", // C#dim
  CF: "[a3,d4,f#4]@10 [a3,d4,f#4]@6 ~ a3@3 ~@2 [a3,d4,f#4]@6 a3@3 ~", // D
  CG: "[b3,d4,f#4]@10 ~ [d4,f#4]@6 b3@3 ~ [b3,d4,f#4]@10 ~, ~@5 b3@3 ~@8", // Bm D Bm
  CH: "[g3,b3,e4]@10 ~ [b3,e4]@6 g3@3 ~@2 [g3,e4]@6 g3@3 ~, ~@10 g3@6 ~@5 b3@6 ~@5", // Em E5 C
  CI: "[g3,c#4,e4]@10 ~ [a3,c#4,e4]@6 a3@3 ~ [a3,c#4]@6 ~ a3@3 ~", // C#dim A
  CJ: "[a3,d4,f#4]@10 ~ [a3,d4,f#4]@6 ~ a3@3 ~ [a3,d4,f#4]@6 ~@4", // D
  CK: "[a3,d4,f#4]@10 ~ [d4,f#4]@6 a3@3 ~ [a3,d4,f#4]@6 ~ a3@3 ~, ~@5 a3@3 ~@8", // D
  CL: "[b3,e4,g4]@10 ~ [b3,e4,g4]@6 b3@3 ~ [b3,e4,g4]@6 ~ b3@3 ~", // Em
  CM: "[a3,c#4,e4]@10 ~ [a3,e4]@6 a3@3 ~ [a3,c#4,f#4]@6 ~ a3@3 ~", // A A5 F#m
  CN: "[[a3,d4]@10 ~ [a3,d4,f#4]@6 a3@3 ~ [a3,d4,f#4]@6 ~ a3@3 ~ [d4,f#4]@6 ~ b3@3 ~ [b3,d4,f#4]@6 b3@3 ~ [b3,d4,f#4]@6 ~ b3@3 ~, ~@31 b3@6 ~@27]/2", // D5 D Bm
  CO: "[b3,e4,g4]@10 ~ [g3,b3,e4]@6 ~ g3@3 ~ [b3,e4]@6 g3@3 ~", // Em E5
  CP: "[a3,c#4,e4]@10 ~ [a3,e4]@6 a3@3 ~ [a3,c#4]@6 ~ a3@3 ~", // A A5 A
  CQ: "[a3,d4,f#4]@10 ~ [d4,f#4]@6 ~@4 [a3,d4,f#4]@6 ~@3 [a3,d4]@2, ~@5 a3@3 ~@8", // D D5
  CR: "[f#4@6 a3@3 ~ [a3,d4,f#4]@6 ~ a3@3 ~ [a3,d4]@10 ~ e4@31 ~@3 e4@30, ~@31 [g3,b3]@31 ~ a3@31 ~@2, ~@65 c#4@31]/3", // D D5 G
  CS: "[~@5 d4@58 ~, ~ f#3@62 ~, ~@3 a3@60 ~]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.33).pan(0.4)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@2 A ~@7 B ~@2 C D E ~ F ~ G H ~@5 I@2 ~@2 J K ~@2 L ~@4 C ~@2 M ~@3 N ~@12 O P Q R S T U ~ V ~@3 W X Y ~ Z AA AB ~
  AC ~ AD AE AF AG AH AI AJ AK ~ AL AM ~ AN AO AP ~@3 AQ AR AS AT ~ AU AV AW ~ AX ~ AY ~@4 AT ~@2 AZ BA ~@2 AZ AW ~@3
  BB@2 ~
>`.pickRestart({
  A: "~@27 d3@5", B: "~@14 d3@9 ~@9", C: "~@25 d3@7", D: "~@3 b2@11 b2@10 ~@8", E: "~@7 e3@5 ~@4",
  F: "~@3 g3@11 ~@14 g3@3 ~, ~@21 e3@10 ~", G: "~@4 d3@8 ~@2 d3@7 ~@11", H: "~@2 f#3@5 ~@9", I: "[~@15 g3@2 ~@15]/2",
  J: "~@15 a3", K: "~@10 a3 ~@5", L: "~@10 b2@3 ~@19", M: "~@3 b2",
  N: "~@17 f#3@4 ~@7 a3@4, ~@10 f#3@7 ~@7 f#3@8, ~@14 a3@7 ~@11", O: "~@17 [g#3,b3,e4]@3 ~@8 [g#3,b3,e4]@3 ~",
  P: "~@17 [g#3,b3]@3 ~@12", Q: "~@28 [c#4,f#4]@3 ~", R: "~@18 a#3@3 ~@11, ~@17 c#4@3 ~@12",
  S: "~@17 [b3,d4]@3 ~@9 d4@3", T: "~@11 d4@6 ~ d4@3 ~@7 d4@3 ~", U: "~@17 [b3,d4]@3 ~@9 b3@3, ~@28 [d4,f#4]@3 ~",
  V: "~@22 b3@6 ~ [b3,e4]@3, ~@28 g#3@3 ~", W: "~@18 [a3,c#4,e4]@3 ~@7 c#4@3 ~",
  X: "~@7 [a3,c#4,e4]@3 ~@7 [a3,c#4,e4]@3 ~@12", Y: "~@11 c#4@10 ~@7 g#3@3 ~", Z: "~@5 g#3@5 ~ g#3@5",
  AA: "~@10 a3@6 ~@2 e4@3 ~@11, ~@17 [a3,c4]@3 ~@12", AB: "b3@5 ~@11", AC: "~@11 b3@10 ~@11",
  AD: "~@17 [a3,c#4]@3 ~@12", AE: "~@17 [a#3,c#4,f#4]@3 ~@8 [a#3,f#4]@3 ~", AF: "~@17 [b3,f#4]@3 ~@8 [b3,f#4]@3 ~",
  AG: "~@28 [d4,f#4]@3 ~", AH: "~@17 f#4@3 ~@12", AI: "~@17 [b3,g#4]@3 ~@8 b3@3 ~", AJ: "~@18 c#4@3 ~@7 c#4@3 ~",
  AK: "~@17 [a3,c#4,e4]@3 ~@8 [a3,c#4,e4]@3 ~", AL: "~@17 [c#4,f#4]@3 ~@12", AM: "~@28 [b3,d4]@3 ~",
  AN: "~@18 [b3,d#4]@3 ~@11", AO: "~@17 g#3@3 ~@8 b3@3 ~", AP: "~@28 [c#4,e4]@3 ~", AQ: "~@18 [g3,b3,e4]@3 ~@11",
  AR: "~@17 [g3,b3]@3 ~@8 [b3,e4]@3 ~", AS: "~@17 [g3,b3]@3 ~@12", AT: "~@28 a3@3 ~",
  AU: "~@18 d4@3 ~@11, ~@17 a3@3 ~@12", AV: "~@18 [a3,d4,f#4]@3 ~@11", AW: "~@17 a3@3 ~@12", AX: "~@17 g3@3 ~@12",
  AY: "~@18 g3@3 ~@11", AZ: "~@11 c#4@6 ~@15", BA: "f#4@5 ~@11", BB: "d3/2",
})).s("gm_acoustic_guitar_nylon").gain(0.16).pan(0.4)

// other · melodic tom
const melodic_tom = note(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A ~ A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B ~@5
>`.pickRestart({
  A: "~@21 [d#4,e4]@8 ~@3", B: "~@7 g3@3 ~ b3@7 g3@2 ~ e3@4 ~@3 c3@2 ~@2",
})).s("gm_melodic_tom").gain(0.4).pan(0.4)

// bass · electric bass finger
const bass = note(`<
  ~ A B A C A D E B F B G B H I J I J K L M N B F O P Q R S T U V B W X Y Z AA B AB AC AD AE J I AF B AG AH AI AJ AK AL
  AM I J AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB AO BC BD BE AQ BF BG BH BI BJ BK BL BM BN BO BP Y BQ BR BS BT BU
  BV BW T BX BY BZ CA CB CC CD CE L CF BG AY CG CH CI CJ CK CL CI CM CN CO CP B CQ CR CS CT CU AH CV CW@2 ~
>`.pickRestart({
  A: "g1@28 c2@3 ~", B: "d2", C: "d2@21 b2@3 ~ g2@3 d2@3 ~, ~@21 a#2 ~@10", D: "d2@25 g2@2 ~ a2@3 ~, ~@28 g2 ~@3",
  E: "g2@24 ~ a1@2 ~ c2@3 ~", F: "g1@7 c2", G: "g1@27 ~ c2@4", H: "g1@24 ~ d2@2 ~ d#2@3 ~", I: "e2", J: "a1@7 d2",
  K: "e2@25 ~@3 e2@3 ~", L: "d2@27 ~ a1@4", M: "d2@25 e1@3 g#1@3 ~", N: "a1@28 c#2@3 ~", O: "d2@7 g1",
  P: "b1@25 c#2@3 d2@4", Q: "f#1@26 ~@2 f#1@3 ~", R: "b1@3 ~", S: "a#1", T: "a1@26 ~@2 e1 ~@3", U: "a1@21 c#2@11",
  V: "d2@15 ~", W: "g1@29 ~@3", X: "e1@28 g#1@3 ~", Y: "a1@27 ~ d2@4", Z: "e2@31 ~", AA: "a1@24 ~ b1@3 c2@3 ~",
  AB: "g1@15 ~", AC: "g1@31 ~", AD: "g1@24 ~ b1@3 d2@4", AE: "e2@28 g1@3 ~", AF: "a1@21 c#2@10 ~", AG: "g1@25 ~@3 g1@4",
  AH: "e1", AI: "a1@24 ~@4 a1@3 ~", AJ: "f#1@21 g#1@7 a#1@3 ~", AK: "b1@27 ~ e2@4", AL: "f#2@24 ~ b1 ~@2 f#1@3 ~",
  AM: "b1@25 c#2@3 d#2@4", AN: "e2@7 e1@2 ~@9 e1@3 f#1@5 ~@2 g#1@4", AO: "a1@27 ~ d2@3 ~", AP: "e2@27 ~ c#2@2 ~@2",
  AQ: "c#2@15 ~", AR: "c#2@25 b1@2 ~ g#1@3 ~", AS: "f#1@25 ~@7", AT: "f#1@25 g#1@2 ~ a#1@3 ~", AU: "b1@7 e2", AV: "f#2",
  AW: "b1@13 ~ e2@2", AX: "f#2@23 ~@2 b1@3 f#2@3 ~", AY: "e2@24 ~ a#1@3 b1@3 ~", AZ: "e1@23 ~@2 e1@3 f#1@4",
  BA: "b1@24 ~ c#2@3 d2@3 ~", BB: "e2@24 ~ e1@3 f#1@4", BC: "e2@24 ~ e2@3 d2@4", BD: "c#2@18 d#2@7 e2@7",
  BE: "g#2@10 ~ g#1@14 d#2@3 g#1@4", BF: "c2@31 ~", BG: "b1@15 ~", BH: "b1@11 c#2@10 d#2@10 ~", BI: "e2@25 a1@3 b1@4",
  BJ: "e1@25 f#1@3 g#1@4", BK: "a1@22 ~@3 a1 ~@2 e1@2 ~@2", BL: "f#1@26 ~@2 f#1 ~@3", BM: "b1@25 ~@3 f#1@3 ~",
  BN: "b1@26 ~@2 f#1@3 ~", BO: "b1@10 ~ c#2@10 d2@10 ~", BP: "e2@11 e1@12 ~@2 e1@2 ~ f#1@3 ~",
  BQ: "e2@23 ~@2 e2@3 e1@4", BR: "a1@24 ~ e1 ~@2 a1@3 ~", BS: "f#1@28 a#1@3 ~", BT: "b1@26 ~@2 f#1 ~@3",
  BU: "b1@27 ~ f#1@2 ~@2", BV: "b1@24 ~ a#1@2 ~ f#1@3 ~", BW: "e1@10 ~ f#1@10 g#1@10 ~", BX: "a1@11 a2@10 a1@11",
  BY: "d2@25 ~@3 d2 ~@3", BZ: "b1@12 ~@2 b1 ~", CA: "e2@25 ~@3 b1 ~@3", CB: "e1@27 ~ e1 ~@3",
  CC: "e1@23 ~@2 f#1@2 ~ g#1 ~@3", CD: "a1@25 ~@3 a1 ~@3", CE: "d2@26 ~@2 a1@3 ~", CF: "d2@31 ~", CG: "e1@29 ~@3",
  CH: "e1@11 f#1@17 g#1@3 ~", CI: "a1@26 ~@2 a1@3 ~", CJ: "d2@21 f#2@4 e2@3 d2@4", CK: "b1@23 ~@2 b1@3 f#1@3 ~",
  CL: "e1@25 f#1@2 ~ g1@3 ~", CM: "d2@11 e2@10 f#2@7 a2@4", CN: "b2@18 d3@3 b2@4 a2@3 f#2@4",
  CO: "e1@24 ~ f#1@3 g1@3 ~", CP: "a1@13 ~ a1@2", CQ: "b1@17 ~ b1@3 b1@10 ~", CR: "e1@10 ~ f#1@10 g1@10 ~",
  CS: "a1@10 ~ b1@10 c#2@10 ~", CT: "d2@11 f#2@14 g#2@3 a2@4", CU: "b2", CV: "a1", CW: "d2/2",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · piano
const piano = note(`<
  ~ A B A B A B A B C@2 D@2 E F G H I J K@2 L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH@2 AI AJ AK AL AM AN
  AO@2 AP AQ AR AS AT@2 AU@2 AV AW AX@2 AY AZ BA@2 BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX
  BY BZ CA CB CC CD CE CF CG CH CI CJ@2 CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB DC DD DE DF DG@2 ~
>`.pickRestart({
  A: "[g2,g3]@7 c3", B: "d3",
  C: "[g2@28 ~@4 b3@7 ~@7 [g3,b3]@18, [b3,d4,f#4] f#4, ~@28 g2@14 ~ g2@7 ~@14, ~@16 d4@7 ~@9]/2", // G Bm
  D: "[b3@7 ~@25 [b3,d4]@7 b3@7 b3@7 d4@11, g4, f#4@39 f#4@25, d4@18 d4@10 g2@11 d4@14 ~@11, g2@7 b3@14 g2@4 b3@7 a4@32]/2", // Bm
  E: "g2@11 g2@21, f#4, d4@9 ~@7, b3@7 ~@25",
  F: "e2@11 ~@14 b3@7, [d4,e4], b3@25 ~@7, ~@11 e2@10 e2@11, ~@18 g#3@7 ~@7", // Dsus2
  G: "[g3,b3,c4]@9 ~@5 e2@2, e4, a2@11 ~@7 [g3,b3,c4]@14", // Cmaj7
  H: "c4@7 ~@7 [b3,c4]@7 [b3,c4]@10 ~, b4@13 ~@3, [e4,g4]@7 [e4,g4]@9, a2@11 a2@7 ~@14, ~@7 c4@7 ~@18", // Cmaj7 Em
  I: "g3@5 ~@2 g3@11 g3@7 g3@7, [b3,c4,e4]@9 [b3,c4,e4]@7, a2@11 ~@21", // Cmaj7
  J: "[b3,c4,e4]@18 ~@3 a2@7 ~@4, g4, a2@7 ~@2 [c4,e4]@7, ~@18 g3@7 ~@7", // Cmaj7 C
  K: "[a3@18 ~@3 d3@7 ~@11 d3@7 ~@11 a3@7, [d4,f#4] f#4, d3@11 ~@7 a3@7 ~@3 d3@11 ~@7 d3@7 d3@11, ~@16 d4@9 [d4,g4]@7, ~@32 a3@11 ~@7 a3@7 ~@7]/2", // D G5
  L: "a2@11 a2@10 ~@7 a2@4, [b3,e4], c4@25 [g3,c4]@7, g3@18 ~@3 a2@7 ~@4", // E5 C5
  M: "g3@7 ~@18 g3@7, e4, c4@9 c4@7, d3@11 d3@10 d3@11, ~@7 g3@11 ~@14",
  N: "g2@11 ~@17 g2@4, a3, g3@25 g3@7, [b3,d4]@9 [b3,d4,f#4]@7, ~@11 g2@10 g2@7 ~@4", // Bm
  O: "g2@11 ~@10 g2@11, d4@23 ~@9, b3@9 [g3,b3]@7, g3@7 ~@4 g2@10 ~@11", // G
  P: "b3@18 ~@7 d4@7, f#4, d4@25 ~@7, b2@21 b2@11, ~@18 b3@7 ~@7",
  Q: "f#2@18 ~@3 a#3@4 ~@3 f2@4, [a#3,c#4,e4]@21 [c#4,e4]@11, ~@9 f#2@7, ~@25 a#3@7", // A#dim C#m
  R: "b2@21 ~@7 f#4@3 ~, b3, f#4@7 ~, d4@25 d4@7, ~@21 b2@11",
  S: "[a#3,d4]@21 ~@7 a#3@4, g4, a#2@18 ~@3 d4@11, ~@21 a#3@7 ~@4, ~@25 a#2@7", // A#
  T: "a2@18 ~@3 f#3@4 ~@3 e2@3 ~, f#4, [a3,d4]@21 [a3,d4]@10 ~, ~@9 a2@7, ~@25 f#3@7", // D5
  U: "g3@7 g3@7 ~@4 e2@3 a3@2 ~@5 e2@4, [b3,d4]@21 [a2,c#4,e4]@11, a2@11 ~@3 g3@8 ~@3 a3@7", // Bm A
// … 165 more lines

More by Renzo Arbore