Strudelify

Do You Feel Like We Do

Peter Frampton

KeyD minorTempo100 bpm
0:00/0:00
// Do You Feel Like We Do — Peter Frampton
// 100 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 315 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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.

// other · distortion guitar · "Guitar"
const distortion_guitar = note(`<
  A@2 ~@2 B C ~ D E ~@2 F@2 G H@2 I J K ~@8 L@2 M ~ N ~@10 O@2 P ~ Q R@2 ~ S T@2 ~ U@2 ~@13 V@2 ~ W@2 X@2 L@2 ~@10 Y ~ Z
  AA@2 ~@11 AB ~@42 AC AD ~ AE ~ AF@2 AG@2 AH AI AJ AK AL AM AN AO ~@96 AP ~@3 AQ ~@7 AR AS AT AU AV AW AX AY AZ BA BB
  BC BD BA BB BE BF BG BH BI BJ BK BL BI BM BN BO BP BQ BR@3 BS BT@2 BU BV BW BX BY BZ@2 ~
>`.pickRestart({
  A: "[~@27 c4@3 ~ a3@3 d4@3 ~ c4@7 a3@4 ~@7 f3@3 ~@5]/2", B: "~@8 c3@5 ~@6 a3@4 d4@4 c4@5", C: "~ a3@4 ~@27",
  D: "~@7 d3@20 ~@5", E: "~@8 a3@3 d4@4 c4@7 a3@4 ~@6",
  F: "[~@17 [d2,f2,g2,d3]@7 eb5@4 ~@3 f5@4 eb5@7 ~@4 bb4@7 ab4@4 ~@3 bb4@4]/2", G: "~@9 ab4@2 ~@2 bb4@2 ~",
  H: "[~@4 f4@4 ~@7 f4@4 ~@4 c5@20 ~ eb5@4 ~@4 f5@3 eb5@7 ~@2, ~@19 ab4@25 ~@20]/2",
  I: "~@2 bb4@7 ab4@4 ~@4 bb4@4 ~@11", J: "~@7 ab4@4 ~@3 bb4@4 ~@7 f4@4 ~@3", K: "~@3 bb4@13 ~ c5@15",
  L: "[~@20 f2@17 ~@27]/2", M: "~@23 a1@7 ~@2", N: "~@12 f2@17 ~@3", O: "[~@18 f2@17 ~@29]/2", P: "~@22 a1@7 ~@3",
  Q: "~@11 f2@17 ~@4", R: "[~@31 c4@3 ~ a3@4 d4@3 c4@7 ~ a3@4 ~@7 f3@3]/2", S: "~@23 g3@3 c4@2 ~@2 c4@2",
  T: "[~@2 eb3@3 f3@2 ~@2 a3@2 g3@2 f3@2 ~@9 a3@3 d4@4 c4@7 a3@4 ~@22]/2", U: "[~@11 [d3,g3]@15 [g2,d3]@15 ~@23]/2",
  V: "[d5@2 c5@2 ~@3 d5@2 c5@2 ~@2 a4@2 d5@2 c5@2 ~ a4@2 d5@2 c5@2 ~ a4@2 d5@2 c5@2 ~@2 a4@2 ~ c5@2 ~@2 a4@2 d5@2 c5@2 ~ a4@2 d5@2 c5@2 ~@9, ~@6 a4@2 ~@29 d5@2 ~@25]/2",
  W: "[~@26 f2@17 ~@21]/2", X: "[~@30 a1@7 ~@27]/2", Y: "~ f2@17 ~@14", Z: "~@6 a1@7 ~@19", AA: "[~@27 f2@17 ~@20]/2",
  AB: "~@26 a3 ~@3 gb3@2", AC: "~@15 c5@15 ~@2", AD: "~@4 c5 ~@7 d4@3 ~", AE: "~@11 d4@4 ~ g3@15 ~",
  AF: "[~@7 f4 ~ g4@2 ~ g4@2 f4@2 ~@9 g4@5 ~ g4@2 ~@2 d5@2 c5 ~@2 g5@11 ~@5 f5@5 ~@3, ~@39 a4@2 ~@23]/2",
  AG: "[[d5,e5]@2 ~ f5 e5 ~ d5@2 e5@9 ~@8 ab4 ~ f4 g4@17 ~@19, ~@13 g4 ~@18]/2", // Dsus2
  AH: "~@4 d4@2 ~@2 d4@3 ~ f4 g4 ~@3 g4 f4 ~ g4 d4 ~ f4@2 g4 ~ g4@3 bb4@2", AI: "f4@2 g4@2 f5 ~ d5@2 ~@22 d5@2",
  AJ: "~@2 g5@3 ~@15 d5@2 ~@3 d5@3 ~@4", AK: "~@7 e5@5 ~@4", AL: "~@14 b4@3 ~@15", AM: "g4 ~@15", AN: "~@4 a4 ~@11",
  AO: "~@16 g4@15 ~", AP: "~@2 g4@2 ~@14 [d4,a4]@3 ~ [g3,c4]@7 ~@3, ~ b4@2 ~@29", AQ: "[c3,e3]@31 ~", AR: "~@14 a3 c4",
  AS: "d4 ~ d4@6 a3@2 c4 ~ d4 ~ d4@5 ~ a3@2 c4@2 f4 d4 f4@2 d4@2 c4@2",
  AT: "a3 g3@2 f3 g3!2 f3 g3!2 f3 d3 f3 d3 c3 d3@2", AU: "g3 c4 d4 f4 g4@2 f4 d4 c4 d4 f4 c4 a3 g3 a3 c4",
  AV: "gb4 g4 gb4 d4@2 c4 a3@4 d4 gb4 d4 a3 g3 a3",
  AW: "e4 gb4@3 d4@2 c4@2 a3@4 e4 gb4@3 d4@2 c4@2 a3@4 e4 gb4@3 d4@2 c4@2",
  AX: "a3@4 f4 ~ f4@2 g4@2 f4@2 g4 ~@3 d5@8 g5 f5 g5 f5 g5 f5 g5 f5, ~@13 a4@6 ~@13",
  AY: "g5 a5@2 g5@2 ~ f5@2 d5@2 g5@2 f5@2 g5@2 f5@2 g5@2 f5@2 d5@2 e5@2 f5@2 g5@2 a5@2",
  AZ: "gb5@2 d5 c5 a4@4 ~@2 g4!6", BA: "g4 gb4!2 e4 gb4 e4!2 d4 e4 d4!2 db4 d4 e4!3",
  BB: "e4 f4!2 e4 f4 g4!2 gb4 g4 a4!3 g4 a4!2 g4", BC: "a4 g4!2 gb4 g4 a4!2 b4 a4 b4!2 a4!2 b4!2 a4",
  BD: "b4 a4!2 g4 gb4 g4 gb4!2 g4 a4@2 gb4 g4@2 gb4 e4", BE: "c5 a4!2 c5!2 a4!2 c5 d5 c5!2 a4 d5 c5!2 a4",
  BF: "c5 [c5,gb5] c6 c5!2 gb5 [c5,c6] c5 [a4,c5] gb5 c6 [a4,d5] d5 [d5,gb5] a4 [d5,g5]", // Cdim C Am D5 D G5
  BG: "[c4,c5,e5] d4!2 [c4,c5,e5] c4 d4 [d4,c5,e5] c4!2 [d4,c5,e5] d4 c4 [d4,c5,e5] [c4,d5,gb5] [d4,gb5] d4, ~ [d5,gb5]@2 ~ [d5,gb5]@2 ~ [d5,gb5]@2 ~ [d5,gb5]@2 ~@2 d5@2", // C D7 D
  BH: "[c4,e5,g5] d4!2 [c4,e5,g5] [c4,f5,a5] d4 [d4,e5,g5] c4!2 [d4,e5,g5] [d4,f5,a5] c4 [d4,e5,g5] [c4,f5,a5] d4 c4, ~ [f5,a5]@2 ~@4 [f5,a5]@2 ~@5 [f5,a5]@2", // C F Em7 Dm Em7 F
  BI: "[c4,d5,f5] d4!2 [c4,d5,f5] c4 d4 [d4,d5,f5] c4 e4 [d4,d5,f5] d4 c4 [c4,d5,f5] [e4,e5,g5] d4 c4, ~ [e5,g5]@2 ~ [e5,g5]@2 ~ [e5,g5]@2 ~ [e5,g5]@2 ~@2 [e5,g5]@2", // Dm7 Dm Dm7 Em
  BJ: "[a3,a4] [gb4,gb5] [d4,d5] [a3,a4] [gb4,gb5] [d4,d5] [a3,a4] [d4,d5]", // A Gb D A Gb D A D
  BK: "[c4,c5,e5] d4!2 [c4,c5,e5] c4 d4 [d4,c5,e5] c4!2 [d4,c5,e5] d4 c4 [c4,c5,e5] [d4,d5,gb5] [d4,gb5] c4, ~ [d5,gb5]@2 ~ [d5,gb5]@2 ~ [d5,gb5]@2 ~ [d5,gb5]@2 ~@2 d5@2", // C D
  BL: "[e4,e5,g5] f4!2 [e4,e5,g5] [e4,f5,a5] f4 [f4,e5,g5] e4!2 [f4,e5,g5] [f4,f5,a5] e4 [e4,e5,g5] [f4,f5,a5] f4 e4, ~ [f5,a5]@2 ~@4 [f5,a5]@2 ~@5 [f5,a5]@2", // Em Fmaj7 C F Em F
  BM: "[d3,a3,d4]@3 ~@3 [d3,a3,d4]@3 ~@3 [d3,a3,d4]@4 ~@2 [d3,a3,c4]@3 ~@3 [d3,a3,d4]@3 ~@5", // D5 D7 D5
  BN: "c4@3 a3@3 d4@3 c4@5 a3@2", BO: "~@2 g3@14 f3@5 d3@6 g3@5", BP: "f3@10 d3@6 c3@11 ~ f3@4",
  BQ: "~@2 d3@5 ~ g3@6 f3@10 d3@6 ~@2",
  BR: "[c3@20 d3@28 g3 ~ b3@2 d4@2 f4@2 g4@2 b4@2 d5@2 e5 f5@2 d5@2 e5 ~ d5@2 e5 f5@2 ~ e5 f5@2 d5@2 e5 f5@2 d5@2 e5 f5@2 ~ e5 f5@2 ~ e5 f5@2, ~@34 f5 ~@2 d5 ~@6 d5 ~ d5 ~]/3",
  BS: "d5@2 e5 f5@2 d5@2 e5 ~ d5@2 e5 f5@2 d5@2 e5 ~ d5@2 e5 f5@2 d5@2 e5 ~ d5@2 e5 f5@2, ~@8 f5@2 ~@7 f5@2 ~@7 f5@2 ~@4",
  BT: "[d5@2 e5 f5@2 d5@2 e5 ~ d5@2 e5 ~ d5@2 e5 f5@2 d5@2 e5 f5@2 f5@12 ~ f5@2 d5@2 f5@2 d5 c5 d5 c5 bb4 a4 bb4 g4 f4 d4 c4 ~ bb3@2 c4 d4 ~ f4 g4 ~ f4 d4, ~@4 f5 ~ f5 ~@25]/2",
  BU: "f4@2 [g4,b4] ~ [g4,b4]@4 f4@2 [g4,b4] ~ [g4,b4]@4 f4@2 [g4,b4] ~ [g4,b4]@4 f4@2 [g4,b4] ~ [g4,b4]@4", // G
  BV: "f4@2 [g4,b4] ~ [g4,b4]@4 f4@2 [g4,b4] ~ [g4,b4]@8 [g4,b4]@6 [d4,f4]@6", // G Dm
  BW: "[c4,e4,g4]@3 e4@3 d4@2 c4@2 b3@2 d4@2 b3@2", BX: "a3 e4 c4 a3 f3 e4 c4 a3", BY: "f3 ~@7",
  BZ: "[~@5 a5 ~@6 a5@2 ~@13 a5@2 ~@2 a5@2 ~@9 a5@2 ~@20]/2",
})).s("gm_distortion_guitar").gain(0.8).pan(0.9)

