Strudelify

So ein Mann

Werner

KeyE♭ minorTempo202 bpm
0:00/0:00
// So ein Mann — Werner
// 202 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 165 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(202/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 · "FINGERDBA"
const bass = note(`<
  A B C D E F G H I J@5 K L M N L N L N O P Q J R J S T U B V W X Y Z AA AB AC I J@2 AD AE N L AE AF AG AH AI AJ L@2 AK
  AF AL AM AN AO@5 AP AQ AR AS AQ AS AQ AS AT AU AV AO AW AO AX AY AZ BA BB BC BD BE BF BG BH BI BJ AO@2 BK BL AS AQ BL
  AM BM BN BO BP AQ@2 BQ AM AN AF BR J R J S T U B V W X Y Z AA AB AC I J@2 AD AE N L AE AF AG AH AI AJ L@2 AK BS BT
  AO@2 BK BL AS AQ BL BU AM AN BV BT BW BT BX BY BZ CA@2 CB CC
>`.pickRestart({
  A: "~@4 bb1@3 ~ c2@2 ~@2 d2@3 ~", B: "eb2@7 ~ bb1@7 ~", C: "eb2@7 ~ eb2@7 ~", D: "d2@7 ~ d2@7 ~",
  E: "db2@7 ~ g2@2 e2 ~ db2@4", F: "c2@5 ~@3 c2@2 d2 ~ eb2@2 e2 ~", G: "f2@2 ~@2 f1@3 ~ g1@3 ~ a1@3 ~",
  H: "bb1 d2 eb2 g2", I: "bb2@3 ~@13", J: "bb1@7 ~ f1@7 ~", K: "bb1@7 ~ d2@3 ~ eb2@3 ~", L: "f2@7 ~ c2@7 ~",
  M: "f3@2 f3 ~ eb3@3 ~ d3@3 ~ c3@3 ~", N: "f1@7 ~ c2@7 ~", O: "f2@2 f2 ~ eb2@3 ~ d2@3 ~ c2@3 ~", P: "bb1@7 ~ f2@7 ~",
  Q: "bb2@2 bb2 ~ g2@3 ~ f2@3 ~ g2@3 ~", R: "bb1@7 ~ f1@3 ~ g1@3 ~", S: "bb1@7 ~ d2@3 ~ g2@3 ~", T: "bb2@7 ~ f2@6 f1 ~",
  U: "bb1@3 ~ bb1@3 ~ c2@3 ~ d2@3 ~", V: "eb2@7 ~ bb1@3 ~ c2@3 ~", W: "eb2@7 ~ bb1@6 bb1 ~",
  X: "eb2@3 ~ f2@3 ~ gb2@3 ~ a2@3 ~", Y: "bb2@7 ~ f2@3 ~ eb2@3 ~", Z: "db2@7 ~ g2@4 db2@4", AA: "c2@7 ~ c3@6 f2 ~",
  AB: "f2@2 f2 ~ f1@4 g1@4 a1@4", AC: "bb1@6 db2 ~ d2@2 f2 ~ g2@4", AD: "bb1@7 ~ bb1@4 d2@4",
  AE: "f2@2 f2 ~ eb2@4 d2@4 c2@4", AF: "bb1 d2 f2 g2", AG: "bb2@7 ~ f1@7 ~", AH: "bb1@7 ~ f1@4 g1@4",
  AI: "bb1@6 d2@4 d2 ~ eb2@2 f2 ~", AJ: "f2@6 c2 ~ c2@4 d2@4", AK: "eb2 f2", AL: "bb2 g2 f2 d2", AM: "b1 eb2 gb2 ab2",
  AN: "b2 ab2 gb2 eb2", AO: "b1@7 ~ gb1@7 ~", AP: "b1@7 ~ eb2@3 ~ e2@3 ~", AQ: "gb2@7 ~ db2@7 ~",
  AR: "gb3@2 gb3 ~ e3@3 ~ eb3@3 ~ db3@3 ~", AS: "gb1@7 ~ db2@7 ~", AT: "gb2@2 gb2 ~ e2@3 ~ eb2@3 ~ db2@3 ~",
  AU: "b1@7 ~ gb2@7 ~", AV: "b2@2 b2 ~ ab2@3 ~ gb2@3 ~ ab2@3 ~", AW: "b1@7 ~ gb1@3 ~ ab1@3 ~",
  AX: "b1@7 ~ eb2@3 ~ ab2@3 ~", AY: "b2@7 ~ gb2@6 gb1 ~", AZ: "b1@3 ~ b1@3 ~ db2@3 ~ eb2@3 ~", BA: "e2@7 ~ b1@7 ~",
  BB: "e2@7 ~ b1@3 ~ db2@3 ~", BC: "e2@7 ~ b1@6 b1 ~", BD: "e2@3 ~ gb2@3 ~ g2@3 ~ bb2@3 ~", BE: "b2@7 ~ gb2@3 ~ e2@3 ~",
  BF: "d2@7 ~ ab2@4 d2@4", BG: "db2@7 ~ db3@6 gb2 ~", BH: "gb2@2 gb2 ~ gb1@4 ab1@4 bb1@4",
  BI: "b1@6 d2 ~ eb2@2 gb2 ~ ab2@4", BJ: "b2@3 ~@13", BK: "b1@7 ~ b1@4 eb2@4", BL: "gb2@2 gb2 ~ e2@4 eb2@4 db2@4",
  BM: "b2@7 ~ gb1@7 ~", BN: "b1@7 ~ gb1@4 ab1@4", BO: "b1@6 eb2@4 eb2 ~ e2@2 gb2 ~", BP: "gb2@6 db2 ~ db2@4 eb2@4",
  BQ: "e2 gb2", BR: "bb2 ~@3", BS: "bb1 d2 f2 bb2", BT: "gb2 e2 eb2 db2", BU: "b1 bb1 ab1 gb1", BV: "b1 eb2 e2 f2",
  BW: "gb1 bb1 db2 eb2", BX: "e2 ab2 gb2 bb2", BY: "b2 bb2 ab2 gb2", BZ: "e1 e2 gb1 gb2", CA: "b1@15 ~", CB: "b1 gb1",
  CC: "b1@7 ~@9",
})).s("gm_electric_bass_finger").gain(0.42)

