Strudelify
Footstompin' Music cover art

E Pluribus Funk

Footstompin' Music

Grand Funk Railroad

KeyC majorTempo250 bpm
0:00/0:00
// Footstompin' Music — Grand Funk Railroad
// 250 bpm, 1/8, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 1871 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(250/0.5)

// 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, A@4 for four bars: edit a riff to change every repeat.

// bass · acoustic bass
const bass = note(`<
  ~@3 A@3 B@2 C@7 D@3 E@6 D@6 F@6 G@6 H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 M@8 C@7 E@6 B@2 J@6
  C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3
  I@8 C@7 E@6 B@2 J@6 C@7 M@8 N D@3 O@5 P@3 C@7 E@6 B@2 J@6 C@7 M@8 N D@3 Q@6 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2
  S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 AA@3 AB@3
  AC@5 AD@4 U@2 AE AF@3 AG@3 AH@2 AE AC@5 AI@7 U@2 AJ AK@8 AL@4 D@3 AM@6 U@2 AE AN@3 AO@6 R@2 S T@3 U@2 V W@3 U@2 V X@3
  Y@3 Z@3 A@3 AP@6 D@6 F@6 AB@3 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N
  D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6
  AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3
  D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4
  AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N
  D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AV@6 AW@3 C@7 E@6 B@2 J@6 C@7 M@8 N D@3 O@5 P@3 C@7
  E@6 B@2 J@6 C@7 M@8 N D@3 Q@6 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3
  U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 AA@3 AB@3 AC@5 AD@4 U@2 AE AF@3 AG@3 AH@2 AE AC@5 AI@7
  U@2 AJ AK@8 AL@4 D@3 AM@6 U@2 AE AN@3 AO@6 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3
  R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 AX@3 R@2
  S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 AY@7 ~@43 AZ@7 BA@4 BB@4 BC@4 BD@5 BE@8 BF@7
  BG@3 BH@5 BI@8 BJ@5 BK@4 BL@6 BM@4 BN@2 BO BP@7 BQ@4 BR@7 BS@8 BT BU@3 BV BW@8 S BX BY@2 BT BZ@4 CA@8 CB@5 CC@5 CD@3
  CE@8 CF@5 BZ@4 CG@2 CH CI@8
>`.pickRestart({
  A: "[~@2 c2@31 ~@5 g1@10]/3", B: "c2/2", C: "[~@5 g1@10 c2@38 g1@10 c2@39 g1@10]/7", D: "[c2@37 ~ g1@10]/3",
  E: "[c2@37 g1@10 c2@39 g1@10]/6", F: "[c2@37 g1@10 c2@38 g1@11]/6",
  G: "[c2@37 ~@9 c2@34 g1@12 ~@4, ~@13 g1@5 ~@14]/6", H: "[~ a1@17 g1@6]/3", I: "[a#1@34 a1@10 b1@39 a#1@11 ~ c2@33]/8",
  J: "[~@5 g1@10 c2@38 g1@10 c2@33]/6", K: "[c2@37 ~@9 c2@36 g1@11 c2@35, ~@38 g1@13 ~@77]/8", L: "g1@3 ~",
  M: "[c2@37 ~@9 c2@37 g1@12 c2@33, ~@38 g1@13 ~@77]/8", N: "~@3 g1@5", O: "[c2@36 g1@11 a1@33]/5",
  P: "[~ g1@4 c2@11]/3", Q: "[d#2@37 ~@9 d2@37 g1 g1@12, ~@37 g1@14 ~@45]/6", R: "[c2@27 ~@5]/2", S: "g1",
  T: "[e2@32 c2@15 ~]/3", U: "f2/2", V: "c2@15 ~", W: "[g2@32 c2@15 ~]/3", X: "[a2@32 c2@15 ~]/3",
  Y: "[d#2@32 c2@15 ~]/3", Z: "[d2@8 g1@3 ~]/3", AA: "[d2@32 g1 g1@12 ~@3]/3", AB: "[c2@37 g1@11]/3",
  AC: "[c2@35 g1@12 c2@33]/5", AD: "[~@2 g1@13 e2@38 g1@11]/4", AE: "~@5 f1@11", AF: "[~@2 a1@35 f1@11]/3",
  AG: "[~ a#1@32 ~@4 f1@11]/3", AH: "[~ b1@30 ~]/2", AI: "[~@2 g1@11 c2@37 g1@11 e2@39 ~ g1@11]/7", AJ: "~@3 f1@12 ~",
  AK: "[~@2 a1@35 f1@10 a#1@34 ~@2 f1@12 b1@32 ~]/8", AL: "[~@5 g1@10 c2@38 g1@11]/4", AM: "[c2@37 g1@9 e2@39 g1@11]/6",
  AN: "[~ a1@35 f1@12]/3", AO: "[~ a#1@32 ~ g1@13 b1@34 ~@4 g1@11]/6", AP: "[~@2 c2@31 ~@4 g1@10 c2@38 g1@11]/6",
  AQ: "[~@2 c2@31 ~ g1@13 ~]/3", AR: "[c2@8 g1@3 ~]/3", AS: "[~@4 g1@11 a1@34 ~@5 g1@10]/4",
  AT: "[~ a#1@32 ~@5 g1@10]/3", AU: "[~@15 c2@36 g1@12 c2@36 g1@7 ~@6, ~@8 g1@13 ~@91]/7",
  AV: "[~@5 c2@12 g1@4 c2@9 ~@2, ~@8 g1@13 ~@75]/6", AW: "c2/3", AX: "[d2@31 ~ g1@12 ~@4, ~@31 d2@2 ~@15]/3",
  AY: "[~ a#1@24 ~@3]/7", AZ: "[~ f1@27]/7", BA: "[~@8 f1@21 ~ f1@20 ~ f1@13]/4", BB: "[~@8 f1@20 f1@21 ~@2 f1@13]/4",
  BC: "[~@2 f1@11 ~ f1@9 f1@9]/4", BD: "[~@4 f1@22 ~ f1@19 f1@20 f1@14]/5",
  BE: "[~@10 f1@28 ~@2 f1@35 f2@30 ~ f2@22]/8", BF: "[~@4 f2@25 ~ f2@29 f2@30 ~@2 f2@21]/7", BG: "[~@7 f2@17]/3",
  BH: "[~@11 f2@69]/5", BI: "[~@9 f1@93 c2@26]/8", BJ: "[~@3 c2@21 c2@20 ~ c2@19 c2@16]/5",
  BK: "[~@6 c2@21 ~@2 c2@18 c2@17]/4", BL: "[~@6 c2@18 c2@20 ~@3 c2@21 ~@2 c2@21 ~@5]/6",
  BM: "[~@7 c3@41 a#2@16, a#2@11 ~@21]/4", BN: "c3/2", BO: "a#2", BP: "[c3@28 a#2@17 ~@43 a#2@24, ~@45 c3@54 ~@13]/7",
  BQ: "[g2@25 f2@20 ~@2 d#2@17]/4", BR: "[~@3 g1@20 a#1@21 c2@28 c2@20 ~@3 c2@17]/7",
  BS: "[~@3 c2@21 c2@20 ~@3 c2@20 c2@19 c2@21 ~@2 c2@19]/8", BT: "c2", BU: "[~@6 c2@21 ~@2 c2@19]/3", BV: "~@3 c2@13",
  BW: "[~@12 c3@42 ~@19 g2@16 f2@20 ~@2 d#2@17, ~@7 a#2@12 ~@35 a#2@28 ~@46]/8", BX: "~ a#1@15", BY: "[~ c2@7]/2",
  BZ: "[~@6 c2@21 ~@2 c2@19 c2@16]/4", CA: "[~@6 c2@21 ~ c2@18 ~ c2@20 c2@19 c2@21 ~@4 c2@17]/8",
  CB: "[~@10 c3@42 a#2@21 g2@7, ~@5 a#2@12 ~@63]/5", CC: "[~@9 f2@19 d#2@18 g1@17 a#1@17]/5", CD: "[~@2 c2@29 c2@17]/3",
  CE: "[~@6 c2@18 c2@20 ~@3 c2@20 c2@21 c2@20 ~ c2@19]/8", CF: "[~@3 c2@19 c2@21 ~@2 c2@19 c2@16]/5",
  CG: "[~@6 c2@21 ~@2 e2@3]/2", CH: "~@3 f2@6 g2@7",
  CI: "[~@3 a2@9 a#2@13 ~@5 g2@9 f2@7 e2@9 ~@7 [c1,c2]@65 ~, ~@25 a2@8 ~@22 d2@11 ~@62]/8", // C
})).s("gm_acoustic_bass").gain(0.35)

