Strudelify

Hava Naquila

Party Animals

KeyD majorTempo150 bpm
0:00/0:00
// Hava Naquila — Party Animals
// 150.1 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 5 "trum 3" trombone (copy of ch 4 "brass" brass section)
// note: Full arrangement: all 176 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150.1/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 · fretless bass · "bass"
const bass = note(`<
  ~@2 A@8 B@7 C@8 D@4 E@7 F@8 G H I J K J L M N J O P Q R S Q@2 T U V W@2 X Y Z AA AB AC AD AE AF AE AG AH AI AJ@2 AK AL
  AK AL AM AN AO@3 AP AQ@7 AR AS@7 AT@8 AU AV@3 AW@6 AX@2 AY AZ@3 BA@3 BB BC BD@3 BE BF BG@2 BH BI BJ BK@5 BL@2 BM@3 BN
  BO@4 BP@3 BQ BR ~@4 BS BT BU BV@2 BW ~
>`.pickRestart({
  A: "[d2@21 ~@2 a2@23 ~ d2@22 ~@2 a2@22 ~ d#2@22 ~@2 a#2@21 ~@3 d2@21 ~@2 d2@21 ~@3 d2@3]/8",
  B: "[~@21 a2@23 ~ d2@22 ~ a2@22 ~@2 d#2@22 ~@2 a#2@21 ~@2 d2@21 ~@3 d2@5]/7",
  C: "[~@19 d2@22 ~ a2@21 ~@3 c2@23 ~ g2@23 ~ c2@23 g2@21 ~ d2@20 ~@2 a2@11]/8",
  D: "[~@11 d2@21 ~ a2@18 ~@3 c2@21 ~ g2@19 ~]/4",
  E: "[~ c2@20 ~ g2@21 ~ d2@19 ~@2 a2@19 ~@3 g2@18 ~@3 g2@19 ~@3 g2@6 ~@4 g2@7 ~@3 g2@7 ~@3 g2@6 ~@2]/7",
  F: "[~ g2@16 ~ d2@16 ~ g2@16 d2@16 d2@8 ~@9 a2@15 ~ d2@14 ~@2 a2@15 ~@2 d2@15 ~ d2@14 ~ d2@13 ~ d3@3 ~ c3@3 a#2@3 a2@3 ~]/8",
  G: "g2@3 ~@3 d2@5 ~ g2@4 ~@2 d2@5 ~", H: "g2@2 ~ d2@2 ~ g2@2 ~ d2@2 ~", I: "d2@4 ~@2 a1@4 ~@2 d2@5 ~ a1@4 ~@2",
  J: "d2@5 ~ a1@5 ~ d2@5 ~ a1@5 ~", K: "d#2@5 ~ a#1@4 ~@2 d#2@5 ~ a#1@5 ~", L: "d2@5 ~ a1@4 d2 ~ d2@3 ~@3 a1@5 ~",
  M: "d2@5 ~ a1@4 d2 ~ d2@5 ~ a1@5 ~", N: "d#2@5 ~ a#1@3 ~ d#2 ~ d#2@5 ~ a#1@2 ~ d#2@2 ~",
  O: "d2 ~@2 d2@4 d2@3 ~@2 d2 ~@2 a1@2 ~ d2@4 ~@2", P: "d#2@5 ~ c2@4 ~@2 d#2@4 ~@2 c2@4 ~@2",
  Q: "c2@5 ~ g2@5 ~ c2@5 ~ g2@5 ~", R: "d2@5 ~ a2@5 ~ d2@4 ~@2 a2@5 ~", S: "d2@4 ~@2 a2@5 ~ d2@5 ~ a2@4 d2 ~",
  T: "d2@5 ~ a2@5 ~ d2@5 ~ a2@3 ~@3", U: "g1@7 ~@5 g1@9 ~@3", V: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 ~",
  W: "g2@5 ~ a#2@4 a2 ~ g2@5 ~ a#2@5 ~", X: "d2@6 a2@4 f#2 ~ d2@5 ~ a2@5 ~", Y: "d2@6 a2@4 f#2 ~ d2@5 ~ a2@4 ~@2",
  Z: "a2@5 ~ d3@5 ~ a2@5 ~ d3@4 ~@2", AA: "d2@4 ~@2 d2@5 ~ d3@2 ~ c3@2 ~ a#2@2 ~ a2@2 ~",
  AB: "g2@4 ~@2 d2@5 ~ g2@5 ~ d2@5 ~", AC: "g2@5 ~ d2@5 ~ g2@4 ~@2 d2@5 ~", AD: "~ g2@6 ~@17", AE: "~ d2@22 ~",
  AF: "~ a2@23", AG: "~ a2@22 ~", AH: "~ d#2@22 ~", AI: "~ a#2@21 ~@2", AJ: "~@2 d2@21 ~", AK: "~ d2@11", AL: "~ a2@11",
  AM: "~ d#2@11", AN: "~ a#2@7", AO: "~ d2@7", AP: "~ a2@7",
  AQ: "[~@3 c2@23 ~ g2@23 ~@2 c2@23 ~ g2@23 ~ d2@22 ~@2 a2@23 d2@21]/7", AR: "~ a2@10 ~",
  AS: "[~ c2@22 g2@19 ~@3 c2@20 ~ g2@20 ~@2 d2@19 ~ a2@19 ~@2 g2@17 ~@4 g2@18]/7",
  AT: "[~@2 g2@6 ~@3 g2@6 ~@3 g2@6 ~@2 g2@6 ~@2 g2@15 ~@2 d2@15 ~ g2@16 d2@15 ~ d2@8 ~@8 a2@14 ~@2 d2@14 ~ a2@14 ~@2 d2@14 ~ d2@12 ~]/8",
  AU: "~ d2@13 d3@3 ~ c3@3 a#2@3",
  AV: "[~ a2@3 g2@3 ~@3 d2@5 ~ g2@4 ~@2 d2@5 ~ g2@4 ~@2 d2@4 ~@2 g2@4 ~@2 d2@4 ~@2 d2@4 ~@2 a1@4 ~@2 d2@5 ~ a1@2]/3",
  AW: "[~@4 d2@5 ~ a1@5 ~ d2@5 ~ a1@5 ~ d#2@5 ~ a#1@4 ~@2 d#2@5 ~ a#1@5 ~ d2@5 ~ a1@5 ~ d2@5 ~ a1@5 ~ d2@5 ~ a1@4 d2 ~ d2@3 ~@3 a1@5 ~ d2@5 ~ a1@4 d2 ~ d2@5 ~ a1@5 ~ d#2@5 ~ a#1@3 ~ d#2 ~ d#2@5 ~ a#1@2]/6",
  AX: "[~ d#2@2 ~ d2@5 ~ a1@5 d2@5 ~ a1@5 ~ d2 ~@2 d2@5 d2@3 ~ d2 ~@2 a1@2 ~ d2@3]/2",
  AY: "~@3 d#2@5 ~ c2@4 ~@2 d#2@4 ~@2 c2@3",
  AZ: "[~@3 c2@5 ~ g2@5 ~ c2@5 ~ g2@5 ~ d2@5 ~ a2@5 ~ d2@4 ~@2 a2@5 ~ d2@4 ~@2 a2@5 ~ d2@5 ~ a2@3]/3",
  BA: "[~@2 d2 c2@5 ~ g2@5 ~ c2@5 ~ g2@5 ~ c2@5 ~ g2@5 ~ c2@5 ~ g2@5 ~ d2@5 ~ a2@5 ~ d2@5 ~ a2@3]/3",
  BB: "~@3 g1@7 ~@5 g1@9", BC: "~@3 g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2@3",
  BD: "[~@3 g2@5 ~ a#2@4 a2 ~ g2@5 ~ a#2@5 ~ g2@5 ~ a#2@4 a2 ~ g2@5 ~ a#2@5 d2@6 a2@5 f#2 d2@5 ~ a2@4]/3",
  BE: "~@2 d2@6 a2@5 f#2 d2@5 ~ a2@4", BF: "~@2 a2@5 ~ d3@5 ~ a2@5 ~ d3@4",
  BG: "[~@2 d2@4 ~@2 d2@5 ~ d3@2 ~ c3@2 ~ a#2@2 ~ a2@2 ~ g2@4 ~@2 d2@5 ~ g2@5 ~ d2@4]/2",
  BH: "~@2 g2@5 ~ d2@5 ~ g2@4 ~@2 d2@4", BI: "~@2 d2@3 ~@2 a1@4 ~@2 d2@5 ~ a1@4 ~", BJ: "~ d2@5 ~ a1@5 d2@5 ~ a1@5 ~",
  BK: "[d#2@5 ~ a#1@4 ~@2 d#2@5 a#1@4 ~@2 d2@5 ~ a1@5 ~ d2@4 ~ a1@5 ~ d2@5 ~ a1@4 d2 ~ d2@3 ~@3 a1@5 d2@5 ~ a1@3 ~@2 d2 d2@5 ~ a1@5 ~ d#2@5 a#1@3 ~@2 d#2 d#2@5 ~ a#1@2 ~ d#2@2 ~ d2@4]/5",
  BL: "[~ a1@5 ~ d2@5 ~ a1@4 ~@2 d2 ~@2 d2@7 d2!2 ~@2 a1@2 ~ d2@4 ~@2 d#2@5 ~]/2",
  BM: "[~ c2@4 d#2@4 ~@2 c2@4 ~ c2@5 ~ g2@5 ~ c2@4 ~@2 g2@5 d2@5 ~ a2@5 ~ d2@4 ~ a2@5 ~ d2@4 ~@2 a2@4]/3",
  BN: "~ d2@5 ~ a2@4 d2 ~ c2@5 g2@5 ~",
  BO: "[c2@5 ~ g2@5 c2@5 ~ g2@5 ~ c2@5 g2@5 ~ d2@5 ~ a2@5 d2@5 ~ a2@3 ~@3 g1@6 ~@5 g1@8 ~@3 g2@3 ~@3 g2@4 ~@2 g2@4 ~]/4",
  BP: "[g2@4 ~@2 g2@4 ~ a#2@4 ~ a2 g2@5 ~ a#2@4 ~ g2@5 ~ a#2@4 a2 g2@5 ~ a#2@5 ~ d2@5 a2@4 f#2 ~ d2@5 a2@5]/3",
  BQ: "~ d2@5 ~ a2@4 f#2 d2@5 ~ a2@4 ~@2", BR: "a2@5 d3@5 ~@14", BS: "~@3 d2@5 ~@2 d2@6 ~ d3@2 ~@2 c3@3",
  BT: "a#2@2 ~@2 a2@2 ~ g2@5 ~@2 d2@5 ~ g2@4", BU: "~@2 d2@4 ~@2 g2@5 d2@4 ~@2 g2@4 ~",
  BV: "[d2@4 ~ g2@4 ~@2 d2@4 ~ g2@4 ~@2 d2@4 ~ g2@4 ~ d2@4 ~@2 g2@4 ~ d2@4 ~]/2", BW: "g2@3 ~@8 d2@3 ~@8 g2@2",
})).s("gm_fretless_bass").gain(0.43)

