Strudelify

Un albero di trenta piani

Celentano

KeyC majorTempo175 bpm
0:00/0:00
// Un albero di trenta piani — Celentano
// 175 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 16 piano (copy of ch 5 choir aahs)
// note: Full arrangement: all 178 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(175/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(`<
  ~@65 A@2 B@7 C@5 D@3 E@2 F@4 G H@3 I@2 J K@2 L M@2 N O@2 P Q@2 ~@2 R S T@3 U@3 V@2 G W@2 X@3 B@7 C@5 Y Z AA E@2 AB@2
  AC@8 AD@4 AE@5 AF@2 AG AH AI@2 AJ AK@3 AL@8
>`.pickRestart({
  A: "[~@8 [c4,e4]@3 ~ [c4,e4]@2 ~@2 e4@4 [d4,f4]@4 [e4,g4]@3 ~ f4@2 ~@2, ~@4 c3@8 ~@3 c3@16 ~, ~@16 c4@2 ~@10 a4 ~@3]/2", // C Dm Em
  B: "[[c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@3 ~ [f4,a4] ~@3 [c4,e4]@3 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@4 [e4,g4]@2 ~@6 d4@3 ~ d4@2 ~@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ d4@2 ~@6 d4@3 ~ d4@2 ~@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ d4@2 ~@6 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~, c3@4 ~@3 c3@14 ~@3 c3@4 ~@3 c3@12 ~ g2@8 ~@3 g2@12 ~ g2@8 ~@3 g2@10 ~@3 g2@9 ~@2 g2@9, ~@48 [g4,b4]@6 ~@10 a4 ~@7 [g4,b4]@6 ~@10 a4 ~@23]/7", // C Dm Em F C Dm Em G
  C: "[d4@2 ~@6 [d4,g4,b4]@7 ~ d4@3 ~ [d4,g4,b4]@3 ~ [d4,a4] ~@7 [c4,e4]@3 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@3 ~ [f4,a4] ~@3 [c3,c4,e4]@4 [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@2 ~@6, a4 ~@3 g2@8 ~@3 g2@11 ~@2 c3@8 ~@3 c3@14 ~@10 c3@13 ~@4]/5", // G D5 C Dm Em F C Dm …
  D: "[[c3,a#3,c4,e4]@4 [c4,e4] ~@3 e4@4 [d4,f4]@3 ~ [e4,g4]@3 ~ [c3,a#3,f4,a4] ~@3 [c4,e4]@3 ~ e4@2 ~@2 e4@4 [d4,f4]@3 ~ [e4,g4]@2 ~@2 f2@4, ~@7 [c3,a#3]@13 ~@4 c3 ~@2 c3@2 ~@2 [c3,a#3]@12 ~@5, ~@8 c4@2 ~@14 a#3@4 c4 ~@3 c4@2 ~@14]/3", // C7 C Dm Em F C Dm Em …
  E: "[[a3,c4,f4]@3 f2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,g4]@3 ~ [a3,c4,f4] ~@3 f2@4 [a3,c4,f4]@3 f2 [a3,c4,f4] ~@2 f2, ~@7 f2@11 ~@14]/2", // F Am7 F
  F: "[[a3,c4,f4] ~@3 [a3,c4,g4]@3 ~ [a3,c4,f4] ~@7 [e4,g4]@2 ~@2 [e4,g4]@2 ~@2 [e4,g4]@4 [e4,a4]@3 ~ [e4,g4]@2 ~@6 [d4,f4]@3 ~ f4 d4 ~@2 [d4,f4]@4 [d4,g4]@3 ~ [d4,f4]@2 ~@2 c3@4, ~@12 c3@9 ~@2 c3@11 ~@2 g2@9 ~@2 g2@12 ~@5]/4", // F Am7 F Em A5 Em Dm G5 …
  G: "[c4,e4]@3 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~, ~@3 c3@2 ~@2 c3@9", // C Dm
  H: "[[e4,g4]@2 ~@2 c3@4 [c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@2 ~@6 [c4,e4]@3 c3 ~ c4 ~@2 [c4,e4]@3 ~ [d4,f4]@3 ~, ~@11 c3@2 ~@2 c3@12 ~ c3@6 ~@2 e4@2 ~ c3@9]/3", // Em C Dm Em C Dm
  I: "[[e4,g4] ~@3 c3@4 [c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@3 ~ [d4,f4]@3 ~ [e4,g4] ~@3 g2@4, ~@11 c3@2 ~@2 c3@11 ~@6]/2", // Em C Dm Em
  J: "[b3,d4]@3 ~ [b3,d4] ~@3 [b3,d4]@3 ~ [c4,e4]@2 ~@2, ~@3 g2@2 ~@2 g2@9", // Bm C
  K: "[[d4,f4] ~@3 g2@4 [d4,g4]@2 ~@2 d4@2 ~@2 [d4,g4]@3 ~ [d4,a4]@3 ~ [d4,g4] ~@3 g2@4, ~@11 g2@2 ~@2 g2@10 ~@7, ~@12 g4 ~@19]/2", // Dm G5 D5 G5
  L: "[d4,g4]@2 ~ g2 [d4,g4] ~@3 [d4,g4]@4 [d4,a4]@3 ~, ~@7 g2@9", // G5 D5
  M: "[[d4,g4] ~@3 g2@4 [d4,g4]@2 ~@2 [d4,g4]@2 ~@2 [d4,g4]@3 ~ [d4,a4]@3 ~ d4@2 ~@6, ~@11 g2@2 ~@2 g2@11 ~@6, ~@24 g4 ~@7]/2", // G5 D5
  N: "[c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@4 [d4,f4]@3 ~", // C Dm
  O: "[[e4,g4] ~@3 c3@4 [c4,e4]@2 ~@2 [c4,e4]@3 ~ [d4,f4]@4 [e4,g4]@3 ~ e4 ~@3 [c3,a#3]@4, ~@11 c3@2 ~@2 c3@10 ~@7]/2", // Em C Dm Em C7
  P: "[c4,e4]@3 [c3,a#3] [c4,e4]@2 ~@2 [c4,e4]@3 ~ [d4,f4]@3 ~, ~@7 [c3,a#3]@9", // C C7 C Dm C7
  Q: "[[e4,g4]@2 ~@2 [c3,a#3]@4 [c4,e4]@2 ~@2 [c4,e4]@3 ~ [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@2 ~@6, ~@11 [c3,a#3]@2 ~@2 [c3,a#3]@12 ~@5]/2", // Em C7 C Dm Em C7
  R: "~@3 c3", S: "[c4,e4]@2 ~@2 [c4,e4]@2 ~@2 e4@4 [d4,f4]@3 ~, ~@3 c3@2 ~@2 c3@9, ~@4 c4 ~@3",
  T: "[[e4,g4] ~@3 c3@4 [c4,e4]@3 ~ [c4,e4]@3 ~ e4@4 [d4,f4]@3 ~ [e4,g4]@2 ~@2 b4@4 g4 ~@2 [g4,b4]@3 ~@2 [g4,b4]@4 a4@3 ~, ~@11 c3@2 ~@2 c3@2 ~@11 g2@6 ~@5 g2@9, ~@8 c4 ~@15]/3", // Em C Dm Em G
  U: "[g4 ~@3 g2@7 [g4,b4]@3 ~@2 [g4,b4]@4 a4@3 ~ g4@2 ~@6 [c4,e4]@3 ~ [c4,e4]@2 ~@2 e4@4 [d4,f4]@3 ~, ~@15 g2@11 ~@2 c3@8 ~@3 c3@9, ~@20 c4 ~@3]/3", // G C Dm
  V: "[[e4,g4]@2 ~@6 [b3,d4]@4 b3@3 ~ [b3,d4]@4 [c4,e4]@3 ~ [d4,f4] ~@3 c3@4, ~@4 g2@7 ~@4 g2@10 ~@7]/2", // Em Bm C Dm
  W: "[e4@2 ~@2 c3@4 [c4,e4]@2 ~@2 [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~ [e4,g4] ~@3 c3@4, g4 ~@10 c3@2 ~@2 c3@11 ~@6]/2", // C Dm Em
  X: "[[c4,e4]@3 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~ e4@2 ~@6 [c4,e4]@3 ~ [c4,e4]@2 ~@2 e4@4 [d4,f4]@4 [e4,g4]@3 ~ f4@2 ~@2, ~@3 c3@2 ~@2 c3@11 ~@2 c3@8 ~@3 c3@16 ~, ~@16 g4 ~@15 c4@2 ~@10 a4 ~@3]/3", // C Dm C Dm Em
  Y: "[c4,e4]@2 ~ c4 [c4,e4] ~@2 c4 [c4,e4]@4 [d4,f4]@3 ~", Z: "[e4,g4]@2 ~@6 e4@2 ~ c4 [c4,e4]@2 ~ c4, ~@8 c4 ~@7",
  AA: "[c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@2 ~@2 f2@4", // C Dm Em
  AB: "[[a3,c4,f4] ~@3 [a3,c4,g4]@3 ~ [a3,c4,f4] ~@7 [e4,g4]@2 ~@2 [e4,g4]@2 ~@2 [e4,g4]@4 [e4,a4]@3 ~, ~@12 c3@9 ~@2 c3@9]/2", // F Am7 F Em A5
  AC: "[[e4,g4]@2 ~@6 [d4,f4]@3 ~ f4 d4 ~@2 [d4,f4]@4 [d4,g4]@3 ~ [d4,f4]@2 ~@6 [c5,e5]@2 ~ c4 [c5,e5]@2 ~@2 [c5,e5]@3 ~ [d5,f5]@3 ~ [e5,g5]@2 ~@6 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [c5,e5]@3 ~ [d5,f5]@2 ~@2 [e5,g5]@2 ~@6 [c4,e4]@3 ~ [c4,e4]@2 ~@2 e4@4 [d4,f4]@4 [e4,g4]@3 ~ f4@2 ~@2 [c4,e4]@3 ~ [c4,e4]@3 ~ [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@3 ~ [f4,a4] ~@3, ~@4 g2@9 ~@2 g2@12 ~ c3@21 ~@3 c3@23 ~ c3@8 ~@3 c3@16 ~ c3@4 ~@3 c3@14 ~@3, ~@39 c4@12 ~@4 c4@2 ~@2 c4@2 ~@2 c4@12 ~@13 c4@2 ~@10 a4 ~@27]/8", // Em Dm G5 Dm C Dm Em C …
  AD: "[[c4,e4]@3 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@4 [e4,g4]@2 ~@6 d4@3 ~ d4@2 ~@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ d4@2 ~@6 d4@3 ~ d4@2 ~@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~, c3@4 ~@3 c3@12 ~ g2@8 ~@3 g2@12 ~ g2@8 ~@3 g2@9, ~@24 [g4,b4]@6 ~@10 a4 ~@7 [g4,b4]@6 ~@10]/4", // C Dm Em G
  AE: "[d4@2 ~@6 [d4,g4,b4]@6 ~@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@3 ~ d4@2 ~@6 [d4,g4,b4]@7 ~ d4@3 ~ [d4,g4,b4]@3 ~ [d4,a4] ~@7 [c4,e4]@3 ~ [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@3 ~ [f4,a4] ~@3, a4 ~@3 g2@9 ~@2 g2@9 a4 ~@3 g2@8 ~@3 g2@11 ~@2 c3@8 ~@3 c3@14 ~@3]/5", // G D5 C Dm Em F
  AF: "[[c3,c4,e4]@4 [c4,e4]@2 ~@2 [c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@2 ~@6 [c4,e4]@2 ~ c4 [c4,e4] ~@2 c4, ~@7 c3@13 ~@12]/2", // C Dm Em C
  AG: "[c4,e4]@4 [d4,f4]@3 ~ [e4,g4]@2 ~@6", AH: "e4@2 ~ c4 [c4,e4]@2 ~ c4 [c4,e4]@4 [d4,f4]@3 ~, c4 ~@15",
  AI: "[[e4,g4]@2 ~@2 f2@4 [a3,c4,f4]@3 f2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,g4]@3 ~ [a3,c4,f4] ~@3 f2@4, ~@15 f2@11 ~@6]/2", // Em F Am7 F
  AJ: "[a3,c4,f4]@3 f2 [a3,c4,f4] ~@2 f2 [a3,c4,f4] ~@3 [a3,c4,g4]@3 ~", // F Am7
  AK: "[[a3,c4,f4] ~@7 [e4,g4]@2 ~@2 [e4,g4]@2 ~@2 [e4,g4]@4 [e4,a4]@3 ~ [e4,g4]@2 ~@6 [d4,f4]@3 ~ f4 d4 ~@2 [d4,f4]@4 [d4,g4]@3 ~, ~@4 c3@9 ~@2 c3@11 ~@2 g2@9 ~@2 g2@9]/3", // F Em A5 Em Dm G5
  AL: "[[d4,f4]@2 ~@6 [c5,e5]@2 ~ c4 [c5,e5]@2 ~@2 [c5,e5]@3 ~ [d5,f5]@3 ~ [e5,g5]@2 ~@6 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [c5,e5]@3 ~ [d5,f5]@2 ~@2 [e5,g5]@2 ~@6 [c5,e5]@2 ~ c4 [c5,e5]@2 ~@2 [c5,e5]@3 ~ [d5,f5]@3 ~ [e5,g5]@2 ~@6 [c5,e5]@3 ~ [c5,e5]@2 ~@2 [c5,e5]@3 ~ [d5,f5]@2 ~@2 [e5,g5]@2 ~@2 [c4,e4,g4]@24 ~@4, ~@4 c3@21 ~@3 c3@23 ~ c3@21 ~@3 c3@23 ~ [c1,c2]@22 ~@6, ~@15 c4@12 ~@4 c4@2 ~@2 c4@2 ~@2 c4@12 ~@12 c4@12 ~@4 c4@2 ~@2 c4@2 ~@2 c4@12 ~@29]/8", // Dm C Dm Em C Dm Em C …
})).s("gm_piano").gain(0.64).pan(0.6)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@82 A B C@2 D E@8 F@3 G@7 H@3 I@8 J@7 ~@16 A B C@2 K@5 ~@17 L@5 M@6 N@2
>`.pickRestart({
  A: "~@3 c4", B: "d4 d#4@3", C: "[d4@3 c4@4 d4]/2", D: "c4 b3@3",
  E: "[~@4 a3@4 b3@4 c4@45 ~@3 [g4,e5]@47 ~ [d5,f5]@20]/8", F: "[~@4 [d5,f5]@23 ~ [d5,f5]@20]/3",
  G: "[~@4 [d5,f5]@24 [c5,e5]@47 ~ [e4,a#4]@36]/7", H: "[~ [a4,c5]@3]/3", I: "[~@3 [g4,e5]@12 [f4,d5]@12 [g4,e5]@5]/8",
  J: "[~@4 [b4,d5]@23 ~ [g4,c5]@72 ~@12]/7", K: "[c4@4 b3@15 ~ a3@4 b3@4 c4@45 ~@7]/5",
  L: "[~@4 c4@4 d4@4 d#4@12 g4@11 ~ c4@16 d4@4 c4@4 b3@15 ~ a3@4]/5", M: "[b3 c4@21 ~@2]/6", N: "[~ [c4,c5]@6 ~]/2",
})).s("gm_string_ensemble_1").gain(0.48).pan(0.6)