// other · trumpet
const trumpet = note(`<
  ~@40 A B@2 C@2 D@2 E@2 B@2 C@2 F@2 G@2 H I ~@32 J K@2 L@2 M@2 N@2 K@2 L@2 O@2 P@2 Q R ~@16 A B@2 C@2 D@2 E@2 B@2 C@2
  F@2 G@2 J K@2 L@2 M@2 N@2 K@2 L@2 O@2 S@2 P@2 ~@3
>`.pickRestart({
  A: "~@8 d5@3 ~ d5@3 ~", B: "[d5@8 bb4@2 f4@2 ~@2 d4@8 ~@4 d5@3 ~ c5 ~]/2",
  C: "[d5@3 ~ c5@3 ~ eb5@2 d5@3 ~ c5@7 ~@3 c5@3 ~ c5@3 ~]/2", D: "[c5@8 a4@2 f4@2 ~@2 c4@8 ~@4 c5@3 ~ bb4 ~]/2",
  E: "[c5@3 ~ bb4@3 ~ d5@2 c5@3 ~ bb4@7 ~@3 d5@3 ~ d5@3 ~]/2", F: "[c5@8 a4@2 f4@2 ~@2 c4@8 ~@4 f4@3 ~ f4 ~]/2",
  G: "[eb4@3 ~ g4@3 ~ f4@2 eb4@3 ~ d4@7 ~@11]/2", H: "~@10 bb4@5 ~", I: "b4@5 ~@3", J: "~@8 eb5@3 ~ eb5@3 ~",
  K: "[eb5@8 b4@2 gb4@2 ~@2 eb4@8 ~@4 eb5@3 ~ db5 ~]/2",
  L: "[eb5@3 ~ db5@3 ~ e5@2 eb5@3 ~ db5@7 ~@3 db5@3 ~ db5@3 ~]/2",
  M: "[db5@8 bb4@2 gb4@2 ~@2 db4@8 ~@4 db5@3 ~ b4 ~]/2", N: "[db5@3 ~ b4@3 ~ eb5@2 db5@3 ~ b4@7 ~@3 eb5@3 ~ eb5@3 ~]/2",
  O: "[db5@8 bb4@2 gb4@2 ~@2 db4@8 ~@4 gb4@3 ~ gb4 ~]/2", P: "[e4@3 ~ ab4@3 ~ gb4@2 e4@3 ~ eb4@7 ~@11]/2", Q: "~@3 b4",
  R: "~@4 bb4@2 a4 ~ bb4@2 bb4@2 ~@2 bb4@2", S: "[e4@3 ~ ab4@3 ~ gb4@2 e4@3 ~ eb4@7 ~@5 gb4@3 ~ gb4 ~]/2",
})).s("gm_trumpet").gain(0.56).pan(0.6)

