Strudelify

Sweet Little Sixteen

Chuck Berry

KeyE majorTempo182 bpm
0:00/0:00
// Sweet Little Sixteen — BERRY CHUCK
// 182 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(182/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 · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B@2 C D B@2 E@2 F@2 E D B@2 E G B H E G B I E J F K E G B L E M F@2 E D B@2 E M F@2 E D B@2 E N B O E D B O E P
  F@2 E Q B R E S B@2 E N T B E S F@2 E Q B R E G B I E G B U E G F V E J B L E S B@2 E Q B@2 E S F@2 E N B R W X Y ~
>`.pickRestart({
  A: "b1@3 ~@9 b1@2 ~@2", B: "b1@2 d#2@2 f#2@2 g#2 f#2", C: "e1@4 g#1@4 b1@4 c#2@2 b1 ~", D: "e1 g#1 b1 c#2",
  E: "e1@2 g#1@2 b1@2 c#2 b1", F: "a1@2 c#2@2 e2@2 f#2 e2", G: "e1@3 ~@9 e1@4", H: "b1@3 ~@9 b1@4", I: "b1 ~@2 b1",
  J: "e1 ~@2 e1", K: "a1@3 ~@9 a1@4", L: "b1 ~@3", M: "e1 e2 c#2 b1", N: "e2 c#2 b1 g#1", O: "b1@2 d#2@2 f#2@2 d#2 b1",
  P: "e2@4 e1@4 f#1@4 g#1@3 ~", Q: "e1 f#1 g#1 a1", R: "b1 a1 g#1 f#1", S: "e2 e1 f#1 g#1",
  T: "b1@4 d#2@4 f#2@3 ~ g#2@2 f#2@2", U: "b1@5 ~@7 b1@4", V: "a1 ~@2 a1", W: "e1@4 g#1@4 b1@4 g#1@3 ~",
  X: "a1@2 c#2@2 e2 c#2 a1 e1", Y: "~ e2@3",
})).s("gm_electric_bass_finger").gain(0.7)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C D E F G H I J K L M I N O P Q D R S T U R I V W X Y Z D AA S J AB W AC AD N U I J AE W AF I AG N P AH AG AI AJ@2
  AK AL M@2 AM AN M@2 AG AO AF AP U AL AJ M AO AG AD I AQ K M I AG AL AR AS AT AU J AV AL AU J AW AX AY S AZ BA BB S BC
  BD AG AD BE AG BF BG BH AN BI I M BJ AL AJ BK BL ~
>`.pickRestart({
  A: "b2 ~ b2@2 a2 ~ a2@2 g#2 ~ g#2 ~ f#2 ~ f#2@2", B: "b1@7 ~@9", C: "b2 ~ b2@2 d#3@2 d#3@2 f#3@2 f#3@2 g#3@2 f#3@2",
  D: "b2 ~ b2@2 d#3 ~ d#3@2 f#3 ~ f#3@2 g#3@2 f#3@2", E: "e2 ~ e2@2 g#2 ~ g#2 ~ b2 ~ b2 ~ c#3@2 b2 ~",
  F: "e2 ~ e2@2 g#2 ~ g#2@2 b2 ~ b2 ~ c#3@2 b2 ~", G: "b2 ~ b2@2 d#3 ~ d#3@2 f#3 ~ f#3 ~ g#3@2 f#3@2",
  H: "b2 ~ b2@2 d#3 ~ d#3@2 f#3 ~ f#3@2 g#3@2 f#3 ~", I: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2 ~ c#3@2 b2 ~",
  J: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2@2 c#3@2 b2 ~", K: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3@2 f#3@2 e3 ~",
  L: "a2 ~ a2 ~ c#3@4 e3 ~ e3@2 f#3@2 e3 ~", M: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2 ~ c#3 ~ b2 ~",
  N: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3@2 g#3@2 f#3@2", O: "b2 ~ b2 ~ d#3 ~ d#3@2 f#3 ~ f#3@2 g#3@2 f#3 ~",
  P: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2 ~ c#3@2 b2@2", Q: "e3 ~@7", R: "b2 ~@5 b2@2",
  S: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2@2 c#3@2 b2@2", T: "e2@3 ~@13", U: "b2 ~ b2 ~ d#3 ~ d#3@2 f#3 ~ f#3@2 g#3@2 f#3@2",
  V: "e2@2 ~@10 e2@3 ~", W: "a2 ~ a2 ~ c#3 ~ c#3@2 e3 ~ e3@2 f#3@2 e3 ~", X: "[a2,e3] ~@7",
  Y: "~@2 e2@2 g#2 ~ g#2@2 [a2,b2] ~ b2 ~ c#3@2 b2@2", Z: "e2@3 ~@9 e2@4", AA: "b2@3 ~@13",
  AB: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3@2 f#3@2 e3@2", AC: "e2 ~ e2@2 g#2@2 g#2@2 b2 ~ b2 ~ c#3@2 b2@2",
  AD: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2@2 c#3@2 b2 ~", AE: "a2 ~ a2 ~ c#3 ~ c#3@2 e3 ~ e3 ~ f#3@2 e3 ~",
  AF: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2 ~ c#3 ~ b2 ~", AG: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ g#3 ~ f#3@2",
  AH: "e3 ~ e3 ~ c#3 ~ c#3 ~ b2 ~ g#2@2 a2@4", AI: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3@2 g#3@2 f#3 ~",
  AJ: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2 ~ c#3@2 b2 ~", AK: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ [g3,g#3]@2 f#3@2",
  AL: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ g#3@2 f#3 ~", AM: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3 ~ f#3 ~ e3@2",
  AN: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3 ~ f#3@2 e3@2", AO: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ g#3 ~ f#3 ~",
  AP: "e2 ~ e2 ~ e3 ~ e2 ~ e2 ~ e3@2 e2 ~ e2 ~", AQ: "a2 ~ a2 ~ c#3 ~ c#3@2 e3 ~ e3@2 f#3@2 e3@2",
  AR: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2@2 c#3@2 b2@2", AS: "[e2,e3] ~@7",
  AT: "b2 ~ b2@2 d#3 ~ d#3 ~ f#3 ~ f#3 ~ g#3@2 f#3 ~", AU: "[b2,f#3] ~@11 b2@4", AV: "[e2,b2] ~@5 e2@2",
  AW: "[e2,b2] ~@11 e2@3 ~", AX: "a2@2 a2 ~ c#3 ~ c#3 ~ e3 ~ e3@2 f#3@2 e3 ~", AY: "[a2,e3] ~@11 a2@4",
  AZ: "e2 ~@5 e2@2", BA: "b2 ~ b2@2 d#3 ~ d#3@2 f#3 ~ f#3@2 g#3 ~ f#3 ~", BB: "[b2,f#3] ~@5 b2@2",
  BC: "e3 ~ e3@2 c#3 ~ c#3@2 b2 ~ b2 ~ e2 ~ e2 ~", BD: "b2 ~ b2@2 d#3 ~ d#3 ~ [f3,f#3] ~ f#3 ~ g#3 ~ f#3@2",
  BE: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2@2 c#3 ~ c#3@2", BF: "b2 ~ b2@2 d#3 ~ d#3 ~ f#3@2 f#3@2 g#3@2 f#3 ~",
  BG: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2 ~ c#3@2 b2@2", BH: "e3 ~ e3@2 c#3 ~ c#3@2 b2 ~ b2@2 g#2 ~ g#2 ~",
  BI: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3 ~ f#3@2 e3 ~", BJ: "b2 ~ b2 ~ d#3 ~ d#3@2 f#3 ~ f#3 ~ g#3 ~ f#3@2",
  BK: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3 ~ f#3 ~ [e3,g#3]@2", BL: "~@4 [e2,b2]@7 ~@5",
})).s("gm_electric_guitar_jazz").gain(0.32).pan(0.3)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C@2 D@2 C@2 D@2 E F D@2 C@2 D G C H D G C H D G F I D G C H D@2 F@2 D J C@2 D@2 K F D@2 C@2 D L C@2 D@2 C@2 D@2
  F@2 D@2 C@2 D M C@2 D@2 N C D@2 F@2 D@2 O C D G C H D G C H D G F I D G C H D L C@2 D@2 C@2 D@2 F@2 D@2 C@2 L P Q ~