// chords · acoustic guitar steel · "guitar"
const acoustic_guitar_steel = note(`<
  ~@2 A B C D E F G H@3 I J K L M@2 N O P Q R S T U V W X Y Z M AA AB@2 AC AD AE AF AG AH AI AJ AK AL@2 AM AN AO AN@3 AO
  AN@2 AP AQ AR AS AP AQ AS AT AU AV@2 AN@2 AW AX AL@2 ~ AY AZ BA@2 BB@2 BC@2 BD BC BD BC BE BF BG BH@2 BG BI BJ BK BL
  BM@2 BG AJ Y BN BO BP BQ@2 BR BS BT BU BV BW BX AH BY J BZ CA CB CC CD CE CF@2 CD CG CH CI CJ CK CL CM CJ CN CO CP CQ
  CR CS CT CU CV@2 CW CX CY CZ DA DB DC DD DE DF DG DH DI DJ DK DL DM DN DO DP DQ CY DR ~@4 DS DT DU DV DW DX ~
>`.pickRestart({
  A: "~@11 [a3,d4,f#4]@4 ~@9", B: "~@11 [a3,d4,f#4]@3 ~@10", C: "~@11 [a3,c4,f#4]@3 ~@10", D: "~@10 [a3,c4,f#4]@3 ~@11",
  E: "~@10 [g3,a#3,d#4]@3 ~@11", F: "~@5 [g3,a#3,d#4] ~@6", G: "~@5 [a3,c4,f#4] ~@6", H: "~@9 [a3,c4,f#4]@2 ~@13",
  I: "~@8 [a3,c4,f#4]@3 ~@13", J: "~@4 [a3,c4,f#4] ~@7", K: "~@8 [g3,a#3,d#4]@3 ~@13", L: "~@7 [g3,a#3,d#4]@3 ~@14",
  M: "~@7 [a3,c4,f#4]@2 ~@15", N: "~@7 [a3,c4,f#4]@3 ~@14", O: "~@3 [a3,c4,f#4] ~@8", P: "~@3 [g3,a#3,d4] ~@8",
  Q: "~@3 [g3,c4,d#4] ~@8", R: "~@5 [g3,c4]@3 ~@16", S: "~@2 [g3,c4,d#4] ~@9", T: "~ [a3,c4,f#4] ~@10",
  U: "[a3,c4,f#4] ~@10 [a3,c4,f#4]", V: "~@19 [a3,c4,f#4]@2 ~@3", W: "~@17 [g3,c4,d#4]@2 ~@5", X: "~@7 [g3,c4,d#4] ~@4",
  Y: "~@6 [g3,c4,d#4] ~@5", Z: "~@9 [g3,c4,d#4]@2 ~@13", AA: "~@2 [a3,c4,f#4] ~@9",
  AB: "[~@2 [g3,a#3,d4,g4]@4 ~@17 [a#3,d4,g4]@4 ~@17 [d4,g4]@4, ~@22 a#3 ~]/2", // Gm G5
  AC: "~@6 [a#3,d4,g4]@4 ~@6 [a#3,d4,g4]@3 ~@5", AD: "~@5 [a#3,d4,g4]@2 ~@5",
  AE: "~@2 [a#3,d4,g4]@2 ~@15 [a#3,d4,g4]@2 ~@3", AF: "~@11 [a#3,d4,g4]@2 ~@11",
  AG: "~@4 [c4,d4,f#4]@3 ~@13 [a3,c4,f#4]@2 ~@2", AH: "~@6 [a3,c4,f#4] ~@5",
  AI: "~@5 [a3,c4,f#4]@2 ~@14 [a3,c4,f#4]@2 ~", AJ: "~@13 [a3,c4,f#4]@2 ~@9", AK: "~@3 [a3,c4,f#4]@2 ~@19",
  AL: "~@3 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@2", // Gm
  AM: "~@3 [a3,c4,d4] ~@5 [a3,c4,d4] ~@5 [a3,c4,d4] ~@5 [a3,c4,d4] ~@2", // D7
  AN: "~@3 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2", // F#dim
  AO: "~@3 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@2", // D#
  AP: "~@3 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@2 [g3,c4,d#4]@4 ~@2", // Cm
  AQ: "~@3 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@2", // Cm
  AR: "~@3 [a3,c4,d4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2 [a3,c4,f#4]@3 ~@3", // D7 F#dim
  AS: "~@3 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2 [a3,c4,f#4]@4 ~@2", // F#dim
  AT: "~@3 [g3,a#3,d4,g4]@2 ~@4 [g3,a#3,d4,g4]@2 ~", AU: "~@2 [g3,a#3,d4,g4] ~ [g3,a#3,d4,g4] ~ [g3,a#3,d4,g4] ~",
  AV: "~@3 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@2", // Gm
  AW: "~@6 [a3,c4,f#4]@5 ~@7 [a3,c4,f#4]@5 ~", AX: "~@6 [a3,c4,f#4]@4 ~@2 d4@2 ~ c4@3 a#3@2 ~ a3@2 ~",
  AY: "~@13 [a3,d4,f#4]@4 ~@7", AZ: "~@13 [a3,d4,f#4]@3 ~@8", BA: "~@13 [a3,c4,f#4]@3 ~@8",
  BB: "~@13 [g3,a#3,d#4]@3 ~@8", BC: "~@7 [a3,c4,f#4] ~@4", BD: "~@14 [a3,c4,f#4]@3 ~@7", BE: "~@14 [g3,a#3,d#4]@3 ~@7",
  BF: "~@5 [g3,a#3,d#4] ~@2", BG: "~@15 [a3,c4,f#4]@2 ~@7", BH: "~@5 [a3,c4,f#4] ~@2", BI: "~@5 [g3,a#3,d4] ~@2",
  BJ: "~@15 [g3,c4,d#4]@2 ~@7", BK: "~@16 [g3,c4]@3 ~@5", BL: "~@8 [g3,c4,d#4] ~@3", BM: "~@8 [a3,c4,f#4] ~@3",
  BN: "~@5 [g3,c4,d#4] ~@6", BO: "~@4 [g3,c4,d#4] ~@7", BP: "~@5 [g3,c4,d#4]@2 ~@17",
  BQ: "[~@2 [a3,c4,f#4]@2 ~@19 [a3,c4,f#4]@2 ~@19 [g3,a#3,d4,g4]@4]/2", BR: "~@4 [a#3,d4,g4] ~",
  BS: "~@11 [a#3,d4,g4]@3 ~@6 [a#3,d4,g4]@3 ~", BT: "~@4 [a#3,d4,g4]@3 ~@14 [a#3,d4,g4]@3",
  BU: "~@13 [a#3,d4,g4]@2 ~@9", BV: "~@5 [a#3,d4,g4]@2 ~@14 [a#3,d4,g4]@2 ~", BW: "~@13 [c4,d4,f#4]@3 ~@8",
  BX: "~@5 [a3,c4,f#4]@2 ~@13 [a3,c4,f#4]@2 ~@2", BY: "~@3 [a3,c4,f#4]@2 ~@13 [a3,c4,f#4]@2 ~@4",
  BZ: "~@7 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@4", // Gm
  CA: "~ [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@4", // Gm
  CB: "~ [g3,a#3,d4] ~@5 [a3,c4,d4] ~@5 [a3,c4,d4] ~@5 [a3,c4,d4] ~@4", // Gm D7
  CC: "~ [a3,c4,d4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4", // D7 F#dim
  CD: "~ [a3,c4,f#4] ~@5 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@4", // F#dim D#
  CE: "~ [g3,a#3,d#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4", // D# F#dim
  CF: "~ [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4", // F#dim
  CG: "~ [g3,a#3,d#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~@5", // D# F#dim
  CH: "[a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5", // F#dim
  CI: "[a3,c4,f#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@2 [g3,c4,d#4]@3", // F#dim Cm
  CJ: "~@6 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5", // Cm
  CK: "[g3,c4,d#4] ~@5 [a3,c4,d4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2 [a3,c4,f#4]@3", // Cm D7 F#dim
  CL: "~@6 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2 [a3,c4,f#4]@3", // F#dim
  CM: "~@6 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@2 [g3,c4,d#4]@3", // Cm
  CN: "[g3,c4,d#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2 [a3,c4,f#4]@3", // Cm F#dim
  CO: "~@9 [g3,a#3,d4,g4]@4 ~@8 [g3,a#3,d4,g4]@3", CP: "~@3 [g3,a#3,d4,g4] ~ [g3,a#3,d4,g4] ~ [g3,a#3,d4,g4]",
  CQ: "~@6 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5", // Gm
  CR: "[g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5", // Gm
  CS: "[g3,a#3,d4,g4] ~@4 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4]", // Gm F#dim
  CT: "~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4]", CU: "~@8 [a3,c4,f#4]@5 ~@7 [a3,c4,f#4]@4",
  CV: "[~@8 [a3,c4,f#4]@4 ~@2 d4@2 ~ c4@3 a#3@2 ~ a3@2 ~@4 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4]]/2", // F#dim Gm
  CW: "~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@5 [g3,a#3,d4]", // Gm
  CX: "~@5 [a3,c4,d4] ~@4 [a3,c4,d4] ~@5 [a3,c4,d4] ~@5 [a3,c4,d4] ~", // D7
  CY: "~@4 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@2", // F#dim
  CZ: "~@3 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@4 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@3", // D#
  DA: "~@2 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~@4", // F#dim
  DB: "~ [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~@5", // F#dim
  DC: "[a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4 [g3,a#3,d#4]", // F#dim D#
  DD: "~@5 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@5 [g3,a#3,d#4] ~@5 [a3,c4,f#4]", // D# F#dim
  DE: "~@4 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~", // F#dim
  DF: "~@4 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [g3,c4,d#4] ~@2", // F#dim Cm
  DG: "~@2 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@2 [g3,c4,d#4]@4 ~@4 [g3,c4,d#4] ~@4", // Cm
  DH: "~ [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@4 [g3,c4,d#4] ~@5 [a3,c4,d4,f#4] ~@5", // Cm D7
  DI: "[a3,c4,f#4] ~@4 [a3,c4,f#4] ~@2 [a3,c4,f#4]@3 ~@6 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~", // F#dim
  DJ: "~@4 [a3,c4,f#4] ~@2 [a3,c4,f#4]@3 ~@5 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@2", // F#dim Cm
  DK: "~@3 [g3,c4,d#4] ~@2 [g3,c4,d#4]@4 ~@4 [g3,c4,d#4] ~@5 [g3,c4,d#4] ~@3", // Cm
  DL: "~@2 [g3,c4,d#4] ~@4 [g3,c4,d#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4", // Cm F#dim
  DM: "[a3,c4,f#4] ~@2 [a3,c4,f#4]@4 ~@7 [g3,a#3,d4,g4]@4 ~@6", // F#dim Gm
  DN: "~@2 [g3,a#3,d4,g4]@3 ~@8 [g3,a#3,d4,g4]@3 ~@3 [g3,a#3,d4,g4]@3 ~@2", // Gm
  DO: "[g3,a#3,d4,g4]@3 ~@6 [g3,a#3,d4,g4] ~@4 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@3", // Gm
  DP: "~ [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@5 [g3,a#3,d4,g4] ~@4 [g3,a#3,d4,g4] ~@5", // Gm
  DQ: "[g3,a#3,d4,g4] ~@4 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@5 [a3,c4,f#4] ~@4 [a3,c4,f#4] ~", DR: "~@5 [a3,c4,f#4]@5 ~@14",
  DS: "~@10 [a3,c4,f#4]@4 ~@3 d4@3 ~ c4@3", DT: "a#3@3 ~ a3@2 ~@4 [g3,a#3,d4] ~@6 [g3,a#3,d4] ~@5 [g3,a#3,d4]",
  DU: "~@5 [g3,a#3,d4] ~@4 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@4 [g3,a#3,d4] ~@2", // Gm
  DV: "~@3 [g3,a#3,d4] ~@4 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~@4 [g3,a#3,d4] ~@4", // Gm
  DW: "[g3,a#3,d4] ~@5 [g3,a#3,d4] ~@4 [g3,a#3,d4] ~@4 [g3,a#3,d4] ~@5 [g3,a#3,d4] ~", // Gm
  DX: "~@11 [d2,a3,c4,f#4]@4 ~@7 [g2,a#3,d4,g4]@2", // D7 Gm
})).s("gm_acoustic_guitar_steel").gain(0.38).pan(0.2)

