Strudelify
Livin' on Love cover art

Who I Am Bonus Track

Livin' on Love

Alan Jackson

KeyA majorTempo115 bpm
0:00/0:00
// Livin' on Love — Alan Jackson
// 115 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/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(`<
  ~@2 A B C D E F G H I J K L@3 M N O@5 P Q R@2 S T U V W X@2 Y Z AA AB AC AD AE AF AG AH AI AJ AK@2 AL AM AN AO AP AQ
  AR AS@2 AT I J K AU@3 M N AV AW AX AY AZ BA BB BC@2 BD BE U V W BF BG BH BI BJ AB AC BK AE BL@2 BM BE BN BO BP BF BQ
  BR BI BS AB BT BU BV BW BX BY BZ CA@3
>`.pickRestart({
  A: "~ a2 ~@3 a2 a3 a1, a1@13 ~@3, [e3,a3,c#4,e4] [a3,c#4,e4]!2 [c#4,e4], ~@3 a2@2 ~@3", // A C#m
  B: "e2 ~ e2@2 ~@2 e2 ~@3 g#3@2 [g#3,b3,e4]@2 e2@2, [g#3,b3,e4] [b3,e4]@2 ~, ~@2 g#3@3 ~@3, ~@4 e2@3 ~", // E E5
  C: "~@3 a2 ~ b2 ~ c#3, a1@2 [b1,a3,b3,d4] [c#2,a3,c#4,e4], [a3,c#4,e4]!2 ~@2, ~ a2@2 ~@5", // Bm7 A
  D: "~@8 [d2,a3]@2 ~@2 d3@2 a3 ~, d2 ~, [a3,d4,f#4]@2 [d4,f#4]@3 ~@3, ~@2 d3@4 d3@5 ~@5, ~@4 a3@4 ~@2 [a3,d4,f#4]@5 ~", // D5 D
  E: "[a3,c#4,e4]@2 ~@3 [a2,a3] ~ a2, a1@3 a2@2 ~@3, ~ [c#4,e4]@2 ~, ~@2 a3@3 ~ [a3,c#4,e4]@2, ~@4 a1@3 ~", // A C#m A
  F: "e2 ~ e2@2 [g#3,b3,e4]@2 ~@4 e2@2 [g#3,b3,d4,e4]@2 e2@2, [g#3,b3,e4]@2 ~ e2@2 ~@3, ~@2 [g#3,b3,d4,e4] ~", // E E7 E E7
  G: "~@2 a2@2 [a3,c#4,e4]@2 ~@6 a2 ~ b1@2, a1@7 ~ [a3,c#4,e4]@4 [a3,c#4,e4]@4, [a3,c#4,e4]@2 ~ a2@3 ~@2, ~@5 a1@3", // A
  H: "~ e2 ~ e2 ~ e2!3, [g#3,b3,e4]!2 [e1,d4]@2, ~@2 [g#3,b3]!2", // E E7 G#m
  I: "a1 ~@2 [a3,c#4,e4], [a3,c#4,e4]@2 a3 ~, ~@2 a2@3 a2@3", // A
  J: "~@10 g#3@2 ~@2 e3 ~, e2@3 ~, ~ [b3,e4]@2 ~, ~@2 g#3@3 ~ [g#3,b3,e4]@2, ~@8 e3@5 ~@3", // E5 E
  K: "~ e3 ~@5 a2, a2@7 ~ a2@6 ~@2, ~@2 [a3,c#4,e4]@3 e3@3, ~@3 [a3,c#4,e4]", // A
  L: "[~ a3 ~@3 a3 ~ d3 ~@5 e3 ~@3 e3 ~@3 e3 [a3,c#4,e4]@2, d3@2 [d4,f#4]@4 [d4,f#4]@2 ~ e3@2 ~@13, ~@4 a3@6 ~@2 a3@7 ~ [a3,c#4,e4]@8 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@4, ~@4 d3@2 ~@2 a2@4 a2@3 ~ a2@4 a2@2 ~@2]/3", // A D A
  M: "~ b2 ~ b2 ~@2 [g#3,b3,e4]@2, e2@6 ~@2 e2@7 ~, ~ [g#3,b3,e4]@2 ~, ~@5 b2@2 ~", // E
  N: "~@6 b2@2 e2 ~@3 [g#3,b3]@4, e2@4 ~ b2@3, ~ b2@2 ~ [g#3,b3]@2 ~@2, ~ [g#3,b3,e4] [d4,e4]@2", // G#m E Dsus2
  O: "[e4@2 e3@2 ~@6 e3@2 c#4@4 ~@2 b2@2 ~@2 b2@2 ~@2 b2@2 ~@2 b2 ~@3 e3@2 ~@2 e3 ~@3 e3@2 [c#4,e4]@4 d3@4 ~@2 d3 ~@7 d3 ~@3 e3@2 ~@2 e3 ~@3 e3@2 [a3,c#4,e4]@4, a2@6 e3@4 ~@2 a3@3 ~@5 [g#3,b3,e4]@7 ~ [g#3,b3]@4 ~@4 [a3,c#4,e4]@7 ~ a3@12 ~@2 a3@9 ~ [a3,c#4,e4]@7 ~@5, [a3,c#4]@4 [a3,c#4,e4]@8 e4@7 ~@9 e4@7 ~@17 [d4,f#4]@6 ~@2 [d4,f#4]@4 ~@16, ~@8 a2@5 ~@3 e2@6 ~@2 e2@6 ~@2 a2@6 ~@2 a2@8 ~@8 d3@5 ~@3 a2@6 ~@2 a2@5 ~@3]/5", // C#m A E G#m A D
  P: "~@2 b2@2 ~@2 b2 ~@3 b2@2 [g#3,b3,e4]@4, e2@7 ~ e2@4 ~@4, ~@4 [g#3,b3,e4]@7 ~@5", // E
  Q: "~@2 e3@2 ~@2 e3@2 ~@2 e3@2 [a3,c#4,e4]@2 e3 ~, a2@3 ~ a2@3 ~, ~@2 [a3,c#4,e4]@3 ~@3", // A
  R: "[[a2,a3,e4]@2 [a2,e3,a3,c#4,e4] ~ [a2,e3,a3,c#4,e4] ~@11 g#3@4 ~@2 g#3@2 ~@4 [g#3,b3,e4]@4, ~@7 b2 [b3,e4]@4 [g#3,b3,e4]@2 ~@2, ~@15 e2@17, ~@15 e3@3 ~@2 e3@5 ~ e3@6]/2", // A5 A E E5 E
  S: "~@2 a3 e3 ~ e3 ~ a2, [a2,b3,c#4,e4] ~, ~ e3@2 ~ [b3,d4]@2 [a3,c#4,e4]@2", // A Bm A
  T: "d3@4 ~@4 d3@2 a3@2 d3@2 a3 ~, [d4,f#4]@10 [d4,a4]@5 ~, a3@3 a3@2 ~@3, ~ d3 ~@2", // D D5
  U: "~@3 e3 ~@3 a2, [a2,c#4,e4]@9 ~ e3@6, a3!2 [b3,d4]@2, ~ e3@2 ~ a3@2 [a3,c#4,e4]@2", // A Bm A
  V: "d3@4 ~@6 a3@2 [a3,d4] ~ d3@2, [d4,f#4]@3 f#4, a3@3 a3@2 ~@3, ~@4 d3@4 d3@5 ~@3", // D5 D
  W: "~ e3 ~@4 [a2,a3]@2, [a2,c#4,e4] c#4, a3@3 a3@3 ~@2, ~ e3 e4 ~, ~@5 e3@3", // A
  X: "[~@8 g#3@2 ~@2 e3@4 ~@6 e3@2 [f#3,a3]@2 e2 ~ [g#3,b3]@2 e2 ~, e2@9 ~ e2@2 ~@4, b3@5 [b3,e4]@3 [b3,e4]@4 ~@4, [g#3,e4]@2 e4@3 ~@11, ~ e3 g#3 e3@2 ~@4 g#3@3 ~@4]/2", // F#m G#m E5 C#m
  Y: "~ e3 [a3,c#4,e4]@2 ~ e3 [a3,c#4,e4]@2, a2 ~, [a3,c#4,e4] ~ e4 ~", // A
  Z: "[g#3,b3,e4]@2 ~@3 e3 [g#3,b3,e4]@2, e2, ~ [g#3,b3,e4]!2 ~, ~@3 e3@2 ~@3", // E
  AA: "~@4 [b3,d4] ~@2 a2, [c#4,e4]@11 ~@5, a3@3 a3@2 ~ [a3,c#4,e4]@2, ~@2 e3@3 e3@3", // Bm C#m A
  AB: "d3@4 ~@6 d3@2 a3 ~ [d3,a3]@2, f#4@3 ~, d4@2 d4 [d4,f#4], a3@3 a3@3 ~@2, ~@2 d3@3 ~@3", // D5 D
  AC: "~@5 e3 [a3,c#4,e4]@2, [a2,c#4,e4]@3 ~, ~ e3@2 e3@2 ~@3, ~ a3!2 ~", // A
  AD: "~@2 e3@2 ~@2 e3@4 e3@2 b3 ~ e3@2, e2@3 ~, [g#3,b3,e4] [b3,e4]@2 e4, ~ g#3 ~@2", // E E5
  AE: "[a3,c#4,e4] ~@6 a3, a2@3 ~ a2@4, ~ e3@2 e3@3 e3@2, ~ c#4@3, ~@2 [a3,e4]@3 a3@2 ~", // A A5
  AF: "~@6 e3@2 a3 ~ e3@2 [g#3,b3]@4, e2, [g#3,b3]!2 f#3 ~, ~ e3@2 ~@5", // G#m
  AG: "[e3,a3,c#4]@3 ~@9 [a3,c#4]@4, a1, a2 c#4@2 ~, ~@2 [e3,a3]@2 [e3,a3]@2 e3 ~, ~@3 a2@2 a2@3", // A A5
  AH: "e2@2 e2@2 ~@2 [e3,g#3,b3] e2, [e3,g#3,b3]@2 [e3,g#3,b3] ~, ~@5 e2@2 ~", // E
  AI: "~@6 [e3,a3,c#4] a2, a1@15 ~, [e3,a3,c#4]@3 e3@3 ~@2, ~ a2 [a3,c#4] ~, ~@5 a2@2 ~", // A
  AJ: "~@4 d3 ~@2 e3, d2, [a3,d4]@5 ~@3, f#3@3 f#3@2 [f#3,a3,d4]@3, ~ d3 ~ d3", // D5 D
  AK: "[a2 ~@3 [e3,a3,c#4]@2 ~@3 a3 ~ a2 ~ a2 ~ a2, [e3,a3,c#4]!2 ~ [e3,a3,c#4] e3 [e3,a3,c#4]!3, ~ a2@2 a2@4 a2@4 ~@5]/2", // A
  AL: "[e2,e3,g#3,b3]@4 [e3,g#3,b3]@2 ~@4 e2@2 [e3,g#3,b3]@2 e2 ~, ~@3 e2@2 ~@3, ~@2 [e3,g#3,b3] ~", // E
  AM: "e2 ~@3 [d3,g#3,b3]@4 [d3,g#3,b3]@2 ~@2 [e3,g#3,b3]@4, [g#3,b3] ~@3, ~ e2@3 ~ e2@3", // G#dim E G#m
  AN: "[a2,e3,a3,c#4]@4 a2 ~ a2@2 ~@2 a2@2 ~@2 a2@2, ~ [e3,a3,c#4] [a3,c#4] [e3,c#4]", // A C#m
  AO: "[e3,g#3,b3]@4 ~@2 a2@2 [e3,g#3,b3]@3 ~ [e3,b3]@4, e2, ~ [e3,g#3,b3] ~@2", // E E5 E
  AP: "[e3,a3,c#4]@2 ~@3 a3 [e3,a3,c#4] a2, a2@3 a2@4 ~, ~ [e3,a3,c#4] e3 ~", // A
  AQ: "~@4 a3 ~ d3@2, d2, d4@5 ~@3, a3@3 f#3@2 [f#3,a3,d4]@3, f#3@2 d3@3 ~@3", // D
  AR: "a2 ~ a2@2 ~@2 a2@2 ~@4 e3@2 [a2,e3]@2, [e3,a3,c#4]!3 [a3,c#4], ~@5 a2@2 ~", // A5 A
  AS: "[[e3,g#3,b3]@3 ~ [e3,g#3,b3]@4 ~@4 [g#3,b3]@4 [a2,a3,c#4]@4 ~@2 a2@2 ~@4 [e3,a3,c#4]@2 e3 ~, e2@2 [e3,g#3,b3] e3@2 [e3,a3,c#4]!2 ~, ~@10 e2@6 ~@10 a2@5 ~]/2", // E G#m A E A
  AT: "[e2,e3,g#3,b3]@2 [e2,e3,g#3]@2 [f#2,f#3,a3]@2 [g#2,g#3,b3] ~", // E F#m G#m
  AU: "[~ a3 ~@3 a3 ~ d3 ~@5 e3 ~@3 e3 ~@3 e3 [a3,c#4,e4]@2, d3@2 [d4,f#4]@4 [d4,f#4]@2 ~ e3@2 ~@13, ~@4 a3@6 ~@2 a3@7 ~ [a3,c#4,e4]@8 [a3,c#4,e4]@8 [a3,c#4,e4]@8 ~@4, ~@2 d3 ~ a2@2 a2@2 a2@2 a2 ~]/3", // A D A
  AV: "~@6 b3@2 c#4@7 ~, a2@15 ~, ~@4 e4@11 ~", AW: "~@6 f#3@2 g#3 f#3 e3@6, e2, ~ b3@3",
  AX: "~@3 [g#3,b3] [a2,a3,c#4]@4, ~@6 e4@9 ~, ~@6 g#2 ~@9", AY: "~@4 e4 f#4@3, d3, ~ d4@3, ~@3 a4@5",
  AZ: "c#4@8 e4@5 ~@3, a2, [e3,a3]@7 ~", BA: "[e2,d3,g#3,b3]@11 ~@5",
  BB: "~@4 [d3,b3]@2 c#4@2 [f#3,d4]@2 c#4@2 [d3,b3]@2 [c#3,a3] ~, ~@6 e3 ~@3 e3 ~@5", // G D G F#m
  BC: "[[a2,e3] ~ [a2,e3] ~ [a2,e3] ~@11 g#3@4 ~@2 g#3@2 ~@4 [g#3,b3,e4]@4, c#4 c4 c#4 ~@4 b2 [b3,e4]@4 [g#3,b3,e4]@2 ~@2, ~@15 e2@17, ~@15 e3@3 ~@2 e3@5 ~ e3@6]/2", // A5 E E5 E
  BD: "~@4 a3@2 e3@2 ~@2 e3@2 a3 ~ a2@2, [a2,b3,c#4,e4] ~, ~ e3@2 ~ [b3,d4]@2 [c#4,e4]@2", // A Bm C#m
  BE: "d3@2 ~@2 d3 a3 ~ a3, [d4,f#4]@5 [d4,a4]@3, a3@3 a3@2 ~@3, ~ d3 ~ d3", // D D5
  BF: "~@4 g#3 ~ e3@2, e2, b3@5 [b3,e4]@3, [g#3,e4]@2 e4@3 ~@3, ~ e3 g#3 e3@2 ~@3", // E5 C#m
  BG: "~@3 e3 ~ e2 ~ e2, [b3,e4] ~, ~ g#3@3 [f#3,a3]@2 [g#3,b3]@2, ~ e2 ~@2", // E5 F#m G#m
  BH: "~@2 [a3,c#4,e4]@2 ~ e3 [a3,e4] ~, a2 ~, [a3,c#4,e4] ~ e4 c#4, ~ e3@2 ~@5", // A A5 A
  BI: "[g#3,b3,e4]@2 ~@3 e3 [g#3,b3,e4]@2, e2@13 ~@3, ~ [g#3,b3,e4]!2 ~, ~@3 e3@2 ~@3", // E
  BJ: "~@3 a3 ~ e3 ~ a2, [c#4,e4]@9 ~@7, a3@3 ~ [b3,d4]@2 [a3,c#4,e4]@2, ~@4 e3@5 ~@7", // C#m Bm A
  BK: "~@2 e3@2 ~@2 e3@4 e3@2 [b3,e4] ~ e3@2, e2@3 ~, [g#3,b3,e4] [b3,e4]@2 ~, ~ g#3 ~@2", // E5 E E5
  BL: "[[a2,c#4,e4] ~ [a2,a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@10 g#3@4 ~@2 g#3@2 ~@4 [g#3,b3,e4]@4, a3@2 ~@2 a2 ~@9 b2@2 [b3,e4]@8 [g#3,b3,e4]@4 ~@4, ~@15 e2@17, ~@15 e3@3 ~@2 e3@5 ~ e3@6]/2", // A E E5 E
  BM: "~@4 a3@2 e3@2 ~@2 e3@2 [a3,c#4,e4] ~ a2@2, [a2,b3,c#4,e4] ~, ~ e3@2 ~ [b3,d4]@2 ~@2", // A Bm
  BN: "~@3 e3 ~ e3 ~ a2, [a2,c#4,e4]@9 ~@7, a3!2 [a3,b3,d4] [a3,c#4,e4], ~ e3@2 ~@5", // A Bm7 A
  BO: "d3@4 ~@6 a3@2 [a3,d4,f#4] ~ d3@2, [d4,f#4]@3 ~, a3@3 a3@2 ~@3, ~@4 d3@4 d3@5 ~@3", // D
  BP: "~ e3 ~@4 [a2,a3]@2, [a2,c#4,e4]@2 e4 ~, a3@3 a3@3 ~@2, ~ e3 c#4@2, ~@5 e3@3", // A
  BQ: "~@3 e3 ~ e2 ~ e2, [b3,e4]@2 ~ [g#3,b3], ~@2 g#3@6 [f#3,a3]@5 ~@3, ~ e2 ~@2", // E5 G#m F#m
  BR: "~ e3 [a3,c#4,e4]@2 ~ e3 [a3,c#4,e4] ~, a2@9 ~@7, [a3,c#4,e4] ~ e4 ~", // A
  BS: "~@3 a3 ~ e3 ~ a2, [c#4,e4]@2 [b3,d4] ~, a3@3 ~@3 [a3,c#4,e4]@2, ~ e3 ~@2", // C#m Bm A
  BT: "~@5 e3 [c#4,e4]@2, [a2,c#4,e4]@3 ~, ~ e3@2 e3@2 ~@3, ~@4 a3@4 a3@4 a3 ~@3", // C#m A
  BU: "~@2 e3@2 ~@2 e3@4 e3@2 e4@2 e3 ~, e2@3 ~, [g#3,b3,e4]@4 [b3,e4]@8 b3 ~@3, ~ g#3 ~@2", // E E5
  BV: "~@2 a3 [a2,a3] [b1,b2,b3,d4]@2 [c#2,c#3,a3,c#4,e4]@2, [a1,c#4,e4]@9 ~@7, a3 ~@3, ~ a2@2 ~@5", // A Bm A
  BW: "~@4 a3 [a3,a4] ~ a3, [d2,d4,f#4]@11 ~@5, a3@4 ~ d4@3, ~@3 d3@2 ~ d3@2", // A D
  BX: "~@3 a3 ~@2 [a3,c#4,e4]@2, [a2,c#4,e4]@9 ~@7, a3@3 ~ [a3,c#4,e4]@2 ~@2, ~@4 e3@5 ~ e3@6", // A
  BY: "~@4 b3 ~ b2@2, e2, e4@5 ~@3, b3@3 g#3@2 [b3,e4]@3, g#3@2 b2@3 ~@3", // E5
  BZ: "~ a2 a2@2 a2@3 a2, a1, a3@4 a3 ~@3, c#4@3 ~@5",
  CA: "[~@2 c#4@2 [e3,a3,d4]@4 [a2,e3,a3,c#4]@25 ~@15, [e3,a3,d4] ~@11]/3", // Dsus2 A Dsus2
})).s("gm_piano").gain(0.27)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@6 A ~@2 B C D E F G@2 H ~@8 I ~ J K ~ L M N O P ~ Q ~ R S T U@2 ~@4 V ~ W X Y Z U ~@4 C D E F G@2 H ~@10 J K ~ L M N
  AA P ~ AB ~ R S T ~@2 J K ~ L M N AA P ~ AC ~ R S ~ K ~ AD AE ~@3
>`.pickRestart({
  A: "~@2 a2@3 ~@11", B: "e1@5 ~@11", C: "~@2 a2 ~@13", D: "e4 ~ e3@3 ~@11", E: "~@7 e3 ~@8", F: "~@6 d3 ~@9",
  G: "[~@15 e3@3 ~@14]/2", H: "~@14 b2 ~", I: "c#4 ~@15", J: "~@3 a3 ~@4", K: "~@6 a3 ~", L: "~@7 a3",
  M: "~@7 b2, ~@3 e4", N: "~@7 g#3", O: "~ e2 ~@6, e3@3 ~@5", P: "~@3 e3 [a3,c#4]@2 ~@2", Q: "a2@10 a3 ~@5",
  R: "a3@4 ~@11 b2", S: "~@8 g#3@4 g#3 ~@3", T: "~@5 e4@3", U: "~@7 e3", V: "~@15 e3", W: "e3 ~", X: "~@8 e3@4 a3 ~@3",
  Y: "~ a2 ~@4 g#3@2", Z: "~@2 c#4 ~, ~@4 a3 ~@3", AA: "e3 ~ e2@2 ~@12", AB: "a2@9 ~ a3@2 ~@4", AC: "a2@4 ~ a3 ~@2",
  AD: "~@5 g#3@3", AE: "~@3 c#4 [e3,c#4] [e3,a3,c#4] [e3,a3,c#4]@2",
})).s("gm_piano").gain(0.16)