>`.pickRestart({
  A: "b2 ~ b2 ~ a2 ~ a2 ~ g#2 ~ g#2 ~ f#2 ~ f#2 ~", B: "b2 ~@7",
  C: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~", // B5 E B5 E B5
  D: "[e3,b3] ~ [e3,b3] ~ [e3,c#4] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,c#4] ~ [e3,b3] ~", // E5 C#m E5 C#m E5
  E: "[a2,e3] ~ [a2,e3] ~ f#3 ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5
  F: "[a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", G: "[e3,b3] ~@15",
  H: "[b2,f#3] ~@15", I: "[a2,e3] ~@15",
  J: "[e3,b3] ~ [e3,b3,d4] ~ [e3,c#4] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,c#4] ~ [e3,b3] ~", // E5 E7 C#m E5 C#m E5
  K: "a2 ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~ [a2,e3] ~ [a2,e3] ~ [a2,f#3] ~ [a2,e3] ~", // A5 D A5 D A5
  L: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5
  M: "[e3,b3] ~ [e3,b3] ~ [e3,c#4] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5 C#m E5
  N: "f#3 ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~", // B5 E B5 E B5
  O: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,g#3] ~", // B5 E B5 E
  P: "[e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,b3] ~", Q: "~ [e3,g#3]@3",
})).s("gm_electric_guitar_muted").gain(0.32).pan(0.7)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B C@2 D E F G H I J K L M N O P Q C R E S T U V W X Y Z W AA AB AC AD AE AF AG AH AI AJ AH AK AL AM AH AN AO@2 AP AQ
  AR AS AT AU AV AW AX AY@5 AZ G BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR C R BS BT C BU V W BV BW BX BY BZ
  CA CB E AA@2 CC BS CD CE BS CF CG CH CI CJ AA CK CL CM CN@2
>`.pickRestart({
  A: "[b2,b3,b4,b5] ~ [b2,b3,b4,b5] ~ [a2,a3,a4,a5] ~ [a2,a3,a4,a5] ~ [g#2,g#3,g#4,g#5] ~ [g#2,g#3,g#4,g#5] ~ [f#2,f#3,f#4,f#5] ~ [f#2,f#3,f#4,f#5] ~", // B A G# F#
  B: "b1 ~, b2@3 ~@5",
  C: "[b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~", // B G#m B G#m B
  D: "[e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~", // E5 E7
  E: "[b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~", // E7
  F: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ [b2,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~", // B5 E B5 B G#m B
  G: "[b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3,g#3] ~", // B G#m B G#m G#m7
  H: "~@2 [b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [a#3,e4] ~ [b3,e4] ~ [b3,e4] ~ [a#3,e4] ~", // E5 A#dim E5 A#dim
  I: "[b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~", // E5
  J: "[e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~", // A5
  K: "[a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~", // A5
  L: "~@2 [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~", // E5
  M: "[e4,a#4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,a#4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5]@2", // Edim E5 Edim E5
  N: "b2 ~ b2 ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,g#3,b3] ~ [b2,d#3,f#3,b3] ~", // B G#m B
  O: "b2 ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,f#3,b3] ~ [b2,d#3,g#3,b3] ~ [b2,d#3,f#3,b3] ~", // B G#m B
  P: "b2 ~ [e3,b3] ~ [e3,b3] ~ [b2,e3,b3] ~ [b2,e3,b3] ~ [b2,e3,b3] ~ [b2,e3,b3] ~ [b2,e3,b3] ~", Q: "[b2,e3,b3] ~@15",
  R: "[b2,d#3,f#3] ~@15", S: "[b3,d4] ~@15, e4 ~@7",
  T: "[f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [f#3,b3,d#4] ~ [g#3,b3,d#4] ~ [f#3,b3,d#4] ~", // B G#m B
  U: "[f#3,b3,d#4] ~@15", // B
  V: "[e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~", // E7
  W: "[e4,b4,d5,e5] ~@15", // E7
  X: "[a4,d#5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,d#5,a5] ~ [a4,e5,a5] ~ [a4,e5,a5] ~ [a4,d#5,a5] ~ [a4,e5,a5] ~", // Adim A5 Adim A5 Adim A5
  Y: "[a4,e5,a5] ~@15", // A5
  Z: "[b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~ [e4,b4,d5,e5] ~", // E7
  AA: "[b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,g#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,g#4] ~ [b3,d#4,f#4] ~", // B G#m B G#m B
  AB: "[b3,d#4,f#4] ~@15", // B
  AC: "[e3,a#3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,a#3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~", // Edim E5 Edim E5
  AD: "e3 ~ [e3,e5] b4 [e3,e4] e5 [e3,b4] e4 [e3,e5] b4 [e3,e4] ~ [e3,b4] e4 e3@2, ~@11 e5@2 ~@3", // E E5 E E5
  AE: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A
  AF: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4] ~", // A A5
  AG: "[b3,e4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~", // E5
  AH: "[b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~", // E5
  AI: "b3@2 [f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~", // B5
  AJ: "[b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~", // B5
  AK: "[b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [b3,e4,b4] ~ [g5,a5,b5,c6] [d5,e5,f5] [g4,a4,b4,c5] [c4,d4,e4,f4,g4,a4]", // E5 Cmaj7 Dm Cmaj7 Dm7
  AL: "[a3,b3,d4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~", // Bm7 A5
  AM: "[a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,d#4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~", // A5 Adim A5
  AN: "~@2 [a4,b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~", // Asus4 E7
  AO: "[f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~ [f#4,b4,d#5] ~", // B
  AP: "[e4,f4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~", // E E5
  AQ: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [g5,a5,b5] [d5,e5,f5] [a4,b4,c5] [e4,f4,g4,a4] [c4,d4] [g3,a3,b3] f3 ~", // E5 G Dm Am Fmaj7 Csus2 G
  AR: "b2 ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~", // B G#m B G#m B
  AS: "[b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~ [b2,d#3,f#3] ~", // B G#m B
  AT: "[b2,e3,g#3] ~ [b2,e3,g#3] ~ [b2,e3,g#3] ~ [b2,e3,g#3] ~ [b2,e3,g#3] ~ [b2,e3,g#3] ~ [b2,e3,g#3] ~ [b2,e3,g#3] ~", // E
  AU: "[b2,e3,g#3] ~ [b2,b3,e4] ~ [b2,b3,c4,d4,e4] ~ [b2,b3,d4,e4] ~ [b2,b3,d4,e4] ~ [b2,b3,d4,e4] ~ [b2,b3,d4,e4] ~ [b2,b3,d4,e4] ~", // E E5 Cmaj7 E7
  AV: "b2 ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,g#3,b3] ~ [b2,f#3,b3] ~", // B5 E B5
  AW: "[b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3] b3 [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,g#3,b3] f#3 [b2,f#3,b3] ~", // B5 E B5
  AX: "e3 ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~", // E7
  AY: "[[e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [d4,e4]@2 b1 [c2,d2,e2] [f2,g2,a2,c3] [d3,e3] [f3,g3,a3,e4] a4 [e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,d#4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,d#4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [a3,e4,a4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4] ~ [e3,b3] ~ [e3,b3] ~ [e3,c#4] ~ [e3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,b3] ~ [e3,g#3,c#4] ~ [e3,g#3,b3] ~, ~@10 [e3,b3] ~@3 b2@66]/5", // E7 Dsus2 C F Dsus2 Fmaj7 A5 Adim …
  AZ: "[b2,f#3] ~ [b2,f#3] ~ [b2,g#3] ~ [b2,f#3] ~ b2 ~ [b2,d#3,f#3] ~ [b2,d#3,g#3] ~ [b2,d#3,f#3] ~", // B5 E B5 B G#m B
  BA: "[e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3,f#3] ~ [e2,b2,e3,f#3] ~ a1 [b1,c2] [d2,e2,f2] [g2,a2,b2] [c3,d3,e3,f3,g3] [a3,b3,c4,d4,e4]", // E5 Esus2 Cmaj7 Dm G C Am
  BB: "[f4,g4] ~@2 [d2,e2,f2] [g2,a2,b2,c3] [d3,e3,f3,g3] [a3,b3,c4] [d4,e4,f4,g4,a4] [b4,c5,d5,e5,f5] [g5,a5] [d5,e5,f5] [a4,b4,c5] [e4,f4,g4] [a3,b3,c4,d4] [e3,f3,g3] [b2,c3,d3,a#4]", // Fsus2 Dm Cmaj7 Em7 Am Dm Bdim Gsus2 …
  BC: "[e2,f2,g2,a2] [d2,f#4,a4,b4] [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~", // Fmaj7 Bm7 B7
  BD: "[f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4,b4] ~ [f#4,a4]@2 ~ [f#4,a4,b4]@2 ~ [f#4,a4,b4] ~, ~@8 b4 ~@7", // B7 F#m B7
  BE: "b4 d5 e5 b4 d5 e5 b4 d5 g5 e5 d5 e5 d5 b4 a4 g4", BF: "a4 g4 e4 g4 e4 d4 e4 d4 b3 d4 b3 a3 g3@2 ~@2",
  BG: "~@2 [f#4,a4,b4] ~ [f#4,a4,b4] ~@3 [f#4,a4,b4] ~ [f#4,a4,b4] ~@5", // B7
  BH: "[f#4,a4,b4] ~ [f#4,a4,b4] ~@3 [f#4,a4,b4]@2 ~@2 [f#4,a4,b4]@2 ~@2 [d4,g4] ~", // B7 G5
  BI: "[d4,g4] ~ d4@2 [b3,e4] ~ d4 ~ [d4,g4] ~ [d4,g4]@2 [b3,e4] ~ [a3,d4] ~, ~@2 g4 ~@13", // G5 E5 G5 E5 D5
  BJ: "[d4,g4] ~ d4@2 [b3,e4] ~ [a3,d4] ~ e4@2 d4@2 b3@3 ~, ~@2 g4 ~@5 b3 ~@7", // G5 E5 D5
  BK: "d#4 [d#4,e4] a4 d#4 [d#4,e4] a4 d#4 [d#4,e4] a4 d#4 [d#4,e4] a4 d#4 e4 d#4!2, ~@7 a4", // Emaj7
  BL: "~ d#4 e4 g4 a4 c5 a4 g4 a4 g4 e4 g4 e4 d4 e4@2", BM: "~@2 g3@2 g#3 ~ [b3,e4]@2 ~@2 e4@2 ~@2 g4@2, ~@10 b3 ~@5",
  BN: "g#4 ~ [b4,e5]@2 ~@2 [b4,e5]@5 ~@5", // E5
  BO: "[b4,b5] b2 [b4,b5] b2 [a4,a5] b2 [a4,a5] b2 [g#4,g#5] b2 [g#4,g#5] b2 [f#4,f#5] b2 [f#4,f#5] b2", // B A G# F#
  BP: "[b3,c4,b4] b2 [b3,b4] b2 [a3,a4] b2 [a3,a4] b2 [g#3,g#4] b2 [g#3,g#4] b2 [f#3,f#4] b2 [f#3,f#4] b2", // Cmaj7 B A G# F#
  BQ: "e3 ~@3 g2@2 g#2@2 ~@4 g#2@2 ~@2, ~ [b2,e3]", BR: "e2@3 ~@13",
  BS: "[e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~", // E7
  BT: "[e3,b3,d4,e4] ~@15", BU: "[b2,d#3,f#3] ~@7",
  BV: "d#4 e4 a4 d#4 [d#4,e4] a4 d#4 [d#4,e4] a4 d#4 [d#4,e4] a4 d#4 [d#4,e4] a4 ~", BW: "[a3,e4,a4] ~@7",
  BX: "[b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~ [b4,d5,e5] ~", // E7
  BY: "[b4,d5,e5] ~@15", // E7
  BZ: "[b3,f#4,a4] ~ [b3,f#4,a4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4] ~ b3 ~", // B7 E B
  CA: "b2 ~@7, b3 ~@15",
  CB: "[e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~ [e2,b3,d4,e4] ~", // E7
  CC: "[a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [b3,d4,e4] ~ [e3,b3,d4,e4] ~", // Asus4 E7
  CD: "[f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,g#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,g#4] ~ [f#3,b3,d#4,f#4] ~", // B G#m7 B G#m7 B
  CE: "[f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,g#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~ [f#3,b3,d#4,f#4] ~", // B G#m7 B
  CF: "[e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [e3,b3,d4,e4] ~ [b3,d4,e4] ~ [a5,b5] [e5,f5,g5] [c5,d5] [g4,a4,b4] [e4,f4,a4] [c4,d4] ~@2, ~@3 e3 ~@4", // E7 Asus2 Em Csus2 G Fmaj7 Csus2
  CG: "d#4 e4 a4 d#4 e4 a4 d#4 e4 a4 d#4 e4 a4 [d#4,e4] d#4 a4 d#4", // Emaj7
  CH: "e4 ~ [a3,b3] e4 ~ a3 e4 ~ a3 e4 ~ [a3,b3] e4 a4 ~@2, ~ a4@2 ~ a4@2 ~ a4@2 ~ a4@2 ~@4", // Asus2
  CI: "~@2 [e4,a4,b4,e5] ~ [e4,a4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~", // Esus4 E5
  CJ: "[e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~ [e4,b4,e5] ~", // E5
  CK: "[b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [b3,d#4,f#4] ~ [d#3,f#3,b3] ~ [d#3,f#3,b3] ~ [d#3,f#3,b3] ~ [d#3,f#3,b3] ~ [f#3,b3] ~", // B B5
  CL: "[e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4,f#4] ~ [e3,b3,e4] ~ [e3,e4] ~", // E5 Esus2 E5 E
  CM: "[a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~ [a3,c#4,e4,g4,a4] g#4 [a3,c#4,e4,g4,a4] ~ [a3,c#4,e4,g4,a4] ~ [a3,c#4,e4,g4,a4] ~ [a3,c#4,e4,a4] ~ [e3,b3,e4,g#4] ~", // A A7 A E
  CN: "[~@5 [g#4,f#5]@20 ~@7, ~@5 c#5@18 ~@9]/2", // G#7
})).s("gm_piano").gain(0.5).pan(0.4)

