Strudelify

The Beach Boys Medley

The Beach Boys

KeyE majorTempo140 bpm
0:00/0:00
// The Beach Boys Medley — The Beach Boys
// 140 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 8 "FLUTE" named as a pipe, played on flute (its harmonica patch is not one)
// note: Full arrangement: all 190 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/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(`<
  ~@12 A@2 B@2 C@2 D E F G H I J K J L M N M O P@4 Q R Q@2 S R Q S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM
  AN AO AP AQ AR AS AT AU AV AW ~@2 AX AY AZ BA BB BC AZ BD BE BF AX BG BH@4 BI@2 BH@2 BJ BK BL BM BN BO BP BQ BR BS BT
  BU BV BS BT BW BU BX BS BY BU BY BZ CA CB ~@4 CC CD CE CF CG CH CI CJ CK CL CM CN CO ~ CP CQ CR CS CT ~ CU CV CT ~ CR
  CV CP CW CX CY CZ DA CX CY DB DC DD DE DF DG DH DI DJ DK DL DM DJ DN DH DI DJ DK DL DM DJ DN DH DO DP@7
>`.pickRestart({
  A: "[e2@41 ~@7]/2", B: "[d2@41 ~@7]/2", C: "[c2@41 ~@7]/2", D: "b1@4 ~@2 d#2@5 ~ f#2@5 ~ d#2@5 ~",
  E: "a2@6 g2@5 ~ f#2@5 ~ e2@5 ~", F: "~@6 b1@6 d2@6 e2@5 ~", G: "f2@6 e2@6 d2@3 ~ d2@2 e2@6",
  H: "g1@6 b1@6 d2@6 e2@5 ~", I: "f2@3 e2@3 d2@2 d2 e2@3", J: "a1@6 c#2@6 e2@6 f#2@5 ~",
  K: "g2@6 f#2@6 e2@3 ~ e2@2 f#2@6", L: "g2@3 f#2@3 e2@2 e2 f#2@3", M: "b1@6 d#2@6 f#2@6 g#2@5 ~",
  N: "a2@6 g#2@5 ~ f#2@3 ~ f#2@2 g#2@5 ~", O: "a2@6 g#2@5 ~ f#2@4 f#2@2 g#2@5 ~", P: "~ g1 ~ g1",
  Q: "g#2 ~ g#2 ~ g#2 ~ f2@2 ~@2 c2 ~ d#2@2 ~@2 d#2 ~ c#2@2 ~@2 c2 ~",
  R: "c#2 ~ c#2 ~ c#2 ~ a#1@2 ~@2 f1 ~ g#1@2 ~@2 g#1 ~ f#1@2 ~@2 f1 ~",
  S: "g#2 ~ g#2 ~ g#2 ~ f2@2 ~@2 c2 ~ d#2@2 ~@2 d#2 ~ c#2@3 ~ c2 ~", T: "g#1@2 ~ g#1@2 ~ g#1@2 ~ g#1@2 ~",
  U: "g#1@4 ~@2 g#1@4 ~@2 g#1@4 ~@2 g#1@5 ~", V: "c2@2 ~ c2@2 ~ c2@2 ~ c2@2 ~", W: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~",
  X: "a#1@4 ~@2 a#1@4 ~@2 a#1@5 ~ a#1@4 ~@2", Y: "d#1@2 ~ d#1@2 ~ d#1@2 ~ d#1@2 ~", Z: "g#1 ~@5", AA: "~@21 a1@2 ~",
  AB: "a#1@3 ~@6 d2@3 d#2@3 ~@7 a1@2", AC: "a#1@3 ~@6 d#2@2 ~@4 d#2@2 ~@4 a1@2 ~",
  AD: "a#1@3 ~@6 d2@2 ~ d#2@3 ~@6 a1@2 ~", AE: "~ a#1@3 ~@5 d#2@2 ~@3 d#2@2 ~@2 f2@2 g2@2 ~@2",
  AF: "g#2@5 ~ a#2@2 g#2@3 ~ a#2@3 c3@4 ~ g#2@3 ~", AG: "d#3@2 c3@2 ~@2 f3@2 ~ d#3@6 c3@2 ~ a#2@2 ~ g#2@2 ~",
  AH: "a#1@4 ~@5 d2@3 d#2@4 ~@6 a1@2", AI: "a#1@3 ~@6 d#2@3 ~@3 d#2@3 ~@3 a1@2 ~",
  AJ: "a#1@3 ~@6 d2@3 d#2@3 ~@6 a1@2 ~", AK: "a#1@3 ~@6 d#2@4 ~@3 d#2 ~@2 d#2 ~@2 d#2 ~",
  AL: "g#1@2 ~ g#1@2 ~ g#1@2 ~ g#1 ~@2 g#1@2 ~ g#1 ~@2 g#1@2 ~ g#1@2 ~",
  AM: "g#1@2 ~ g#1@2 ~ g#1 ~@2 g#1@2 ~ g#1@2 ~ g#1 ~@2 g#1@2 ~ g#1@2 ~",
  AN: "f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~",
  AO: "f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~",
  AP: "a#1@2 ~ a#1@2 ~ a#1@2 ~ a#1 ~@2 a#1@2 ~ a#1 ~@2 a#1@2 ~ a#1@2 ~",
  AQ: "a#1@2 ~ a#1@2 ~ a#1 ~@2 a#1@2 ~ a#1@2 ~ a#1@2 ~ a#1@2 ~ a#1@2 ~",
  AR: "f#1@2 ~ f#1@2 ~ f#1@2 ~ f#1 ~@2 f#1@2 ~ f#1 ~@2 f#1@2 ~ f#1@2 ~",
  AS: "d#2@2 ~ d#2@2 ~ d#2 ~@2 d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~ d#2@2 ~",
  AT: "f2 ~@2 f2@2 ~ f2@2 ~ f2 ~@2 f2 ~@2 f2 ~@2 f2@2 ~ f2@2 ~",
  AU: "f2@2 ~ f2@2 ~ f2 ~@2 f2@2 ~ f2 ~@2 f2@2 ~ f2@2 ~ f2 ~@2",
  AV: "d#2@2 ~ d#2@2 ~ d#2 ~@2 d#2@2 ~ d#2@2 ~ d#2 ~@2 d#2@2 ~ d#2@2 ~", AW: "g#1",
  AX: "g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2",
  AY: "g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2",
  AZ: "g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~",
  BA: "g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~@2",
  BB: "c#2@2 ~ c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2 ~@2",
  BC: "c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2@2 ~ c#2 ~@2 c#2 ~@2 c#2 ~@2 c#2@2 ~",
  BD: "g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1 ~@2",
  BE: "d#2@2 ~ d#2 ~@2 d#2 ~@2 d#2 ~@2 d#2 ~@2 d#2 ~@2 d#2 ~@2 d#2 ~@2",
  BF: "c#2 ~@2 c#2@2 ~ c#2 ~@2 c#2 ~@2 d#2@2 ~ d#2@7 ~@2",
  BG: "g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~", BH: "a1@5 ~ c#2@5 ~ e2@6 d2@2 ~ c#2@2 ~",
  BI: "d1@5 ~ f#1@5 ~ a1@6 g1@2 ~ f#1@2 ~", BJ: "e2@17 ~ e2@4 ~@2", BK: "d2@11 ~", BL: "b1@4 ~@9 b1@5 ~@6",
  BM: "e2@5 ~@3", BN: "~@18 b1 ~ c#2 ~ d#2 ~", BO: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~ g#1 ~",
  BP: "c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ g#1 ~ g#1 ~ g#1 ~ c#2 ~ c#2 ~ c#2 ~",
  BQ: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", BR: "b1@16 ~@2 b1 ~ c#2 ~ d#2 ~",
  BS: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ b1 ~",
  BT: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ c#2 ~ b1 ~ b1 ~ b1 ~ b1 ~ c#2 ~ d#2 ~",
  BU: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ f#2 ~ e2 ~ d2 ~ c#2 ~ b1 ~",
  BV: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  BW: "e2 ~ e2 ~ e2 ~ e2 ~ f#1 ~ g#1 ~ a1 ~ a1 ~ a1 ~ a1 ~ g#1 ~ f#1 ~",
  BX: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
  BY: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ d#2 ~",
  BZ: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  CA: "f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ f#2 ~ c#2 ~",
  CB: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~ c#2 ~",
  CC: "f#1@2 ~ f#1@3 a#1@2 ~ a#1@2 ~ c#2@2 ~ c#2@2 ~ d#2@2 ~ d#2 ~@2",
  CD: "e2@2 ~ e2@2 ~ d#2 ~@2 d#2@2 ~ c#2 ~@2 c#2 ~@2 a#1@2 ~ a#1@2 ~",
  CE: "b1@2 ~ b1@3 d#2@2 ~ d#2@2 ~ f#2@2 ~ f#2@2 ~ g#2 ~@2 g#2 ~@2",
  CF: "a2@2 ~ a2@2 ~ g#2 ~@2 g#2@2 ~ f#2 ~@2 f#2 ~@2 d#2@2 ~ d#2 ~@2",
  CG: "f#1@2 ~ f#1@3 a#1@2 ~ a#1@2 ~ c#2@2 ~ c#2@2 ~ d#2@2 ~ d#2@2 ~",
  CH: "e2@2 ~ e2@2 ~ d#2 ~@2 d#2@2 ~ c#2@2 ~ c#2@2 ~ a#1@2 ~ a#1 ~@2", CI: "c#2@17 ~ g#2@5 ~", CJ: "b1@5 ~",
  CK: "f#1@2 ~ f#1@3 a#1@2 ~ a#1@2 ~ c#2@2 ~ c#2@2 ~ d#2 ~@2 d#2 ~@2",
  CL: "e2@2 ~ e2@2 ~ d#2 ~@2 d#2@2 ~ c#2 ~@2 c#2 ~@2 a#1@2 ~ a#1 ~@2",
  CM: "f2@2 ~ f2@2 ~ g2@2 ~ g2@2 ~ g#2@2 ~ g#2@2 ~ g2@2 ~ g2@2 ~", CN: "f2 ~@5",
  CO: "a#1@3 a#1@3 d2@2 ~ d2@2 ~ f2@2 ~ f2@2 ~ d2@2 ~@2 a#1@2, ~@21 d2@2 ~",
  CP: "d#2@3 d#2@3 g2@2 ~ g2@2 ~ a#2@2 ~ a#2@2 ~ g2@2 ~ g2@2 ~", CQ: "d#2 ~@7",
  CR: "a#1@3 a#1@3 d2@2 ~ d2@2 ~ f2@2 ~ f2@2 ~ d2@2 ~ d2@2 ~", CS: "a#1 ~@7",
  CT: "d#2@3 d#2@3 g2@2 ~ g2@2 ~ a#2@2 ~ a#2@2 ~ g2@2 ~@2 d#2@2, ~@21 g2@2 ~",
  CU: "g#1@3 g#1@3 c2@2 ~ c2@2 ~ d#2@2 ~ d#2@2 ~ c2@2 ~ c2@2 ~", CV: "g#1 ~@7",
  CW: "b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2 b1 ~@2",
  CX: "e1@2 ~ e1@2 ~ g#1 ~@2 g#1@2 ~ b1@2 ~ b1@2 ~ c#2@2 ~ c#2@2 ~",
  CY: "d2@2 ~ d2@2 ~ c#2@2 ~ c#2@2 ~ b1@2 ~ b1@2 ~ g#1@2 ~ g#1@2 ~",
  CZ: "a1@2 ~ a1@2 ~ c#2 ~@2 c#2@2 ~ e2@2 ~ e2@2 ~ f#2@2 ~ f#2@2 ~",
  DA: "g2@2 ~ g2@2 ~ f#2@2 ~ f#2@2 ~ e2@2 ~ e2@2 ~ c#2@2 ~ c#2@2 ~",
  DB: "b1@2 ~ b1@2 ~ d#2 ~@2 d#2@2 ~ f#2@2 ~ f#2@2 ~ g#2@2 ~ g#2@2 ~",
  DC: "a2@2 ~ a2@2 ~ g#2@2 ~ g#2@2 ~ f#2@2 ~ f#2@2 ~ d#2@2 ~ d#2@2 ~",
  DD: "e1@2 ~ e1@2 ~ g#1 ~@2 g#1@2 ~ b1@2 ~ b1@2 ~ g#1 ~@2 g#1@2 ~",
  DE: "e1@2 ~ e1@2 ~ d2 ~@2 d2@2 ~ c#2@2 ~ c#2@2 ~ b1 ~@2 b1 ~@2",
  DF: "a1@2 ~ a1@2 ~ c#2@2 ~ c#2@2 ~ e2 ~@2 e2 ~@2 c#2 ~@2 c#2@2 ~",
  DG: "a1 ~@2 a1@2 ~ c#2 ~@2 c#2@2 ~ e2 ~@2 e2 ~@2 c#2 ~@2 c#2 ~@2", DH: "e2 ~ e2 ~ d#2 ~ d#2 ~",
  DI: "c#2 ~ c#2 ~ d#2 ~ d#2 ~", DJ: "e2@4 ~@2 e2@3 ~@3 a1@3 ~@3 a1@4 ~@2",
  DK: "g#1@4 ~@2 g#1@3 ~@3 f#1@4 ~@2 f#1@4 ~@2", DL: "e2@3 ~@3 e2@3 ~@3 d#2@4 ~@2 d#2@4 ~@2",
  DM: "c#2@4 ~@2 c#2@4 ~@2 d#2@4 ~@2 d#2@3 ~@3", DN: "g#1@2 ~ g#1@2 ~ f#1@2 ~ f#1 ~@2",
  DO: "c#2@4 ~@2 c#2@4 ~@2 d#2@3 ~@3 d#2@3 ~@3", DP: "[a#2@17 ~ a2@17 ~ g#2@18 g2@17 f#2@18 ~ f2@16 ~@2 e2@42 ~@18]/7",
})).s("gm_electric_bass_finger").gain(0.35)

// chords · piano · "A.PIANO 2"
const piano = note(`<
  ~@4 A B C D E F G H I J C D E F ~@18 K L M K@2 L M K N@2 O P Q R ~@2 S T U V ~@2 U T U T W X Y Z AA AB AC AD AE@2 AD
  AF ~@2 AG AH AG AH AI AJ AG AH AK AL AM AN AO@4 AP@2 AO@2 AQ AP AR AQ AO ~@4 AS AT AU AV AS AT AW AU AT AS AT AS AX AS
  AY AZ BA BB BC BB BC BD BE BF BC BG BH BI BJ BK BL BM BN BO BP BQ BN BO BP BQ BR BS BP BQ BN BO BP BT BU BV BW BX BY@2
  BZ CA BY@2 BW CB CC CD CE CF CC CD CE CF CC CD CE CF CC CD CE CF CC CG CH@7