// chords · acoustic guitar steel · "Guitar"
const acoustic_guitar_steel = note(`<
  ~@2 A B C D E F G H I J K@2 L@2 M N O P Q@3 R S T@2 U@2 V W@2 X Y@2 Z AA AB@2 AC AD@3 AE AF AG AH@2 AI AJ@2 AK AL AM
  AN P AO AP I J K@2 AQ@2 M N AR P Q@3 R S AS@2 U@2 V AT@2 AU AV@2 Z AW AB@2 AX AY AZ@2 U@2 V AT@2 X BA@2 Z BB BC@2 BD
  BE BF BG@2 BH@4
>`.pickRestart({
  A: "~@4 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~, a2@7 ~@3 a2@5 ~, [a3,c#4,e4] ~ [a3,c#4,e4] ~, ~@2 e3@4 e3@9 ~", // A
  B: "e2@2 ~@2 [g#3,b3,e4]@4 ~@4 [g#3,b3,e4]@3 ~, [g#3,b3,e4] ~ [g#3,b3,e4] ~, ~@2 b2@6 ~@2 b2@5 ~", // E
  C: "~@4 [a3,c#4,e4]@2 e3@2 [a3,e4]@2 ~@2 [a3,c#4,e4]@2 a2 ~, a2@7 ~@3 a2@4 ~@2, [a3,c#4,e4] ~ c#4 ~, ~ e3@2 ~@5", // A A5 A
  D: "d3 ~ d3@2 ~@6 d3@2 ~@2 e3@2, [a3,d4,f#4]!4, ~@3 d3@2 ~@3", // D
  E: "~@2 e3@2 ~@4 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 e3 ~, a2@11 ~@5, [a3,c#4,e4]!2 ~@2, ~@3 e3@2 e3@2 ~", // A
  F: "~ e3 ~ e3 ~ e3 [g#3,b3,e4] e3, [g#3,b3,e4]!3 ~", // E
  G: "[a3,c#4,e4] e3 ~@4 [a3,c#4,e4] e3, a2@7 ~, ~ [a3,c#4,e4]!2 ~, ~@3 e3@2 e3@2 ~", // A
  H: "~@2 e3@2 ~@2 e2@2 [f#3,a3]@2 ~@2 [e3,g#3,b3]@3 ~, [g#3,b3,e4]@4 [e3,g#3]@4 ~@2 e2@5 ~", // F#m E
  I: "[a3,c#4,e4]@2 e3@2 [a3,c#4,e4]@2 e3@2 ~@4 [a3,c#4,e4]@2 e3 ~, a2@15 ~, ~@2 [a3,c#4,e4] ~, ~@5 e3@2 ~", // A
  J: "~ e3 [g#3,b3,e4] e3 ~ e3 [g#3,b3,e4] e3, [g#3,b3,e4] ~ [g#3,b3,e4] ~", // E
  K: "[[a3,c#4,e4]@2 e3@2 ~@6 a2@2 [c#4,e4]@2 a2 ~ d3 ~ d3@2 ~@2 d3@2 ~@4 [a3,d4,f#4]@2 e3@2, a2@8 ~@18 d3@5 ~, ~ [a3,c#4,e4]!2 a3@2 [a3,d4,f#4]!2 ~, ~@3 e3@2 ~@3 [d4,f#4]@2 ~@6]/2", // A C#m D A D
  L: "[~@2 e3@2 ~@4 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@4 e3@2 ~@6 e3@2 [a3,c#4,e4]@2 e3 ~, a2@3 e3@2 a2@2 ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@2, [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@3 e3@2 ~@2 e3@2 ~@3]/2", // A
  M: "~@2 e3@2 ~@8 [g#3,b3,e4]@2 e3 ~, [g#3,b3,e4]!3 ~, ~@3 e3@2 e3@2 ~", // E
  N: "e3 ~@3 [g#3,b3,e4]@2 e3 ~ e3 ~@3 [g#3,b3,d4]@2 e3@2, [g#3,b3,e4] ~ [g#3,b3,d4] ~, ~ e3@2 ~@2 e3@2 ~", // E G#dim E G#dim
  O: "~@2 e3@2 ~@4 [a3,c#4,e4]@2 e3 ~@3 e3@2, a2@11 ~@5, [a3,c#4,e4]!2 ~ [a3,c#4,e4], ~@3 e3@2 ~@3", // A
  P: "~@2 e3@2 [g#3,b3,e4]@2 ~@6 [g#3,b3,e4]@2 e3 ~, [g#3,b3,e4]@2 ~ e3@2 e3@2 ~, ~@2 [g#3,b3,e4] ~", // E
  Q: "[~@2 e3@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@2 [c#4,e4]@2 e3@2 d3 ~ d3@2 ~@2 d3@2 ~@4 [d4,f#4]@2 e3@2 ~@4 [a3,c#4,e4]@2 e3@2 ~@4 [a3,c#4,e4]@2 e3 ~, a2@6 ~@4 a2@5 ~ [d4,f#4]@4 [d4,f#4]@4 [d4,f#4]@4 ~@4 [c#4,e4]@4 ~@12, [a3,c#4,e4]@4 ~@2 e3@5 ~ a3@12 a3@12 ~@4 [a3,c#4,e4]@4 ~@4, ~@26 d3@5 ~ a2@6 ~@10, ~@17 e3@2 ~@2 e3@2 ~]/3", // A C#m D A D C#m A
  R: "[g#3,b3,e4]@2 e3@2 ~@8 g#3@2 a2 ~, ~ [g#3,b3,e4]!2 [b3,e4], ~@3 e3@2 e3@2 ~", // E E5
  S: "[a3,c#4,e4]@2 e3@2 [a3,c#4,e4]@2 e3@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 e3 ~, a2@3 ~@2 e3@2 ~", // A
  T: "[[c#4,e4]@2 [e3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~@17 g#3@2 ~@4 [g#3,e4]@4, [a2,a3]@2 ~@5 e3@3 e3@2 ~ e3@3, ~@15 [g#3,b3]@8 ~ b3@8, ~@4 e4@2 e4 ~]/2", // C#m A C#m A G#m
  U: "[~@6 [a3,c#4,e4] ~@9 [d3,d4,f#4]@4 ~@8 [a3,d4,f#4]@2 a3 ~, a2@10 e3@6 ~@4 d3@6 d3@5 ~, [a3,c#4,e4]@3 ~ [c#4,e4]@4 ~@4 [d4,f#4]@2 ~@2, ~@2 e3@2 a3@3 a3@3 ~ a3@3 ~@2, ~@3 a2 ~@4]/2", // A D A C#m D
  V: "~@4 a3@2 [a3,c#4,e4] ~@5 a3@2 e3 ~, a2@15 ~, [c#4,e4]@6 ~@2 [c#4,e4]@7 ~, a3 ~ a3 ~, ~ e3@4 e3@2 ~", // A C#m
  W: "[d3@2 ~@4 a3@2 ~@4 a3@2 [d4,f#4] ~@15 e3@2, [d4,f#4]@4 [d4,f#4]@3 ~ [c#4,e4]@4 ~@4, a3@3 ~ a3@2 ~ a3@3 a3@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2, ~@4 d3@5 ~ d3@5 ~ a2@16, ~@9 e3@2 e3@2 e3@2 ~]/2", // D C#m A
  X: "e3 ~ e3@2 e3@2 ~ e3 ~@6 [e3,b3]@2, [b3,e4] e4, g#3@3 g#3 b3@3 ~, ~@2 g#3!2, ~@5 e3@2 ~", // E5
  Y: "[e3@2 e3@2 [e3,g#3]@4 ~@2 e3@2 [e3,g#3,b3]@3 ~@2 e4@3 e3@2 e3@2 ~@6 e3@2, [b3,e4]@4 ~@4 [e3,a3,c#4]@2 a3@3 e3@2 ~, g#3@4 ~@4 [f#3,a3]@7 [a2,e3]@2 a2 ~@2 [c#4,e4]@4 [c#4,e4]@4 [a3,c#4,e4]@4]/2", // E E5 A F#m A5 C#m A
  Z: "[g#3,b3,e4] ~@2 [g#3,b3,e4], ~ [g#3,b3,e4]!2 ~, ~@3 e3@2 e3@3", // E
  AA: "[a3,c#4,e4]@2 e3@2 ~@8 [a3,c#4,e4]@2 a2 ~, a2 [a3,c#4,e4]!2 ~, ~@6 e3@9 ~, ~@5 a2@2 ~", // A
  AB: "[d3 ~@9 d3@2 a3@2 d3@2 ~@2 e3@2 ~@6 e3@2 [a3,c#4,e4]@3 ~, [d4,f#4]@3 [d4,f#4] ~ [c#4,e4]@2 ~, a3@2 a3@2 a3@2 ~ a3@3 a3@2 a3@2 ~@2, ~ d3@2 d3@2 ~@3 [a2,c#4,e4]@2 ~ e3@2 ~@3]/2", // A D C#m A
  AC: "e2@2 ~@8 e3@2 [g#3,b3,e4]@2 e3 ~, [g#3,b3,e4]!3 ~, ~ e3@2 e3@2 ~@3", // E
  AD: "[~@6 e3@2 ~@4 [a3,c#4,e4]@3 ~ [b3,e4]@4 [g#3,b3,e4]@4 ~@8 [c#4,e4]@4 ~@8 [a3,c#4,e4]@4, a2@8 ~@2 a2@5 ~@15 a2@6 ~@12, [a3,c#4,e4]!3 ~@3 [g#3,b3,e4]!2 ~ [a3,c#4,e4]!2 ~, ~@2 e3@4 ~@9 [e3,g#3]@5 e3@6 e3@5 [e3,a3]@5 ~@2 e3@4 e3@6]/3", // A E5 E C#m A E A E …
  AE: "[g#3,b3,e4]@2 [g#3,b3,e4] ~@3 [g#3,b3,e4]@2, ~@3 e2@2 e2@3, ~@2 [g#3,b3,e4] ~", // E
  AF: "~@4 [a3,c#4,e4]@2 e3@2 ~@4 [a3,c#4,e4]@3 ~, a2@7 ~@9, [a3,c#4,e4] ~ [a3,c#4,e4] ~, ~@2 e3@4 ~@4 e3@5 ~", // A
  AG: "d3 ~ d3@2 ~@6 d3@2 [a3,d4,f#4]@4, [a3,d4,f#4]!3 ~, ~@3 d3@2 ~@3", // D
  AH: "[~@6 e3@2 ~@4 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@4 [a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@3 ~, a2 ~@3, [a3,c#4,e4]!3 ~@3 [a3,c#4,e4] ~, ~@2 e3@4 ~@4 e3@4 e3@8 e3@4 e3@5 ~]/2", // A
  AI: "e3 ~@5 e3@2 ~@4 [g#3,b3,e4]@3 ~, [g#3,b3,e4]!3 ~, ~@2 e3@4 ~@4 e3@5 ~", // E
  AJ: "[~@2 e3@2 [b3,e4]@2 ~@6 [g#3,b3,e4]@2 ~ b3 ~@4 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@4 [a3,c#4,e4]@3 ~, [g#3,b3,e4]@2 g#3@2 [g#3,b3,e4]@2 ~ a2@4 ~@5, ~@6 e3@4 e3@5 a3@5 ~@12, ~@4 [c#4,e4] ~@3, ~@18 e3@4 e3@9 ~]/2", // E5 E A E C#m
  AK: "e3 ~ e3@2 ~@4 [g#3,b3,e4]@4 [g#3,b3,e4]@2 e3@2, [g#3,b3,e4]!2 ~@2, ~@3 e3@4 ~", // E
  AL: "[a3,c#4,e4]@2 e3@2 ~@2 e3@2 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@3 ~, a2@15 ~, ~@4 [a3,c#4,e4]@4 ~@2 e3@5 ~", // A
  AM: "d3@2 ~@2 [a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,d4,f#4]@2 a3 ~, [a3,d4,f#4] ~@3, ~@2 d3@13 ~", // D
  AN: "e4 ~@2 e3 [a3,c#4,e4] ~ [a3,c#4,e4]@2, a2 ~, [a3,c#4] [a3,c#4,e4] ~@2, ~ e3@2 ~@2 e3@3", // A
  AO: "[a3,c#4,e4]@2 ~@4 e3@2 ~@4 [a3,c#4,e4]@3 ~, a2@9 ~@7, ~@2 e3@4 ~@4 e3@5 ~, ~ [a3,c#4,e4]!2 ~", // A
  AP: "e3 ~ e3@2 [e3,g#3,b3,e4]@4 [f#3,a3,e4]@4 [g#3,b3,e4]@2 ~@2, [g#3,b3,e4] ~@3", // E F#m7 E
  AQ: "[~@2 e3@2 ~@4 [a3,c#4,e4]@2 ~@2 [a3,c#4,e4]@2 ~@4 e3@2 ~@8 [a3,c#4,e4]@2 e3 ~, a2@3 e3@2 a2@2 ~ [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@2, [a3,c#4,e4]@2 [a3,c#4,e4]@2 ~@3 e3@2 ~@2 e3@2 e3@2 ~]/2", // A
  AR: "[a3,c#4,e4]@2 e3@2 ~@8 [a3,c#4,e4]@2 e3 ~, a2@3 e3@2 e3@2 ~, ~ [a3,c#4,e4]!2 ~", // A
  AS: "[[c#4,e4]@2 [e3,c#4,e4]@2 [a2,e3,a3,c#4,e4] ~@17 g#3@2 ~@4 [g#3,e4]@4, [a2,a3]@2 ~@5 e3@3 e3@2 ~ e3@3, ~@15 b3@9 b3@8, ~@15 g#3@7 ~@10, ~@4 e4@2 e4 ~]/2", // C#m A C#m A
  AT: "[d3@2 ~@4 a3@2 ~@4 a3@2 [d4,f#4] ~@7 e3@2 ~@6 e3@2, [d4,f#4]@4 [d4,f#4]@3 ~@2 e3@2 ~@2 e3@2 ~, a3@3 ~ a3@2 ~ a3@3 a3@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2, ~@4 d3@5 ~ d3@5 ~ [a2,c#4,e4]@8 ~@8]/2", // D A
  AU: "e3@2 e3@2 e3@2 ~ e3 ~@6 [e3,b3]@2, [b3,e4] e4, g#3@3 g#3 b3@3 ~, ~@2 g#3!2, ~@5 e3@2 ~", // E5
  AV: "[e3 ~ e3@2 [e3,g#3]@3 ~@3 e3@2 [e3,g#3,b3]@3 ~@2 e4@3 ~@2 e3@2 ~@6 e3@2, [b3,e4]@7 ~@9 e3@6 ~@4 e3@4 ~@2, g#3@4 ~@4 [f#3,a3]@7 a2@2 a2 ~@2 [c#4,e4]@4 [c#4,e4]@4 ~@4, ~@16 [a3,c#4]@4 a3@7 ~ [a3,c#4,e4]@4]/2", // E E5 F#m C#m A
  AW: "[a3,c#4,e4]@2 ~@6 [a3,c#4,e4]@2 a2@2 [a3,c#4,e4]@2 a2 ~, a2@5 ~@3, ~@2 e3@4 e3@5 ~@5, ~ [a3,c#4,e4] ~@2", // A
  AX: "~@3 e3 ~@3 e3, e2 ~, [g#3,b3,e4]!4, ~ e3@2 ~@2 e3@2 ~", // E
  AY: "~ e3 ~ a2!3 ~ [a2,e3], a2@3 e3@3 ~@2, [a3,c#4,e4]!4", // A5 A
  AZ: "[[a2,a3,c#4,e4]@2 [a2,a3,c#4,e4] ~ [a2,a3,c#4,e4]@2 ~@22 [g#3,e4]@4, ~@14 e3@6 e3@6 e3@5 ~, ~@15 b3@9 b3@7 ~, ~@15 g#3@7 g#3@6 ~@4, ~@4 e4@2 e4 ~]/2", // A C#m
  BA: "[e3 ~ e3@2 [e3,g#3]@3 ~@5 [g#3,b3]@3 ~@2 e4@3 ~@2 e3@2 ~@6 e3@2, [b3,e4]@6 ~@4 e3@5 a2@2 a2 ~@2 [c#4,e4]@4 [c#4,e4]@4 ~@4, g#3@4 ~@4 [f#3,a3]@7 ~ e3@6 ~@4 e3@4 ~@2, ~@16 [a3,c#4]@4 a3@7 ~ [a3,c#4,e4]@4]/2", // E G#m E5 C#m F#m A
  BB: "~@6 e3@2 ~@4 [a3,c#4,e4]@2 a2 ~, a2@4 ~ a2@2 ~, [a3,c#4,e4]!3 ~, ~ e3@2 ~@5", // A
  BC: "[d3@2 ~@6 a3@2 d3@2 a3@2 d3@2 ~@2 e3@2 ~@6 e3@2 [a3,c#4,e4]@3 ~, [d4,f#4]@11 ~ [d4,f#4]@4 ~@4 [c#4,e4]@8 ~@4, a3@2 a3@2 ~@3 a3@3 a3@2 a3@2 ~@2, ~ d3@2 d3@2 ~@3 [a2,c#4,e4]@2 ~ e3@2 ~@3]/2", // A D C#m A
  BD: "~@6 e3@2 ~@4 [g#3,b3,e4]@2 e3 ~, e2 ~, [g#3,b3,e4]!3 ~, ~ e3@2 ~@2 e3@2 ~", // E
  BE: "[a2,a3,c#4]@5 ~ [a2,a3,c#4]@2 [b2,b3]@4 [c#3,c#4]@4, ~@8 d4@3 ~ e4@2 ~@2", // A B C#
  BF: "[a3,d4,f#4]@3 d3 [a3,d4,f#4] d3 [a3,d4,f#4] d3, d3 ~@3", // D
  BG: "[[a3,c#4,e4]@4 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 a2@2 a3@2 a2@2 [g#3,b3]@5 ~ [e2,g#3,b3,e4] ~ [g#3,b3,e4]@2 e2@2 [g#3,b3,e4]@2 e2@2, a2@3 ~ a2@5 ~@3 e4@9 ~@11, ~@12 c#4@4 e2@3 ~@5 e2 ~@7]/2", // A G#m E
  BH: "[[a3,c#4,e4]@4 a2 ~ [a3,c#4,e4] ~@3 a2 ~@3 c#4 ~ [d4,e4]@2 a2@2 [a3,d4,e4]@3 ~ [a2,a3,c#4,e4]@26 ~@14, a2@3 ~@3 a2@2 [a3,c#4,e4]@4 a2@4 ~@48, ~@7 a3@2 ~@23]/4", // A Dsus2 Asus4 A
})).s("gm_acoustic_guitar_steel").gain(0.2).pan(0.3)