// other · brass section · "brass"
const brass_section = note(`<
  ~@2 A@3 B@8 C@2 D@3 E F G H@3 I@2 J@2 K L M@6 N O P@2 Q R@2 S T@2 ~@27 U@2 V@2 W@2 X Y Z@2 AA@2 AB@2 AC AD AE AF@3 AG
  AH AI AJ AK@2 AL@3 AM@3 AN AO AP@2 AQ AR AS AT@2 AU AV@2 ~@59
>`.pickRestart({
  A: "[a3@8 ~@3 a3@16 ~@2 d4@5 ~ c4@5 ~ a3@5 ~ d4@9 ~@3 d4@13]/3",
  B: "[~@5 d4@5 d#4@4 ~@2 d4@3 ~@3 d#4@9 ~@3 d#4@17 ~ g4@6 f#4@4 ~@2 d#4@5 ~ d4@11 ~ c4@3 d4@2 ~ c4@2 ~@3 c4@16 ~@8 a3@8 ~@4 a3@17 ~ d4@5 ~ c4@5 ~ a3@4 ~@2 d4@9 ~@2 d4@16]/8",
  C: "[~@2 f#4@5 ~ d#4@4 ~@2 d4@4 ~@2 d#4@9 ~@3 d#4@16]/2",
  D: "[~@2 g4@5 f#4@5 ~ d#4@4 ~@2 d4@12 c4@3 d4@2 ~ c4@3 ~@3 a3@20 ~@4 d4@2 ~@3]/3", E: "~ d4@8 ~@4 c4@3 ~@2 a3@3 ~@3",
  F: "a3@2 ~@4 a3@11 ~ c4@2 ~@4", G: "c4@8 ~@7 c4 ~@2 g3@3 ~@3, ~@2 a#3 ~",
  H: "[g3 ~@5 g3@7 ~@5 g3@10 ~ a#3@7 ~@2 a3@2 ~ g3@2 ~@4 g3@3 ~@2 d4@8 ~@3 d4@9]/3",
  I: "[~@2 c4@2 ~ d4@2 ~ c4@2 a3@3 d4@17 a3@2 c4@2 ~ d4@2 ~@4 d4@7]/2",
  J: "[~ c4@2 c4@2 ~ c4@2 ~ a3@2 ~@3 a3@2 ~@3 a3@8 ~@3 c4@2 ~@4 c4@8 a#3@2 c4@2]/2",
  K: "~ a#3@2 ~ g3@2 ~@3 g3@2 ~@3 g3@7 ~@3", L: "~ g3@8 ~@3 g3@6 ~@2 g3@2 g3@2",
  M: "[~@4 g3@3 ~@2 d#4@8 ~@3 d4@8 c4@3 d4@2 c4@2 ~ a3@3 ~@2 a3@14 ~@8 d4@15 ~@6 d4@15 ~@7 d4@6 ~@4 d4@6 ~@4 d4@5 ~@5 d4@3 ~@4 d4]/6",
  N: "~ d4@2 ~@2 d4@2 ~@3 g4@6 f#4@2 d4@2 ~@2 g4@2", O: "~@2 f#4@3 ~@2 d4@2 ~@2 d4@2 ~@2 d4@3 ~ g4@5",
  P: "[~ f#4 ~ d4@2 ~@2 g4@3 ~ f#4@3 ~ d4@3 ~ d4@3 ~ d4@3 ~@2 f#4@5 ~ d#4 ~ d4@3 ~ f#4@3 ~ d#4@3 ~]/2",
  Q: "d4@2 ~@2 d4@2 ~@2 d4@2 ~@2 f#4@4 ~@2 d#4 ~ d4@3 ~",
  R: "[~ f#4@3 ~ d#4@3 ~ d4@2 ~@2 d4@2 ~@2 d4@2 ~@2 f#4@6 ~@2 d4@2 ~@2 d4@2 ~@2 f#4@5 ~@2 a3@4]/2",
  S: "~@3 a3@7 a4@2 ~@2 a4@2 ~ f#4@2 ~ f#4@2 ~@2", T: "[d4@11 ~]/2", U: "[~ a3@8 ~@4 a3@17 ~ d4@5 ~ c4@5 ~ a3@5]/2",
  V: "[~ d4@9 ~@3 d4@15 ~@3 d4@5 ~ d#4@4 ~@2 d4@3 ~@2]/2", W: "[~ d#4@10 ~@2 d#4@18 g4@6 f#4@4 ~@2 d#4@5]/2",
  X: "~@2 d4@11 ~ c4@3 d4@2 ~ c4@2 ~@2", Y: "~@2 c4@17 ~@5", Z: "[~@2 a3@8 ~@4 a3@17 ~ d4@5 ~ c4@5 ~ a3@4]/2",
  AA: "[~@2 d4@9 ~@3 d4@16 ~@2 f#4@6 d#4@4 ~@2 d4@4]/2", AB: "[~@2 d#4@9 ~@3 d#4@17 ~@2 g4@5 ~ f#4@5 ~ d#4@3]/2",
  AC: "~@3 d4@12 c4@3 d4@2 ~ c4@3", AD: "~@3 a3@20 ~", AE: "~@3 d4@2 ~@4 d4@9 ~@3 c4@3",
  AF: "[~@3 a3@3 ~@3 a3@2 ~@4 a3@11 ~ c4@2 ~@4 c4@9 ~@6 c4 ~@2 g3@3 ~@3 g3 ~@5 g3@7 ~@2, ~@15 a#3@2 ~@7]/3",
  AG: "~@2 g3@5 ~ a#3@4", AH: "~ a3@2 ~ g3@3 ~@3 g3@3 ~@3 d4@8", AI: "~@4 d4@11 ~ c4@2 ~ d4@3 c4@2",
  AJ: "~ a3@3 d4@18 a3@2", AK: "[~ c4@2 d4@2 ~@4 d4@9 c4@2 c4@2 ~ c4@2 ~ a3@2 ~@4 a3@2 ~@3 a3@9 ~@2]/2",
  AL: "[~ c4@2 ~@3 c4@8 ~ a#3@2 ~ c4@2 a#3@2 ~ g3@2 ~@4 g3@2 ~@3 g3@7 ~@4 g3@8 ~@3 g3@6 ~@2 g3@2 g3@2 ~@4]/3",
  AM: "[g3@3 ~@2 d#4@8 ~@10 c4@3 d4@2 ~ c4@2 a3@3 ~@2 a3@14 ~@7 d4@15, ~@16 d4@9 ~@47]/3", AN: "~@3 d4@7 ~@2",
  AO: "~@2 d4@6 ~@3 d4@5 ~@4 d4@4",
  AP: "[~@4 d4@3 ~@3 d4 ~ d4@2 ~@3 d4@2 ~@2 g4@5 ~ f#4@2 d4@2 ~@2 g4@3 ~ f#4@3 ~ d4@2 ~@2 d4@2 ~]/2",
  AQ: "~ d4@3 ~ g4@5 ~ f#4 ~ d4@2 ~@2 g4@3 ~ f#4@3", AR: "~ d4@3 ~ d4@3 ~ d4@3 ~ f#4@5 ~ d#4 ~ d4@3",
  AS: "~ f#4@3 ~ d#4@2 ~@2 d4@2 ~@2 d4@2 ~@2 d4@2 ~ f#4@4",
  AT: "[~@2 d#4 ~ d4@2 ~@2 f#4@3 ~ d#4@2 ~@2 d4@2 ~@2 d4 ~@2 d4@2 ~@2 f#4@6 ~@2 d4@2 ~@2 d4@2 ~ f#4@5 ~]/2",
  AU: "~ a3@5 ~@2 a3@6 a4@2 ~@2 a4@2 ~ f#4@2 ~", AV: "[~ f#4@2 ~ d4@44]/2",
})).s("gm_brass_section").gain(0.64).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A B@2 C@3 D@4 E@3 F@3 G@4 H I J K L M N O E H I P Q M R K S P T J U Q V@10 W@2 V@2 W@2 V@12 X@7 Y@7 Z@7 N@4 Z Y AA
  D G AB P L M AC P AD J AD J T K AE AF@9 AG AH@2 AI@2 AH@2 AI@6 AJ@6 AK AL AM AN AO AI AJ AP AQ AR AG AS AT AU AO AV AK
  AU AG AW AL AX B ~@2 AB AY AZ BA BB AW BC ~