// other · distortion guitar · "Guitar" · soft notes
const distortion_guitar_soft = note(`<
  ~ A@2 B C D@3 E F@2 G H I@2 J@4 ~@7 K@2 L@3 M N@2 ~@7 O@2 P Q@3 R S T U V W@2 X ~@15 Y Z@2 AA@2 AB@2 AC@3 ~@6 AD@2
  AE@4 AF@2 ~@10 AG AH ~@38 AI AJ AK AL AM ~ AN AO AP AQ AR AS@2 AT AU@2 AV@2 AW AX AY AZ BA ~ BB ~@87 BC BD BE BF BG@4
  ~ BH BI BJ BK BH BI BJ BK ~@38 BL BM BN ~
>`.pickRestart({
  A: "[~@17 g3@7 ~@4 d3@3 g3@2 ~@2 f3@7 d3@4 c3@5 ~@2 f3@3 ~ d3@2 ~ g3@2 ~@2]/2", B: "f3@7 ~ d3@3 c3@6 ~@2 d3@7 c3@6",
  C: "~ a2@8 ~@6 c4@4 ~@13", D: "[~@5 g3@7 ~ f3@3 d3@4 g3@3 f3@7 d3@4 c3@7 ~ f3@3 d3@4 g3@3 f3@7 ~ d3@3 c3@7 ~@26]/3",
  E: "~@4 c4@4 ~@17 g3@7", F: "[~ f3@4 d3@3 g3@4 f3@7 d3@4 c3@7 f3@4 d3@3 g3@4 f3@7 d3@4 c3@7 [d2,c3]@5]/2",
  G: "~@2 [d2,d3]@7 ~ [d2,c3]@7 ~@11 c5@4, ~ f2@2 ~@13", H: "~@10 c5@4 ~@11 f4@3 ~@4",
  I: "[ab4@7 f4@4 eb4@7 ~@4 f4@4 ~@3 ab4@7 ~@4 eb4@7 ~@17]/2",
  J: "[~@16 c5@4 ~@10 c5@4 ~@11 f4@3 ~@4 ab4@7 ~ f4@3 eb4@7 ~@4 f4@4 ~@4 ab4@7 ~@3 eb4@7 ~@29]/4",
  K: "[~@14 d2@24 ~ f2@9 ~@16]/2", L: "[~@10 c2@25 ~ d2@19 ~@8 c2@8 d2@24 ~]/3", M: "f2@9 ~@23",
  N: "[~@2 c2@25 ~@2 d2@30 ~@5]/2", O: "[~@12 d2@24 ~@2 f2@9 ~@17]/2", P: "~ c2@3",
  Q: "[~@3 d2@19 ~@7 c2@8 d2@24 ~@2 f2@9 ~@24]/3", R: "~ c2@25 ~@6", S: "~@21 g3@7 ~@4",
  T: "d3@4 g3@2 ~ f3@8 d3@3 c3@5 ~@3 f3@3 d3@2 ~", U: "~ g3@2 ~@2 f3@7 d3@3 ~ c3@6 ~@6 d4@2 ~@2",
  V: "a3@2 ~@5 g3@2 ~@5 d3@2 c3@4 c4@4 ~@8", W: "[~@9 g3@7 ~ f3@4 d3@3 g3@4 f3@7 d3@4 c3@7 f3@4 d3@3 g3@4 f3@7]/2",
  X: "d3@4 c3@7 ~@21", Y: "~@25 c5@3 c5@4", Z: "[c5@3 c5@3 ~ c5@3 ~ c5@3 c5@3 ~ c5@2 d2@24 ~@2 f2@9 ~@9]/2",
  AA: "[~@16 c2@26 ~ d2@19 ~@2]/2", AB: "[~@6 c2@8 d2@24 ~@2 f2@9 ~@15]/2", AC: "[~@10 c2@26 ~ d2@30 ~@29]/3",
  AD: "[~@27 d2@24 ~@2 f2@9 ~@2]/2", AE: "[~@24 c2@26 ~ d2@19 ~@8 c2@7 d2@24 ~@2 f2@9 ~@8]/4", AF: "[~@9 c2@13 ~@10]/2",
  AG: "~@22 a3 ~ g3 ~@3 g3@2 ~@2", AH: "e3 d3@5 ~@10", AI: "~@11 d4@5 f4@3 d4@6 ~@7, ~@9 c4@4 ~@19",
  AJ: "~@4 c4 d4 ~ f4 ~ d4 g4 ~@2 g4 f4@2, ~@25 a4@2 ~@5", AK: "g4 f4 e4 d4 c4@2 ~@10",
  AL: "~@2 d4@3 f4@2 ~ a4@2 g4@2 f4@3 ~@17", AM: "~@5 b4 a4 b4 a4@2 b4 c4 ~@4", AN: "~@4 c4 ~@11",
  AO: "~ g3 f3@2 d3@6 ~@6, ~ f3@2 ~@29", AP: "~@11 a4 ~@4 g4@2 d4@3 ~ f4@2 ~@8", AQ: "~@2 c5 ~@29", AR: "~@22 c5@3 ~@7",
  AS: "[~@29 f4 ~@2 f4@3 ~@3 c4@2 ~@7 a4@2 ~@15, ~@31 g4@2 ~@31]/2", AT: "~@5 e5 ~@2 e5@15 ~@5 a4 c5 ~@2",
  AU: "[g5@2 ~@3 f5@3 e5@7 ~@7 c5@2 ~@6 d5@16 ~ d5@9 d5@8, ~@29 c5@2 ~@33]/2",
  AV: "[~ c5@3 g5@2 ~ c5@2 g5@3 c5@2 ~@3 a4@8 ~@6 a4@2 f4 ~ g4@3 d4@2 f4@2 e4@2 ~ c4@2 ~ b3 ~ c4 e4 ~ f4 ~ gb4 g4 ~ f4 d4 ~ f4@3, ~@44 d4@2 ~ a3@2 ~@15]/2",
  AW: "g4@3 ~@4 g4@2 ~ g4 f4@2 g4@2 ~ f4 ~ g4@3 f4@3 g4@2 a4@2 g4@2 f4@2, ~@3 f4 ~@12", AX: "g4 ~",
  AY: "[g4,bb4]@6 d4@3 ~@23", AZ: "~@12 c5@2 ~@2 g4@7 f4@5 g4@2 f4@2", BA: "~ e4@6 ~@5 f4@2 e4@2 d4@2 ~ d4 e4@2 d4@9 ~",
  BB: "a3 d4@2 f4@3 e4@2 d4@9 ~@15", BC: "~@27 d3@4 ~", BD: "a3 d4 g4@2 gb4 d4 a3 f3",
  BE: "c4@4 f4@4 bb4@8 a4@4 ~ f4@4 c4@4 c3@3", BF: "~ g3@4 c4@4 f4@8 e4@4 c4@4 g3@4 ~@2 d4, ~@15 c4",
  BG: "[~@6 [gb4,a4]@4 ~@5 a3@2 ~@13 d3@4 a3@4 d4@4 g4@8 gb4@4 ~ d4@4 a3@4 f3@4 c4@4 f4@4 bb4@8 a4@4 f4@4 c4@4 c3@4 g3@4 ~ c4@4 f4@8 e4@4 c4@4 g3@4, ~@7 [f3,g3] ~@56]/4", // Gbm Fsus2
  BH: "[d2,a2]@15 ~", BI: "[f2,c3]@15 ~", BJ: "~ g2@30 ~, c2@15 ~", BK: "[d2,a2]", BL: "~ a3 ~@6",
  BM: "~ a5 gb5@2 d5 ~@2 d5 a5@2 ~ d5 ~@2 d5 a5@2 [d5,gb5]@2 a5@2 ~ d5 a5 ~@2 d5 ~@2 [d5,gb5]@2 ~, ~@6 gb5@2 ~@2 gb5@2 ~ gb5@2 ~@6 gb5@2 ~@2 gb5@2 ~@5", // D
  BN: "~ d5 a5@2 [d5,gb5]@2 a5@2 ~ d5 ~@3 a5@2 [d5,gb5]@2 a5@2 ~ d5 a5 ~@10, gb5@2 ~@6 gb5@2 ~@2 [d5,gb5]@2 ~@5 gb5@2 ~@11", // D
})).s("gm_distortion_guitar").gain(0.4).pan(0.9)