// other · alto sax
const alto_sax = note(`<
  ~ A@2 B@2 C D E F ~@3 G H I J@2 K@2 L M N O P@2 Q@2 R S T U@2 V@2 W@2 X Y Z ~@2 AA@2 AB AC@4 AD AE AF AG@3 AH AI@2 ~
  AJ AK AL@2 AM AN AO AP AQ AR AS AT AU AV AW AX AY ~ AZ@3 BA BB BC@3 BD BE BF BG ~ BH BI ~ BJ@2 BK BL@4 BM BN BO BP@3
  BQ BR@2 ~@3 Q@2 R S T U@2 V@2 W@2 X Y Z ~@2 AA@2 AB AC@4 AD AE AF AG@3 AH AI@2 ~ BJ@2 BK BL@4 BM BN BO BP@3 BQ BR@4 BS
  BT BU
>`.pickRestart({
  A: "[~@2 eb4@5 ~ g4@4 bb4@2 gb4@9 ~ bb4@2 gb4 ~ eb4@2 db4 ~]/2",
  B: "[d4@2 f4@7 ~@6 db5@5 bb4@2 g4 ~ e4@2 db4 ~ bb3@2 b3 ~]/2", C: "c4@4 ~@2 eb4 ~ g4@3 ~ bb4@2 ~@2",
  D: "f4@2 g4 ~ f4@2 e4 ~ eb4@2 c4 ~ db4@2 db4 ~", E: "d4 ~ bb4 ~ eb4 eb4@2 ~", F: "f4 ~@7",
  G: "~@2 c5@5 ~ a4@4 f4@3 ~", H: "f4@7 ~@4 d4@2 eb4@3", I: "~ f4@9 ~@6",
  J: "[~@4 eb4@2 ~@2 d4@2 eb4@3 ~ f4@5 ~ eb4@4 d4@4 c4@3 ~]/2", K: "[f3@7 ~ c4@2 d4 ~ eb4 ~ f4@8 ~@10]/2",
  L: "f3@3 ~ c4@3 ~ d4@2 eb4@2 ~@2 f4@2", M: "~@2 f4@5 ~@9", N: "~@4 c4@2 d4 ~ eb4 ~ f4@2 ~@2 c4@2",
  O: "~ d4 ~ eb4 ~ f4 ~@2", P: "[f4 ~ g4 ~ d4 eb4 ~ f4@4 ~@5]/2", Q: "[~@4 d4@8 d4@2 f4@9 ~@9]/2",
  R: "~@4 c5 b4 bb4 a4@3 f4 ~ d4@2 c4 ~", S: "a3@2 c4@3 ~@11", T: "~@12 bb3@2 a3 ~",
  U: "[ab3@3 ~ d4@3 ~ ab4@4 bb4@2 g4@5 ~ c5@2 bb4 ~ eb5@2 c5 ~ bb4@2 g4 ~]/2",
  V: "[eb4@2 c4 ~ bb3@2 c4 ~ eb4@2 g4 ~ bb4@2 bb4@10 ~@4 c5 bb4 ab4 g4]/2", W: "[gb4@8 ~@6 f4@9 ~ gb4@8]/2",
  X: "g4@7 ~", Y: "~@7 bb4@5 g4@4", Z: "f4@11 ~@5", AA: "[~@4 db5@2 ~@2 d5@2 bb4@9 ~@3 db4 ~ d4@4 ~@4]/2",
  AB: "~@6 f4@7 ~@3", AC: "[~@8 c5@53 ~@3]/4", AD: "~@2 g4 ~ f4@2 e4 ~ f4@4 ~@4", AE: "~@2 f4 ~ e4@2 f4@5 ~@5",
  AF: "f4@2 e4 f4@2 ~@3", AG: "[~@14 c5@7 ~@7 c5 b4 bb4 a4@4 ~@5 f4@6 ~@2]/3", AH: "~@8 c5@2 a4 ~ f4@2 c4 ~",
  AI: "[g4@2 ~@2 bb4@2 ~@2 a4@2 c5@2 ~@2 bb4@5 ~@13]/2", AJ: "~@6 eb4 gb4", AK: "~@2 b4@7 ~@7",
  AL: "[b4@3 ~ bb4@2 b4 ~ gb4@2 eb4@2 ~@2 gb4@7 ~ eb4 ~ b3@2 eb4@2 ~@4]/2", AM: "~@2 bb4 b4 bb4 gb4 eb4 b3",
  AN: "bb3@6 b3 ~ eb4 ~ gb4@5 ~", AO: "~@12 gb4 ~ gb4@2", AP: "~@2 gb4@5 ~@9", AQ: "~@4 db5@2 ~@2 bb4@3 ~@3 e5@2",
  AR: "~@2 db5@2 ~@2 bb4@2 ~@2 gb4 ~@3 e4@2", AS: "~@8 db4@2 e4 ~ gb4@2 bb4@2", AT: "~@2 bb4@5 ~ ab4@2 bb4@3 ~ gb4@2",
  AU: "~ gb4@2 ~@5", AV: "eb5@5 ~ db5@2 ~@2 bb4@3 ~@3", AW: "~@6 bb4 ~ gb4 ~ gb4@2 ~@2 bb4@2",
  AX: "~@2 gb4@5 ~@5 bb4@2 ~@2", AY: "b4@3 ~@13", AZ: "[~@6 gb5@29 ~ eb5@2 ~@2 bb4@2 ab4@2 ~@2 gb4@2]/3",
  BA: "~@2 gb4@8 ~@4 eb4 ~", BB: "gb4@5 ~ eb4 ~ b3@6 eb4 ~", BC: "[gb4@9 ~ gb4@34 ~@4]/3", BD: "~ b4", BE: "g4@11 ~@5",
  BF: "gb4 g4", BG: "ab4@11 ~@5", BH: "db5 ~ b4 ~ db5 b4 ~ db5", BI: "~@2 b4@3 ~@3 b4@4 ab4@2 b4@2",
  BJ: "[~@4 d5@2 ~@2 eb5@2 b4@9 ~@3 d4 ~ eb4@4 ~@4]/2", BK: "~@6 gb4@7 ~@3", BL: "[~@8 db5@53 ~@3]/4",
  BM: "~@2 ab4 ~ gb4@2 f4 ~ gb4@4 ~@4", BN: "~@2 gb4 ~ f4@2 gb4@5 ~@5", BO: "gb4@2 f4 gb4@2 ~@3",
  BP: "[~@14 db5@7 ~@7 db5 c5 b4 bb4@4 ~@5 gb4@6 ~@2]/3", BQ: "~@8 db5@2 bb4 ~ gb4@2 db4 ~",
  BR: "[ab4@2 ~@2 b4@2 ~@2 bb4@2 db5@2 ~@2 b4@5 ~@13]/2", BS: "~@2 db5 ~@3 ab4 ~ b4@7 ~",
  BT: "~@2 db5@2 ~@2 b4 ~ db5@7 ~", BU: "b4 ~@3",
})).s("gm_alto_sax").gain(0.37).pan(0.4)