// bass · acoustic bass · soft notes
const bass_soft = note(`<
  ~@3 A@3 B@2 C@7 D@3 E@6 D@6 E@6 F@6 ~@8 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 J@5 G@6 H@4 E@6 B@2
  G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6
  H@4 E@6 B@2 G@6 C@7 J@5 H@4 D@6 ~@2 G@6 H@4 E@6 B@2 G@6 C@7 J@5 H@4 D@3 K@6 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2
  ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 D@3 T@5
  U@4 N@2 ~@10 V@5 W@7 N@2 ~@9 H@4 D@3 X@6 N@2 ~@10 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 A@3 Y@6 D@6 E@6 D@3 A@3 D@9
  L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2
  G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2
  ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6
  C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 Z@6 AA@3 C@7 E@6 B@2 G@6 C@7 J@5 H@4 D@6 ~@2 G@6 H@4 E@6 B@2 G@6 C@7 J@5 H@4 D@3 K@6
  L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2
  ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 D@3 T@5 U@4 N@2 ~@10 V@5 W@7 N@2 ~@9 H@4 D@3 X@6 N@2 ~@10 L@2 ~ M@3 N@2 O P@3 N@2 O
  Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3
  R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 AB@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3
  S@3 ~@78 AC@4 AD@7 AE@8 ~@6 AF@7 AG@4 AH@6 AI@4 AJ@2 AK AL@7 AM@5 ~ AN@5 AO@8 AP AQ@3 AR AS@8 ~@2 AT@2 AP AU@4 AV@8
  AW@8 ~@2 AX@3 AY@8 AZ@5 AU@4 BA@7 ~@4
>`.pickRestart({
  A: "[~@2 c1@31 ~@15]/3", B: "c1/2", C: "[~@15 c1@39 ~@9 c1@39 ~@10]/7", D: "[c1@37 ~@11]/3",
  E: "[c1@37 ~@10 c1@39 ~@10]/6", F: "[c1@37 ~@9 c1@36 ~@14]/6", G: "[~@5 c1@13 ~@3 c1@11]/6", H: "[~@15 c1@39 ~@10]/4",
  I: "[c1@37 ~@9 c1@36 ~@12 c1@34]/8", J: "[c1@37 ~@9 c1@34]/5", K: "[d#1@20 ~@3 d1@20 ~@5]/6", L: "[c1@27 ~@5]/2",
  M: "[e1@32 c1@15 ~]/3", N: "f1/2", O: "c1@15 ~", P: "[g1@32 c1@15 ~]/3", Q: "[a1@32 c1@15 ~]/3",
  R: "[d#1@32 c1@15 ~]/3", S: "[d1@17 ~@7]/3", T: "[c1@37 ~@10 c1@33]/5", U: "[~@15 e1@38 ~@11]/4",
  V: "[c1@35 ~@12 c1@33]/5", W: "[~@15 c1@39 ~@7 e1@39 ~@12]/7", X: "[c1@37 ~@10 e1@38 ~@11]/6",
  Y: "[~@2 c1@31 ~@14 c1@39 ~@10]/6", Z: "[~@5 c1@13 ~@3 c1@9 ~@2]/6", AA: "c1/3", AB: "[d1@31 d1@2 ~@15]/3",
  AC: "[~@11 f1@31 f1@22]/4", AD: "[~@4 f1@25 ~ f1@29 f1@31 ~ f1@21]/7", AE: "[~@14 f1@43 ~@2 f1@69]/8",
  AF: "[~@6 c1@28 ~ c1@21 c1@20 ~ c1@19 c1@16]/7", AG: "[~@6 c1@21 ~@2 c1@18 c1@17]/4",
  AH: "[~@6 c1@18 c1@20 ~@3 c1@21 ~@2 c1@21 ~@5]/6", AI: "[~@7 c2@41 a#1@16, a#1@11 ~@21]/4", AJ: "c2/2", AK: "a#1",
  AL: "[c2@28 a#1@17 ~@43 a#1@24, ~@45 c2@54 ~@13]/7", AM: "[g1@25 f1@20 ~@2 d#1@24 ~@9]/5",
  AN: "[~@12 c1@28 c1@20 ~@3 c1@17]/5", AO: "[~@3 c1@21 c1@20 ~@3 c1@20 c1@19 c1@21 ~@2 c1@19]/8", AP: "c1",
  AQ: "[~@6 c1@21 ~@2 c1@19]/3", AR: "~@3 c1@13",
  AS: "[~@12 c2@42 ~@19 g1@16 f1@20 ~@2 d#1@17, ~@7 a#1@12 ~@35 a#1@28 ~@46]/8", AT: "[~ c1@7]/2",
  AU: "[~@6 c1@21 ~@2 c1@19 c1@16]/4", AV: "[~@6 c1@21 ~ c1@18 ~ c1@20 c1@19 c1@21 ~@4 c1@17]/8",
  AW: "[~@10 c2@42 a#1@21 g1@16 f1@19 d#1@20, ~@5 a#1@12 ~@111]/8", AX: "[~@2 c1@29 c1@17]/3",
  AY: "[~@6 c1@18 c1@20 ~@3 c1@20 c1@21 c1@20 ~ c1@19]/8", AZ: "[~@3 c1@19 c1@21 ~@2 c1@19 c1@16]/5",
  BA: "[~@6 c1@17 [d1,d2]@6 e1@6 f1@6 g1@10 a1@9 a#1@13 ~@5 g1@9 f1@7 e1@9 d1@9, ~@73 a1@8 ~@31]/7", // D
})).s("gm_acoustic_bass").gain(0.2)

