Strudelify

My Girl Lollipop

Bad Manners

KeyE majorTempo143 bpm
0:00/0:00
// My Girl Lollipop — Bad Manners
// 143 bpm, 4/4, key E major. 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 99 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(143/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 · piano
const bass = note("<A B C D E F G@2 ~@47 H@2 I J I J I K ~@16 L M L M L M N O N O P Q P R S@2 T@4>".pickRestart({
  A: "~@4 b1@2 c#2 e2@2 ~ g#1@2", B: "~ g#1@2 ~ a1@2 ~@6", C: "~@7 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~",
  D: "~ g#1@4 ~@2 a1@4 ~@13", E: "~@3 b1@2 c#2 e2@2 ~ g#1@2 ~", F: "g#1@2 ~ a1@2 ~@7",
  G: "[~@5 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 b1@4 ~@2 b1@2 ~@11]/2",
  H: "[~@19 b1@4 c#2@2 e2@4 ~ g#1@4 ~@2 g#1@4 ~@2 a1@3 ~@3]/2", I: "~@9 b1@2 c#2",
  J: "e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@3 ~@3", K: "e2@4 ~ g#1@4 ~@2 g#1@4 ~@2 a1@3 ~@4", L: "~@7 b1@2 c#2 e2@2",
  M: "~ g#1@2 ~ g#1@2 ~ a1@2 ~@3", N: "~@13 b1@4 c#2@2 e2@4 ~", O: "~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@7",
  P: "~@6 b1@2 c#2 e2@2 ~", Q: "g#1@2 ~ g#1@2 ~ a1@2 ~@4", R: "g#1@4 ~ g#1@4 ~@2 a1@4 ~@9",
  S: "[~@11 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@9]/2",
  T: "[~@10 b1@4 c#2@2 e2@4 ~@2 e2@4 ~@2 g#1@4 ~@2 a1@10 a1@2 b1@4 ~@2 b1@6 e1@23 e1@3 ~@12]/4",
})).s("gm_piano").gain(0.35).pan(0.7)