// other · trumpet
const trumpet_2 = note(`<
  ~ A@2 B C D E F G ~@31 H I@2 J@2 K@2 L@2 I@2 J@2 M@2 N@2 O P ~@32 Q R@2 S@2 T@2 U@2 R@2 S@2 V@2 W@2 X Y ~@16 H I@2 J@2
  K@2 L@2 I@2 J@2 M@2 N@2 Q R@2 S@2 T@2 U@2 R@2 S@2 V@2 Z@2 W@2 ~@3
>`.pickRestart({
  A: "~@2 eb5 ~@2 eb5@2 ~", B: "~@2 d5 ~@2 d5@2 ~", C: "~@4 db5@2 ~@4 db5@3 ~@3", D: "~@4 c5@2 c5 ~ c5@2 c5@2 ~@4",
  E: "c5@2 c5 ~ c5@2 c5@5 ~@5", F: "~@4 bb4@3 ~ g4 ~ g4@3 ~@3", G: "bb4 ~@7", H: "~@8 f5@3 ~ f5@3 ~",
  I: "[f5@8 d5@2 bb4@2 ~@2 f4@8 ~@4 f5@3 ~ eb5 ~]/2", J: "[f5@3 ~ eb5@3 ~ g5@2 f5@3 ~ eb5@7 ~@3 eb5@3 ~ eb5@3 ~]/2",
  K: "[eb5@8 c5@2 a4@2 ~@2 eb4@8 ~@4 eb5@3 ~ d5 ~]/2", L: "[eb5@3 ~ d5@3 ~ f5@2 eb5@3 ~ d5@7 ~@3 f5@3 ~ f5@3 ~]/2",
  M: "[eb5@8 c5@2 a4@2 ~@2 eb4@8 ~@4 a4@3 ~ a4 ~]/2", N: "[g4@3 ~ bb4@3 ~ a4@2 c5@3 ~ bb4@7 ~@11]/2", O: "~@10 d5@5 ~",
  P: "eb5@9 ~@7", Q: "~@8 gb5@3 ~ gb5@3 ~", R: "[gb5@8 eb5@2 b4@2 ~@2 gb4@8 ~@4 gb5@3 ~ e5 ~]/2",
  S: "[gb5@3 ~ e5@3 ~ ab5@2 gb5@3 ~ e5@7 ~@3 e5@3 ~ e5@3 ~]/2", T: "[e5@8 db5@2 bb4@2 ~@2 e4@8 ~@4 e5@3 ~ eb5 ~]/2",
  U: "[e5@3 ~ eb5@3 ~ gb5@2 e5@3 ~ eb5@7 ~@3 gb5@3 ~ gb5@3 ~]/2", V: "[e5@8 db5@2 bb4@2 ~@2 e4@8 ~@4 bb4@3 ~ bb4 ~]/2",
  W: "[ab4@3 ~ b4@3 ~ bb4@2 db5@3 ~ b4@7 ~@11]/2", X: "~@3 eb5", Y: "~@4 d5@2 db5 ~ d5@2 d5@2 ~@2 d5@2",
  Z: "[ab4@3 ~ b4@3 ~ bb4@2 db5@3 ~ b4@7 ~@5 b4@3 ~ b4 ~]/2",
})).s("gm_trumpet").gain(0.47).pan(0.2)