// chords · electric guitar jazz · "Jazz Guitar"
const electric_guitar_jazz = note(`<
  ~@4 A B@3 C D E@2 ~@39 F@3 G ~@38 H@7 I@3 J K L M N O P Q R S@8 T@8 U@8 V W@2 X Y Z AA AB@3 AC AD@2 AE AF@4 AG AH@2 AI
  AJ AK@3 AG AH@2 AI AJ AK@3 AG AH@2 AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF@4 BG BH@7 BI@8 BJ@8
  BK@5 BL@7 BM@8 BN@8 BO@5 BP@8 BQ@3 ~@50
>`.pickRestart({
  A: "~@15 e5@5 c5@2 f5@3 ~ e5@6",
  B: "[~ c5@3 ~ b4@6 ~ a4@4 f4@2 ~@2 b4@3 a4@8 f4@3 e4@6 ~@2 a4@3 f4@3 ~ b4@3 a4@7 ~ f4@3 e4@7 ~ g4@3 c5@2 d5@2 c5@2 a4@2 eb4@3 f4@2 g4@2 a4@2 ~ f4@2 d4@2, ~@91 g4@2 ~@3]/3",
  C: "c4@4 e5@4 c5@3 f5@3 e5@8 c5@3 b4@6 ~", D: "a4@4 f4@2 ~@2 b4@3 ~ a4@7 f4@4 e4@6 ~ a4@2",
  E: "[~@2 f4@3 b4@3 ~ a4@7 f4@4 e4@7 d4@29 ~@8]/2",
  F: "[~@20 e5@4 c5@3 f5@3 ~ e5@7 c5@3 b4@6 ~@2 a4@3 f4@2 ~@2 b4@3 ~ a4@7 f4@4 e4@6 ~ a4@3 ~ f4@3 b4@3 ~ a4@7]/3",
  G: "f4@4 e4@7 g4@7 ~@8 g3@6",
  H: "[~@18 a3@25 ~@5 c4@21 ~@10 g3@29 d3@2 ~ a3@25 ~@7 a3@25 ~@4 c4@29 ~@3 g3@20, ~@16 d3@3 ~@28 f3@3 ~@27 c3@5 ~@58 d3@3 ~@28 a3@26 ~@6 e3@21, ~@17 gb3@26 ~@4 a3@18 ~@13 e3@24 ~@8 gb3@22 ~@9 gb3@22 ~@7 f3@4 ~@28 c3@3 ~@19]/7",
  I: "[~@11 a3@29 ~@2 a3@26 ~@6 c4@22, ~@10 gb3@25 ~@6 gb3@21 ~@9 f3@3 ~@22, ~@10 d3@2 ~@28 d3@2 ~@30 a3@21 ~@3]/3",
  J: "~ g3@3, ~@7 e3@22 ~@3, ~@7 c3@2 ~@23", K: "~@5 d3@2 a3@25, ~@7 gb3@18 ~@7",
  L: "~@6 a3@25 ~, ~@5 gb3@21 ~@6, ~@5 d3@4 ~@23", M: "~@3 c4@13, ~@2 f3 ~@13, ~@5 a3@22 ~@5",
  N: "~@5 g3@26 ~, ~@3 c3@2 ~@27, ~ e3@7", O: "~@4 a3@25 ~@3, ~ d3 ~@14, ~@3 gb3@24 ~@5",
  P: "~@2 a3@25 ~@5, ~ gb3@25 ~@6, ~ d3@3 ~@28", Q: "~@2 c4@25 ~@5, ~ a3@22 ~@9, ~ f3@2 ~@29",
  R: "~ g3@26 ~@4 gb3, e3@25 ~@5 d3@2, c3 ~@15",
  S: "[~ a3@25 ~@4 a3@25 ~@7 c4@28 ~@4 g3@26 ~@5 a3@25 ~@4 [gb3,a3]@25 ~@7 c4@25 ~@7 g3@26 ~@5 a3@7, ~@29 d3@4 ~@28 a3@22 ~@10 e3@28 ~@2 d3@2 ~@28 d3@3 ~@30 a3@22 ~@9 e3@25 ~@5 d3@2 ~@7, ~@30 gb3@21 ~@9 f3@2 ~@30 c3@2 ~@30 gb3@24 ~@37 f3@2 ~@29 c3@2 ~@30 gb3@8]/8", // Gbm
  T: "[~@23 a3@25 ~@7 c4@28 ~@3 g3@26 ~@5 a3@25 ~@5 a3@25 ~@7 c4@25 ~@6 g3@26 ~@3 d3@2 ~ a3@14, ~@22 gb3@21 ~@10 f3@2 ~@30 e3@28 ~@2 d3@2 ~@29 d3@3 ~@29 f3@2 ~@29 e3@25 ~@7 gb3@15, ~@22 d3@4 ~@28 a3@22 ~@9 c3@2 ~@29 gb3@24 ~@6 gb3@25 ~@7 a3@22 ~@9 c3@2 ~@45]/8",
  U: "[~@15 a3@25 ~@7 c4@28 ~@3 [e3,g3]@28 ~@4 a3@25 ~@4 [gb3,a3]@25 ~@7 c4@25 ~@7 g3@26 ~@5 a3@22, ~@14 d3@4 ~@28 a3@22 ~@41 gb3@24 ~@37 f3@2 ~@29 c3@2 ~@29 d3@2 ~@22, ~@15 gb3@21 ~@9 f3@2 ~@30 c3@2 ~@29 d3@2 ~@28 d3@3 ~@30 a3@22 ~@9 e3@25 ~@6 gb3@23]/8", // Em Gbm
  V: "~ a3@3, ~@7 gb3@21 ~@4, ~@7 d3@4 ~@21",
  W: "[~@8 c4@28 ~@3 g3@25, ~@6 f3@2 ~@29 c3@2 ~@25, ~@7 a3@22 ~@9 e3@26]/2",
  X: "~@6 a3@25 ~, ~@2 d3 ~@13, ~@5 gb3@24 ~@3", Y: "~@4 a3@25 ~@3, ~@3 gb3@25 ~@4, ~@3 d3@3 ~@26",
  Z: "~@4 c4@25 ~@3, ~@3 a3@22 ~@7, ~@3 f3@2 ~@27", AA: "~@3 g3@26 ~@3, ~@2 e3@25 ~@5, ~ c3 ~@14",
  AB: "[d3@2 ~ a3@25 ~@4 a3@26 ~@7 c4@29 ~@2, ~@2 gb3@23 ~@6 d3@4 ~@29 a3@23 ~@9, ~@32 gb3@22 ~@9 f3@2 ~@31]/3",
  AC: "~ g3@27 ~@4, e3@7 ~, c3 ~@15", AD: "[~ a3@13 ~@2 a3@13 ~@3, d3@2 ~@29 d3@3 ~@30, ~ gb3@25 ~@5 gb3@26 ~@7]/2",
  AE: "~ c4@25 ~@6, a3@23 ~@9, f3 ~@15",
  AF: "[~ g3@27 ~@3 d3@2 ~ a3@26 ~@4 a3@26 ~@7 c4@29 ~@2, e3@26 ~@7 gb3@24 ~@7 gb3@22 ~@9 f3@2 ~@31, c3@2 ~@61 d3@4 ~@29 a3@23 ~@9]/4",
  AG: "~@2 g3@27 ~@3, c3 ~@15, ~ e3@28 ~@3", AH: "[~ a3@13 ~@2 [gb3,a3]@13 ~@3, d3@2 ~@29 d3@3 ~@30, ~ gb3@25 ~@38]/2",
  AI: "~ [a3,c4]@25 ~@6, f3 ~@15", AJ: "~@2 g3@27 ~@3, c3 ~@15, ~ e3@26 ~@5",
  AK: "[~@2 a3@26 ~@4 a3@26 ~@7 c4@29 ~@2, d3@2 ~@29 d3@4 ~@29 a3@23 ~@9, ~ gb3@24 ~@7 gb3@22 ~@9 f3@2 ~@31]/3",
  AL: "~ c4@26 ~@5, ~ a3@23 ~@8, ~ f3@2 ~@29", AM: "~@2 g3@27 ~@3, ~ e3@26 ~@5, ~ c3@2 ~@29",
  AN: "~@3 a3@26 ~@3, ~ d3@2 ~@29, ~ gb3@12 ~@3", AO: "~ a3@13 ~@2, d3 ~@7, ~ gb3@22 ~@9",
  AP: "~@3 c4@29, ~ f3@2 ~@29, ~@2 a3@23 ~@7", AQ: "~@3 g3@27 ~@2, ~@2 e3@29 ~, ~ c3 ~@14",
  AR: "~@2 a3@13 ~, ~ d3 ~@14, ~@3 gb3@25 ~@4", AS: "~@3 a3@26 ~@3, ~ d3@3 ~@28, ~ gb3@13 ~@2",
  AT: "~@2 c4@13 ~, ~@3 a3@23 ~@6, ~@3 f3@2 ~@27", AU: "~@5 g3@27, ~@3 c3@2 ~@27, ~@2 e3@13 ~",
  AV: "~@5 a3@26 ~, ~@3 d3@2 ~@27, ~ gb3@6 ~", AW: "~@2 a3@13 ~, ~@3 d3@4 ~@25, ~@2 gb3@11 ~@3",
  AX: "~@5 c4@27, ~@4 a3@23 ~@5, ~@2 f3 ~@13", AY: "~@3 g3@13, ~@2 c3 ~@13, ~@5 e3@27",
  AZ: "~@4 d3@2 ~ a3@25, ~@6 gb3@25 ~", BA: "~@5 [gb3,a3]@26 ~, ~@4 d3@3 ~@25",
  BB: "~@7 c4@25, ~@6 a3@23 ~@3, ~@3 f3 ~@12", BC: "~@7 g3@25, ~@3 e3@13, ~@3 c3 ~@12",
  BD: "~ a3@3, ~@3 d3 ~@12, ~@7 gb3@24 ~", BE: "~@7 a3@25, ~@3 gb3@11 ~@2, ~@3 d3@2 ~@11",
  BF: "[~@8 c4@29 ~@4 g3@27 ~@5 a3@26 ~@5 a3@24, ~@6 f3@2 ~@31 c3@2 ~@30 d3@2 ~@30 d3@3 ~@22, ~@7 a3@23 ~@10 e3@29 ~@3 gb3@25 ~@6 gb3@25]/4",
  BG: "~@9 c4@23, ~@8 a3@23 ~, ~@4 f3 ~@11",
  BH: "[~@10 g3@27 ~@5 a3@26 ~@5 [gb3,a3]@26 ~@8 c4@26 ~@6 g3@27 ~@6 a3@26 ~@5 a3@21, ~@8 c3@2 ~@30 d3@2 ~@30 d3@3 ~@31 f3@2 ~@30 e3@26 ~@6 d3@2 ~@29 d3@4 ~@19, ~@9 e3@26 ~@6 gb3@24 ~@41 a3@23 ~@9 c3@2 ~@31 gb3@24 ~@7 gb3@22]/7", // Gbm
  BI: "[~@12 c4@29 ~@3 g3@27 ~@6 a3@26 ~@5 a3@26 ~@7 c4@26 ~@7 g3@27 ~@5 a3@26 ~@5 [gb3,a3]@19, ~@10 f3@2 ~@31 e3@29 ~@3 d3@2 ~@29 d3@3 ~@31 f3@2 ~@30 c3@2 ~@30 d3@2 ~@30 d3@4 ~@16, ~@11 a3@23 ~@9 c3@2 ~@31 gb3@25 ~@6 gb3@26 ~@7 a3@23 ~@10 e3@26 ~@6 gb3@24 ~@27]/8", // Gbm
  BJ: "[~@14 c4@29 ~@4 g3@27 ~@3 d3@2 ~ a3@26 ~@4 [gb3,a3]@26 ~@8 c4@26 ~@6 g3@27 ~@6 a3@26 ~@5 a3@16, ~@13 a3@23 ~@10 e3@29 ~@4 gb3@25 ~@39 a3@23 ~@9 c3@2 ~@30 d3@2 ~@30 d3@4 ~@13, ~@13 f3@2 ~@30 c3@2 ~@62 d3@3 ~@31 f3@2 ~@30 e3@26 ~@7 gb3@24 ~@7 gb3@17]/8", // Gbm
  BK: "[~@17 c4@29 ~@4 g3@27 ~@5 a3@26 ~@5 a3@26 ~@7 [a3,c4]@14, ~@15 f3@2 ~@31 c3@2 ~@30 d3@2 ~@30 d3@3 ~@45, ~@16 a3@23 ~@10 e3@29 ~@3 gb3@25 ~@6 gb3@26 ~@7 f3@2 ~@13]/5", // Am
  BL: "[~@19 g3@27 ~@6 a3@26 ~@5 a3@26 ~@7 c4@26 ~@6 g3@27 ~@6 a3@26 ~@5 a3@12, ~@17 c3@2 ~@30 d3@2 ~@30 d3@3 ~@31 f3@2 ~@30 e3@26 ~@6 d3@2 ~@29 d3@4 ~@10, ~@18 e3@26 ~@6 gb3@24 ~@8 gb3@26 ~@7 a3@23 ~@9 c3@2 ~@31 gb3@24 ~@7 gb3@13]/7",
  BM: "[~@21 c4@29 ~@4 g3@27 ~@5 a3@26 ~@5 a3@26 ~@7 c4@26 ~@7 g3@27 ~@5 a3@26 ~@5 [gb3,a3]@10, ~@19 f3@2 ~@31 c3@2 ~@30 d3@2 ~@29 d3@3 ~@31 f3@2 ~@30 c3@2 ~@30 d3@2 ~@30 d3@4 ~@7, ~@20 a3@23 ~@10 e3@29 ~@3 gb3@25 ~@6 gb3@26 ~@7 a3@23 ~@10 e3@26 ~@6 gb3@24 ~@18]/8", // Gbm
  BN: "[~@23 c4@29 ~@4 g3@27 ~@3 d3@2 ~ a3@26 ~@5 a3@26 ~@7 c4@26 ~@6 g3@27 ~@6 a3@26 ~@5 a3@7, ~@22 f3@2 ~@30 c3@2 ~@62 d3@3 ~@31 f3@2 ~@30 e3@26 ~@6 d3@2 ~@30 d3@4 ~@4, ~@23 a3@23 ~@9 e3@29 ~@4 gb3@25 ~@6 gb3@26 ~@7 a3@23 ~@9 c3@2 ~@31 gb3@24 ~@7 gb3@8]/8",
  BO: "[~@26 c4@29 ~@4 g3@27 ~@5 a3@26 ~@5 a3@26 ~@7 [a3,c4]@5, ~@24 f3@2 ~@31 c3@2 ~@30 d3@2 ~@30 d3@3 ~@36, ~@25 a3@23 ~@10 e3@29 ~@3 gb3@25 ~@6 gb3@26 ~@7 f3@2 ~@4]/5", // Am
  BP: "[~@28 g3@27 ~@6 a3@26 ~@5 a3@27 ~@6 c4@26 ~@7 g3@28 ~@5 a3@26 ~@5 a3@27 ~@6 a3, ~@26 c3@2 ~@30 d3@2 ~@30 d3@3 ~@31 f3@3 ~@29 c3@2 ~@31 d3@2 ~@30 d3@4 ~@31, ~@27 e3@26 ~@6 gb3@24 ~@8 gb3@27 ~@6 a3@23 ~@10 e3@26 ~@7 gb3@24 ~@7 gb3@22 ~@11 f3@2]/8",
  BQ: "[c4@29 ~@4 g3@28 ~@5 a3@26 ~@4, ~@31 c3@2 ~@30 d3@2 ~@31, ~@32 e3@29 ~@3 gb3@25 ~@7]/3",
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.4)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@4 A@2 B@3 C@2 D@3 E@2 F G@2 H@3 I J K L M N@4 O@4 P@2 Q@2 R S T@2 U@4 V@5 W@5 X Y@7 Z@2 AA AB AC AD AE AF AG AH@2
  AI@3 AJ@2 AK AL@2 AM@2 AN@3 AO@2 AP@2 AQ@8 AR@4 AS@4 AT AU AV@5 AW@8 AX@8 AY@4 AZ@6 BA BB BC BD BE BF BC BD BE BG BC
  BD BE BF BC BD BE BG BC BD BE BF BC BD BE BG BC BD BE BF BC BD BH BI BJ BK@3 BL@4 BM@8 BN@4 BO@4 BP@8 BQ@4 BR@4 BS@4
  BT@4 BU@4 BV@4 BW@4 BX@4 BY@4 BZ@4 CA@4 CB@4 CC@8 CD CE CF CG CH CI CF CG CH CJ CF CG CH CJ CF CG CH CJ CF CG CH CJ CF
  CG CH CJ CF CG CH CJ CF CG CK CL CM@3 CN@6 ~@4 CO@3 CP
>`.pickRestart({
  A: "[~ a1@7 c2@7 d2@14 ~ a1@7 c2@6 ~ d2@15 a1@5]/2",
  B: "[~@2 c2@7 ~ d2@14 a1@7 c2@7 ~ d2@14 a1@7 c2@7 ~ d2@14 a1@7 ~ c2@6]/3",
  C: "[~ d2@14 a1@7 ~ c2@7 d2@15 a1@7 c2@7 d2@5]/2",
  D: "[~@2 d2@7 ~ d2@7 d2@7 f2@13 ~ c2@7 ~ eb2@7 f2@15 c2@7 eb2@7 f2@14]/3",
  E: "[~ c2@7 eb2@7 ~ f2@14 c2@7 eb2@7 f2@13 ~ c2@6]/2", F: "~@2 eb2@7 f2@15 c2@7 ~",
  G: "[eb2@7 f2@14 c2@7 eb2@7 ~ f2@14 g2@14]/2",
  H: "[~ a1@9 ~@4 a1@2 a1@2 ~ a1@8 ~@3 e2@4 e2@5 ~@4 e2@2 e2@2 ~@2 e2@4 ~@5 e2@2 a1@8 ~@7 a1 ~@3 a1@6 ~@8 a1@3, ~@29 d2@2 ~@65]/3",
  I: "~@3 a1@4 ~ a2@2 a2@2 g2@2 e2@2 a2@2 e2@2 c2@3 a1@3 ~ a1@4 ~",
  J: "~@2 a1@2 ~@2 a1@6 ~ a1@4 g1@4 e1@2 ~@2 e1@3 ~@2 d1@2, ~ g1@2 ~@29", K: "~@3 e1@7 ~@2 e1@4 ~@3 a1@3 a1@4 ~@4 a1@2",
  L: "~ a1@3 ~ a1@3 ~ a1@6 ~@2 a1@2 ~ a1 ~@3 a1@2 ~@2 a1!2 ~@2", M: "~ a1 ~ a1@3 c2@2 ~@2 db2@3 ~ d2@13 ~@2 d2@3",
  N: "[~ eb2@3 e2 ~@3 f2@13 ~@2 d2@2 eb2@2 f2@2 f2@2 a1@3 ~ bb1@3 ~ b1@3 c2@9 ~@3 a1@3 c2@4 db2@8 d2@17 ~ a1@8 c2@7 ~ d2@13 ~@2 d2@4 eb2@3 e2 ~@2]/4",
  O: "[~ f2@13 ~@2 d2@2 eb2@2 f2@2 ~ a1@3 ~ bb1@3 ~ b1@3 ~ c2@9 ~@2 a1@4 c2@4 db2@7 d2@28 ~@6 a1@9 ~@4 a1@2 a1@2 ~@2 a1@8 ~ d2@2 e2@3, ~@11 f2 ~@52]/4",
  P: "[~ e2@5 ~@4 e2@2 e2@2 ~ e2@4 ~@6 e2@2 a1@8 ~@6 a1 ~@3 a1@6 ~@9 a1@4]/2",
  Q: "[~ a1@4 ~@2 a2@2 a2@2 g2@2 ~ a2@2 e2@2 c2@4 a1@3 ~ a1@4 ~ g1@2 a1@2 ~@2 a1@6 ~ a1@4 g1@3 e1@2 ~@2 e1@3 ~@3 d1@2 ~, ~@13 e2@2 ~@49]/2",
  R: "~@2 e1@7 ~ e1@4 ~@3 a1@4 a1@4 ~@3 a1@3 ~", S: "a1@3 ~ a1@3 a1@6 ~@2 a1@2 ~@2 a1 ~@2 a1@2 ~@2 a1 ~ a1 ~@2 a1",
  T: "[~ a1@3 ~ c2@2 ~@2 db2@3 d2@12 ~@3 d2@4 eb2@3 ~ e2 ~@2 f2@13 ~@2 d2@2 eb2@2 f2@2 f2@2 a1@3]/2",
  U: "[~ bb1@3 ~ b1@3 c2@9 ~@3 a1@3 c2@4 db2@8 d2@17 ~@2 a1@7 c2@7 ~ d2@13 ~@2 d2@4 eb2@3 e2 ~@3 f2@13 ~@2 d2@2 eb2@2 f2@2 ~ a1@3 ~ bb1@3 ~ b1@3, ~@58 f2 ~@5]/4",
  V: "[~ c2@9 ~@2 a1@4 c2@4 db2@8 ~@3 d2@14 ~ a1@7 c2@6 ~@2 d2@14 a1@7 c2@7 ~ d2@14 a1@7 c2@7 ~ d2@14 a1@7 ~ c2@7 d2@12]/5",
  W: "[~@2 a1@7 ~ c2@7 d2@14 a1@7 ~ c2@7 d2@15 a1@7 c2@7 d2@7 e2@4 f2@3 ~ g2@14 d2@14 ~ a1@7 c2@6 ~ d2@15 a1@7 c2@5]/5",
  X: "~@2 d2@15 a1@7 c2@7 ~",
  Y: "[d2@14 a1@7 c2@7 d2@15 a1@7 c2@7 ~ d2@14 a1@7 c2@7 ~ d2@14 a1@7 ~ c2@7 c2@3 e2@4 f2@4 gb2@3 g1@15 d2@14 a1@7 ~ c2@6 ~ d2@15 a1@7 c2@7 d2@15 a1@6]/7",
  Z: "[~ c2@7 ~ d2@13 a1@7 ~ c2@7 d2@15 a1@7 c2@5]/2", AA: "~@3 d2@14 a1@7 c2@7 ~", AB: "d2@14 a1@7 c2@7 ~ c2@3",
  AC: "e2@4 f2@3 gb2@4 g1@15 a2@3 a2@3", AD: "~ a2@3 ~ a2@3 a2@3 ~ a2@3 a2@3 ~ a2@3 ~ a1@3 a1@3 ~ a1@2",
  AE: "~@2 a1@3 a1@3 ~ a1@3 ~ a1@3 a1@3 ~ d2@12", AF: "~@3 d2@4 eb2@3 ~ e2 ~@2 f2@13 ~@3 d2@2",
  AG: "~ f2@2 f2@2 a1@3 ~ bb1@3 ~ b1@3 ~ c2@9 ~@2 a1@4, eb2 ~@15",
  AH: "[c2@4 db2@7 d2@17 ~@2 a1@8 c2@7 ~ d2@13 ~@2 d2@3]/2",
  AI: "[~ eb2@3 ~ e2 ~@2 f2@13 ~@4 eb2@2 f2@2 f2@2 a1@3 ~ bb1@3 ~ b1@3 c2@9 ~@3 a1@4 c2@4 db2@7 d2@27, ~@12 d2 ~@35]/3",
  AJ: "[~@8 a1@9 ~@4 a1@2 a1@2 ~@2 a1@8 ~ d2@2 e2@4 e2@5 ~@4 e2@2 e2@2 ~@2 e2@4 ~@3]/2",
  AK: "~@3 e2@2 a1@8 ~@7 a1 ~@3 a1@6 ~@2",
  AL: "[~@7 a1@4 ~@2 a1@4 ~ a2@2 a2@2 g2@2 e2@2 a2@2 e2@2 c2@4 a1@3 a1@4 ~@2 g1@2 a1@2 ~@2 a1@6 ~ a1@4 g1@4]/2",
  AM: "[e1@2 ~@2 e1@3 ~@2 d1@2 ~@4 e1@8 e1@4 ~@3 a1@4 a1@4 ~@4 a1@3 ~ a1@3 a1@3 ~ a1@7 ~ a1@2 ~]/2",
  AN: "[~ a1 ~@3 a1@2 ~@2 a1 ~ a1 ~@2 a1 ~ a1@3 ~ c2@2 ~@2 db2@3 d2@13 ~@3 d2@3 eb2@3 ~ e2 ~@3 f2@13 ~@2 d2@2 eb2@2 f2@2 ~ a1@3 ~ bb1@3 ~ b1@3 ~ c2@8, ~@75 f2@2 ~@19]/3",
  AO: "[~@4 a1@3 c2@4 db2@8 d2@17 ~@2 a1@7 c2@7 ~ d2@11]/2",
  AP: "[~@5 d2@3 eb2@3 ~ e2 ~@2 f2@13 ~@3 d2@2 eb2@2 f2@2 ~ a1@3 ~ bb1@3 ~ b1@3 ~ c2@9 ~@2 a1@3, ~@37 f2@2 ~@25]/2",
  AQ: "[~ c2@4 db2@8 ~@4 d2@31 f2@31 c2@31 d2@27 ~@5 d2@31 f2@30 c2@30 ~ d2@22]/8",
  AR: "[~@9 d2@31 f2@31 c2@31 ~ d2@19 a1@6]/4", AS: "[c2@5 ~ d2@31 f2@31 c2@31 d2@19 ~ a1@2 ~@3 c2@4]/4", AT: "~ d2@15",
  AU: "~ f2@31", AV: "[c2@31 d2@19 ~ a1@2 ~@3 c2@4 ~@2 d2@31 f2@31 c2@31 ~ d2@4]/5",
// … 485 more lines

More by Peter Frampton