// bass · electric bass finger
const bass_2 = note(`<
  A B C D E F G@2 H@4 I J K L M N O P Q R S T U V W X Y Z AA AB AC AD@8 AE@5 AF AG@6 AH AI AJ@2 AK AL AK AL AK AM@8 AN
  AO@5 AP AQ AR@2 AS AT AS AT AU AV AW AV AW AX AY AZ BA@7
>`.pickRestart({
  A: "~@4 b1@2 c#2 e2@2 ~ g#1@2", B: "~ g#1@2 ~ a1@2 ~@6", C: "~@7 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~",
  D: "~ g#1@4 ~@2 a1@4 ~@13", E: "~@3 b1@2 c#2 e2@2 ~ g#1@2 ~", F: "g#1@2 ~ a1@2 ~@7",
  G: "[~@5 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 b1@4 ~@2 b1@4 ~@9]/2",
  H: "[~@5 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~ g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~ b1@3]/4",
  I: "~@3 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@3", J: "~@3 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@3",
  K: "~@3 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~ g#1@4", L: "~@2 a1@4 ~@2 a1@6 b1@4 ~@2 b2 ~ b2 ~",
  M: "b2 ~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4", N: "~ a1@2 ~ a1@2 ~ b1@2 ~ b1@2", O: "~ b1@2 c#2 e2@2 ~ g#1@2 ~ g#1@2",
  P: "~@2 a1@4 ~ a1@4 ~@2 b1@4 ~@2 b1@4 ~", Q: "~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~",
  R: "~ a1@4 ~@2 a1@4 ~@2 b1@4 b2 ~ b2 ~ b2 ~ b2", S: "~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@2 ~@3",
  T: "~ e3@6 d3@6 b2@2 b2@4 a#2@5", U: "~ a1@6 c#2@6 e2@6 f#2@5", V: "~ a2@5 f#2@4 c#2@2 e2@6 c#2@4 a1@2",
  W: "e1 g#1 b1 c#2", X: "e2 d2 c#2 b1", Y: "a1 c#2 e2 f#2", Z: "a2@3 f#2@2 c#2 e2@3 c#2@2 a1",
  AA: "b1@3 d#2@2 b1 f#2@3 g#2@3", AB: "b2@2 ~ b2@3 ~@6", AC: "b1@2 c#2 e2@2 ~ g#1@2 ~ g#1@2 ~",
  AD: "[a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@6 b1@4 ~@2 b2 ~ b2 ~ b2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@2]/8",
  AE: "[~@4 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 b2@2 b2 ~ b2 ~ b2 ~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 b2 ~ b2 ~ b2!2 ~ b1@3]/5",
  AF: "~ c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@2 ~@4 e3@3",
  AG: "[~ d3@4 b2@2 b2@2 a2@4 g#2@4 e2@4 a1@6 c#2@4 a1@2 e2@6 f#2@4 c#2@2 a2@6 f#2@6 e2@6 c#2@4 ~ e1@6 g#1@6 b1@6 c#2@6 e2@6 d2@6 c#2@6 b1@4 e1@2 a1@6 c#2@4 a1@2 e2@6 f#2@5 a2@5, ~@67 a1@2 ~@75]/6",
  AH: "~ f#2@4 c#2@2 e2@6 c#2@4 a1@2 b1@5", AI: "~ d#2@6 f#2@6 g#2@6 b2@4 ~",
  AJ: "[~ b2@6 ~@12 b1@4 c#2@2 e2@4 ~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2]/2", AK: "a1@2 ~ b1@2 ~ b1@2 ~ b1@2 c#2",
  AL: "e2@2 ~ g#1@2 ~ g#1@2 ~ a1@2 ~",
  AM: "[e2@4 ~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@2]/8",
  AN: "~@4 g#1@4 ~@2 g#1@4 ~@2 b1@3 ~ b1@3 ~",
  AO: "[b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ a1@6 c#2@4 a1@2 e2@6 f#2@4 c#2@2 a2@6 f#2@3 c#2@2 e2@6 c#2@4 a1@2 e1@6 g#1@6 b1@6 c#2@6 e2@6 d2@6 c#2@6 b1@4 e1@2 a1@6 c#2@3]/5",
  AP: "~ a1@2 e2@6 f#2@4 c#2@2 a2@6 f#2@3", AQ: "~ c#2@2 e2@6 c#2@4 a1@2 b1@6 d#2@3",
  AR: "[~ b1@2 f#2@6 g#2@6 b2@4 ~ b2@6 ~@12 b1@4 c#2@2 e2@4]/2", AS: "~ g#1@2 ~ g#1@2 ~ a1@2 ~ a1@2",
  AT: "~ b1@2 ~ b1@2 ~ b1@2 c#2 e2@2", AU: "~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~ a1@4 ~",
  AV: "~ b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~", AW: "~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~",
  AX: "~ b1@4 ~ b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2", AY: "g#1@2 ~ g#1@2 ~ a1@2 ~ a1@2 ~", AZ: "b1@2 ~ b1@2 ~ b1@2 c#2 e2@2 ~",
  BA: "[g#1@4 ~ g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b2 ~@3 b2 ~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~@2 b1@4 ~ b2 ~@3 b2 ~ b1@4 c#2@2 e2@4 ~@2 e2@6 g#1@6 a1@10 a1@2 b1@4 ~@2 b1@4 ~@2 e1@23 e1@3 ~@12]/7",
})).s("gm_electric_bass_finger").gain(0.45).pan(0.3)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P Q P R S T S T U V@2 W X Y@2 Z AA AB AC AD AE AD AE AD AF AG AH AG AH AG AI AJ AK@3 AL
  AM AN@3 AO AP AQ AP AQ AP AR AS AT AS AT AS AU AV AW AX AY AZ@7 BA BB BC BB BC BD BE BF BE BG BH BI BJ BK BL BM BN BO
  BP@2