// other · piano · "A.PIANO 3"
const piano = note(`<
  ~@9 A B C D E F G@2 H I J K L M N@2 O P Q@2 R S T@2 U@2 V W X Y Z AA AB AC AD AE AF AG AH AI AB AC AD AE AF AG AJ AK@2
  ~@2 AL AM AN AO AP AQ AR@2 AS AT AU AV AW AX AY@2 AZ BA BB@2 BC BD BE@2 BF@2 BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT
  BM BN BO BP BQ BR BU BV@2 ~@2 O P Q@2 R S T@2 U@2 V W X Y Z AA AB AC AD AE AF AG AH AI AB AC AD AE AF AG AJ BW@2 BM BN
  BO BP BQ BR BS BT BM BN BO BP BQ BR BU BX@2 BV@2 ~@2
>`.pickRestart({
  A: "d4@3 ~ bb4@4 f4@4 d4@2 f4 ~", B: "bb4 f4 ~ f4@2 d4 bb4@2", C: "d4@4 a4@4 f4@6 d4 ~",
  D: "a4@2 f4@3 ~@5 d4@2 a4@3 ~, ~@3 f4@4 ~", E: "~@2 a4@2 d4 f4 d4@2", F: "a4@2 d4@2 f4@2 d4@4 a4@2 f4@3 ~",
  G: "[a4@4 f4@2 a4 ~ c5@2 a4@2 eb5@2 f5@5 ~@13]/2", H: "f4@3 ~ a4@4 a4@4 f4@2 a4 ~", I: "c5 a4 ~ a4@2 f4 c5@2",
  J: "f4@4 c4@4 a4@6 f4 ~", K: "a4@2 f4@3 ~@5 a4@2 c5@3 ~, ~@3 f4@4 ~", L: "~@2 a4@2 f4 c5 f4@2",
  M: "a4 f4 c5 ~@2 bb4 a4 g4, ~@2 c5 ~", N: "[f4@4 bb4@2 f4 ~ bb4@2 d4@2 f4@2 bb4@5 ~@7 db4 ~ d4@4]/2",
  O: "f4@4 bb3@2 f3 ~ d4@2 f4@2 bb3@2 ~@2", P: "f4!2 d4 bb3@2 ~ c5@2",
  Q: "[a4@4 d4@2 f4 ~ a4@4 f4@2 a4@12 f4 ~ a4@4]/2", R: "ab4@4 f4@3 ~ ab4@2 f4@2 d4 ~ f4@2",
  S: "~@2 f4@2 d4@4 c4@4 bb3@3 ~", T: "[~@4 eb4@4 ~@2 eb4 ~ bb4@2 eb5@4 eb4 ~ bb4@2 eb4@4 bb3@6, bb3@2 g4 ~@5]/2",
  U: "[eb4 ~ bb5 g5 eb5 bb4 g4 eb4@2 ~ bb5 gb5 eb5 bb4 gb4 eb4]/2", V: "~@4 f4@2 ~@2 d5@2 f5@2 d5@2 f4 ~",
  W: "db5@2 bb4@2 g4@2 e4@2 db4@3 ~ db5@2 bb4@2", X: "c5@4 d5@3 ~ eb5@3 ~ e5@2 f5@2", Y: "~@4 g5@3 ~ a5@3 ~ f5@2 ~@2",
  Z: "d5@5 ~@3 db5@2 d5@2 c5@2 f4 ~, bb5@3 ~@5 f5@6 ~@2", AA: "[bb4,f5]@5 ~@11",
  AB: "~@4 d4@2 f4@2 bb4@2 f4@2 bb4@2 f4 ~", AC: "~@4 db5@2 d5 ~ bb5@2 f5@2 d5@2 bb4@2",
  AD: "~@2 d4@2 f4@2 d4 ~ bb4@2 f4@2 bb4@2 d5@2", AE: "bb4@2 f4 ~ a4@2 c4@2 f4@2 c5@2 f4@2 c4 ~",
  AF: "a4@2 c4@2 eb4@2 c4 ~ f4@2 c4 ~ a4@2 f4@2", AG: "~@2 a4@2 c5@2 eb5@2 a4@2 f5@2 eb5@2 c5 ~",
  AH: "a4@2 g4 ~ f4@2 a4@2 c5@2 c4@2 f4@2 a4@2", AI: "d4@2 f4 ~ bb4@2 d4 ~ d5@2 bb4@2 f4@2 bb4@2",
  AJ: "g4@2 ~@6 a4@3 ~@5", AK: "[bb4@3 ~ [f4,bb4,d5] ~@3 [f4,bb4,d5]@5 ~ [f4,bb4,d5]@6 ~@12]/2",
  AL: "eb4@3 ~ b4@4 gb4@4 eb4@2 gb4 ~", AM: "b4 gb4 ~ gb4@2 eb4 b4@2", AN: "eb4@4 bb4@4 gb4@6 eb4 ~",
  AO: "bb4@2 gb4@3 ~@5 eb4@2 bb4@3 ~, ~@3 gb4@4 ~", AP: "~@2 bb4@2 eb4 gb4 eb4@2",
  AQ: "bb4@2 eb4@2 gb4@2 eb4@4 bb4@2 gb4@3 ~", AR: "[bb4@4 gb4@2 bb4 ~ db5@2 bb4@2 e5@2 gb5@5 ~@13]/2",
  AS: "gb4@3 ~ bb4@4 bb4@4 gb4@2 bb4 ~", AT: "db5 bb4 ~ bb4@2 gb4 db5@2", AU: "gb4@4 db4@4 bb4@6 gb4 ~",
  AV: "bb4@2 gb4@3 ~@5 bb4@2 db5@3 ~, ~@3 gb4@4 ~", AW: "~@2 bb4@2 gb4 db5 gb4@2",
  AX: "bb4 gb4 db5 ~@2 b4 bb4 ab4, ~@2 db5 ~",
  AY: "[gb4@2 ~@2 [eb4,gb4,b4]@3 ~ [e4,ab4,b4] ~ [e4,ab4,b4]@2 ~@2 [eb4,gb4,b4]@5 ~@7 d4 ~ eb4@4]/2", // B E B
  AZ: "gb4@4 b3@2 gb3 ~ eb4@2 gb4@2 b3@2 ~@2", BA: "gb4!2 eb4 b3@2 ~ db5@2",
  BB: "[bb4@4 eb4@2 gb4 ~ bb4@4 gb4@2 bb4@12 gb4 ~ bb4@4]/2", BC: "a4@4 gb4@3 ~ a4@2 gb4@2 eb4 ~ gb4@2",
  BD: "~@2 gb4@2 eb4@4 db4@4 b3@3 ~", BE: "[~@4 e4@4 ~@2 e4 ~ b4@2 e5@4 e4 ~ b4@2 e4@4 b3@6, b3@2 ab4 ~@5]/2",
  BF: "[e4 ~ b5 ab5 e5 b4 ab4 e4@2 ~ b5 g5 e5 b4 g4 e4]/2", BG: "~@4 gb4@2 ~@2 eb5@2 gb5@2 eb5@2 gb4 ~",
  BH: "d5@2 b4@2 ab4@2 f4@2 d4@3 ~ d5@2 b4@2", BI: "db5@4 eb5@3 ~ e5@3 ~ f5@2 gb5@2",
  BJ: "~@4 ab5@3 ~ bb5@3 ~ gb5@2 ~@2", BK: "eb5@5 ~@3 d5@2 eb5@2 db5@2 gb4 ~, b5@3 ~@5 gb5@6 ~@2",
  BL: "[b4,gb5]@5 ~@11", BM: "~@4 eb4@2 gb4@2 b4@2 gb4@2 b4@2 gb4 ~", BN: "~@4 d5@2 eb5 ~ b5@2 gb5@2 eb5@2 b4@2",
  BO: "~@2 eb4@2 gb4@2 eb4 ~ b4@2 gb4@2 b4@2 eb5@2", BP: "b4@2 gb4 ~ bb4@2 db4@2 gb4@2 db5@2 gb4@2 db4 ~",
  BQ: "bb4@2 db4@2 e4@2 db4 ~ gb4@2 db4 ~ bb4@2 gb4@2", BR: "~@2 bb4@2 db5@2 e5@2 bb4@2 gb5@2 e5@2 db5 ~",
  BS: "bb4@2 ab4 ~ gb4@2 bb4@2 db5@2 db4@2 gb4@2 bb4@2", BT: "eb4@2 gb4 ~ b4@2 eb4 ~ eb5@2 b4@2 gb4@2 b4@2",
  BU: "ab4@2 ~@6 bb4@3 ~@5", BV: "[b4@3 ~ [gb4,b4,eb5] ~@3 [gb4,b4,eb5]@5 ~ [gb4,b4,eb5]@6 ~@12]/2",
  BW: "[bb4@3 ~ [f4,bb4,d5] ~@3 [f4,bb4,d5]@5 ~ [bb4,db5,gb5]@6 ~@12]/2", // Bb Gb
  BX: "[b4@3 ~ [gb4,b4,eb5] ~@3 [gb4,b4,eb5]@5 ~@3 ab4@2 ~@6 bb4@3 ~@5, ~@7 [gb4,b4,eb5]@3 ~@6]/2", // B
})).s("gm_piano").gain(0.32).pan(0.3)

