Strudelify
Sweet Little Sixteen cover art

Chuck Berry

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

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B@2 C D B@2 C@2 E@2 C D B@2 C F B G C F B H C F E I C F B J C K E@2 C D B@2 C K E@2 C D B@2 C L B M C D B M C N
  E@2 C O B P C N B@2 C L Q B C N E@2 C O B P C F B H C F B H C F E I C F B J C N B@2 C O B@2 C N E@2 C L B P R S T ~
>`.pickRestart({
  A: "b1@3 ~@9 b1@2 ~@2", B: "b1@2 d#2@2 f#2@2 g#2 f#2", C: "e1@2 g#1@2 b1@2 c#2 b1", D: "e1 g#1 b1 c#2",
  E: "a1@2 c#2@2 e2@2 f#2 e2", F: "e1@3 ~@9 e1@4", G: "b1@3 ~@9 b1@4", H: "b1 ~@2 b1", I: "a1@3 ~@9 a1@4", J: "b1 ~@3",
  K: "e1 e2 c#2 b1", L: "e2 c#2 b1 g#1", M: "b1@2 d#2@2 f#2@2 d#2 b1", N: "e2 e1 f#1 g#1", O: "e1 f#1 g#1 a1",
  P: "b1 a1 g#1 f#1", Q: "b1@4 d#2@4 f#2@3 ~ g#2@2 f#2@2", R: "e1@4 g#1@4 b1@4 g#1@3 ~", S: "a1@2 c#2@2 e2 c#2 a1 e1",
  T: "~ e2@3",
})).s("gm_electric_bass_finger").gain(0.7)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  A B C@2 D E F C E@2 G H E@2 F@2 E I C J E K L J E M G N O M C P E@2 G@2 D E F@2 E@2 G@2 E@2 F L E Q F R E@2 S F E@2 G
  T E@2 F@2 E U V L E@2 F@2 E@2 G@2 E@2 F L E W L X E Y L X E Z AA AB AC M C AD E AE AF F E AG F L E AH G@2 E@2 F@2 E AI
  AJ ~
>`.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 ~ d#3@2 f#3 ~ f#3@2 g#3@2 f#3@2",
  D: "e2 ~ e2@2 g#2 ~ g#2 ~ b2 ~ b2 ~ c#3@2 b2 ~", E: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2 ~ c#3@2 b2 ~",
  F: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ g#3 ~ f#3@2", G: "a2 ~ a2 ~ c#3 ~ c#3@2 e3 ~ e3@2 f#3@2 e3 ~",
  H: "a2 ~ a2 ~ c#3@4 e3 ~ e3@2 f#3@2 e3 ~", I: "e3 ~@7", J: "b2 ~@5 b2@2", K: "e2@3 ~@13",
  L: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ g#3@2 f#3 ~", M: "e2@2 ~@10 e2@3 ~", N: "[a2,e3] ~@7",
  O: "~@2 e2@2 g#2 ~ g#2@2 [a2,b2] ~ b2 ~ c#3@2 b2@2", P: "b2@3 ~@13", Q: "e3 ~ e3 ~ c#3 ~ c#3 ~ b2 ~ g#2@2 a2@4",
  R: "b2 ~ b2 ~ d#3 ~ d#3@2 f#3 ~ f#3@2 g#3@2 f#3 ~", S: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3 ~ [g3,g#3]@2 f#3@2",
  T: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3 ~ f#3@2 e3@2", U: "e2 ~ e2 ~ e3 ~ e2 ~ e2 ~ e3@2 e2 ~ e2 ~",
  V: "b2 ~ b2 ~ d#3 ~ d#3 ~ f#3 ~ f#3@2 g#3@2 f#3@2", W: "[e2,e3] ~@7", X: "[b2,f#3] ~@11 b2@4", Y: "[e2,b2] ~@5 e2@2",
  Z: "[e2,b2] ~@11 e2@3 ~", AA: "a2@2 a2 ~ c#3 ~ c#3 ~ e3 ~ e3@2 f#3@2 e3 ~", AB: "[a2,e3] ~@11 a2@4",
  AC: "e2 ~ e2 ~ g#2 ~ g#2@2 b2 ~ b2@2 c#3@2 b2@2", AD: "[b2,f#3] ~@5 b2@2",
  AE: "e3 ~ e3@2 c#3 ~ c#3@2 b2 ~ b2 ~ e2 ~ e2 ~", AF: "b2 ~ b2@2 d#3 ~ d#3 ~ [f3,f#3] ~ f#3 ~ g#3 ~ f#3@2",
  AG: "e2 ~ e2 ~ g#2 ~ g#2 ~ b2 ~ b2@2 c#3 ~ c#3@2", AH: "e3 ~ e3@2 c#3 ~ c#3@2 b2 ~ b2@2 g#2 ~ g#2 ~",
  AI: "a2 ~ a2 ~ c#3 ~ c#3 ~ e3 ~ e3 ~ f#3 ~ [e3,g#3]@2", AJ: "~@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 R V W BU BV BW BX BY
  BZ CA E AA@2 CB BS CC CD BS CE CF CG CH CI AA CJ CK CL CM@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: "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 ~",
  BV: "[a3,e4,a4] ~@7", // A5
  BW: "[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
  BX: "[b4,d5,e5] ~@15", // E7
  BY: "[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
  BZ: "b2 ~@7, b3 ~@15",
  CA: "[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
  CB: "[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
  CC: "[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
  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,f#4] ~ [f#3,b3,d#4,f#4] ~", // B G#m7 B
  CE: "[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
  CF: "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
  CG: "e4 ~ [a3,b3] e4 ~ a3 e4 ~ a3 e4 ~ [a3,b3] e4 a4 ~@2, ~ a4@2 ~ a4@2 ~ a4@2 ~ a4@2 ~@4", // Asus2
  CH: "~@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
  CI: "[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
  CJ: "[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
  CK: "[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
  CL: "[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
  CM: "[~@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 B C D F G H D E B C I J K L M J K L M J N O M J P L ~ Q R H D S T U V W R H D E B U S X Y U Z S T AA AB W
  R H S AC B AD AE AF ~@31 A B U Z E B C S AG R H S AH B AA AI AJ AK ~
>`.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] ~@5 d4@2",
  F: "g#4@2 [b4,e5] ~@5 [b4,e5]@2 ~@4 c4 ~", G: "c#4@2 [e4,a4] ~@5 [e4,a4]@2 ~@4 c4@2",
  H: "c#4@2 [e4,a4] ~@5 [e4,a4] ~@5 g4@2", I: "g#4@2 e5@2 c#5@2 ~@2 b4 ~@3 g#4@2 f#4 ~, ~@2 b4 ~@13", J: "e4 ~@7",
  K: "b3 ~ b3 ~ g#3 ~ f#3 ~ b3 ~ b3 ~ g#3 ~ f#3 ~", L: "b3 ~@15", M: "e4 ~ e4 ~ c#4 ~ b3 ~ e4 ~ e4 ~ c#4 ~ b3 ~",
  N: "a3 ~ a3 ~ f#3@2 e3@2 a3@2 a3@2 f#3 ~ e3@2", O: "a3 ~@7", P: "b3 ~ b3 ~@3 b3 ~ b3 ~ b3 ~@3 b3 ~", Q: "~@7 c4",
  R: "c#4 ~ [e4,a4] ~@5 [e4,a4] ~@5 c4@2", S: "g#4@2 [b4,e5] ~@5 [b4,e5] ~@7", T: "~@2 [f#4,b4] ~@5 [f#4,b4] ~@5 d4 ~",
  U: "d#4 ~ [f#4,b4] ~@5 [f#4,b4] ~@5 g4@2", V: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@5 g4@2",
  W: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@5 c4@2", X: "e5 ~ e5 ~ c#5 ~ c#5 ~ b4 ~ b4 ~ g#4 ~@3", Y: "~@2 b4 ~@5 b4 ~@5 d4 ~",
  Z: "g#4@2 [b4,e5] ~@5 [b4,e5] ~@5 g4 ~", AA: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@7",
  AB: "~@2 [b4,e5] ~@5 [b4,e5] ~@5 g4@2", AC: "~@2 e5@2 ~@4 [b4,e5] ~@5 d4 ~, ~@2 b4 ~@13",
  AD: "d#4@2 [f#4,b4] ~@5 [f#4,b4] ~@6 g4", AE: "g#4 ~ [b4,e5] ~@5 [b4,e5] ~@7",
  AF: "~@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 …
  AG: "[b4,e5] ~@5 [b4,e5] ~@7 c4@2", AH: "[b4,e5] ~@5 [b4,e5] ~@7 d4@2", AI: "~@2 [b4,e5] ~@5 [b4,e5] ~@7",
  AJ: "[a4,e5] ~@5 [a4,e5] ~@7 [b4,e5] ~", AK: "~@5 e4@9 ~@2",
})).s("gm_percussive_organ").gain(0.36).pan(0.6)

// chords · synth strings 1 · "SYN STRING"
const synth_strings_1 = note(`<
  A B@7 C@8 D@2 E F@3 E ~ G ~ H@2 G ~ E ~ G I@5 J@6 K@6 L@5 M@5 N@8 O@2 P Q@8 ~ D@2 R@2 S@2 E ~ G ~ H@2 G ~ E ~ T@6 P
  U@5 V@6 W ~
>`.pickRestart({
  A: "b4@4 a4@4 g#4@4 f#4@3 ~",
  B: "[b3@4 ~@11 [d#4,f#4]@32 [e4,g#4]@32 ~@29 b4@4, ~@15 b4@89 ~@8, ~@79 [d#4,f#4]@33]/7", // D#m E D#m
  C: "[g#4@29 ~@3 a4@31 g#4@30 ~@3 d#4@30 ~@2, e4@94 ~ f#4@32 ~, ~@31 c#5@32 b4@65]/8", D: "[[e4,g#4]@9 ~@7]/2",
  E: "[d#4,f#4,b4]", F: "[~@8 [e4,g#4]@9 ~@7, ~@5 b4@6 ~@5]/3", G: "[e4,g#4,b4]", H: "[[e4,a4,c#5]@9 ~@7]/2",
  I: "[~ [g#4,b4] [a4,c#5]@4 b4@4, ~@8 e4@71 ~, ~@24 g#4@15 ~]/5", // G#m A
  J: "[~@32 g#4@29 ~@3 c#5@32, f#4@32 ~@31 a4@32 ~, d#4@15 ~ e4@32, ~@11 b4@53 ~@32]/6",
  K: "[g#4@28 ~@4 [d#4,f#4]@31 g#4@13 ~@3 e5@12 ~@5, b4@77 ~@19, ~@63 e4@31 ~@2]/6", // D#m
  L: "[f#4@31 ~ [e4,g#4]@31 [d#4,f#4]@17, b4, d#4@29 ~@51]/5", M: "[~@15 g#4@30 ~@2 [a4,c#5]@33, ~@3 e4@13]/5",
  N: "[g#4@29 ~@3 d#4@30 ~@2 [e4,g#4]@31 ~ [d#4,f#4]@31 e4, b4, ~@31 f#4@32 ~@65]/8", O: "g#4/2", P: "[d#4,f#4]",
  Q: "[~@15 g#4@30 ~@3 a4@31 g#4@28 ~@5 f#4@16, ~@15 e4@95 ~ d#4@17, ~@47 c#5@32 b4@49]/8", R: "[[d#4,f#4,b4]@9 ~@7]/2",
  S: "[[e4,g#4,b4]@9 ~@7]/2", T: "[[e4,g#4]@30 ~ [d#4,f#4]@31 ~ [e4,g#4]@32 ~, b4]/6",
  U: "[~@16 g#4@29 ~@3 [a4,c#5]@32, ~@3 e4@13]/5", // A
  V: "[g#4@28 ~@4 [d#4,f#4]@31 ~ g#4@15 [c#4,a4]@14 ~ b3@2, b4@79 ~@14 g#4@2 ~, ~@2 e4]/6", W: "~@4 [b3,e4,g#4]@9 ~@3",
})).s("gm_synth_strings_1").gain(0.22)

// drums · kick
const kick = s("bd").struct(`<
// … 34 more lines

More by Chuck Berry