// chords · percussive organ
const percussive_organ = note("<~@32 A@6 B@6 C@7 D@2 E@3 F@3 G@7 ~@24 H@6 I@6 J@8 K L@5 M@7 ~@53 N@2>".pickRestart({
  A: "[~@4 [c5,e5]@47 ~ [b4,d5]@44, ~ g4@23]/6", B: "[~@4 [g4,b4,d5]@47 ~ [g4,c5,e5]@44]/6",
  C: "[~@4 [g4,a#4,e5]@48 [a4,f5]@47 ~ [g4,e5]@12, ~@13 c5@15]/7", D: "[~@3 [g4,e5]@3 ~@2]/2", E: "[~ [b4,d5]@11]/3",
  F: "[~ [c5,e5]@6 [b4,d5]@5]/3", G: "[~@4 [c5,e5]@95 ~@13]/7", H: "[~@12 [c5,e5]@47 ~ [b4,d5]@36, ~ g4@7]/6",
  I: "[~@12 [g4,b4,d5]@47 ~ [g4,c5,e5]@36]/6", J: "[~@12 [g4,a#4,e5]@48 [a4,f5]@47 ~ [g4,e5]@12 ~@8, ~@15 c5@15 ~@2]/8",
  K: "~ [g4,e5]@3", L: "[~@12 [b4,d5]@47 ~ [c5,e5]@20]/5", M: "[~ [b4,d5]@6 [c5,e5]@18 ~@3]/7", N: "[~ [g5,c6]@6 ~]/2",
})).s("gm_percussive_organ").gain(0.24).pan(0.6)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@32 A B C@2 D@2 ~@4 E@2 F ~ G H I J K ~@3 L M ~@35 N O P Q R S T@3 U V W ~@3 X Y Z ~@3 AA AB@2 ~@37 AC AD AE AF@3 ~@2
  X AG AH@2 AI@2 ~@12