// bass · tuba
const bass_2 = note(`<
  ~@3 A@3 B@2 C@7 D@3 E@6 D@6 F@6 G@6 H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 M@8 C@7 E@6 B@2 J@6
  C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3 I@8 C@7 E@6 B@2 J@6 C@7 K@8 L H@3
  I@8 C@7 E@6 B@2 J@6 C@7 M@8 N D@3 O@5 P@3 C@7 E@6 B@2 J@6 C@7 M@8 N D@3 Q@6 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2
  S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 AA@3 AB@3
  AC@5 AD@4 U@2 AE AF@3 AG@3 AH@2 AE AC@5 AI@7 U@2 AJ AK@8 AL@4 D@3 AM@6 U@2 AE AN@3 AO@6 R@2 S T@3 U@2 V W@3 U@2 V X@3
  Y@3 Z@3 A@3 AP@6 D@6 F@6 AB@3 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N
  D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6
  AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3
  D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4
  AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N
  D@9 B@2 J@6 AU@7 AQ@3 AR@3 D@6 R@2 AS@4 AT@3 AH@2 N D@9 B@2 J@6 AV@6 AW@3 C@7 E@6 B@2 J@6 C@7 M@8 N D@3 O@5 P@3 C@7
  E@6 B@2 J@6 C@7 M@8 N D@3 Q@6 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3
  U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 AA@3 AB@3 AC@5 AD@4 U@2 AE AF@3 AG@3 AH@2 AE AC@5 AI@7
  U@2 AJ AK@8 AL@4 D@3 AM@6 U@2 AE AN@3 AO@6 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3
  R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 AX@3 R@2
  S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 R@2 S T@3 U@2 V W@3 U@2 V X@3 Y@3 Z@3 AY@7 ~@43 AZ@7 BA@4 BB@4 BC@4 BD@5 BE@8 BF@7
  BG@3 BH@5 BI@8 BJ@5 BK@4 BL@6 BM@4 BN@2 BO BP@7 BQ@4 BR@7 BS@8 BT BU@3 BV BW@8 S BX BY@2 BT BZ@4 CA@8 CB@5 CC@5 CD@3
  CE@8 CF@5 BZ@4 CG@2 CH CI@8
>`.pickRestart({
  A: "[~@2 c3@31 ~@5 g2@10]/3", B: "c3/2", C: "[~@5 g2@10 c3@38 g2@10 c3@39 g2@10]/7", D: "[c3@37 ~ g2@10]/3",
  E: "[c3@37 g2@10 c3@39 g2@10]/6", F: "[c3@37 g2@10 c3@38 g2@11]/6",
  G: "[c3@37 ~@9 c3@34 g2@12 ~@4, ~@13 g2@5 ~@14]/6", H: "[~ a2@17 g2@6]/3", I: "[a#2@34 a2@10 b2@39 a#2@11 ~ c3@33]/8",
  J: "[~@5 g2@10 c3@38 g2@10 c3@33]/6", K: "[c3@37 ~@9 c3@36 g2@11 c3@35, ~@38 g2@13 ~@77]/8", L: "g2@3 ~",
  M: "[c3@37 ~@9 c3@37 g2@12 c3@33, ~@38 g2@13 ~@77]/8", N: "~@3 g2@5", O: "[c3@36 g2@11 a2@33]/5",
  P: "[~ g2@4 c3@11]/3", Q: "[d#3@37 ~@9 d3@37 g2 g2@12, ~@37 g2@14 ~@45]/6", R: "[c3@27 ~@5]/2", S: "g2",
  T: "[e3@32 c3@15 ~]/3", U: "f3/2", V: "c3@15 ~", W: "[g3@32 c3@15 ~]/3", X: "[a3@32 c3@15 ~]/3",
  Y: "[d#3@32 c3@15 ~]/3", Z: "[d3@8 g2@3 ~]/3", AA: "[d3@32 g2 g2@12 ~@3]/3", AB: "[c3@37 g2@11]/3",
  AC: "[c3@35 g2@12 c3@33]/5", AD: "[~@2 g2@13 e3@38 g2@11]/4", AE: "~@5 f2@11", AF: "[~@2 a2@35 f2@11]/3",
  AG: "[~ a#2@32 ~@4 f2@11]/3", AH: "[~ b2@30 ~]/2", AI: "[~@2 g2@11 c3@37 g2@11 e3@39 ~ g2@11]/7", AJ: "~@3 f2@12 ~",
  AK: "[~@2 a2@35 f2@10 a#2@34 ~@2 f2@12 b2@32 ~]/8", AL: "[~@5 g2@10 c3@38 g2@11]/4", AM: "[c3@37 g2@9 e3@39 g2@11]/6",
  AN: "[~ a2@35 f2@12]/3", AO: "[~ a#2@32 ~ g2@13 b2@34 ~@4 g2@11]/6", AP: "[~@2 c3@31 ~@4 g2@10 c3@38 g2@11]/6",
  AQ: "[~@2 c3@31 ~ g2@13 ~]/3", AR: "[c3@8 g2@3 ~]/3", AS: "[~@4 g2@11 a2@34 ~@5 g2@10]/4",
  AT: "[~ a#2@32 ~@5 g2@10]/3", AU: "[~@15 c3@36 g2@12 c3@36 g2@7 ~@6, ~@8 g2@13 ~@91]/7",
  AV: "[~@5 c3@12 g2@4 c3@9 ~@2, ~@8 g2@13 ~@75]/6", AW: "c3/3", AX: "[d3@31 ~ g2@12 ~@4, ~@31 d3@2 ~@15]/3",
  AY: "[~ a#2@24 ~@3]/7", AZ: "[~ f2@27]/7", BA: "[~@8 f2@21 ~ f2@20 ~ f2@13]/4", BB: "[~@8 f2@20 f2@21 ~@2 f2@13]/4",
  BC: "[~@2 f2@11 ~ f2@9 f2@9]/4", BD: "[~@4 f2@22 ~ f2@19 f2@20 f2@14]/5",
  BE: "[~@10 f2@28 ~@2 f2@35 f3@30 ~ f3@22]/8", BF: "[~@4 f3@25 ~ f3@29 f3@30 ~@2 f3@21]/7", BG: "[~@7 f3@17]/3",
  BH: "[~@11 f3@69]/5", BI: "[~@9 f2@93 c3@26]/8", BJ: "[~@3 c3@21 c3@20 ~ c3@19 c3@16]/5",
  BK: "[~@6 c3@21 ~@2 c3@18 c3@17]/4", BL: "[~@6 c3@18 c3@20 ~@3 c3@21 ~@2 c3@21 ~@5]/6",
  BM: "[~@7 c4@41 a#3@16, a#3@11 ~@21]/4", BN: "c4/2", BO: "a#3", BP: "[c4@28 a#3@17 ~@43 a#3@24, ~@45 c4@54 ~@13]/7",
  BQ: "[g3@25 f3@20 ~@2 d#3@17]/4", BR: "[~@3 g2@20 a#2@21 c3@28 c3@20 ~@3 c3@17]/7",
  BS: "[~@3 c3@21 c3@20 ~@3 c3@20 c3@19 c3@21 ~@2 c3@19]/8", BT: "c3", BU: "[~@6 c3@21 ~@2 c3@19]/3", BV: "~@3 c3@13",
  BW: "[~@12 c4@42 ~@19 g3@16 f3@20 ~@2 d#3@17, ~@7 a#3@12 ~@35 a#3@28 ~@46]/8", BX: "~ a#2@15", BY: "[~ c3@7]/2",
  BZ: "[~@6 c3@21 ~@2 c3@19 c3@16]/4", CA: "[~@6 c3@21 ~ c3@18 ~ c3@20 c3@19 c3@21 ~@4 c3@17]/8",
  CB: "[~@10 c4@42 a#3@21 g3@7, ~@5 a#3@12 ~@63]/5", CC: "[~@9 f3@19 d#3@18 g2@17 a#2@17]/5", CD: "[~@2 c3@29 c3@17]/3",
  CE: "[~@6 c3@18 c3@20 ~@3 c3@20 c3@21 c3@20 ~ c3@19]/8", CF: "[~@3 c3@19 c3@21 ~@2 c3@19 c3@16]/5",
  CG: "[~@6 c3@21 ~@2 e3@3]/2", CH: "~@3 f3@6 g3@7",
  CI: "[~@3 a3@9 a#3@13 ~@5 g3@9 f3@7 e3@9 ~@7 [c2,c3]@65 ~, ~@25 a3@8 ~@22 d3@11 ~@62]/8", // C
})).s("gm_tuba").gain(0.35)