// chords · piano · "HONKY TON"
const piano_2 = note(`<
  ~ A B C D E F G H ~@32 I J K L M L N O P O Q L R S T U ~ V@2 ~@32 W X Y Z AA Z AB AC AD AC AE Z AF AG AH AI ~ AJ AK
  ~@16 I J K L M L N O P O Q L R S T U ~ W X Y Z AA Z AB AC AD AC AE Z AF AG AH AI AH AI AL AM AN
>`.pickRestart({
  A: "~@4 g5 ~@3 g5@2 eb5@2 bb4@4, eb4@7 ~", B: "~@2 gb5 ~ gb5 eb5 bb4@2, eb4@15 ~",
  C: "~@4 f5 ~@3 f5@2 d5@2 bb4@4, d4@15 ~", D: "~@2 e5 ~ e5 db5 bb4@2, db4@15 ~", E: "~@2 eb5 ~ eb5 c5 a4@2, c4@7 ~",
  F: "~@2 eb5 ~ eb5 c5 a4@2, f3@7 ~", G: "[f4,bb4,d5]@7 ~ [g4,bb4,eb5]@7 ~", H: "[f4,bb4,d5] ~@3",
  I: "d4@2 ~@2 [f4,bb4]@4 ~@2 [f4,bb4]@2 ~@2 f4 ~", J: "[bb4,d5]", K: "d4@2 ~@2 [f4,bb4]@4 d4 ~ [f4,bb4]@2 ~@2 f4 ~",
  L: "[a4,c5,eb5]", M: "c4@2 ~@2 [f4,a4]@4 ~@2 [f4,a4]@3 ~@3", N: "c4@2 ~@2 [f4,a4,c5]@4 c4 ~ [f4,a4,c5]@2 ~@4",
  O: "[f4,bb4,d5]", P: "d4@2 ~@2 [f4,bb4]@4 d4 ~ [f4,bb4]@2 ~@2 d4 ~",
  Q: "d4@2 ~@2 [f4,bb4]@4 d4 ~ [f4,bb4]@2 ~@2 c4 ~", R: "~@4 [a4,c5]@4 f4 ~ [a4,c5]@2 ~@2 f4 ~", S: "[a4,c5,eb5]@3 ~",
  T: "[g4,bb4,eb5]@7 ~ [f4,a4,c5]@7 ~", U: "[f4,bb4,d5]@15 ~",
  V: "[~@4 [gb4,b4,eb5] ~@3 [gb4,b4,eb5]@4 gb4 ~ [gb4,b4,eb5]@8 ~@10]/2", // B
  W: "eb4@2 ~@2 [gb4,b4]@4 ~@2 [gb4,b4]@2 ~@2 gb4 ~", X: "[b4,eb5]",
  Y: "eb4@2 ~@2 [gb4,b4]@4 eb4 ~ [gb4,b4]@2 ~@2 gb4 ~", Z: "[bb4,db5,e5]",
  AA: "db4@2 ~@2 [gb4,bb4]@4 ~@2 [gb4,bb4]@3 ~@3", AB: "db4@2 ~@2 [gb4,bb4,db5]@4 db4 ~ [gb4,bb4,db5]@2 ~@4",
  AC: "[gb4,b4,eb5]", AD: "eb4@2 ~@2 [gb4,b4]@4 eb4 ~ [gb4,b4]@2 ~@2 eb4 ~",
  AE: "eb4@2 ~@2 [gb4,b4]@4 eb4 ~ [gb4,b4]@2 ~@2 db4 ~", AF: "~@4 [bb4,db5]@4 gb4 ~ [bb4,db5]@2 ~@2 gb4 ~",
  AG: "[bb4,db5,e5]@3 ~", AH: "[ab4,b4,e5]@7 ~ [gb4,bb4,db5]@7 ~", AI: "[gb4,b4,eb5]@15 ~",
  AJ: "~@3 bb6 [g6,ab6,a6] [d6,e6,f6] [a5,b5,c6] [f5,g5] [d5,e5] [b4,c5] [g4,a4] [e4,f4] [c4,d4] [a3,b3] [f3,g3] e3, [d3,f3,bb3]@3 ~@5", // Dm Am Fsus2 Dsus2 Cmaj7 Gsus2 Fmaj7 Csus2 …
  AK: "[f3,bb3] ~@3", AL: "[f4,ab4,db5]", AM: "[e4,ab4,b4,e5] [gb4,bb4,db5,gb5]", AN: "[b3,eb4,gb4,b4]@5 ~@11",
})).s("gm_piano").gain(0.37).pan(0.7)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H I J K L K L M N M N M N M N O P O P K Q R S T U T V O W X Y Z AA AB AC O AD AE AF@2 AB@2 AC AG AD AH
  AF AI AJ@2 AK@2 AL AM AN AO AN AO AP AQ AP AQ AP AQ AP AQ AR@2 AL AM AN AO AS AT AU AV AU AW AL AX AY AZ BA BB AK BC
  AL BD BE BF@2 AK@2 BC AL BG BE BH BI AK@2 AJ BJ AG BK BL BM BN BO BP BQ BP BR AG BS BT BU BV AA AJ BW AG BX AH BY@2
  AJ@2 BW AG BX AH BY AI AJ BE AK BZ AL BG BE BH@2 AK@2 BZ AL BG BE BH BI AK BI AK CA BI CB