>`.pickRestart({
  A: "~@4 g2 a2 c3 d3", B: "c3", C: "[g2@2 a2@2 c3@2 d3@2 c3@11 ~@13]/2", D: "[a4@2 c5 ~ a4@2 g4@6 ~@4]/2",
  E: "[[f4,a4]@4 [e4,g4]@2 ~@2 [d4,f4]@2 ~@2 [c4,e4]@11 ~ g2@2 ~@2 g2@2 a2@2]/2", F: "c3 d3 c3 ~@5", G: "~@3 d5",
  H: "~ c5@13 ~@2", I: "c5@2 d5@2 f5 ~@3 g4@2 a4@2 c5 ~@3", J: "c4@2 d4@2 f4 ~@3 d#4 e4@2 ~ d4@4, ~@2 g3 ~",
  K: "c4 ~@7", L: "a4@7 ~ a4@3 ~ a4@3 ~", M: "g4 a4 g4 a4 g4@4", N: "d5@6 d5 ~ d5@3 ~ c5@4",
  O: "a4@2 ~@6 d5@3 ~ d5 ~ d5 ~", P: "d5@3 ~ c5@4 a4@2 ~@6", Q: "g4@3 ~ g4@4 a4@4 c5@3 ~",
  R: "c5@4 a4@4 g4@2 d4 ~ g4@3 ~", S: "g4@10 ~@2 a4@3 ~", T: "[g4@10 a4@2 g4@9 ~@3]/3", U: "~@4 f5@4 ~ f5@7",
  V: "f5 ~ d5@2 c5 ~ c5 ~", W: "c5@5 ~@3", X: "~@6 g2 a2", Y: "c3 d3 c3@2 d3@2 e3@2", Z: "g3@4 a3@4 c4@3 ~@5",
  AA: "g5@3 ~ g4 ~ f5@3 ~ g4 ~ e5@3 ~", AB: "[d5@2 ~@14 g4@9 ~@7, ~ b4@4 ~@3]/2", AC: "~@12 g3@3 ~",
  AD: "a3 c4 a3@2 g3@2 ~@2", AE: "g3 ~ a3@2 c4@4 d#4 e4@3 g4@3 ~",
  AF: "[g4@2 a4 ~ g4@14 a#4@2 ~@2 a4@2 g4@2 f#4@2 f4@18 ~@2, ~@21 b4@2 ~@25]/3", AG: "c3@2 d3@2 c3@4 g3@2 a3 ~ c4@3 ~",
  AH: "[d4@2 ~@2 d4@3 ~ d4@4 c4@7 ~ c4@4 g4@4 a#4@3 ~]/2", AI: "[d4@4 c4@19 ~@9]/2",
})).s("gm_overdriven_guitar").gain(0.31).pan(0.3)

// bass · tuba
const bass = note(`<
  A B C D B C E B C E F G H I G J K L M B N O@2 P Q@2 R S T U E B C E F G H I G J K L M B N O@2 P Q@2 R V@2 G H I G J K
  W E B C E X W E B C Y I G H I Z@2 AA C AB F AC AD AE AF AG@2 R AH B C E B C Y I G H I Z@2 AA C AI AJ N AK AL AM AN AJ
  N AO I G H I AP@2 B C E B C E B C Y I G H I Z@2 AA C AQ@5 AR AS@2 R AH B C E B C E F G H I G J K L M B AT AU@2 AV AW@2
  AX AY@2 C E B C E B AZ@2