>`.pickRestart({
  A: "x ~@22 x", B: "~@23 x", C: "~@11 x", D: "~@7 x", E: "~@5 x", F: "~@19 x ~@4", G: "~@3 x", H: "~@17 x ~@6",
  I: "~@5 x ~@2", J: "~@13 x ~@10", K: "~@11 x ~@12", L: "~@3 x ~@4", M: "~ x ~@2", N: "~ x ~@4", O: "~ x ~@20 x ~",
  P: "~ x", Q: "~@5 x ~@6", R: "~ x ~@16 x ~@5", S: "~@3 x ~@15 x ~@4", T: "~ x ~@3 x", U: "~@5 x ~@14 x ~@3", V: "x!4",
  W: "x ~@6 x ~@4 x ~@5 x ~@5", X: "~ x ~@22", Y: "~ x ~@10", Z: "~ x ~@6", AA: "~ x ~@21 x", AB: "~@2 x",
  AC: "~ x ~@8 x ~", AD: "~@5 x ~@15 x ~@2", AE: "~ x ~@12 x ~@9", AF: "~@2 x ~@2 x ~@2 x ~@2 x",
  AG: "~@4 x ~@5 x ~@4 x ~@5 x ~@2", AH: "~@3 x ~@7 x ~@3 x ~@5 x ~@2", AI: "~ x ~ x ~ x ~ x",
  AJ: "~ x ~@2 x ~@2 x ~@2 x ~", AK: "~@2 x ~@4 x ~@5 x ~@5 x ~@4", AL: "~ x ~@5 x ~@4 x ~@5 x ~@5",
  AM: "x ~@5 x ~@5 x ~@4 x ~@5 x", AN: "~@5 x ~@5 x ~@4 x ~@5 x ~", AO: "~@4 x ~@5 x ~@5 x ~@4 x ~@2",
  AP: "~ x ~@5 x ~@5 x ~@5 x ~@2 x ~", AQ: "~@2 x ~@3 x ~@2 x ~@2 x ~@5 x ~@5",
// … 133 more lines