Strudelify
My Girl Lollipop cover art

Forging Ahead

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

// bass · piano
const bass = note("<A B C D E F G@2 ~@47 H I H I H I H I ~@16 J K J K J K L M L M N O N O P@2 Q@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: "~@9 b1@2 c#2",
  I: "e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@3 ~@3", J: "~@7 b1@2 c#2 e2@2", K: "~ g#1@2 ~ g#1@2 ~ a1@2 ~@3",
  L: "~@13 b1@4 c#2@2 e2@4 ~", M: "~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@7", N: "~@6 b1@2 c#2 e2@2 ~",
  O: "g#1@2 ~ g#1@2 ~ a1@2 ~@4", P: "[~@11 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@9]/2",
  Q: "[~@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@5 I J K L M N M O P Q R S T U V W X Y Z AA AB@8 AC@5 AD AE@6 AF AG AH@2 AI AJ AI AJ AI AK@8 AL AM@5
  AN AO AP@2 AQ AR AQ AR AQ AS AT AS AT AU AV AW AX@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 ~@2 g#1@4 ~ 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 ~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@3]/5",
  I: "~@3 a1@4 ~@2 a1@4 ~@2 b1@4 ~@2 b1@3", J: "~@3 b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@3",
  K: "~@2 a1@4 ~@2 a1@6 b1@4 ~@2 b2 ~ b2 ~", L: "b2 ~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4",
  M: "~ a1@2 ~ a1@2 ~ b1@2 ~ b1@2", N: "~ b1@2 c#2 e2@2 ~ g#1@2 ~ g#1@2", O: "~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@4 ~",
  P: "~ a1@4 ~@2 a1@4 ~@2 b1@4 b2 ~ b2 ~ b2 ~ b2", Q: "~ b1@4 c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@2 ~@3",
  R: "~ e3@6 d3@6 b2@2 b2@4 a#2@5", S: "~ a1@6 c#2@6 e2@6 f#2@5", T: "~ a2@5 f#2@4 c#2@2 e2@6 c#2@4 a1@2",
  U: "e1 g#1 b1 c#2", V: "e2 d2 c#2 b1", W: "a1 c#2 e2 f#2", X: "a2@3 f#2@2 c#2 e2@3 c#2@2 a1",
  Y: "b1@3 d#2@2 b1 f#2@3 g#2@3", Z: "b2@2 ~ b2@3 ~@6", AA: "b1@2 c#2 e2@2 ~ g#1@2 ~ g#1@2 ~",
  AB: "[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",
  AC: "[~@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",
  AD: "~ c#2@2 e2@4 ~@2 g#1@4 ~@2 g#1@2 ~@4 e3@3",
  AE: "[~ 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",
  AF: "~ f#2@4 c#2@2 e2@6 c#2@4 a1@2 b1@5", AG: "~ d#2@6 f#2@6 g#2@6 b2@4 ~",
  AH: "[~ b2@6 ~@12 b1@4 ~ e2@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2, ~@23 c#2@2 ~@23]/2",
  AI: "a1@2 ~ b1@2 ~ b1@2 ~ b1@2 c#2", AJ: "e2@2 ~ g#1@2 ~ g#1@2 ~ a1@2 ~",
  AK: "[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",
  AL: "~@4 g#1@4 ~@2 g#1@4 ~@2 b1@3 ~ b1@3 ~",
  AM: "[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",
  AN: "~ a1@2 e2@6 f#2@4 c#2@2 a2@6 f#2@3", AO: "~ c#2@2 e2@6 c#2@4 a1@2 b1@6 d#2@3",
  AP: "[~ b1@2 f#2@6 g#2@6 b2@4 ~ b2@6 ~@12 b1@4 c#2@2 e2@4]/2", AQ: "~ g#1@2 ~ g#1@2 ~ a1@2 ~ a1@2",
  AR: "~ b1@2 ~ b1@2 ~ b1@2 c#2 e2@2", AS: "~ b1@4 ~@2 b1@4 ~@2 b1@4 c#2@2 e2@4 ~",
  AT: "~ g#1@4 ~@2 g#1@4 ~@2 a1@4 ~@2 a1@4 ~", AU: "~ b1@4 ~ b1@4 ~@2 b1@4 c#2@2 e2@4 ~@2",
  AV: "g#1@2 ~ g#1@2 ~ a1@2 ~ a1@2 ~", AW: "b1@2 ~ b1@2 ~ b1@2 c#2 e2@2 ~",
  AX: "[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 AC AD AC AD AC AE AF AE AF AE AF AG AH@3 AI
  AJ AK@3 AL AM AN AM AN AM AN AO AP AO AP AO AP AQ AR AS AT AU@7 AV AW AX AW AX AY AZ BA AZ BA BB BC BB BD BE BD BF BG
  BH@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 ~ [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, ~@23 a4@2 ~@23]/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: "~@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
  AD: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // E
  AE: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // E
  AF: "~@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
  AG: "~ [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@4", // E
  AH: "[~ [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
  AI: "[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
  AJ: "[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
  AK: "[[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
  AL: "~ [b4,d#5,f#5]@2 ~@19 [e4,g#4,b4] ~", AM: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~",
  AN: "~@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
  AO: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@2", // E A
  AP: "~@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
  AQ: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@3", // E A
  AR: "~@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
  AS: "~@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
  AT: "[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
  AU: "[[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 [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, ~@9 a4 ~@74]/7", // C#m E5 E7 C#m D#m B
  AV: "~@18 [e4,g#4,b4] ~@5", AW: "[e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5",
  AX: "[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
  AY: "[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
  AZ: "~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4]", // B E
  BA: "~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4]", // E A
  BB: "~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~", // B E
  BC: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~", // E A
  BD: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@2", // E A
  BE: "~@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
  BF: "~@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
  BG: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@3", // E A
  BH: "[~@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]@12 [f#5,d#6]@11 [g#5,e6]@23, ~@14 b5@35 ~@13 b5@35 ~@13 b5@34, ~@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]@12 ~@23 [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 ~@13 [g#5,e6]@25]/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@24 [a5,c#6]@6, ~@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@24 [a5,c#6]@11 [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]@12 [f#5,d#6]@12 g#5@23 [a5,c#6]@11, ~@14 e6@35 ~ b5@35 ~@13 b5@35 ~@13 b5@35 ~@11, ~@62 e6@35 ~@13 e6@35 ~@13 e6@34]/8", // G#m A D#m A D#m A D#m A
  P: "[~ [f#5,d#6]@12 g#5@24 [a5,c#6]@11, ~ b5@35 ~@12, ~@13 e6@35]/2", // D#m A
  Q: "[~ [f#5,d#6]@12 g#5@23 [a5,c#6]@12, ~ b5@35 ~@12, ~@13 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]@12 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 ~@13 e6@35 ~@50]/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@2 W X V@2 Y Z W AA AB AA AB AA AB AA AC AD AC AD AC AD AE AF AG@2 AH
  AI AJ AK AL AM AN AO AN AO AN AO AP AQ AP AQ AP AQ AR AS AT AU AG AV AW AX AG AY AZ BA BB BC BB BC BD BE BF BE BF BG
  BH BG BI BJ BI BK BL BM@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: "~@4 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~", // A
  W: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~", // E
  X: "~@4 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~", // G#dim
  Y: "~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~", Z: "[d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@17",
  AA: "~@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
  AB: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@2", // E
  AC: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@3", // E
  AD: "~@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
  AE: "~ [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@4", // E
  AF: "~ [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@4", // G#dim
  AG: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@4", // A
  AH: "[e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5", // E
  AI: "[d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5", // G#dim
  AJ: "[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
  AK: "~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4]", // A B
  AL: "~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@4", AM: "~ [d#4,f#4,b4] ~@20 [e4,g#4,b4] ~",
  AN: "~@4 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~", // E A
  AO: "~@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
  AP: "~@3 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@2", // E A
  AQ: "~@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
  AR: "~@2 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [c#4,e4,a4] ~@3", // E A
  AS: "~@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
  AT: "~@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
  AU: "[d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@3 [d4,g#4,b4] ~@7 [c#4,e4,a4] ~@3", // G#dim A
  AV: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [e4,g#4,b4] ~@4", // A E
  AW: "~ [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [e4,g#4,b4] ~@5 [d4,g#4,b4] ~@4", // E G#dim
  AX: "~ [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [d4,g#4,b4] ~@5 [c#4,e4,a4] ~@4", // G#dim A
  AY: "~ [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [c#4,e4,a4] ~@5 [d#4,f#4,b4] ~@4", // A B
  AZ: "~ [d#4,f#4,b4] ~@4 [d#4,f#4,b4] ~@5 [d#4,f#4,b4] ~@2 [d#4,f#4,b4] ~@4 [d#4,f#4,b4] ~@3", // 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
// … 143 more lines