>`.pickRestart({
  A: "~@4 b4@2 e4@4 ~@2 b4@9 ~ e4 ~", B: "f#4@2 ~ g4@8 ~", C: "~@3 a4@3 d4@4 ~@2 a4@9 ~ d4 ~", D: "e4@2 ~ f#4@9",
  E: "~@3 g4@3 c4@6 g4@9 ~ c4@2", F: "d4@2 ~ e4@8 ~", G: "~@4 f#4@2 b3@4 ~@2 f#4@9 b3 ~@2", H: "c#4@5 ~ d#4@18",
  I: "~@4 b4@2 e4@4 ~@2 b4@10 e4 ~", J: "f#4@3 g4@7 ~@2", K: "[d#4,g#4,c5]@3 ~", L: "[f4,g#4,c#5]@3 ~",
  M: "[d#4,g#4,c5]@15 ~@3 [f4,g#4,c#5]@4 ~@2", N: "[[d#4,g#4,c5]@7 ~]/2", O: "[f4,g#4,c5]@3 ~", P: "[f4,a4,c5]@3 ~",
  Q: "[f4,a#4,c#5]@3 ~", R: "[d#4,g4,a#4]@3 ~",
  S: "[f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4] ~@2, ~@21 c#5@2 ~", // A#m A#5
  T: "[g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2", // D#
  U: "[f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2 [f4,a#4,c#5] ~@2", // A#m
  V: "[g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@2 [g4,a#4,d#5] ~@11", // D#
  W: "[c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2, g#4 ~@11", // Cm G#
  X: "[g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2 [g#4,c5,d#5] ~@2", // G#
  Y: "[f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2", // F
  Z: "[f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a4,c5] ~@2 [f4,a#4,d5]@5 ~ [f4,a4,c5]@4 ~@2", // F A# F
  AA: "[g4,a#4,d#5]@7 ~@2 [f4,a#4,c#5]@14 ~", AB: "[f4,a#4,c#5]@5 ~", AC: "[g#4,c5,d#5]@10 ~@2 [f#4,a#4,c#5]@11 ~",
  AD: "[g4,a#4,d#5]@23 ~", AE: "[a4,c5,f5]@3 ~", AF: "[g#4,c5,d#5]@23 ~", AG: "~@15 [c4,d#4,g#4] ~@8",
  AH: "[c4,d#4,g#4] ~@8 [c4,d#4,g#4] ~@14", AI: "~@15 [c#4,f4,g#4] ~@8",
  AJ: "[c#4,g#4]@2 ~@7 [c#4,f4,g#4] ~@14, f4 ~@23", AK: "~@15 [d#4,g4,a#4] ~@8",
  AL: "[c#4,f4,g#4] ~@8 [c#4,f4,g#4] ~@14", AM: "~@3 [c4,d#4,g#4] ~@8 [c4,d#4,g#4] ~@5 [c4,d#4,g#4] ~@5",
  AN: "[c4,d#4,g#4]", AO: "[a4,c#5,e5]@3 ~", AP: "[a4,d5,f#5]@3 ~", AQ: "[g#4,b4,e5]@3 ~", AR: "[f#4,b4,d#5]@3 ~",
  AS: "~@2 [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@7 [c#4,e4,g#4] ~ [c#4,e4,g#4] ~ [c#4,e4,g#4] ~@5", // E C#m
  AT: "~@2 [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~@7 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@5", // A B
  AU: "~@2 [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@7 [d4,g#4,b4] ~ [d4,g#4,b4] ~ [d4,g#4,b4] ~@5", // E G#dim
  AV: "~@2 [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~@7 [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~@5", // A Am
  AW: "~@2 [e4,g#4,b4] ~ [e4,g#4,b4] ~ [e4,g#4,b4] ~@7 [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~@5", // E A
  AX: "~@2 [e4,a4,c#5] ~ [e4,a4,c#5] ~ [e4,a4,c#5] ~@7 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@5", // A B
  AY: "~@2 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~@7 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~@5", // F#
  AZ: "~@2 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@7 [d#4,f#4,b4] ~ [d#4,f#4,b4] ~ [d#4,f#4,b4] ~@5", // B
  BA: "[f#4,a#4,c#5]@3 ~@3 [f#4,a#4,c#5]@3 ~@3 [f#4,a#4,c#5]@7 ~@2 [f#4,a#4,c#5]@3", // F#
  BB: "~@3 [f#4,a#4,c#5]@2 ~@4 [f#4,a#4,c#5]@2 ~ [f#4,a#4,c#5]@4 ~@8", // F#
  BC: "[f#4,a#4,c#5]@4 ~@2 [f#4,a#4,c#5]@3 ~@3 [f#4,a#4,c#5]@7 ~@2 [f#4,a#4,c#5]@3", // F#
  BD: "~@3 [f#4,a#4,c#5]@2 ~@4 [f#4,a#4,c#5] ~@2 [f#4,a#4,c#5]@2 ~@10", // F#
  BE: "[f#4,b4,d#5]@4 ~@2 [f#4,b4,d#5]@3 ~@3 [f#4,b4,d#5]@8 ~ [f#4,b4,d#5]@2 ~", // B
  BF: "~@3 [f#4,b4]@2 ~@4 [f#4,b4]@2 ~ [f#4,b4,d#5]@3 ~@9, ~@3 d#5 ~@5 d#5 ~@14", // B5 B
  BG: "~@3 [f#4,c#5]@2 ~@4 [f#4,a#4,c#5] ~@2 [f#4,a#4,c#5]@3 ~@9, ~@3 a#4 ~@20", // F#5 F#
  BH: "[f4,g#4,b4,c#5]@4 ~@2 [f4,g#4,b4,c#5]@3 ~@3 [f4,g#4,b4,c#5]@9 [f#4,b4,d#5]@3", // C#7 B
  BI: "~@3 [f#4,b4,d#5]@2 ~@4 [f#4,d#5] ~@2 [f#4,b4,d#5]@3 ~@9, ~@9 b4@2 ~@13", // B D#m B
  BJ: "[f#4,a#4,c#5]@4 ~@2 [f#4,a#4,c#5]@2 ~@4 [f#4,a#4,c#5]@8 ~ [f#4,a#4] ~@2, ~@21 c#5@2 ~", // F#
  BK: "~@3 [f#4,a#4,c#5]@2 ~@4 [f#4,a#4,c#5] ~@2 [f#4,a#4,c#5]@4 ~@8", // F#
  BL: "[f4,a4,c5]@2 ~ [f4,a4,c5]@2 ~ [g4,a#4,d5]@2 ~ [g4,a#4,d5]@2 ~ [g#4,c5,d#5]@2 ~ [g#4,c5,d#5]@2 ~ [g4,a#4,d5]@2 ~ [g4,a#4,d5]@2 ~", // F Gm G# Gm
  BM: "[f4,a4,c5] ~@5", BN: "[f4,a#4,d5]@9 ~@6 [f4,a#4,d5]@4 ~@5", BO: "[f4,a#4,d5]@3 ~@5",
  BP: "[g4,a#4,d#5]@9 ~@6 [g4,a#4,d#5]@4 ~@5", BQ: "[g4,a#4,d#5]@3 ~@5", BR: "[g#4,c5,d#5]@9 ~@6 [g#4,c5,d#5]@4 ~@5",
  BS: "[g#4,c5,d#5]@3 ~@5", // G#
  BT: "[f#4,d#5]@2 ~ [f#4,b4,d#5] ~@2 [f#4,b4,d#5] ~@2 [f#4,d#5]@2 ~ [f#4,b4,d#5] ~@2 [f#4,b4,d#5] ~@2 [f#4,d#5]@2 ~ [f#4,b4,d#5] ~@2, b4 ~@8 b4 ~@8 b4 ~@5", // D#m B D#m B D#m B
  BU: "[e5,g#5,b5]", BV: "[e5,g#5,b5]@3 ~", BW: "[e5,a5,c#6]@3 ~", BX: "[f#6,a6,c#7]@2 ~ [a6,c#7,e7]@5 ~@16",
  BY: "[[e5,g#5,b5]@7 ~]/2", BZ: "[d#5,f#5,b5]@3 ~", CA: "[b5,d#6,b6]@2 ~ [a5,d#6,f#6]@4 ~@17", CB: "[a6,c#7,e7] ~@5",
  CC: "[e5,g#5,b5] ~ [e5,g#5,b5] ~ [d#5,g#5,b5] ~ [d#5,g#5,b5] ~", // E G#m
  CD: "[e5,a5,c#6] ~ [e5,a5,c#6] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~", CE: "[e5,g#5,b5] ~ [e5,a5,c#6] ~",
  CF: "[e5,g#5,b5]@6 ~@6 [d#5,f#5,b5] ~@2 [d#5,g5,b5]@3 ~@6", CG: "[a#3,g#4,c#5]@3 [a3,g4,c5], e5",
  CH: "[[a#3,c#5]@18 [a3,g4,c5]@18 [g#3,f#4]@17 ~ [g3,f4]@17 ~ f#3@18 ~ [f4,c5]@16 ~@2 [e4,g#4,b4]@38 ~@21, e5@37 ~@5, g#4@16 ~@20 b4@34 ~ c#5@17 ~@80, ~@36 a4@17 ~@31, ~@72 f#4@17 ~ f3@18 e3@38 ~@22]/7", // A#m Am7 G#7 G7 F5 E
})).s("gm_piano").gain(0.45)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@32 A B C D ~@15 E F G H I J K L M F N ~@14 O P O P Q R S P T Q U V W ~@8 X Y Z AA ~@12 AB AC AB AD AB AD AE AF ~@14
  AG AH ~@15 AI ~@3 AJ ~@3 AK ~@3 AL AM AN AO ~ AM AN AO ~ AM AN AO ~ AM AN AO ~ AM ~@8
>`.pickRestart({
  A: "~@6 [b5,d6]@2 ~@4 [c6,e6]@7 ~@5, ~@6 g6 ~@5 a6@9 ~@3", // Bm C
  B: "[b5,d6,g6]@3 ~ [b5,d6] ~ [b5,g6]@3 ~ [c6,e6]@14, ~@3 g5@2 ~ [g5,d6] ~@2 a6@13 ~@2", // G Bm Em C G5
  C: "~@6 [b5,d6]@3 ~@3 [c6,e6]@7 ~@5, ~@6 g6 ~@5 a6@9 ~@3", // Bm C
  D: "g6!2 ~@2 [b5,d6] ~ [b5,g6]@3 ~ [c6,e6,a6]@14, [b5,d6]@3 ~ g5@2 d6 ~@17", E: "~@21 a3@2 ~",
  F: "a#3@3 ~@6 d4@3 d#4@3 ~@6 a3@2 ~", G: "a#3@3 ~@6 d#4@2 ~@4 d#4@2 ~@4 a3@2 ~",
  H: "a#3@3 ~@6 d4@2 ~ d#4@3 ~@6 a3@2 ~", I: "a#3@3 ~@6 d#4@2 ~@4 d#4@2 ~ f4@2 ~ g4@2 ~",
  J: "g#4@5 ~ a#4@3 g#4@3 a#4@3 c5@4 ~@2 g#4@3", K: "d#5@3 c5@2 ~ f5@2 ~ d#5@6 c5@2 ~ a#4@2 ~ g#4@2 ~",
  L: "a#3@4 ~@5 d4@3 d#4@4 ~@5 a3@2 ~", M: "a#3@3 ~@6 d#4@3 ~@3 d#4@3 ~@3 a3@2 ~", N: "a#3 ~@11", O: "g#4@5 ~@7",
  P: "~@9 g#4 ~@14", Q: "c#4 ~", R: "~@9 c#4 ~@14", S: "g#4@7 ~@5", T: "d#4@13 ~@11", U: "g#4@13 ~@11",
  V: "[c6,d#6,g#6]", W: "[c#6,e6,a6]", X: "~@21 g#5 ~@2",
  Y: "g#5@2 ~ g#5 ~@2 f#5 ~@2 f#5@2 ~ e5 ~@2 e5 ~@2 d5@2 ~ d5 ~@2", Z: "[g#5,b5,e6]@3 ~", AA: "[a5,c#6,e6]@3 ~",
  AB: "[e5,a5] [f#5,b5]", AC: "[g#5,b5]", AD: "[e5,g#5]", AE: "[f#5,a#5]", AF: "[d#5,f#5,b5]",
  AG: "[f5,a5,c6]@2 ~ [f5,a5,c6]@2 ~ [g5,a#5,d6]@2 ~ [g5,a#5,d6]@2 ~ [g#5,c6,d#6]@2 ~ [g#5,c6,d#6]@2 ~ [g5,a#5,d6]@2 ~ [g5,a#5,d6]@2 ~", // F Gm G# Gm
  AH: "[f5,a5,c6] ~@5", // F
  AI: "[f#5,d#6]@2 ~ [f#5,b5,d#6] ~@2 [f#5,b5,d#6] ~@2 [f#5,d#6]@2 ~ [f#5,b5,d#6] ~@2 [f#5,b5,d#6] ~@2 [f#5,d#6]@2 ~ [f#5,b5,d#6] ~@2, b5 ~@8 b5 ~@8 b5 ~@5", // D#m B D#m B D#m B
  AJ: "[f#6,a6,c#7]@2 ~ [a6,c#7,e7]@5 ~@16", AK: "[b5,d#6,b6]@2 ~ [a5,d#6,f#6]@4 ~@17", AL: "[a6,c#7,e7] ~@5",
  AM: "[e5,g#5,b5] ~ [e5,g#5,b5] ~ [d#5,g#5,b5] ~ [d#5,g#5,b5] ~", // E G#m
  AN: "[e5,a5,c#6] ~ [e5,a5,c#6] ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~", AO: "[e5,g#5,b5] ~@3",
})).s("gm_brass_section").gain(0.4)