// chords · percussive organ · "ELEC ORGAN"
const percussive_organ = note(`<
  ~ A B C D E F G H I J K D L B M N O P Q R O S T U O V W R X Y Q ~ Z AA AB AC AD AE AF AG AH AI AJ AC L B AF AK AL AM
  AN AO AD AP AQ AR AH AI AJ AS AT AU AV AS AW ~@31 A AX AF AY L AX AZ AD BA BB AJ AD BC AU BD BE BF BG ~
>`.pickRestart({
  A: "~@7 d4", B: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@5 d4@2", C: "d#4@2 [f#4,b4] ~@5 b4@2 ~@4 g4 ~, ~@8 f#4 ~@7",
  D: "g#4 e5 ~@2 e5 ~@2 g4, ~@2 b4 ~@5 b4 ~@7", E: "g#4@2 [b4,e5] ~@5 [b4,e5]@2 ~@4 d4@2",
  F: "d#4 ~ b4@2 ~@4 b4@2 ~@4 d4@2, ~@2 f#4 ~@5 f#4 ~@7", G: "d#4 b4 ~@2 b4 ~@2 g4, ~@2 f#4 ~@5 f#4 ~@7",
  H: "g#4@2 e5@2 ~@4 [b4,e5]@2 ~@4 g4 ~, ~@2 b4 ~@13", I: "g#4@2 [b4,e5] ~@5 [b4,e5]@2 ~@4 c4 ~",
  J: "c#4@2 [e4,a4] ~@5 [e4,a4]@2 ~@4 c4@2", K: "c#4@2 [e4,a4] ~@5 [e4,a4] ~@5 g4 ~",
  L: "g#4@2 [b4,e5] ~@5 [b4,e5] ~@5 d4@2", M: "d#4@2 [f#4,b4] ~@5 b4@2 ~@4 g4@2, ~@8 f#4 ~@7",
  N: "g#4@2 e5@2 c#5@2 ~@2 b4 ~@3 g#4@2 f#4 ~, ~@2 b4 ~@13", O: "e4 ~@7",
  P: "b3 ~ b3 ~ g#3 ~ f#3 ~ b3 ~ b3 ~ g#3 ~ f#3 ~", Q: "b3 ~@15", R: "e4 ~ e4 ~ c#4 ~ b3 ~ e4 ~ e4 ~ c#4 ~ b3 ~",
  S: "b3 ~ b3 ~ g#3@2 f#3 ~ b3 ~ b3 ~ g#3 ~ f#3 ~", T: "b3 ~@7", U: "e4 ~ e4@2 c#4@2 b3 ~ e4 ~ e4 ~ c#4@2 b3 ~",
  V: "a3 ~ a3 ~ f#3@2 e3@2 a3@2 a3@2 f#3 ~ e3@2", W: "a3 ~@7", X: "e4 ~@15", Y: "b3 ~ b3 ~@3 b3 ~ b3 ~ b3 ~@3 b3 ~",
  Z: "~@7 c4", AA: "c#4@2 [e4,a4] ~@5 [e4,a4] ~@5 c4@2", AB: "c#4@2 [e4,a4] ~@5 a4@2 ~@4 g4@2, ~@8 e4 ~@7",
  AC: "g#4@2 [b4,e5] ~@5 [b4,e5] ~@5 g4 ~", AD: "g#4@2 [b4,e5] ~@5 [b4,e5] ~@7",
  AE: "~@2 [f#4,b4] ~@5 [f#4,b4] ~@5 d4 ~", AF: "d#4 ~ [f#4,b4] ~@5 [f#4,b4] ~@5 g4@2",
  AG: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@5 g4@2", AH: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@5 c4@2",
  AI: "c#4 ~ [e4,a4] ~@5 [e4,a4] ~@5 c4@2", AJ: "c#4@2 [e4,a4] ~@5 [e4,a4] ~@5 g4@2",
  AK: "g#4 ~ e5@2 ~@4 e5@2 ~@6, ~@2 b4 ~@5 b4 ~@7", AL: "e5 ~ e5 ~ c#5 ~ c#5 ~ b4 ~ b4 ~ g#4 ~@3",
  AM: "~@2 b4 ~@5 b4 ~@5 d4 ~", AN: "d#4 ~ [f#4,b4] ~@5 [f#4,b4] ~@5 g4 ~", AO: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@5 g4 ~",
  AP: "~@2 [f#4,b4] ~@5 [f#4,b4] ~@5 d4@2", AQ: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@7",
  AR: "~@2 [b4,e5] ~@5 [b4,e5] ~@5 g4@2", AS: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@7",
  AT: "~@2 e5@2 ~@4 [b4,e5] ~@5 d4 ~, ~@2 b4 ~@13", AU: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@5 d4 ~",
  AV: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@6 g4", // B5
  AW: "~@2 [d5,e5] c5 [a4,b4] [f4,g4] e4 [c4,d4] [a3,b3] [f3,g3] [e3,g3] [c3,d3] b2 [g2,a2] f2 [d2,e2]", // Dsus2 Asus2 Fsus2 Csus2 Asus2 Fsus2 Em Csus2 …
  AX: "d#4 ~ [f#4,b4] ~@5 [f#4,b4] ~@5 d4@2", AY: "g#4@2 [b4,e5] ~@5 [b4,e5] ~@5 g4@2",
  AZ: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@5 g4@2", BA: "[b4,e5] ~@5 [b4,e5] ~@7 c4@2",
// … 61 more lines

More by Chuck Berry