Strudelify

Engel von Valparaiso

G. G. Anderson

KeyA♭ majorTempo173 bpm
0:00/0:00
// Engel von Valparaiso — G. G. Anderson
// 173 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 160 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(173/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.

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@6 A@2 B@3 C@3 D@3 E@3 F@3 G@3 H@2 I J@3 K@3 L M@2 N@3 O P@2 Q R@2 S T@2 U V@2 W@3 X@3 Y@2 Z AA@2 AB AC@3 AD@3 AE@3
  AF@3 AG@3 AH@3 AI@2 AJ AK@3 AL@2 AM AN@2 AO AP@3 S AQ AR AS AT@2 AU@3 AV@3 AW@3 AX@3 AY@3 AZ@3 BA@3 AK@3 BB@3 BC BD BE
  BF@2 AJ BG@3 BH BI@2 BJ BK@2 BL@3 BM@3 BN@3 BO@4 ~
>`.pickRestart({
  A: "[~@2 f2@5 c2]/2", B: "[f2@10 c2@2 eb2@5 ~ c2@3 ~ c2 ~]/3", C: "[f2@5 ~ c2@6 f1@5 ~ c2@5 ~]/3",
  D: "[f2@5 ~ c2@5 ~ f1@6 c2@6]/3", E: "[ab1@11 ~ eb2@12 ab1@12 eb2@7 ~ eb1@3 ~]/3",
  F: "[f1@9 ~@3 c2@11 ~ f2@12 c2@11 ~]/3", G: "[ab1@10 ~@2 eb2@11 ~ ab1@11 ~ eb1@7 ~ ab1@3 ~]/3",
  H: "[bb1@3 f1@2 bb1 f1@2]/2", I: "~@2 c2@5 ~", J: "[db2@3 bb1@3 eb2@3 bb1@2 eb2]/3",
  K: "[c2@12 g1@8 c2@4 ab1@10 ~@2 eb1@9 ~@3]/3", L: "ab1@11 ~ eb1@3 ~", M: "[f1@3 ~ g1@3 ~ ab1@12 eb1@7 ~ ab1@4]/2",
  N: "[eb1@5 ~ bb1@6 eb1@5 ~ bb1@6]/3", O: "eb2@12 eb1@3 ~", P: "[f1@4 g1@3 ~ eb1@12 bb1@10 ~@2]/2",
  Q: "ab1@6 g1@2 f1@3 ~ eb1@3 ~", R: "[f1@3 ~ g1@3 ~ ab1@10 ~@2 eb1@10 ~@2]/2", S: "ab1@11 ~ eb1@4",
  T: "[f1@3 ~ g1@3 ~ ab1@11 ~ eb1@6 ~@2 ab1@4]/2", U: "db2@3 c2 bb1@2 ab1@2",
  V: "[bb1@4 c2@4 db2@12 db1@4 eb1@3 ~ e1@4]/2", W: "[ab1@10 ~@2 eb1@9 ~@3 eb2@12 eb1@4 f1@4 g1@3 ~]/3",
  X: "[ab1@12 eb1@9 ~@3 ab1@12 ~ eb1@9 ~@2]/3", Y: "[eb2@10 ~@2 c2@11 ~ f2@8]/2", Z: "~@4 c2@11 ~",
  AA: "[f1@5 ~ c2@5 ~ f2@4]/2", AB: "~@4 c2@9 ~@3", AC: "[f1@10 ~@2 c2@12 ab1@11 ~ eb2@10 ~@2]/3",
  AD: "[ab1@11 ~ eb1@8 ~@4 f1@10 ~@2 c2@11 ~]/3", AE: "[f2@10 ~@2 c2@11 ~ ab1@12 eb2@12]/3",
  AF: "[ab1@10 ~@2 eb1@8 ab1@4 bb1@12 f2@7 ~ bb1@4]/3", AG: "[f1@5 ~ c2@4 f2@2 db2@6 bb1@6]/3",
  AH: "[eb2@12 eb1@7 ~ bb1@4 c2@12 g1@4 c2@4 bb1@4]/3", AI: "[ab1@10 ~@2 eb1@9 ~@2 ab1@9]/2",
  AJ: "~@4 eb1@4 f1@3 ~ g1@3 ~", AK: "[ab1@3 eb1@2 ab1 eb1@3 bb1@3]/3", AL: "[eb2@11 ~ bb1@12 eb1@8]/2",
  AM: "~ eb1 f1 g1", AN: "[eb1@12 bb1@10 ~@2 ab1@5 ~ g1@2]/2", AO: "f1 eb1 f1 g1",
  AP: "[ab1@10 ~@2 eb1@11 ~ ab1@11 ~ eb1@4 f1@3 ~ g1@2 ~@2]/3", AQ: "~@4 ab1@4 db2@5 ~ c2@2", AR: "bb1 ab1 bb1 c2",
  AS: "db2@3 db1", AT: "[eb1@3 ~ e1@4 ab1@10 ~@2 ab1@4 g1@3 ~ f1@4]/2", AU: "[eb1@6 eb2@4 eb1@2 ab1@5 ~ eb1@5 ~]/3",
  AV: "[ab1@12 eb2@12 f2@11 ~ c2@8 f2@4]/3", AW: "[c2@6 g1@5 ~ f2@5 ~ c2@4 f2@2]/3",
  AX: "[c2@12 g1@10 ~@2 db2@11 ~ db2@12]/3", AY: "[ab1@11 ~ eb1@7 ~ ab1@3 ~ bb1@12 f1@8 bb1@3 ~]/3",
  AZ: "[c2@12 g1@11 ~ c2@12 g1@4 c2@4 bb1@4]/3", BA: "[ab1@11 ~ eb1@11 ~ ab1@12 eb1@4 f1@3 ~ g1@3 ~]/3",
  BB: "[eb2@6 bb1@6 eb1@5 ~ eb1@2 f1@2 g1@2]/3", BC: "eb1@5 ~ eb1@2", BD: "eb2@4 eb1@4 ab1@5 ~ g1@2",
  BE: "f1@2 eb1@2 f1@2 g1 ~", BF: "[ab1@5 ~ eb1@5 ~ ab1@4]/2",
  BG: "[ab1@7 ~@5 eb1@7 ~ ab1@4 db2@12 c2@4 bb1@4 ab1@4]/3", BH: "db2@13 db1@3",
  BI: "[eb1@4 e1@4 ab1@12 eb1@8 ab1@3 ~]/2", BJ: "eb2@3 eb1", BK: "[f1@3 ~ g1@3 ~ ab1@12 eb1@6 ~@2 ab1@4]/2",
  BL: "[db2@12 ab1@10 ~@2 ab1@11 ~ eb1@7 ~ ab1@4]/3", BM: "[eb1@10 ~@2 bb1@12 eb2@12 eb1@4 f1@3 ~ g1@3 ~]/3",
  BN: "[ab1@10 ~@2 eb1@10 ~@2 ab1@12 eb1@6 ~@2 ab1@3 ~]/3", BO: "[c2@10 ~@2 c2@12 f1@25 ~@15]/4",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@8 B@3 C D E ~@2 F G@3 H@3 I@3 J@4 K@5 L@3 M@6 N@3 O@3 P@6 Q R@2 S@3 T U ~@2 V@7 W@7 X@3 Y Z@3 AA@6 AB@3 AC@5 AD@3
  AE@6 AF@3 AG@6 AH@3 AI AJ@8 AK@4 AL@5 AM@3 AN@3 AO@3 AP@3 AQ@3 AR@5
>`.pickRestart({
  A: "[~@8 [ab4,c5]@16 [bb4,db5]@4 ~@2 [c5,eb5]@2 [bb4,db5]@3 ~ [ab4,c5]@14 ~@2 [eb4,g4,bb4]@3 [ab4,c5]@16 [bb4,db5]@5 ~ bb4@2 ~ ab4@11 bb4 [bb4,bb5]@3 ~ ab4@2 ~ [g4,g5]@3 ~ f4 [f4,f5]@10 ~@6 bb4@4 ~ [c5,eb5]@2 [bb4,db5], ~@8 f4@43 ~@4 eb4@21 ~ eb4@12 ~@2 e4@10 ~@27, ~@77 g4 ~ c5@40 db5@4 ~@5, ~@91 g4@8 ~@4 ab4@16 ~@9, ~@95 ab5@3 ~@30]/8", // Ab Bbm Cm Bbm Ab Eb Ab Bbm …
  B: "[~@4 ab4@19 ~ eb4@11 ~ [bb3,c4,e4]@10 ~@2, ~@3 c5@20 bb4@12 ~@13, ~ g4]/3", // C7
  C: "~@2 f3 ab3 c4@2 f4@2, f4@3 ~, c4 ~, ab3@3 ~@5", D: "c4@4 ab3@3 ~ f3@4 ab3@4", E: "c4 f4 c4 ab3", F: "~@6 f4 g4",
  G: "[[ab3,c4,ab4]@11 ~ [g3,bb3,g4,bb4]@10 ~@2 [ab3,c4,ab4,c5]@11 ~ bb4@4 ab4@3 ~ g4@4, eb4, ~@36 [g3,bb3]@11 ~]/3", // Ab Gm Ab Gm
  H: "[f4@22 f4 g4, [ab3,c4]@23 ~]/3", // Ab
  I: "[[ab3,ab4]@11 ~ [g3,bb3,g4,bb4]@11 ~ [ab3,c4]@23 ~, eb4@47 ~, c4@3 ~@5 [ab4,c5]@5 ~@3]/3", // Ab Gm Ab
  J: "[[bb4,db5]@6 ~@6 eb4@4 db4@8 [f4,ab4,c5]@7 ~@17 [f4,ab4,db5]@5 ~@7 [bb3,db4,f4,bb4]@4, f4@3 ~@5, bb3@11 ~ ab3@18 ~@2, db4@3 ~@3 c4@6 db4@3 ~]/4", // Bbm Fm Db Bbm
  K: "[~@8 [g4,bb4]@21 ~@2 e4 [e4,g4,c5]@17 ~@7 [ab3,c4,eb4]@16 [bb3,db4]@5 ~ eb4@2, ~@4 [g3,bb3]@23 ~@13, ~@8 eb4@23 ~ c4@23 ~@22 c4@2 ~]/5", // Gm C Ab Bbm Gm
  L: "[[bb3,db4]@4 ~@8 [ab4,ab5]@2 ~@2 [g4,g5]@2 ~@2 f4@2 ~@2 [eb4,eb5]@2 ~@14 [bb3,db4]@5 [ab3,c4]@2 ~, ~@4 [ab3,c4]@35 ~@9, ~ eb4@5 ~@6, ~@20 f5 ~@27]/3", // Bbm Ab G Eb Bbm Ab
  M: "[~@32 db4@17 ~@11 [g4,g5]@4 [f4,f5]@4 [eb4,eb5]@3 ~ [bb3,bb4]@12 ~@12, g3@31 ~, bb3@3 ~, eb4@17 ~@7, eb3@3 ~@5]/6", // G F Eb Bb
  N: "[[ab3,c4,eb4]@40 [bb3,db4]@5 ~ [c4,eb4]@2]/3", // Ab Bbm Cm
  O: "[[bb3,db4] ~@2 [ab4,ab5] [g4,g5] [f4,f5] [eb4,eb5]@3 ~@3, ~@2 [ab3,c4]@21 ~, ~ eb4 ~@2]/3", // Bbm Ab G F Eb Ab
  P: "[[f3,ab3,db4]@23 ~ [ab3,db4]@23 ~ [ab3,c4]@21 ~@3 eb4@7 ~ eb4@3 ~ [eb4,c5]@7 bb4 [db4,bb4]@4, ~@23 e4@6 ~@18 [eb4,ab4]@6 ~@39 bb5 ~@3, ~@24 e3@24 c5@6 ~@18 eb5@10 ~@2 [eb5,c6]@4 ~@3 db5@2 ~@3, ~@4 [ab4,db5] ~@3 eb3@4 ~@4]/6", // Db Db5 Ab Cm Gb Ab5 Cm Db5
  Q: "[c4,eb4,ab4]@7 ~, [c5,ab5] ~@3", // Ab Fm
  R: "[[bb3,db4]@5 [c4,eb4]@2 ~ [bb3,db4]@3 ~@9 [ab4,ab5]@3 ~ [g4,g5]@2 ~@2 [f4,f5]@2 ~@2, ~@6 [ab3,c4]@9 ~]/2", // Bbm Cm Bbm Ab G F Ab
  S: "[[bb3,eb4,g4]@11 ~ [bb3,e4,g4]@11 ~ f3@2 ~@2 f3@2 ~@2 c4@4 f4@4 c4@4 ab3@3 ~, eb5@5 ~@7 e5@3 ~@9 f4@12 ~@12, ~@3 c4 ~@2, ~@4 ab3!2 ~@2]/3", // Eb Edim
  T: "f3@4 ab3@4 c4@3 ~ f4@3 ~", U: "c4@3 ~ ab3@2 ~@10",
  V: "[~@6 g4 ~ [ab3,c4,ab4]@11 ~ [bb3,g4,bb4]@12 [ab3,c4,ab4,c5]@11 ~ bb4@4 ab4@3 ~ g4@4 f4@44 f4@2 g4@2 [ab3,c4,eb4,ab4]@8, ~@5 f4@2 ~ eb4@34 ~@70, ~@20 g3@9 ~@15 [g3,bb3,eb4]@11 ~ [ab3,c4]@46 ~@10]/7", // Ab Eb Ab Eb Ab
  W: "[~@4 [g3,bb3,g4,bb4]@11 ~ [ab3,c4]@22 ~@2 [bb4,db5]@6 ~@6 eb4@4 db4@7 f4 [ab3,c4,f4]@22 ~ f4 [f4,ab4,db5]@6 ~@6 [f4,bb4,db5]@6 ~@6, ~@4 eb4@33 ~@3 [bb3,f4]@23 ~ c5@7 ~@16 ab3@12 ~ bb3@11 ~, ~@16 [ab4,c5]@17 ~@7 db4@12 ~@11 ab4@7 ~@17 db4@23 ~@2]/7", // Gm Ab Bbm Fm Db Bbm Bb5 Ab
  X: "[[g3,bb3,eb4]@23 c4 [g3,bb3,c4,e4]@21 ~@3, [g4,bb4,eb5]@19 ~@5 [g4,c5,e5]@13 ~@11]/3", Y: "[ab3,c4,eb4]@15 ~",
  Z: "[[bb3,db4]@5 ~ [c4,eb4]@2 [bb3,db4]@4 ~@8 [ab4,ab5]@3 ~ [g4,g5]@4 [f4,f5]@4 [eb4,eb5]@13 ~@3, ~@12 [ab3,c4]@35 ~, ~@3 eb4@5 ~@4]/3", // Bbm Cm Bbm Ab G F Eb Ab
  AA: "[[bb3,db4]@6 [ab3,c4]@2 ~@11 db4@12 ~@37 [g4,g5]@4 [f4,f5]@4 [eb4,eb5]@4 [bb3,bb4]@15 ~, ~ g3@11, ~ bb3@9 ~@2, ~@2 eb4@17 ~@5]/6", // Bbm Ab G F Eb Bb
  AB: "[~@8 [ab3,c4,eb4]@39 ~]/3", // Ab
  AC: "[[bb3,db4]@5 [c4,eb4]@3 [bb3,db4]@4 ~@8 [ab4,ab5]@4 [g4,g5]@4 f5@4 [eb4,eb5]@14 ~@10 [f3,ab3,db4]@23 ~, ~@12 [ab3,c4]@41 ~@27, ~@3 eb4@5 ~@12, ~@14 f4 ~@25]/5", // Bbm Cm Bbm Ab G Eb Db Ab
  AD: "[[e4,ab4,db5]@10 ~@14 [eb4,ab4,c5]@7 ~@5 db4@3 c4@6 ~@3, [ab3,db4]@23 ~ ab3@21 ~@3, e3@21 ~@3 eb3@23 ~, ~@2 c4 ~]/3", // Dbm Ab Db5
  AE: "[[eb3,eb4]@8 [eb4,eb5]@4 [eb5,c6]@6 ~@2 [db4,bb4,bb5]@4 [c5,ab5]@12 ~@24 ab3@11 ~ [ab3,c4,f4]@23 ~, ~@12 c5@8 db5@2 ~@2 [c4,eb4]@47 ~@25, ~@2 ab4@3 ~@3]/6", // Eb Cm Gb Fm Cm
  AF: "[~@12 c5@8 bb4@4 [c4,f4]@23 ~, [g3,e4]@23 ~ ab3@21 ~@3, [bb3,c4]@21 ~@3 ab4@11 ~@13]/3", // F5 C Bbsus2
  AG: "[c4@12 [c4,c5]@8 bb4@4 [db4,f4]@23 ~ [c4,eb4]@22 ~@2 [ab3,db4,f4]@23 ~, g3@24 ab3@46 ~@2 bb3@21 ~@3, [bb3,e4]@21 ~@3 ab4@13 ~@59]/6", // C Db Cm Db Bbdim
  AH: "[c4@4 ~@5 g4@6 ~, bb3@23 ~, g3@5 g4 c5@6, e4@16 e4@29 ~@3, ~ c4@3]/3", AI: "[ab3,c4,eb4]",
  AJ: "[[bb3,db4]@5 [c4,eb4]@3 [bb3,db4]@4 ~@8 ab4@4 g4@4 f4@4 eb4@24 ~@60 g4@4 f4@4 eb4@4, ~@3 c4@11 ~@18, ~@6 ab3@21 ~ [g3,bb3]@36, ~@3 eb4@5 ~@6 eb4@17 ~]/8", // Bbm Cm Bbm Gm
  AK: "[bb3@18 ~@6 [ab3,c4]@39 ~]/4", // Ab
  AL: "[[bb3,db4]@5 ~ [c4,eb4]@2 [bb3,db4]@4 ~@8 [ab4,ab5]@4 [g4,g5]@4 [f4,f5]@4 [eb4,eb5]@21 ~@3 [ab3,db4,f4]@24, ~@12 ab3@43 ~@25, ~@12 c4@41 ~@27, ~@19 eb4@13 ~@48]/5", // Bbm Cm Bbm Ab G F Eb Db
  AM: "[db4 db4@23 [ab3,c4]@21 ~@3, [ab3,e4]@23 ~@25, ab4@3 ~@5 eb4@8, ~ db5@9 ~@14 [ab4,c5]@10 ~@14]/3", // Ab Dbm Ab
  AN: "[[g3,bb3]@10 ~@2 c5 c5@5 ~ [db4,bb4]!2 ~@11 c4@14 ~@2, eb4@12 eb4@6 ~@6 ab4@23 ~, ~@3 c4 ~@2, ~@7 eb4@5]/3", // Gm Gb
  AO: "[[db4,f4,ab4]@12 [c4,eb4]@11 ~, db5 ~@2 ab4@3, ~@8 c5@3 ~@5]/3", // Db Cm
  AP: "[eb4@9 ~@3 [eb4,eb5]@10 ~@2 c5 [c5,eb5,c6]@14 ~@5 [db4,bb4,db5,bb5]@3 ~, eb3 ~@11 eb3@32 ~@4, ~@24 eb4@17 ~@7]/3", // Eb Cm Gb
  AQ: "[[c5,ab5]@16 ~@20 [ab4,ab5]@4 [g4,g5]@3 ~ [f4,f5]@2 ~@2, [ab3,c4]@47 ~, ab4@3 ~, ~@8 eb4@15 ~]/3", // Fm Ab G F Ab
  AR: "[e5@12 c4@11 ~ [f3,ab3,c4,f4]@48 ~@8, [bb3,e4,g4]@23 ~ [ab4,c5,f5]@19 ~@37]/5", // Fm Edim Fm
})).s("gm_string_ensemble_1").gain(0.36)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B@3 C D A E@2 F G H@3 ~@3 I@3 ~@3 J@3 ~@7 K L M@2 N O@2 P Q@2 R S@2 T U@2 V W@3 X@2 Y Z AA@2 AB AC@2 ~@4 AD@4 ~@2
  AE@4 ~@7 AF AG@2 AH AI@2 AJ AK@2 AJ AL@2 AM AN@2 AO AP@2 AQ@3 AR@2 AS AT@2 ~@13 AU AV@2 AW AX@2 AY AZ@2 AY BA@2 AF
  BB@2 BC BD@2 BE@3 BF@3 BG@3 BH@3 BI BJ@2 AB BK@3 ~