>`.pickRestart({
  A: "~@12 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // E
  B: "[e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4]", // E A B
  C: "~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // B E
  D: "~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~", // E A B
  E: "~@4 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~", // B E
  F: "~@4 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@4 [d#4,f#4,b4] ~@2", // E A B
  G: "~@3 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // B E
  H: "~@3 [e4,g#4,b4] ~ [d#4,b4] ~@5 [d#4,f#4,b4] ~@12", I: "~@8 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3",
  J: "~@2 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@3", // E A B
  K: "~@2 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // B E
  L: "~@2 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@4", // E A B
  M: "~ [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@4", // B E
  N: "~ [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@4", // E A B
  O: "~ [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // B E
  P: "[e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5", // E A B
  Q: "[d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // B E
  R: "[d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // B E
  S: "~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4]", // A B
  T: "~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // E
  U: "~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4]", // G#dim
  V: "[~ [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 ~ a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2, ~@25 [c#5,e5]@2 ~@21]/2", // C#m
  W: "[b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4", // E5
  X: "[b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4", // E7
  Y: "[c#5,e5] a4 [c#5,e5] a4 [c#5,e5] a4 [c#5,e5] a4 [c#5,e5] a4 [c#5,e5] a4", // C#m
  Z: "[d#5,f#5] b4 [d#5,f#5] b4 [d#5,f#5] b4 [d#5,f#5] b4 [d#5,f#5] b4 [d#5,f#5] b4", // D#m
  AA: "[b4,d#5,f#5] ~@2 [b4,d#5,f#5] ~@8", AB: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~",
  AC: "~@4 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@2", // A B
  AD: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // E
  AE: "~@3 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@2", // A B
  AF: "~@3 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@3", // A B
  AG: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // E
  AH: "~@2 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@3", // A B
  AI: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@4", // A B
  AJ: "~ [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@4", // E
  AK: "[~ [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~ [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 ~ [b4,e5]@2 g#4@2, ~@67 a4@2 ~@3]/3", // G#dim C#m E5
  AL: "[b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4 [b4,e5] g#4 [b4,d5,e5] g#4", // E5 E7
  AM: "[b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4 [b4,d5,e5] g#4 [c#5,e5] a4", // E7 C#m
  AN: "[[c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 ~ [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [b4,d#5,f#5]@2 ~@3, ~@9 a4 ~@26]/3", // C#m D#m B
  AO: "~ [b4,d#5,f#5]@2 ~@19 [e4,g#4,b4] ~", AP: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~",
  AQ: "~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~", // A B E
  AR: "~@4 [c#4,e4,a4] ~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@2", // A B E
  AS: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@2", // E A
  AT: "~@3 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@2", // A B E
  AU: "~@3 [c#4,e4,a4] ~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@3", // A B E
  AV: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@3", // E A
  AW: "~@2 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@3", // A B E
  AX: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~ [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3", // E G#dim
  AY: "[d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2", // G#dim C#m
  AZ: "[[c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 ~ [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [b4,e5]@2 g#4@2 [b4,e5]@2 g#4@2 [b4,e5]@2 g#4@2 [b4,e5]@2 g#4@2 [b4,e5]@2 g#4@2 [b4,e5]@2 g#4@2 [b4,d5,e5]@2 g#4@2 [b4,d5,e5]@2 g#4@2 [b4,d5,e5]@2 g#4@2 [b4,d5,e5]@2 g#4@2 [b4,d5,e5]@2 g#4@2 [b4,d5,e5]@2 g#4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [c#5,e5]@2 a4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [d#5,f#5]@2 b4@2 [b4,d#5,f#5]@2 ~@3 [b4,d#5,f#5]@2 ~@2, ~@11 a4 ~@72]/7", // C#m E5 E7 C#m D#m B
  BA: "~@18 [e4,g#4,b4] ~@5", BB: "[e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5",
  BC: "[c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5", // A B E
  BD: "[e4,g#4,b4] ~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4]", // E A
  BE: "~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // B E
  BF: "~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4]", // E A
  BG: "~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~", // E A
  BH: "~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~", // B E
  BI: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~", // E A
  BJ: "~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@4 [e4,g#4,b4] ~@2", // B E
  BK: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@2", // E A
  BL: "~@3 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // B E
  BM: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@3", // E A
  BN: "~@2 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // B E
  BO: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@3", // E A
  BP: "[~@2 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~ [e4,g#4,b4]@23 ~@15]/2", // B E
})).s("gm_piano").gain(0.25).pan(0.6)

// chords · rock organ
const rock_organ = note("<A@8 B@7 C@6 D@5 E@5 F G H@8 I@4 J@8 K@2 L@8 M@8 N@8 O@8 P@2 Q@2 R@8>".pickRestart({
  A: "[~@8 [g#5,b5]@23 ~ [a5,c#6]@12 [f#5,d#6]@11 g#5@23 ~ [a5,c#6]@12 [f#5,d#6]@11 g#5@23 ~ [a5,c#6]@12 [f#5,d#6]@11 [g#5,e6]@23 ~ [f#5,d#6]@3 ~@3 [f#5,b5,d#6]@3 ~@10, ~@8 e6@35 ~ b5@35 ~@12 b5@35 ~@12 b5@38 ~@16, ~@55 e6@35 ~@12 e6@35 ~@55]/8", // G#m A D#m A D#m A D#m C#m …
  B: "[~@5 [g#5,b5]@23 [a5,c#6]@12 [f#5,d#6]@12 g#5@23 ~ [a5,c#6]@12 [f#5,d#6]@11 g#5@23 ~ [a5,c#6]@12 [f#5,d#6]@12 [g#5,e6]@21, ~@5 e6@35 b5@35 ~@13 b5@35 ~@12 b5@33, ~@52 e6@35 ~@12 e6@35 ~@34]/7", // G#m A D#m A D#m A D#m C#m
  C: "[~@2 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@11 [f#5,d#6]@12 [g#5,e6]@23, ~@14 b5@35 ~@13 b5@35 ~@12 b5@35, ~@26 e6@35 ~@13 e6@35 ~@35]/6", // A D#m A D#m A D#m C#m
  D: "[~ [a5,c#6]@12 [f#5,d#6]@12 ~@24 d6@24 ~@12 f#6@12 e6@11 f#6@12, ~@13 b5@59 ~@48, ~@25 e6@59 ~@36, ~@25 g#5@47 ~ [a5,c#6]@47]/5", // A D#m A
  E: "[~@2 d6@2 ~ f#6 e6 ~@2 g#6, e6@59 ~@25 f#6@24 ~@12, [g#5,b5]@47 ~ [a5,c#6]@48 [b5,d#6]@24]/5", // G#m A B
  F: "[b5,d#6,f#6] ~ [b5,d#6,f#6] ~@5", G: "[g#5,b5,e6]",
  H: "[[a5,c#6]@12 [f#5,d#6]@11 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@11 g#5@24 [a5,c#6]@2, ~@12 b5@35 ~@12 b5@35 ~@13 b5@35 ~@13 b5@35 ~@2, ~@23 e6@35 ~@13 e6@35 ~@13 e6@35 ~@12 e6@26]/8", // A D#m A D#m A D#m A D#m …
  I: "[~@5 [f#5,d#6]@6 g#5@12 [a5,c#6]@6 [f#5,d#6]@6 g#5@12 [a5,c#6], ~@10 b5@35 ~@13 b5@35 ~@3, ~@22 e6@35 ~@13 e6@26]/4", // D#m A D#m A
  J: "[~@10 [f#5,d#6]@11 ~@24 d6@24 ~@12 f#6@12 e6@12 f#6@11 ~@24 d6@23 ~@13 f#6@11 e6@5, ~@10 b5@59 ~@123, ~@21 e6@59 ~@36 e6@62 ~@14, ~@21 g#5@47 ~ [a5,c#6]@47 [g#5,b5]@47 ~ [a5,c#6]@28]/8", // D#m A G#m A
  K: "[~@31 g#6@12 [b5,d#6,f#6]@3 ~@2, ~@7 f#6@23 ~@18, ~@19 [b5,d#6]@23 ~@6]/2", // B
  L: "[~ [b5,d#6,f#6]@3 ~@15 [g#5,b5]@23 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@23 [a5,c#6]@7, ~@19 e6@35 b5@35 ~@13 b5@35 ~@13 b5@35 ~@7, ~@66 e6@35 ~@13 e6@35 ~@13 e6@30]/8", // B G#m A D#m A D#m A D#m …
  M: "[~@5 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@23 [a5,c#6]@12 [f#5,d#6]@12 [g#5,e6]@24 [b5,d6,e6]@3 ~ [b5,d6,e6]@3 ~, ~@5 b5@35 ~@13 b5@35 ~@13 b5@35 ~@12 b5@35 ~@9, ~@17 e6@35 ~@13 e6@35 ~@13 e6@35 ~@44]/8", // D#m A D#m A D#m A D#m C#m …
  N: "[[b5,d6,e6]@3 ~ [b5,d6,e6]@3 ~ [b5,d6,e6]@3 ~ [b5,d6,e6]@3 ~ e6@12 f#6@12 e6@11 f#6@12 ~@24 d6@24 ~@12 f#6@12 e6@12 ~@24 g#6@12 [b5,d#6,f#6]@3 ~@2 [b5,d#6,f#6]@3 ~, ~@16 [a5,c#6]@47 e6@59 ~@25 f#6@24 ~@21, ~@63 [g#5,b5]@47 ~ [a5,c#6]@47 ~ [b5,d#6]@24 ~@9]/8", // E7 B A G#m A B
  O: "[~@14 [g#5,b5]@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@12 [f#5,d#6]@12 g#5@24 [a5,c#6]@11 [f#5,d#6]@12 g#5@24 [a5,c#6]@11, ~@14 e6@35 ~ b5@35 ~@13 b5@35 ~@12 b5@35 ~@12, ~@62 e6@35 ~@13 e6@35 ~@12 e6@35]/8", // G#m A D#m A D#m A D#m A
  P: "[~ [f#5,d#6]@12 g#5@23 ~ [a5,c#6]@11, ~ b5@35 ~@12, ~@13 e6@35]/2", // D#m A
  Q: "[~ [f#5,d#6]@11 g#5@23 ~ [a5,c#6]@12, ~ b5@35 ~@12, ~@12 e6@35 ~]/2", // D#m A
  R: "[[f#5,d#6]@12 g#5@23 [a5,c#6]@12 [f#5,d#6]@12 g#5@23 ~ [a5,c#6]@12 [f#5,d#6]@11 g#5@23 ~ [a5,c#6]@12 [f#5,b5,d#6]@12 [g#5,b5,e6]@23 ~@15, b5@35 ~@12 b5@35 ~@13 b5@35 ~@62, ~@12 e6@35 ~@12 e6@35 ~@12 e6@35 ~@51]/8", // D#m A D#m A D#m A B E
})).s("gm_rock_organ").gain(0.2)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A B C D E F G H I J K L M N O P Q P R S T S T U V W X Y W@2 Z AA X AB AC AD AC AD AC AE AF AG AF AG AF AH AI AJ AK AL
  AM AN AO AP AQ AR AS AT AS AT AS AU AV AW AV AW AV AX AY AZ BA BB BC BD BE BF AK BG BH BI BJ BK BJ BK BL BM BN BM BO
  BP BQ BR BS BT BU BV BW BX@2
>`.pickRestart({
  A: "~@12 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // E
  B: "[e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4]", // E A B
  C: "~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // B E
  D: "~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~", // E A B
  E: "~@4 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~", // B E
  F: "~@4 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@4 [d#4,f#4,b4] ~@2", // E A B
  G: "~@3 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // B E
  H: "~@3 [e4,g#4,b4] ~ [d#4,b4] ~@5 [d#4,f#4,b4] ~@12", I: "~@8 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3",
  J: "~@2 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@3", // E A B
  K: "~@2 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // B E
  L: "~@2 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@4", // E A B
  M: "~ [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@4", // B E
  N: "~ [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@4", // E A B
  O: "~ [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // B E
  P: "[e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5", // E A B
  Q: "[d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // B E
  R: "[d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // B E
  S: "~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4]", // A B
  T: "~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // E
  U: "~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4]", // G#dim
  V: "~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~", // A
  W: "~@4 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~", // A
  X: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~", // E
  Y: "~@4 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~", // G#dim
  Z: "~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~", AA: "[d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@17",
  AB: "~@4 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@2", // A B
  AC: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // E
  AD: "~@3 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@2", // A B
  AE: "~@3 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@3", // A B
  AF: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // E
  AG: "~@2 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@3", // A B
  AH: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@4", // A B
  AI: "~ [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@4", // E
  AJ: "~ [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@4", // G#dim
  AK: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@4", // A
  AL: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5", // A
  AM: "[e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // E
  AN: "[d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5", // G#dim
  AO: "[c#4,e4,a4] ~@5 [c#4,e4,a4] ~@4 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4]", // A
  AP: "~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4]", // A B
  AQ: "~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@4", AR: "~ [d#4,f#4,b4] ~@20 [e4,g#4,b4] ~",
  AS: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~", // E A
// … 185 more lines