>`.pickRestart({
  A: "~@6 c3 ~", B: "~@4 g2 ~@3", C: "~@2 c3 ~@5", D: "g2@3 ~@9 c3@2 ~@2", E: "g2 ~@5 c3 ~", F: "~@8 g2@3 ~@5",
  G: "~@2 g2 ~@5", H: "d2 ~@5 g2 ~", I: "~@4 d2 ~@3", J: "d2@2 ~@10 g2 ~@3", K: "d2@7 ~", L: "b2@4 c3 ~@11",
  M: "g2 ~@11 c3@2 ~@2", N: "~@4 c3@5 ~@7", O: "[a#2@9 ~@3 a#2@6 ~@2 a#2@12]/2", P: "~@2 a2@3 ~@3",
  Q: "[f2@5 ~@3 a2@14 ~@2 a2@8]/2", R: "~ g2@2 ~", S: "c2@9 ~@3 g2@3 ~", T: "~@8 d2 ~@3 a2@2 ~@2", U: "b2 ~ c3 ~@5",
  V: "[c2@9 ~@3 g2@8 ~@4 c2@8]/2", W: "b2@2 c3 ~@5", X: "~@2 g2 a2", Y: "g2@3 ~@9 g2@2 ~@2",
  Z: "[~@4 g2 ~@3 d2@14 ~@2 b2@4 c3 ~@3]/2", AA: "~@8 g2 ~@7", AB: "g2@2 ~@10 c3@3 ~", AC: "~@4 c3@3 ~@9",
  AD: "g2 ~@2 f2", AE: "~@2 c2 ~", AF: "~@4 f2@5 ~@7", AG: "[c2@5 ~@7 c3@6 ~@6 g2@7 ~]/2", AH: "d2@9 ~@3 c3@2 ~@2",
  AI: "g2 ~@5 c3@2", AJ: "~@2 g2 ~", AK: "c2@4 d2@3 ~ e2@3 ~ f2@4", AL: "~@8 c2@5 ~@3", AM: "~@4 f2@7 ~@5",
  AN: "c2@2 ~ c3", AO: "g2@5 ~@7 g2@2 ~@2", AP: "[~@4 g2 ~@3 d2@14 ~@2 b2@4 c3@2 ~@2]/2",
  AQ: "[g2@2 ~@10 c3@10 ~@2 a#2@10 ~@2 a#2@6 ~@2 a#2@6 ~@2 a#2@3 ~ a#2@3 ~ a2@7 ~@5 f2@6 ~@2]/5",
  AR: "a2@3 ~ a2@10 ~@2", AS: "[f2@9 ~@3 c3@6 ~@6 g2@7 ~]/2", AT: "~@2 c3@5 ~",
  AU: "[a#2@10 ~@2 a#2@6 ~@2 a#2@6 ~@2 a#2@3 ~]/2", AV: "a#2@3 ~ a2@7 ~@5", AW: "[f2@6 ~@2 a2@3 ~ a2@10 ~@2 f2@8]/2",
  AX: "~@2 c3@3 ~@3", AY: "[g2@7 ~@5 g2@8 ~@4 d2@8]/2", AZ: "[~ c2@6 ~]/2",
})).s("gm_tuba").gain(0.69).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B@2 C D@3 E@4 F@5 G@7 H@6 I@5 J@6 K@3 L M@2 N@3 O@3 P@3 Q@3 R@3 S@3 T@2 U@3 V W@2 X Y@2 Z AA@3 AB@3 AC@3 AD@8 V W@2
  X Y@2 Z AA@3 AB@3 AC@3 AE@3 W@2 AF AG@3 AH@3 AI@2 U@3 V W@2 X Y@2 Z AA@3 AB@3 AC@3 AJ@6 AK@2 AL@3 AM AN@2 AO AP AQ AR
  AS AT@5 AU@6 AV@3 AW@3
>`.pickRestart({
  A: "~@3 [c3,g3,c4,e4]", // C
  B: "[[g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@4 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~, ~@3 [c3,e3]@4 ~ [c3,e3]@6 ~ [c3,e3]@4 ~ c3@6 ~ [c3,e3]@4 ~]/2", // C
  C: "[c3,e3]@4 g3@2 ~@2 [g3,c4,e4]@3 ~ [c3,g3,c4,e4]@4, [c4,e4]@7 ~@9, g3@3 ~@4 [c3,e3]@4 ~@5", // C
  D: "[[g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 [c3,e3] [c3,g3,c4,e4]@4, ~@3 [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~ [c3,e3]@6 ~@2 [c3,e3]@3 ~@6]/3", // C
  E: "[[g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 [c3,e3], ~@3 [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@2 ~@2 [c3,e3]@7 ~ [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@2 ~@2 [c3,e3]@6 ~@3, ~@24 c4@7 ~@33]/4", // C
  F: "[[g3,c4,e4]@3 [c3,e3] [g2,f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~, ~@11 [g2,d3]@3 ~ [g2,d3]@7 ~ [g2,d3]@3 ~ [g2,d3]@7 ~ [g2,d3]@3 ~ [g2,d3]@7 ~ [g2,d3]@3 ~ [g2,d3]@7 ~ [g2,d3]@3 ~ [g2,d3]@7 ~ [g2,d3]@3 ~ [g2,d3]@5]/5", // C G7 Bdim G5
  G: "[[f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 [c3,e3] [c3,g3,a#3,e4]@3 ~ [g3,a#3,e4]@3 ~ [g3,a#3,e4]@3 ~ a#3@3 ~ a#3@3 ~ [g3,a#3,e4]@3 ~ [g3,a#3,e4]@3 ~ [g3,a#3,e4]@2 ~@2 [g3,a#3,e4]@3 ~ [g3,a#3,e4]@2 ~@2 [g3,a#3,e4]@2 ~ c3, ~@3 [g2,d3]@3 ~ [g2,d3]@7 ~ [g2,d3]@5 c3@4 ~@3 [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~@9 c3@3 ~ c3@7 ~ c3@3 ~ c3@7 ~ c3@3 ~ c3@6 ~@3, ~@40 [g3,e4]@3 ~@13]/7", // Bdim C C7 Edim G5 C
  H: "[[g3,a#3,e4]@3 c3 [a3,c4]@3 ~ [a3,c4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~@2 a3@2 ~ [a3,c4,f4]@3 ~ [a3,f4]@3 ~ [a3,f4]@3 ~ [a3,c4,f4]@3 [f2,c3] [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ g2@4 f3@2 ~@2 [f3,b3,d4]@3 ~ [f3,d4]@3 ~ [f3,d4]@3 g2, ~@4 [f2,f4]@6 ~ [f2,c3]@3 ~ [f2,c3]@7 ~ [f2,c3]@3 ~ [f2,c3]@7 ~ [f2,c3]@3 ~ [f2,c3]@6 ~@2 [f2,c3]@3 ~@2 c3@4 ~@3 c3@3 ~ c3@7 ~ c3@5 f3@3 ~@4 g2@3 ~ g2@7 ~@2, ~@32 [c4,f4]@3 ~@5 c4@7 ~@17 [c4,e4]@8 ~@4 [b3,d4]@7 ~@5 b3@8]/6", // Edim Am F Dm F F5 C Bdim …
  I: "[[f3,b3,d4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@7 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 c3 [c3,g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~, ~@4 c3@4 ~@3 [c3,e3]@3 ~ [c3,e3]@7 ~ [c3,e3]@3 ~ c3@7 ~ c3@3 ~ c3@7 ~ c3@3 ~@9 c3@3 ~ c3@7 ~ c3@2 ~@2 c3@5, ~@16 [c4,e4]@7 ~@41 c4@7 ~@9]/5", // Bdim C
  J: "[[g3,c4,e4]@2 ~@2 [g3,c4,e4] ~@3 [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 g2 [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~ g2 [g2,f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [f3,b3,d4]@3 ~, ~@3 c3@2 ~@2 c3@6 ~@2 c3@6 ~@10 g2@7 ~ g2@2 ~@2 g2@7 ~ g2@2 ~@2 g2@7 ~ g2@2 ~@10 g2@2 ~@2 g2@7 ~ g2@2 ~@2 g2@5]/6", // C Bdim G7 Bdim
  K: "[[f3,b3,d4]@2 ~@2 [f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 [f3,b3,d4]@3 ~ [c3,g3,c4,e4]@3 ~ [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 g3@3 ~ g3@3 ~ [g3,c4,e4]@2 ~@2 [g3,c4,e4]@3 ~, ~@3 g2@2 ~@2 g2@6 ~@2 g2@5 ~@7 c3@2 ~@2 c3@6 ~@2 c3@2 ~@2 c3@5, ~@32 [c4,e4]@7 ~@9]/3", // Bdim C
  L: "[g3,c4,e4]@2 ~@2 [g3,c4,e4]@2 ~@2 [c4,e4]@3 ~ [g3,c4,e4] ~@2 c3, ~@3 c3@2 ~@2 c3@6 ~@3", // C
  M: "[[g3,c4,e4]@2 ~@2 [c3,g3,a#3,e4]@3 ~ [g3,a#3,e4]@2 ~ c3 [g3,a#3,e4] ~@3 g3@3 ~ g3@3 ~ [g3,a#3,e4]@2 ~@2 [g3,a#3,e4]@3 ~, ~@15 c3@10 ~@2 c3@5, ~@16 [a#3,e4]@7 ~@9]/2", // C C7 Edim A#dim
  N: "[[a#3,e4] g3 ~ c3 [a#3,e4] ~@3 [g3,a#3,e4]@3 ~ [g3,a#3,e4]@2 ~@2 [g3,a#3,e4]@2 ~@2 [f2,a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~ f2 [a3,c4,f4] ~@3 a3@3 ~ a3@2 ~ f2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@3 ~, ~@7 c3@6 ~@2 c3@5 ~@11 f2@7 ~@5 f2@5, ~@16 [c4,f4]@3 ~@5]/3", // A#dim Edim F F5
  O: "[[a3,c4,f4] ~@2 f2 [a3,c4,f4] ~@3 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 ~@2 [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ [c3,g3,e4]@4, ~@7 f2@6 ~@2 f2@3 ~@2 c3@4 ~@3 c3@3 ~ c3@7 ~ c3@5 ~@4, ~@4 [c4,e4] ~]/3", // F C
  P: "[[g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ [g2,f3,b3,d4]@3 ~ [f3,b3,d4] ~@2 g2 [f3,b3,d4] ~@3 f3@3 ~ f3@2 ~@2 [f3,b3,d4]@3 ~ [g2,f3,b3,d4]@3 ~, ~@3 c3@3 ~ c3@7 ~ c3@5 ~@11 g2@6 ~@2 g2@4 ~@5, ~@8 [c4,e4]@8 ~@16 [b3,d4]@7 ~@9]/3", // C G7 Bdim G7 C Bm
  Q: "[[f3,b3,d4] ~@2 g2 [f3,b3,d4] ~@3 [f3,d4]@3 ~ [f3,d4]@2 ~@2 [f3,b3,d4]@2 ~@2 c3@4 [g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@4 g2@4, ~@7 g2@7 ~ g2@4 ~@8 c3@2 ~@10 c3@5 ~@4, ~@8 b3@6 ~@14 [g3,c4,e4]@7 ~@13]/3", // Bdim Dm Bdim C
  R: "[[f3,b3,d4]@3 ~@5 g2@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@4 c3@4 [g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~@5 c3@4, ~@3 g2@2 ~@10 g2@5 ~@7 c3@2 ~@10 c3@2 ~@7, ~@4 [f3,b3,d4]@7 ~@17 [g3,c4,e4]@7 ~@5 [g3,c4,e4]@6 ~@2]/3", // Bdim C Bdim C
  S: "[[g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 c3@4 [g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~@5 c3@4, ~@3 c3@2 ~@10 c3@2 ~@10 c3@2 ~@10 c3@2 ~@7, ~@4 [g3,c4,e4]@6 ~@18 [g3,c4,e4]@7 ~@5 [g3,c4,e4]@6 ~@2]/3", // C
  T: "[[g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 c3@4 [g3,c4,e4]@3 c3 [g3,c4,e4] ~@3, ~@3 c3@2 ~@10 c3@2 ~@15, ~@2 [g3,c4,e4]@3 ~@11]/2", // C
  U: "[c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4] ~@7 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2, ~@7 c3@2 ~@3 c3@9 ~@10 c3@2 ~@3 c3@6 ~ c3@2 ~@3]/3", // C
  V: "c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 g2@4, ~@7 c3@4 ~@5", // C
  W: "[[f3,b3,d4]@3 ~ [f3,b3,d4] ~@3 d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 g2@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2, ~@3 g2@2 ~@10 d3@2 ~@10 g2@3 ~@2]/2", // Bdim
  X: "d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 g2@4, ~@7 d3@3 ~@6", // Bdim
  Y: "[[f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@5 d3 [f3,b3,d4]@8, ~@3 g2@2 ~@10 d3@3 ~@14]/2", // Bdim
  Z: "d4 ~@2 d3 [f3,b3,d4] ~@2 d3 [f3,b3,d4]@3 ~ g3 ~@3", // Bdim
  AA: "[[g3,c4,e4] ~@2 c3 [c4,e4]@5 g3 ~ c3 [g3,c4,e4] ~@3 g3@3 ~ g3 ~@3 [g3,c4,e4] ~@3 [g3,c4,e4]@6 ~@2 [g3,c4,e4] ~@2 c3 [g3,c4,e4]@2 ~@2 [c3,g3,a#3,e4]@4, ~@4 g3@3 ~@8 c3@10 ~@2 c3@9 ~@12, ~@8 [c4,e4]@3 ~@13]/3", // C C7 C
  AB: "[[g3,a#3,e4]@2 ~@2 [g3,a#3,e4]@3 ~ g3@2 ~@6 [a#3,e4]@3 ~ [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,a#3,e4]@2 ~@2 g3@3 ~@5 [a#3,e4]@3 ~ [f2,a3,c4,f4]@4, ~@7 c3@12 ~ [c3,a#3]@8 ~@3 c3@13 ~@4, ~@8 [a#3,e4]@7 ~@17 [a#3,e4]@7 ~@9, ~@2 g3 ~@3 g3 ~]/3", // Edim A#dim C Edim A#dim F C7 A#dim
  AC: "[a3 ~@2 f2 [a3,c4,f4] ~@3 a3@3 ~ a3@2 ~@2 a3@4 [f2,a3,c4,f4]@5 ~@2 f2 [a3,c4,f4] ~@3 a3@4 ~@4 a3@3 ~ [c3,g3,e4]@4, ~@7 f2@12 ~@12 f2@12 ~@5, ~@8 [c4,f4]@11 ~@13 [c4,f4]@11 ~@5]/3", // F C F5
  AD: "[[g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ g2@4 f3@2 ~@2 [f3,b3,d4]@3 ~ [f3,d4]@3 ~ [f3,d4]@3 ~ [f3,b3,d4]@3 ~ [g3,e4]@3 ~ [g3,e4] ~@2 c3 [g3,c4,e4] ~@3 g3@3 ~@2 g3 ~@2 g3@3 ~ [c3,g3,c4,e4]@5 ~@2 c3 [g3,c4,e4] ~@3 g3@3 ~ g3 ~@3 g3@2 ~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2, ~@3 c3@3 ~ c3@7 ~ c3@5 f3@3 ~@4 g2@3 ~ g2@7 ~ g2@4 ~ [c3,c4]@6 ~@5 c3@12 ~@12 c3@12 ~ c3@9 ~@10 c3@2 ~@3 c3@6 ~ c3@2 ~@3, ~@8 [c4,e4]@8 ~@4 [b3,d4]@7 ~@5 b3@8 ~@16 [c4,e4]@11 ~@13 [c4,e4]@10 ~@38]/8", // C Bdim Dm Bdim C Bm C
  AE: "[[g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ g2@4, ~@3 c3@3 ~ c3@7 ~ c3@5 c3@4 ~@3 c3@3 ~ c3@7 ~ c3@5 ~@4, ~ [c4,e4] ~@2 [c4,e4] ~]/3", // C
  AF: "d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 c3@4, ~@7 d3@3 ~@6", // Bdim
  AG: "[~ c4@2 ~@5 c3@4 [g3,c4,e4]@2 ~@2 [g3,c4,e4]@4 g2@4 [f3,b3,d4]@3 ~@5 g2@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@4 c3@4, [g3,e4]@2 ~ c3@2 ~@10 c3@5 ~@7 g2@2 ~@10 g2@5 ~@4, ~@4 [g3,c4,e4]@7 ~@17 [f3,b3,d4]@7 ~@13]/3", // C Bdim C Bdim
  AH: "[[g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~@5 c3@4 [g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 c3@4, ~@3 c3@2 ~@10 c3@2 ~@10 c3@2 ~@10 c3@2 ~@7, ~@4 [g3,c4,e4]@7 ~@5 [g3,c4,e4]@6 ~@6 [g3,c4,e4]@6 ~@14]/3", // C
  AI: "[[g3,c4,e4]@2 ~@6 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@4 c3@4 [g3,c4,e4]@3 c3 [g3,c4,e4] ~@3, ~@3 c3@2 ~@10 c3@2 ~@15, ~@4 [g3,c4,e4]@7 ~@21]/2", // C
  AJ: "[[g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ g2@4 f3@2 ~@2 [f3,b3,d4]@3 ~ [f3,d4]@3 ~ [f3,d4]@3 ~ [f3,b3,d4]@3 ~ [g3,e4]@3 ~ [g3,e4] ~@2 c3 [g3,c4,e4] ~@3 g3@3 ~@2 g3@3 g3@3 ~ [c3,g3,c4,e4]@5 ~@2 c3 [g3,c4,e4] ~@3 g3@3 ~ g3 ~@3 g3@2 ~@2 c3@4, ~@3 c3@3 ~ c3@7 ~ c3@5 f3@3 ~@4 g2@3 ~ g2@7 ~ g2@4 ~ [c3,c4]@6 ~@5 c3@12 ~@12 c3@12 ~@5, ~@8 [c4,e4]@8 ~@4 [b3,d4]@7 ~@5 b3@8 ~@16 [c4,e4]@11 ~@13 [c4,e4]@10 ~@6]/6", // C Bdim Dm Bdim C Bm C
  AK: "[[g3,c4,e4]@3 c3 [g3,c4,e4] ~@3 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4] ~@7 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2, ~@15 c3@2 ~@3 c3@9 ~@3]/2", // C
  AL: "[c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@6 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 c3@4 [g3,c4,e4]@3 ~ [g3,c4,e4]@2 ~@2 g2@4 [f3,b3,d4]@3 ~ [f3,b3,d4] ~@3, ~@7 c3@2 ~@3 c3@6 ~ c3@2 ~@10 c3@4 ~@8 g2@2 ~@3]/3", // C Bdim
  AM: "d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 g2@4, ~@7 d3@2 ~@7", // Bdim
  AN: "[[f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2 g2@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@2, ~@3 g2@3 ~@9 d3@3 ~@9 g2@2 ~@3]/2", // Bdim
  AO: "d3@4 [f3,b3,d4]@3 ~ [f3,b3,d4]@2 ~@5 d3, ~@7 d3@3 ~@6", AP: "[f3,d4]@7 ~ d4 ~@2 d3 [f3,b3,d4] ~@2 d3, b3 ~",
  AQ: "[f3,b3,d4]@3 ~ g3 ~@3 [g3,c4,e4] ~@2 c3 [g3,c4,e4]@4", // Bdim C
  AR: "~ g3 ~ c3 [g3,c4,e4] ~@3 g3@3 ~ g3 ~@3, ~@7 c3@9, ~@4 [c4,e4]@3 ~", // C
  AS: "[g3,c4,e4] ~@3 [g3,c4,e4]@6 ~@2 [g3,c4,e4] ~@2 c3, ~@3 c3@9 ~@4", // C
  AT: "[[g3,c4,e4]@2 ~@2 [g3,a#3,e4]@3 ~ [g3,a#3,e4]@2 ~@2 [g3,a#3,e4]@3 ~ g3@2 ~@6 [a#3,e4]@3 ~ [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,a#3,e4]@2 ~@2 g3@3 ~@5 [a#3,e4]@3 ~ [f2,c4,f4]@4 a3 ~@2 f2 [a3,c4,f4] ~@3 a3@3 ~ a3@2 ~@2 a3@4 [f2,a3,c4,f4]@4, ~@4 c3@4 ~@7 c3@12 ~ [c3,a#3]@8 ~@3 c3@13 ~@11 f2@12 ~@5, ~@16 [a#3,e4]@7 ~@17 [a#3,e4]@7 ~@5 a3@3 ~@9 [c4,f4]@11 ~@5, ~@10 g3@3 ~@9 g3@3 ~@15]/5", // C Edim A#dim C Edim A#dim F5 F …
  AU: "[~@3 f2 [a3,c4,f4] ~@3 a3@4 ~@4 a3@3 ~ [g3,e4]@3 ~ [g3,e4]@3 ~ [g3,c4,e4]@3 ~ g3@3 ~ g3@3 ~ [g3,c4,e4]@3 ~ g2@4 f3@2 ~@2 [f3,b3,d4]@3 ~ [f3,d4]@3 ~ [f3,d4]@3 ~ [f3,b3,d4]@3 ~ [g3,e4]@3 ~ [g3,e4] ~@2 c3 [g3,c4,e4] ~@3 g3@3 ~@2 g3 ~@2 g3@3 ~ [c3,g3,c4,e4]@4, ~@7 f2@12 ~ c3@4 ~@3 c3@3 ~ c3@7 ~ c3@5 f3@3 ~@4 g2@3 ~ g2@7 ~ g2@4 ~ [c3,c4]@6 ~@5 c3@12 ~@5, ~@8 [c4,f4]@11 ~@13 [c4,e4]@8 ~@4 [b3,d4]@7 ~@5 b3@8 ~@16 [c4,e4]@12 ~@4]/6", // F C Bdim Dm Bdim C F5 C …
  AV: "[~@3 c3 [g3,c4,e4] ~@3 g3@3 ~ g3 ~@3 g3@2 ~@2 [g3,e4]@3 ~ [g3,e4] ~@2 c3 [g3,c4,e4] ~@3 g3@3 ~@2 g3 ~@2 g3@3 ~ [c3,g3,c4,e4]@4, ~@7 c3@12 ~ [c3,c4]@6 ~@5 c3@12 ~@5, ~@4 [c4,e4]@5 ~@7 [c4,e4]@6 ~@2]/3", // C
  AW: "[~@3 c3 [g3,c4,e4] ~@3 g3@3 ~ g3 ~@3 g3@2 ~@2 [g3,e4]@22 ~@6, ~@7 c3@12 ~@29, ~@4 [c4,e4]@5 ~@15]/3", // C
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.4)

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

// drums · kick
const kick = s("bd").struct(`<
  A B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B
  C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D
  B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C D B C
  ~
// … 38 more lines

More by Celentano