>`.pickRestart({
  A: "~@12 [ab5,c6] ~ [ab5,c6] ~", // Ab
  B: "[[ab5,c6] ~ [ab5,c6] ~ [ab5,c6]@3 ~ [bb5,db6]@3 ~@5 bb5@4 [ab5,c6]@14 ~@10 [ab5,c6] ~ [ab5,c6] ~, ~@7 [c6,eb6] ~@16, ~@15 db6@4 ~@29]/3", // Ab Bbm Ab Cm
  C: "[ab5,c6]@2 [ab5,c6]@2 [ab5,c6]@3 ~ [bb5,db6]@3 ~@3 [g5,bb5]@2", D: "[ab5,c6]@13 ~@3",
  E: "[[ab5,c6] ~ [ab5,c6] ~ [ab5,c6]@3 ~ [bb5,db6]@4 ~ [c6,eb6] ~ [bb5,db6]@4 ~ [ab5,c6]@12]/2", // Ab Bbm Cm Bbm Ab
  F: "~@12 [g5,bb5] ~ [g5,bb5] ~", G: "[g5,bb5] ~ [g5,bb5] ~ [g5,bb5]@3 ~ [f5,ab5]@2 ~@4 [eb5,g5]@2",
  H: "[[ab4,f5]@37 ~@11]/3", // Db
  I: "[[c5,eb5,ab5]@11 ~ [g5,bb5]@10 ~@2 [eb5,ab5,c6]@11 ~ [eb5,g5,bb5]@10 ~@2, ~@11 eb5@12 ~@25]/3", // Ab Gm Ab Eb
  J: "[[c5,eb5,ab5]@11 ~ [g5,bb5]@10 ~@2 [ab5,c6]@22 ~@2, ~@6 eb5@17 ~]/3", K: "~@8 [ab5,c6]@3 ~ [ab5,c6]@3 ~",
  L: "[ab5,c6]@2 ~@2 [ab5,c6]@4 [bb5,db6]@5 [c6,eb6]@2 ~", // Ab Bbm Cm
  M: "[[bb5,db6]@4 [ab5,c6]@18 ~@2 [c6,eb6]@3 ~ [c6,eb6]@3 ~]/2", // Bbm Ab Cm
  N: "[c6,eb6]@3 ~ [c6,eb6]@4 [bb5,db6]@5 ~ c6 ~, ~@13 ab5@2 ~", O: "[[g5,bb5]@22 ~@2 [g5,bb5]@3 ~ [g5,bb5]@3 ~]/2",
  P: "[g5,bb5]@3 ~ [g5,bb5]@4 [ab5,c6]@5 ~ bb5@2, ~@13 db6@2 ~", // Gm Ab
  Q: "[[ab5,c6]@4 [g5,bb5]@18 ~@2 [g5,bb5]@3 ~ [g5,bb5]@3 ~]/2", R: "[g5,bb5]@3 ~ [g5,bb5]@4 [ab5,c6]@4 [bb5,db6]@3 ~",
  S: "[[ab5,c6]@22 ~@2 [ab5,c6]@3 ~ [ab5,c6]@2 ~@2]/2", T: "[ab5,c6]@3 ~ [ab5,c6]@4 [bb5,db6]@5 ~ [c6,eb6]@2",
  U: "[[bb5,db6]@4 ab5@20 [c6,eb6] ~@3 [c6,eb6]@4, ~@2 c6@9 ~@5]/2", // Bbm Cm
  V: "~ [c6,eb6]@2 ~ [c6,eb6]@4 [bb5,db6]@4 [ab5,c6]@4", W: "[[f5,db6]@22 ~@2 db6@12 eb6@4 db6@7 ~, ~@12 e5@11 ~]/3",
  X: "[[eb5,c6]@8 db6@3 ~ c6@12 eb5 ~@7, ~@6 eb5@5 ~@5]/2", Y: "~ c6@2 bb5, eb5@5 ~ db5 ~",
  Z: "c5@4 [ab5,c6] ~ [ab5,c6] ~ [ab5,c6] ~ [ab5,c6] ~ [ab5,c6]@3 ~, ab5 ~@15", // Ab
  AA: "[[bb5,db6]@5 ~ [c6,eb6]@2 [bb5,db6]@4 [ab5,c6]@12 ~@8, ~@8 eb6 ~@23]/2", // Bbm Cm Bbm Ab
  AB: "~@4 [g5,bb5] ~ [g5,bb5] ~ [g5,bb5] ~ [g5,bb5] ~ [g5,bb5]@3 ~", // Gm
  AC: "[[f5,ab5]@4 ~@2 [e5,g5] ~@2 ab4@23, bb5 ~@7 [c5,f5]@24]/2", // Fm Em F5
  AD: "[~@8 [c5,eb5,ab5]@11 ~ [g5,bb5]@10 ~@2 [ab5,c6]@12 [g5,bb5]@12 ~@8, ~@5 eb5@9 ~@2]/4", // Ab Gm Ab Gm
  AE: "[~@8 [c5,eb5,ab5]@11 ~ [g5,bb5]@11 ~ [ab5,c6]@22 ~@10, ~@10 eb5@17 ~@5]/4", // Ab Gm Ab
  AF: "[ab5,c6]@3 ~ [ab5,c6]@3 ~ [ab5,c6]@3 ~ [ab5,c6]@4", // Ab
  AG: "[[bb5,db6]@3 [c6,eb6] [bb5,db6]@2 ab5@10, ~@12 c6@17 ~@3]/2", // Bbm Cm Bbm
  AH: "[c6,eb6]@3 ~ [c6,eb6]@3 ~ [c6,eb6]@2 ~@2 [c6,eb6]@4", AI: "[[bb5,db6]@5 ~ [ab5,c6] ~ [g5,bb5]@23 ~]/2",
  AJ: "[g5,bb5]@3 ~ [g5,bb5]@3 ~ [g5,bb5]@3 ~ [g5,bb5]@4", AK: "[[ab5,c6]@5 ~ [bb5,db6]@2 [ab5,c6]@4 [g5,bb5]@19 ~]/2",
  AL: "[[ab5,c6]@2 [bb5,db6]@2 [ab5,c6]@11 ~]/2", AM: "[ab5,c6]@3 ~ [ab5,c6]@2 ~@2 [ab5,c6]@2 ~@2 [ab5,c6]@3 ~",
  AN: "[[bb5,db6]@5 ~ [c6,eb6] ~ [bb5,db6]@4 [ab5,c6]@19 ~]/2", // Bbm Cm Bbm Ab
  AO: "[c6,eb6] ~@3 [c6,eb6]@3 ~ [c6,eb6]@2 ~@2 [c6,eb6]@4", AP: "[[bb5,db6]@4 [ab5,c6]@3 ~ [f5,db6]@23 ~]/2",
  AQ: "[[e5,db6]@24 [eb5,c6]@12 db6@3 ~ c6@8, ~@13 eb5@2 ~]/3", // Dbm Cm
  AR: "[eb5@3 ~ eb5 ~ [eb5,c6]@3 ~ bb5@2 c5@2 [ab5,c6] ~, ~@20 db5@2 ~@2 ab5 ~@7]/2", // Cm Ab
  AS: "[ab5,c6]@2 ~@2 [ab5,c6]@3 ~ [c6,eb6]@2 [bb5,db6]@2 [ab5,c6]@2 [bb5,db6]@2", AT: "[[ab5,c6]@5 ~@3]/2",
  AU: "[ab5,c6]", AV: "[[bb5,db6]@5 ~ [c6,eb6]@2 [bb5,db6]@4 ab5@20, ~@6 c6@9 ~]/2",
  AW: "[c6,eb6]@3 ~ [c6,eb6]@3 ~ [c6,eb6]@3 ~ [c6,eb6]@4", AX: "[[bb5,db6]@6 [ab5,c6] ~ [g5,bb5]@23 ~]/2",
  AY: "[g5,bb5]@15 ~", AZ: "[[ab5,c6]@5 [bb5,db6]@2 ~ [ab5,c6]@4 [g5,bb5]@19 ~]/2",
  BA: "[[ab5,c6]@4 [bb5,db6]@3 ~ [ab5,c6]@22 ~@2]/2", // Ab Bbm Ab
  BB: "[[bb5,db6]@5 ~ [c6,eb6]@2 [bb5,db6]@3 ~ ab5@20, ~@6 c6@9 ~]/2", // Bbm Cm Bbm
  BC: "[c6,eb6]@3 ~ [c6,eb6]@2 ~@2 [c6,eb6]@2 ~@2 [c6,eb6]@3 ~", // Cm
  BD: "[[bb5,db6]@5 [ab5,c6]@3 ~ db6@22 ~, ~@4 f5@11 ~]/2", BE: "[db6@2 eb6 db6@3 [eb5,c6]@3 db6 c6@2, e5 ~]/3",
  BF: "[eb5@7 ~@5 c6@7 ~ bb5@4 c5@20 ab5@4, ~@4 eb5@6 db5 ~ ab5@9 ~@3]/3",
  BG: "[db6@6 ~@2 db6@15 ~ eb5@12 db6@3 ~ c6@8, f5@11 ~ c6@5 ~@3 eb5@3 ~]/3",
  BH: "[eb5@9 ~@3 eb5@11 ~ [eb5,c6]@18 ~@2 [db5,bb5]@3 ~]/3", // Cm Gb
  BI: "c5@4 [ab5,c6] ~ [ab5,c6] ~ [ab5,c6] ~ [ab5,c6] ~ [ab5,c6]@4, ab5 ~@7", // Ab
  BJ: "[[bb5,db6]@5 ~ [c6,eb6] ~ [bb5,db6]@4 [ab5,c6]@18 ~@2]/2", BK: "[[f5,ab5]@4 ~@2 [e5,g5] ~ [ab4,c5,f5]@31 ~@9]/3",
})).s("gm_acoustic_guitar_steel").gain(0.36)

// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
  ~@11 A B C D E F G H I J K L M N O 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 AS AT
  AU AV AW AX R AY AZ BA BB BC BD BE BF BG AY BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU AK BV BW BX BY BZ CA CB CC Y CD
  CE CF CG CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV CW CX CY CZ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO DP DQ
  DR DS DT DU DV DW DX DY DZ EA EB EC ED EE EF EG EH EI EJ EK EL@2 ~@2
>`.pickRestart({
  A: "~@4 [ab4,c5,f5] ~ ab4@2 [ab4,f5] ~@3 f5@4, ~@2 f4 ~ c5@2 ~@2", // Fm Db
  B: "[ab4,f5] ~@3 [c5,f5] ~@7 [f4,f5]@2 ab4@2, c5@4 ab4@2 ~@6 [ab4,c5] ~@3", // Db F5 F Ab
  C: "[ab4,f5] ~@3 f5@4 [ab4,f5] ~@3 [c5,f5] ~@3, c5@4 ~@4 c5@4 ab4@3 ~", // Db F5
  D: "f4@2 ~@2 [ab4,f5]@3 ~ [ab4,f5] ~@3 f5@4, ~@4 c5 ~@3 c5@3 ~@5", // Db
  E: "c5@4 [c5,f5] ~@3 f4@2 ~@2 [ab4,c5,f5] ~ ab4@2, f5 ~@7, ab4 ~@3 ab4@2 ~@6 f4@2 ~@2", // F5 Fm
  F: "[c5,f5]@3 ~ f5@4 [ab4,f5] ~@3 [ab4,c5]@3 ~, ab4 ~@7 c5@4 f5 ~@3", G: "eb4@2 [ab4,c5,eb5] c5 [ab4,c5,eb5] ~ eb4@2",
  H: "[bb4,eb5] ~ bb4@2 [g4,eb5]@2 ~@6 [ab4,c5,eb5] ~ ab4@2, g4@2 ~@2 bb4 ~@7 eb4@2 ~@2", // Eb5 Cm Ab
  I: "[ab4,eb5] ~@3 eb4@3 ~ [bb4,eb5] ~@3 [bb4,eb5]@2 ~@2, c5@2 ~@6 g4@3 ~ g4 ~@3", // Ab5 Eb5
  J: "f4@2 ~@2 [c5,f5] ~@3 [ab4,f5] ~@3 f5@3 ~, ~@2 ab4 ~ c5 ~@3", // F5 Db
  K: "[ab4,f5] ~@3 [c5,f5] ~@3 f4 ~@3 [f4,ab4,c5,f5] ~ ab4@2, c5 ~ ab4 ~@5", // Db F5 Fm
  L: "[ab4,f5] ~@3 f5@3 ~ [ab4,f5] ~@3 [c5,f5] ~@3, c5 ~@3 c5@2 ab4 ~", // Db F5
  M: "~@4 [eb4,ab4]@2 ab4@2 [ab4,eb5] ~ eb5@2 ~@4, ~@4 [c5,eb5] ~@3 c5@2 ~@6", // Ab5 Cm
  N: "[g4,bb4,eb5] ~ g4@2 [g4,eb5] ~ eb5@2 ~@4 [ab4,c5,eb5] ~ ab4@2, eb4 ~ bb4 ~@3 eb4 ~", // Eb Cm Ab
  O: "[ab4,eb5] ~@3 eb5@2 ~@2 [ab4,eb5] ~@3 [c5,eb5] ~@3, c5 ~@3 c5 ~ ab4 ~", // Ab5 Cm
  P: "~@4 [bb4,db5,f5] ~ bb4@2 [bb4,f5] ~@3 f5@2 ~@2, ~@2 f4 ~ db5 ~@3", // Bbm Bb5
  Q: "[bb4,f5] ~@3 [db5,f5] ~@7 [f4,f5]@2 ab4@2, db5@2 ~@2 bb4@2 ~@6 [ab4,c5] ~@3", // Bb5 Db F Ab
  R: "[ab4,f5] ~@3 f5@2 ~@2 [ab4,f5] ~@3 [c5,f5] ~@3, c5 ~@3 c5 ~ ab4 ~", // Db F5
  S: "~@4 [ab4,db5,f5] ~ ab4@2 [ab4,f5] ~@3 f5@2 ~@2, ~@2 f4 ~ db5 ~@3", // Db
  T: "[bb4,f5] ~@3 [db5,f5] ~@7 [eb4,bb4,eb5] ~ g4@2, db5 ~ bb4 ~@3 g5 ~", // Bb5 Db Eb5
  U: "[eb5,g5] ~@3 eb5@2 ~@2 [eb5,g5] ~@3 [bb4,eb5,g5] ~@3, bb4 ~@3 bb4 ~ g4 ~", // Eb
  V: "e4@2 ~@2 [c5,e5,g5] ~ [g4,c5,e5,g5] ~ [e5,g5] ~@3 [c5,g5] ~@3, ~@2 e4 ~ c5 ~ e5 ~", // C Em C5
  W: "[e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,e5,g5] ~ [c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ ab4@2, c5 ~ g4 ~@5", // Em C Ab
  X: "[eb5,ab5] ~@3 [c5,ab5] ~@3 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [ab4,c5,eb5,ab5] ~ [c5,eb5,ab5] ~, c5 ~ eb5 ~@5", // Ab5 Fm Ab
  Y: "[c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ ab4 ~ [eb5,ab5] ~@3 [c5,eb5] ~@3, ~@4 c5 ~ ab5 ~", // Ab Ab5 Cm
  Z: "[c5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~ [c5,eb5,ab5] ~ [eb4,c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ ab4@2, eb5 ~ c5 ~@5", // Fm Ab Ab5 Ab
  AA: "[eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5] ~@3 [c5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~ [c5,eb5,ab5] ~, c5 ~ ab5 ~ eb5 ~ c5 ~", // Ab5 Ab Cm Fm Ab Ab5 Ab
  AB: "[bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~ g4 ~ [bb4,eb5,g5] ~@3 [bb4,eb5] ~ [bb4,eb5,g5] ~, ~@6 g5 ~", // Eb Eb5 Eb
  AC: "[bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~ g4 ~", // Eb
  AD: "[bb4,eb5,g5] ~@3 [bb4,eb5] ~@3 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~, ~@2 g5 ~@5", // Eb Eb5 Eb
  AE: "[eb4,bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~ g4 ~ [bb4,eb5,g5] ~@3 [bb4,eb5] ~@3, ~@6 g5 ~", // Eb Eb5
  AF: "[bb4,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [eb4,bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~ g4 ~, eb5 ~@7", // Eb
  AG: "[bb4,eb5,g5] ~@3 [bb4,eb5] ~@3 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3, ~@2 g5 ~@5", // Eb Eb5 Eb
  AH: "[c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5] ~@3, ~@3 ab4 c5 ~ ab5 ~", // Ab Ab5 Ab Cm
  AI: "[c5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ ab4@2, eb5 ~ c5 ~@5", // Fm Ab Ab5 Ab
  AJ: "[eb5,ab5] ~@3 [c5,eb5] ~@3 [c5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~@3, c5 ~ ab5 ~ eb5 ~ c5 ~", // Ab5 Cm Fm Ab Ab5
  AK: "[c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ ab4@2 [eb5,ab5] ~@3 [c5,eb5] ~ [c5,eb5,ab5] ~, ~@4 c5 ~ ab5 ~", // Ab Ab5 Cm Ab
  AL: "[c5,ab5] ~@3 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [eb4,c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ ab4@2, eb5 ~@7", // Fm Ab
  AM: "[eb5,ab5] ~@3 [c5,eb5] ~@3 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~@3, c5 ~ ab5 ~@3 c5 ~", // Ab5 Cm Ab Ab5
  AN: "[db5,f5,ab5] ~@3 [db5,f5,ab5] ~ ab4@2 [db5,f5,ab5] ~@3 [db5,f5] ~ [db5,f5,ab5] ~, ~@2 f4 ~@3 ab5 ~", // Db
  AO: "[db5,ab5] ~@3 [db5,f5,ab5] ~@3 [db5,e5,ab5] ~@3 [e4,db5,e5,ab5] ~ ab4@2, f5 ~@7", // Db5 Db Dbm
  AP: "[db5,e5,ab5] ~ [db5,e5,ab5] ~ [db5,e5] ~@3 [db5,ab5] ~@3 [db5,e5,ab5] ~@3, ~@2 ab5 ~ e5 ~@3", // Dbm Db5 Dbm
  AQ: "[c5,eb5,ab5] ~@3 [eb4,c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [eb5,ab5] ~@3 ab5@2 ~@2, ~@3 ab4 c5 ~@3", // Ab Ab5
  AR: "[c5,ab5] ~@3 [eb5,ab5] ~@3 [bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~ [eb4,bb4,eb5,g5] ~, eb5 ~ c5 ~@5", // Fm Ab5 Eb
  AS: "[bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~@3", // Eb
  AT: "[c5,eb5,ab5] ~@3 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~@3 [c5,eb5] ~@3, ~@2 ab4 ~@3 ab5 ~", // Ab Cm
  AU: "[c5,eb5,ab5] ~@3 [c5,eb5,ab5] ab4 ~@2 [c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [eb4,c5,eb5,ab5] ~ ab4 ~", // Ab
  AV: "[eb5,ab5] ~@3 [c5,eb5] ~ [c5,eb5,ab5] ~ [c5,ab5] ~@3 [c5,eb5,ab5] ~@3, c5 ~ ab5 ~ eb5 ~@3", // Ab5 Cm Ab Fm Ab
  AW: "[bb4,eb5,g5] ~@3 [eb4,bb4,eb5,g5] ~ [g4,bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [e5,g5]@2 ~@2, ~@12 bb4 ~@3", // Eb Em
  AX: "[c5,g5]@2 ~@2 [g4,bb4,g5]@2 ~@6 [f4,ab4,c5,f5] ~ ab4@2, [bb4,e5] ~@3 e5 ~@11", // C5 Gm Fm Bbdim
  AY: "~@4 [f4,ab4,c5,f5] ~ ab4@2 [ab4,f5] ~@3 f5@2 ~@2, ~@4 c5 ~@3", // Fm Db
// … 165 more lines

More by G. G. Anderson