// chords · brass section · "BRASS 1"
const brass_section_2 = note(`<
  ~@32 A B C D ~@15 E F G H I J K L M F N ~@14 O P O P Q R S P T Q U V W ~@8 X Y Z AA ~@12 AB AC AB AD AB AD AE AF ~@14
  AG AH ~@15 AI ~@3 AJ ~@3 AK ~@3 AL AM AN AO ~ AM AN AO ~ AM AN AO ~ AM AN AO ~ AM ~@8
>`.pickRestart({
  A: "~@6 [b4,d5]@2 ~@4 [c5,e5]@7 ~@5, ~@6 g5 ~@5 a5@9 ~@3", // Bm C
  B: "[b4,d5,g5]@3 ~ [b4,d5] ~ [b4,g5]@3 ~ [c5,e5]@14, ~@3 g4@2 ~ [g4,d5] ~@2 a5@13 ~@2", // G Bm Em C G5
  C: "~@6 [b4,d5]@3 ~@3 [c5,e5]@7 ~@5, ~@6 g5 ~@5 a5@9 ~@3", // Bm C
  D: "g5!2 ~@2 [b4,d5] ~ [b4,g5]@3 ~ [c5,e5,a5]@14, [b4,d5]@3 ~ g4@2 d5 ~@17", E: "~@21 a2@2 ~",
  F: "a#2@3 ~@6 d3@3 d#3@3 ~@6 a2@2 ~", G: "a#2@3 ~@6 d#3@2 ~@4 d#3@2 ~@4 a2@2 ~",
  H: "a#2@3 ~@6 d3@2 ~ d#3@3 ~@6 a2@2 ~", I: "a#2@3 ~@6 d#3@2 ~@4 d#3@2 ~ f3@2 ~ g3@2 ~",
  J: "g#3@5 ~ a#3@3 g#3@3 a#3@3 c4@4 ~@2 g#3@3", K: "d#4@3 c4@2 ~ f4@2 ~ d#4@6 c4@2 ~ a#3@2 ~ g#3@2 ~",
  L: "a#2@4 ~@5 d3@3 d#3@4 ~@5 a2@2 ~", M: "a#2@3 ~@6 d#3@3 ~@3 d#3@3 ~@3 a2@2 ~", N: "a#2 ~@11", O: "g#3@5 ~@7",
  P: "~@9 g#3 ~@14", Q: "c#3 ~", R: "~@9 c#3 ~@14", S: "g#3@7 ~@5", T: "d#3@13 ~@11", U: "g#3@13 ~@11",
  V: "[c5,d#5,g#5]", W: "[c#5,e5,a5]", X: "~@21 g#4 ~@2",
  Y: "g#4@2 ~ g#4 ~@2 f#4 ~@2 f#4@2 ~ e4 ~@2 e4 ~@2 d4@2 ~ d4 ~@2", Z: "[g#4,b4,e5]@3 ~", AA: "[a4,c#5,e5]@3 ~",
  AB: "[e4,a4] [f#4,b4]", AC: "[g#4,b4]", AD: "[e4,g#4]", AE: "[f#4,a#4]", AF: "[d#4,f#4,b4]",
  AG: "[f4,a4,c5]@2 ~ [f4,a4,c5]@2 ~ [g4,a#4,d5]@2 ~ [g4,a#4,d5]@2 ~ [g#4,c5,d#5]@2 ~ [g#4,c5,d#5]@2 ~ [g4,a#4,d5]@2 ~ [g4,a#4,d5]@2 ~", // F Gm G# Gm
// … 135 more lines

More by The Beach Boys