// other · electric guitar clean · "Guitar"
const electric_guitar_clean = note(`<
  ~@5 A B C D E ~@3 F@3 G H I J K L M ~ N O ~@3 P ~@2 Q R S T ~@4 U V W ~@6 X Y Z AA AB AC AD AE AF ~@3 F@3 G H I ~@10 P
  ~@2 Q R S T ~@4 AG AH ~@3 P ~@2 Q R S T ~@8 AI AJ@3
>`.pickRestart({
  A: "~@10 d3 ~ c#3@4", B: "a2@4 ~@2 a2 ~ c#3@2 e3@2 g#2@4", C: "e2@4 ~@2 e2 ~ d3@2 e3 ~ c#3@4",
  D: "a2@4 e3@2 a2 ~ a2@2 e3 ~ g#2@4", E: "~@4 b2@2 e2 ~ f#2@4 g#2@4, e2@3 ~@5",
  F: "[~@8 d4@7 ~ [a3,c#4]@23 ~@9, ~@2 f#3@13 e3@23 ~@10, ~@2 a3@3 ~@11]/3", // A
  G: "~@2 e4@2 c#4@2 b3 ~ a3@2 g#3 ~ f#3@2 e3@2", H: "c#3 e3 c#3 ~ e2@2 g#2@2, ~@3 b2@3 ~@2", I: "a2@11 ~@5",
  J: "~@2 e3 ~ g#2@4 e2@3 ~ c#3@4", K: "a2@13 ~@3", L: "~@2 c#3@4 d3@3 ~ e3 ~ c#3@4", M: "a2@3 ~",
  N: "~@4 f#3@2 e3@2 c#3@2 e3 ~ c#3@4", O: "a2@2 a2 ~@5", P: "~@2 c#5 ~ c#5@4 a4@8",
  Q: "~@2 e4@2 b4@2 c#4 e4 g#4@2 b3 e4 f#4@2 b3 e4", R: "f#4 e4 f#4 g#4", S: "~@2 a2@2 c#3@2 a3@7 ~@3",
  T: "~@2 f#3@2 e3@3 ~", U: "~@2 c#3@2 a2 b2 c#3@2", V: "~@4 c#3 e3 c#3@2, e2@15 ~, ~@2 e3@3 ~@3", W: "a2 ~",
  X: "~@6 c#5@3 ~ b4@4 a4@2", Y: "[e4,a4]@4 [a3,c#4]@2 a3@5 ~ a3@3 ~, ~@6 e4@9 ~",
  Z: "[e4,g#4,b4]@4 [d4,f#4] ~ e4@2 [b3,d4]@5 ~ c#5 ~, ~@6 b4@7 ~@3, ~@6 c#4 ~@9", // E D Bm
  AA: "c#5@2 b4@2 a4@2 c#4@4 e4@2 a4@3 ~", AB: "f#4@2 ~@2 f#4@4 d4@5 ~ e4 ~", AC: "c#5@6 e5 ~ c#5@2 b4@2 a4@4",
  AD: "b4@3 ~ e4@3 ~ g#4@4 b3@3 ~, g#4@7 ~ e4@7 ~", AE: "[c#4,e4]@6 a4 ~ e4@4 a3@4, ~ c#4",
  AF: "[e4,g#4]@5 ~ [e4,g#4]@6 [b3,e4]@4", AG: "~@2 a2 ~ c#3@2 e3@2 f#3@2 e3 ~ c#3@2 b2 ~", AH: "a2 ~ a2 ~ a2 ~@11",
  AI: "~@7 a2", AJ: "[c#3@2 e3@2 b2@4 a2@25 ~@15]/3",
})).s("gm_electric_guitar_clean").gain(0.3).pan(0.7)

// chords · violin
const violin = note(`<
  ~ A B C D E ~@2 F G ~@15 H I J K L@2 G ~ M N ~@3 O P Q R S@2 T U V W X Y ~@8 Z AA AB AC AD@2 AE AF ~@7 H I J K L@2 G ~
// … 137 more lines

More by Alan Jackson