>`.pickRestart({
  A: "[g3,bb3,eb4]@4 [g3,bb3,eb4]@6 ~ g3 [g3,bb3,eb4]@4, ~@5 [bb3,eb4] ~@2", // Eb Eb5
  B: "[gb3,bb3,eb4]@2 ~ [gb3,bb3] [gb3,bb3,eb4]@2 ~ [gb3,bb3] [gb3,bb3,eb4]@2 ~ [bb3,eb4]@5, ~@2 eb4@2 ~@2 eb4@2 ~@2 gb3@5 ~", // Ebm Gb Ebm Gb Ebm Eb5
  C: "[f3,bb3,d4]@4 [f3,bb3,d4]@6 ~ f3 [f3,bb3,d4]@4, ~@5 [bb3,d4] ~@2", // Bb
  D: "[e3,bb3,db4]@2 ~ [e3,bb3] [e3,bb3,db4]@2 ~ [e3,bb3] [e3,bb3,db4]@2 ~ [bb3,db4]@5, ~@2 db4@2 ~@2 db4@2 ~@2 e3@5 ~", // Bbdim Edim Bbdim Edim Bbdim Bbm
  E: "[g3,c4,eb4]@4 [g3,c4,eb4]@6 ~ g3 [g3,c4,eb4]@4, ~@5 [c4,eb4] ~@2", // Cm
  F: "[f3,a3,eb4]@2 ~ [f3,a3] [f3,a3,eb4]@2 ~ [f3,a3] [f3,a3,eb4]@2 ~ [a3,eb4]@5, ~@2 eb4@2 ~@2 eb4@2 ~@2 f3@5 ~", // F7 F F7 F F7 Adim
  G: "[f3,bb3,d4]@4 [f3,bb3,d4]@4 [g3,bb3,eb4]@2 ~ g3 [g3,bb3,eb4]@4, ~@5 [bb3,eb4] ~@2", H: "[f3,bb3,d4] ~@7",
  I: "[f4,bb4]@4 [d4,f4,bb4]@6 ~ d4 [d4,f4,bb4]@4, ~@5 [f4,bb4] ~@2", // Bb5 Bb Bb5
  J: "[d4,f4,bb4]@2 ~ [d4,f4]@3 ~ [f4,bb4]@3 ~ [d4,f4] [d4,f4,bb4]@4, ~ bb4@2 d4@2 bb4 ~@2", // Bb Dm Bb5 Dm Bb
  K: "[d4,f4,a4]@4 [d4,f4,a4]@6 ~ d4 [d4,f4,a4]@4, ~@5 [f4,a4] ~@2", // Dm F
  L: "[d4,f4,a4]@2 ~ [d4,f4]@3 ~ [f4,a4]@3 ~ [d4,f4] [d4,f4,a4]@4, ~ a4@2 d4@2 a4 ~@2", // Dm F Dm
  M: "[a3,c4,eb4]@4 [a3,c4,eb4]@6 ~ a3 [a3,c4,eb4]@4, ~@5 [c4,eb4] ~@2", // Adim Cm
  N: "[a3,c4,eb4]@2 ~ [a3,c4]@3 ~ [c4,eb4]@3 ~ [a3,c4] [a3,c4,eb4]@4, ~ eb4@2 a3@2 eb4 ~@2", // Adim Am Cm Am Adim
  O: "[d4,f4,bb4]@4 [d4,f4,bb4]@6 ~ d4 [d4,f4,bb4]@4, ~@5 [f4,bb4] ~@2", // Bb Bb5
  P: "[d4,f4,bb4]@2 ~ d4@3 ~ [f4,bb4]@3 ~ [d4,f4] [d4,f4,bb4]@4, ~ [f4,bb4]@2 d4@2 bb4 ~@2", // Bb Bb5 Dm Bb Bb5
  Q: "[d4,f4,a4]@2 ~ d4@3 ~ [f4,a4]@3 ~ [d4,f4] [d4,f4,a4]@4, ~ [f4,a4]@2 d4@2 a4 ~@2", // Dm F Dm F
// … 173 more lines