// bass · tuba · soft notes
const bass_soft_2 = note(`<
  ~@3 A@3 B@2 C@7 D@3 E@6 D@6 E@6 F@6 ~@8 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 J@5 G@6 H@4 E@6 B@2
  G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6 H@4 E@6 B@2 G@6 C@7 I@8 ~@9 G@6
  H@4 E@6 B@2 G@6 C@7 J@5 H@4 D@6 ~@2 G@6 H@4 E@6 B@2 G@6 C@7 J@5 H@4 D@3 K@6 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2
  ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 D@3 T@5
  U@4 N@2 ~@10 V@5 W@7 N@2 ~@9 H@4 D@3 X@6 N@2 ~@10 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 A@3 Y@6 D@6 E@6 D@3 A@3 D@9
  L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2
  G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2
  ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6
  C@7 A@3 D@9 L@2 ~@10 D@9 B@2 G@6 Z@6 AA@3 C@7 E@6 B@2 G@6 C@7 J@5 H@4 D@6 ~@2 G@6 H@4 E@6 B@2 G@6 C@7 J@5 H@4 D@3 K@6
  L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2
  ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 D@3 T@5 U@4 N@2 ~@10 V@5 W@7 N@2 ~@9 H@4 D@3 X@6 N@2 ~@10 L@2 ~ M@3 N@2 O P@3 N@2 O
  Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3
  R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 AB@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3 S@3 L@2 ~ M@3 N@2 O P@3 N@2 O Q@3 R@3
  S@3 ~@78 AC@4 AD@7 AE@8 ~@6 AF@7 AG@4 AH@6 AI@4 AJ@2 AK AL@7 AM@5 ~ AN@5 AO@8 AP AQ@3 AR AS@8 ~@2 AT@2 AP AU@4 AV@8
  AW@8 ~@2 AX@3 AY@8 AZ@5 AU@4 BA@7 ~@4
>`.pickRestart({
  A: "[~@2 c2@31 ~@15]/3", B: "c2/2", C: "[~@15 c2@39 ~@9 c2@39 ~@10]/7", D: "[c2@37 ~@11]/3",
  E: "[c2@37 ~@10 c2@39 ~@10]/6", F: "[c2@37 ~@9 c2@36 ~@14]/6", G: "[~@5 c2@13 ~@3 c2@11]/6", H: "[~@15 c2@39 ~@10]/4",
  I: "[c2@37 ~@9 c2@36 ~@12 c2@34]/8", J: "[c2@37 ~@9 c2@34]/5", K: "[d#2@20 ~@3 d2@20 ~@5]/6", L: "[c2@27 ~@5]/2",
  M: "[e2@32 c2@15 ~]/3", N: "f2/2", O: "c2@15 ~", P: "[g2@32 c2@15 ~]/3", Q: "[a2@32 c2@15 ~]/3",
  R: "[d#2@32 c2@15 ~]/3", S: "[d2@17 ~@7]/3", T: "[c2@37 ~@10 c2@33]/5", U: "[~@15 e2@38 ~@11]/4",
  V: "[c2@35 ~@12 c2@33]/5", W: "[~@15 c2@39 ~@7 e2@39 ~@12]/7", X: "[c2@37 ~@10 e2@38 ~@11]/6",
  Y: "[~@2 c2@31 ~@14 c2@39 ~@10]/6", Z: "[~@5 c2@13 ~@3 c2@9 ~@2]/6", AA: "c2/3", AB: "[d2@31 d2@2 ~@15]/3",
  AC: "[~@11 f2@31 f2@22]/4", AD: "[~@4 f2@25 ~ f2@29 f2@31 ~ f2@21]/7", AE: "[~@14 f2@43 ~@2 f2@69]/8",
  AF: "[~@6 c2@28 ~ c2@21 c2@20 ~ c2@19 c2@16]/7", AG: "[~@6 c2@21 ~@2 c2@18 c2@17]/4",
  AH: "[~@6 c2@18 c2@20 ~@3 c2@21 ~@2 c2@21 ~@5]/6", AI: "[~@7 c3@41 a#2@16, a#2@11 ~@21]/4", AJ: "c3/2", AK: "a#2",
  AL: "[c3@28 a#2@17 ~@43 a#2@24, ~@45 c3@54 ~@13]/7", AM: "[g2@25 f2@20 ~@2 d#2@24 ~@9]/5",
  AN: "[~@12 c2@28 c2@20 ~@3 c2@17]/5", AO: "[~@3 c2@21 c2@20 ~@3 c2@20 c2@19 c2@21 ~@2 c2@19]/8", AP: "c2",
  AQ: "[~@6 c2@21 ~@2 c2@19]/3", AR: "~@3 c2@13",
  AS: "[~@12 c3@42 ~@19 g2@16 f2@20 ~@2 d#2@17, ~@7 a#2@12 ~@35 a#2@28 ~@46]/8", AT: "[~ c2@7]/2",
  AU: "[~@6 c2@21 ~@2 c2@19 c2@16]/4", AV: "[~@6 c2@21 ~ c2@18 ~ c2@20 c2@19 c2@21 ~@4 c2@17]/8",
  AW: "[~@10 c3@42 a#2@21 g2@16 f2@19 d#2@20, ~@5 a#2@12 ~@111]/8", AX: "[~@2 c2@29 c2@17]/3",
  AY: "[~@6 c2@18 c2@20 ~@3 c2@20 c2@21 c2@20 ~ c2@19]/8", AZ: "[~@3 c2@19 c2@21 ~@2 c2@19 c2@16]/5",
  BA: "[~@6 c2@17 [d2,d3]@6 e2@6 f2@6 g2@10 a2@9 a#2@13 ~@5 g2@9 f2@7 e2@9 d2@9, ~@73 a2@8 ~@31]/7", // D
})).s("gm_tuba").gain(0.2)

// chords · drawbar organ
const drawbar_organ = note(`<
  ~@38 A@7 B@6 C@3 ~@8 D@7 E@8 F@4 ~@5 A@7 B@6 C@3 ~@8 D@7 E@8 F@4 ~@20 G@4 H@7 ~@13 G@4 H@7 ~@13 G@4 H@7 ~@13 G@4 I@2
  J@8 ~@10 K@4 L@3 M ~ N@2 ~@13 K@4 L@3 M ~ N@2 ~@13 K@4 L@3 M ~ N@2 ~@13 K@4 L@3 O@6 P ~ Q@5 ~ R@5 S@4 T U ~ V@3 W X ~
  Q@5 ~ Y@5 ~ Z@5 AA@6 ~ Q@5 AB@6 AC@4 T U AD@5 AE ~ AF@3 AG AH@2 ~ AI AJ ~ AK@2 ~ AL AM ~ AN@2 AO AP@8 ~ AQ AR@7 AS@3
  AT@7 AU@3 ~ AV@4 AW@7 AX@2 AY@6 AZ@5 BA@3 BB@4 BC@6 BD@6 BE@4 ~ BF@3 ~ AW@7 BG@6 BH@7 BA@3 BB@4 BC@6 BD@6 BE@4 ~ BF@3
  ~ AW@7 BG@6 BH@7 BA@3 BB@4 BC@6 BD@6 BE@4 ~ BF@3 ~ BI@8 ~ BJ@5 ~@597 BK@5 BL ~ Q@5 ~ BM@5 S@4 T BN ~ V@3 W X ~ Q@5 ~
  Y@5 ~ Z@5 AA@6 ~ Q@5 AB@6 AC@4 T U AD@5 AE ~ AF@3 AG AH@2 ~ AI AJ ~ AK@2 ~ AL AM ~ AN@2 BO BP@8 BQ BR ~ BS@3 BT@3 BU@3
  BQ BV@2 BW@4 AU@3 ~ AV@4 AW@7 AX@2 AY@6 AZ@5 BA@3 BB@4 BC@6 BD@6 BE@4 ~ BF@3 ~ AW@7 BG@6 BH@7 BA@3 BB@4 BC@6 BD@6 BE@4
  ~ BF@3 ~ AW@7 BG@6 BH@7 BA@3 BB@4 BC@6 BX@3 BY@3 BQ BZ@5 BQ CA@5 BT@3 CB@3 BQ BV@2 BY@3 BQ BZ@5 BQ CA@5 BT@3 BU@3 BQ
// … 323 more lines

More by Grand Funk Railroad