Strudelify
Let's Dance cover art

Let's Dance

Let's Dance

Chris Montez

KeyB♭ majorTempo154 bpm
0:00/0:00
// Let's Dance — Chris Montez
// 154 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(154/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 · acoustic bass · "Ak.Bass"
const bass = note(`<
  ~@4 A B A C D E F G H D I J K L M N O P A C Q R F G H S T J K L U V W@3 X@3 Y Z@5 AA AB AA AC AD@2 AE@4 Y AF@5 AG AH
  AA AI AD@2 AE@4 Y AJ@5 AA AH AK AH AL AM AN@2 AO AP AQ@2
>`.pickRestart({
  A: "bb1@5 ~@11", B: "~@10 f1 ~ f1@4", C: "~@5 bb1@3", D: "eb2 c2 bb1 c2", E: "eb2@4 c2@4 bb1@4 c2@3 ~",
  F: "bb1@4 g1@3 ~ f1@4 g1@4", G: "bb1 g1 f1 g1", H: "f2@2 d2@2 c2@2 d2 ~", I: "f2@4 d2@4 c2@4 d2@3 ~",
  J: "eb2@2 c2@2 bb1@2 c2 ~", K: "bb1@2 d2@2 f2@2 g2 f2", L: "bb1@2 f2 bb2@3 eb2@2", M: "bb1 d2 f2 d2",
  N: "bb1@4 f2@2 bb2@3 ~ f2 ~ f2@3 ~", O: "bb1 ~@3", P: "~@10 f1 ~ f1@3 ~", Q: "eb2@4 c2@3 ~ bb1@4 c2@4",
  R: "eb2 c2 bb1 eb2", S: "eb2@3 ~ c2@4 bb1@4 c2@2 eb2@2", T: "f2@3 ~ d2@4 c2@4 d2@2 ~@2", U: "bb1 f2 bb2 f2",
  V: "~@4 f2@2 bb2@4 f2 ~ f2 ~ f2@2, bb1", W: "bb1",
  X: "[bb1@5 bb1!2 ~ eb2@2 c2@2 ~@2 c2@2 eb2@2 c2@2 ~@2 c2@2, ~@7 bb1@5 bb1@8 bb1@4]/3", Y: "~@4 g1@3 ~ f1@4 g1@4, bb1",
  Z: "[~ d2 f2 g2 f2 d2 c2 d2 eb2 c2 ~ c2 f2 d2 c2 d2 eb2 c2 ~ c2, bb1@5 bb1@4 bb1]/5", AA: "~@2 d2@2 f2@2 g2 f2, bb1",
  AB: "~@4 f2 ~ bb2@6 eb2@4, bb1", AC: "~@4 f2@2 bb2@4 f2 ~ f2@3 ~, bb1", AD: "[~@26 f1 ~ f1@4, bb1]/2",
  AE: "[bb1@13 ~@3 eb2@2 c2@2 ~@2 c2@2 eb2@2 c2@2 ~@2 c2@2, ~@13 bb1@7 bb1@8 bb1@4]/4",
  AF: "[~@4 g1@4 f1@4 ~@4 f2@4 d2@4 c2@4 d2@3 ~ eb2@4 c2@4 ~@4 c2@4 f2@4 d2@4 c2@4 d2@2 ~@2 eb2@4 c2@4 ~@4 c2 ~@3, bb1@3 bb1@7 bb1@8 bb1@2]/5",
  AG: "~@4 d2@3 ~ f2@4 g2@2 f2@2, bb1", AH: "~@2 f2 bb2@3 eb2@2, bb1", AI: "~@4 f2@2 bb2@2 ~@2 f2 ~ f2@4, bb1",
  AJ: "[~@4 g1@4 f1@4 g1@3 ~ f2@4 d2@4 c2@4 d2@3 ~ eb2@4 c2@4 ~@4 c2@2 eb2 ~ f2@4 d2@4 c2@4 d2@4 eb2@4 c2@4 ~@4 c2@4, bb1@5 bb1@4 bb1]/5",
  AK: "~ d2 f2 d2, bb1", AL: "~@3 f2 bb2@2 f2 ~, bb1", AM: "~ c3@3 a2@2 f2@2, bb1",
  AN: "[~ d2 f2 g2 eb2 c2 ~ c2, bb1@3 bb1]/2", AO: "~ d2 eb2 d2, bb1", AP: "~ g1 f1 bb1@5, bb1@3 ~@5",
  AQ: "[bb1@5 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.2)

// chords · piano
const piano = note(`<
  ~@4 A B A C D E F ~ G H I J K L M@2 N O N P Q E R ~ S T I U V W X@2 A Y Z AA AB AC AD AE AF AG AH AI K AJ AK AL AM O N
  AN AO E AP ~ AQ AR I AI AS@2 AT O AU AL N ~ AV@2 AW ~ AX T AY AZ BA BB BC BB BC BD BE BF BG BH BI@2
>`.pickRestart({
  A: "[bb2,f3,bb3,d4] ~@3", B: "~@10 [f2,f3,a3,c4] ~ [f2,f3,a3,c4]@3 ~", C: "~@5 [bb2,bb3]@3, ~@5 [f3,d4]@2 ~",
  D: "[eb3,g3,bb3,eb4]", E: "~@3 [eb3,bb3,eb4,g4]", F: "[bb2,bb3,d4,f4]@15 ~", G: "[f3,a3,c4,f4]@7 ~",
  H: "[eb3,g3,eb4]@13 ~@3", I: "[f3,a3,c4,f4]@13 ~@3", J: "[eb3,g3,bb3,eb4]@11 ~@5", K: "[bb2,f3,bb3,d4]@13 ~@3",
  L: "~@10 [eb3,g3,bb3,eb4]@5 ~", M: "[[f3,bb3,d4]@18 ~@8 [f2,f4] ~ f2@2 ~@2, bb2@16 ~@12 f4 ~@3]/2",
  N: "[bb2,f3,bb3,d4]@3 ~@5", O: "~@10 [f2,f3] ~ [f2,f3]@3 ~", P: "~@5 [bb2,bb3,d4]@3, ~@5 f3@2 ~",
  Q: "[eb3,g3,bb3,eb4]@7 ~@9", R: "[bb2,bb3,d4,f4]@7 ~@9", S: "[a3,c4]@3 ~", T: "[eb3,g3,bb3,c4,eb4]@3 ~",
  U: "[eb3,c4,eb4]@3 ~, [g3,bb3]@7 ~", V: "[bb2,f3,bb3,d4]@9 ~@7", W: "~@6 [g3,bb3,eb4] ~",
  X: "[[f3,bb3,d4]@29 ~@3, bb2@3 ~]/2", Y: "[bb2,f3,bb3,d4]@5 ~@11", Z: "[bb2,bb3,d4,f4]@5 ~@11, f3 ~@15",
  AA: "[bb2,bb3,d4,ab4]@13 ~@3", AB: "~ [bb3,c4,eb4,g4] ~@2 [bb3,c4,eb4,g4] ~@3",
  AC: "[bb3,c4,eb4,g4]@2 ~@4 [bb3,c4,eb4,g4]@7 ~@3", AD: "~ [f3,g3,bb3,d4] ~@2 [f3,g3,bb3,d4] ~@3",
  AE: "[f3,g3,bb3,d4]@2 ~@4 [f3,g3,bb3,d4]@5 ~@5", AF: "[a3,c4,d4,f4]@13 ~@3", AG: "[g3,eb4]@14 c4 ~",
  AH: "[a3,c4,d4]@13 ~@3", AI: "[bb3,c4,eb4]@3 ~", AJ: "~@10 [f2,f3] ~ [f2,f3] ~ f2@2, ~@14 f3 ~",
  AK: "[bb2,f3,bb3]@13 ~@3", AL: "~@10 [f2,f3] ~ [f2,f3]@4", AM: "[bb2,bb3]@7 ~@9", AN: "~@10 [bb2,f3,bb3,d4]@5 ~",
  AO: "[eb3,g3,bb3,eb4]@3 ~", AP: "[bb2,bb3,d4,f4]@9 ~@7", AQ: "[f3,a3,c4,f4]@11 ~@5", AR: "[eb3,bb3,eb4]@13 ~@3",
  AS: "[[bb2,f3,bb3,d4]@19 ~@7 [eb3,g3,bb3,eb4]@5 ~]/2", AT: "[f3,bb3,d4]@11 ~@5, bb2 ~", AU: "[bb2,f3,bb3] ~@3",
  AV: "[[eb3,g3,bb3,eb4]@21 ~@7 [eb3,bb3,eb4,g4]@4]/2", AW: "[bb2,bb3,d4,f4]@3 ~", AX: "[f3,a3,c4,f4]@3 ~",
  AY: "[f3,a3]@13 ~@3, [c4,f4]@11 ~@5", AZ: "[eb3,g3,bb3,eb4]@13 ~@3, c4@11 ~@5", BA: "[bb2,f3,bb3,d4]",
  BB: "~@10 [eb3,bb3,eb4,g4]@5 ~", BC: "[bb2,bb3,d4,f4]@5 ~@11", BD: "[bb2,bb3,d4,f4] ~@3",
  BE: "[bb3,d4,f4]@13 ~@3, e4 ~@15", BF: "[eb3,bb3,eb4,g4]@15 ~, db4@13 ~@3",
  BG: "[bb2,f4]@7 ~ [bb3,db4,eb4,g4]@5 ~@3, ~@8 eb3@3 ~@5", BH: "bb3 g3 f3 bb3 ~@4", BI: "[[bb3,d4,g4,c5]@23 ~@9]/2",
})).s("gm_piano").gain(0.17)

// chords · percussive organ · "Organ"
const percussive_organ = note(`<
  ~@4 A B A C D E F G H I H J K L M N A O P Q R E 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 O AT C AU E AV AW AX AY AZ BA BB BC BD BE P O A C AU BF BG BH BI BJ BK BL BM BN BO BP BQ BR BM BS BT BU BV ~
>`.pickRestart({
  A: "[bb3,bb4]@3 ~@13", B: "~@10 [f3,f4] ~ [f3,f4]@3 ~", C: "~@5 [bb3,bb4]@3",
  D: "~@4 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5] ~@3 [bb4,eb5,g5] ~, ~@5 g5 ~@2", // Eb Eb5 Eb
  E: "[bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [bb4,eb5,g5]@2 ~@8", // Eb Ab Eb
  F: "bb3@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [d5,f5]@2 ~@2 [bb4,d5,f5] ~, ~@10 bb4 ~@5", // Bb Dm Bb
  G: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5] ~", // Bb Eb Bb Eb Bb
  H: "[c5,f5,a5]@2 ~@2 [c5,f5,a5] ~ [c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  I: "[bb4,eb5,g5]@3 ~ [bb4,eb5,gb5,g5] ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Eb
  J: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5]@2 ~@2", // Eb
  K: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5] ~@3 [bb4,d5,f5] ~, ~@5 f5 ~@2", // Bb
  L: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,f5] ~@5 f3@3 ~, ~@3 d5 ~@4", // Bb Eb Bb5
  M: "bb3@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5] ~@3 [bb4,d5,f5] ~, ~@5 f5 ~@2", // Bb
  N: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5]@2 ~@2 f3 ~ f3 ~ f3 ~", O: "~@10 [f3,f4] ~ [f3,f4]@4",
  P: "[bb3,bb4] ~@7", Q: "~@10 [bb3,bb4]@5 ~",
  R: "[bb4,eb5]@2 ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, bb3 ~@15", // Eb5 Eb
  S: "[bb3,bb4]@3 ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~", // Bb
  T: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5]@2 ~@2 [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5] ~", // Bb Eb Bb Eb Bb
  U: "[f3,c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  V: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Eb
  W: "[c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  X: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5] ~@3 [bb4,eb5,g5] ~ [bb4,g5]@2 ~@2, ~@6 g5@2 ~@4 eb5 ~@3", // Eb Eb5 Eb
  Y: "[bb3,bb4]@3 ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5] ~@3 [bb4,d5,f5] ~, ~@5 f5 ~@2", // Bb
  Z: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5] ~@3 f3 ~ f3 ~ f3 ~, ~@3 f5 ~@4", // Bb Eb Bb
  AA: "[bb3,bb4]@2 ~@2 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~", // Bb
  AB: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5] ~@3 [f3,f4] ~ [f3,f4] ~ [f3,f4] ~", // Bb Eb Bb F
  AC: "[bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~", // Bb
  AD: "[bb3,bb4,d5] ~ [bb3,bb4,d5] ~ [bb3,bb4,d5] ~ [bb3,bb4,d5] ~ [bb3,bb4,d5] ~ [bb3,bb4,d5] ~ [bb3,bb4,d5] ~ [bb3,bb4,d5] ~", // Bb
  AE: "[bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~ [bb3,bb4,d5,f5] ~", // Bb
  AF: "[bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~ [bb3,bb4,d5,ab5] ~", // Bb7
  AG: "~@2 [g5,bb5,c6,eb6] ~@5 [g5,bb5,c6,eb6]@4 ~@2 bb5 ~", // Cm7
  AH: "[g5,bb5,c6,eb6]@2 ~@4 [g5,bb5,c6]@4 [b5,db6] [f5,g5,a5] [a4,b4,c5,d5,e5,a5] [f4,g4] [c4,d4,e4] ~, ~@6 eb6@3 ~@7", // Cm7 C7 Bsus2 F Am Fsus2 C
  AI: "~@2 [f5,g5,bb5,d6] ~@5 [f5,g5,bb5,d6]@3 ~@5", // Gm7
  AJ: "[f5,g5,bb5,d6]@2 ~@4 [f5,g5,bb5]@5 [a5,b5] [c5,d5,e5,f5] ~@3, ~@3 d6@2 ~@3", // Gm7 Asus2 Dm7
  AK: "[a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~ [a5,c6,f6]@2 ~@2 [a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~, ~@6 d6 ~@9", // Dm7 F Dm7
  AL: "[g5,bb5,c6,eb6]@3 ~ [g5,bb5,c6,eb6] ~ [g5,bb5,c6,eb6]@9 ~", // Cm7
  AM: "[a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~ [a5,c6,d6,f6]@2 ~@2 [a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~ [a5,c6,d6,f6] ~", // Dm7
  AN: "[g5,bb5,c6,eb6]@3 ~ [g5,bb5,c6,eb6] ~ [g5,bb5,c6,eb6]@7 ~@3", // Cm7
  AO: "bb4@4 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5] ~@3 [f5,bb5,d6] ~, ~@5 d6 ~@2", // Bb Bb5 Bb
  AP: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,d6] ~@3 f4 ~ f4 ~ f4 ~, ~@3 bb5 ~@4", // Bb Eb Dm
  AQ: "bb4@4 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~@3 [f5,bb5,d6] ~", // Bb
  AR: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,bb5,d6] ~@3 f4 ~ f4@4", AS: "bb4 ~@3", AT: "[bb3,bb4] ~@3",
  AU: "~@4 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~", // Eb
  AV: "~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // Bb
  AW: "[f4,bb4,d5] ~ [f4,bb4,d5] ~ [g4,bb4,eb5] ~ [f4,d5]@2 ~@2 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~, ~@6 bb4 ~@9", // Bb Eb Dm Bb
  AX: "[a4,c5,f5]@2 ~@2 [a4,c5,f5] ~ [a4,c5,f5]@2 ~@2 [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  AY: "[g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~", // Eb
  AZ: "[a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  BA: "[g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@4", // Eb
  BB: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [f4,bb4,d5] ~", // Bb
  BC: "[f4,bb4,d5] ~ [f4,bb4,d5] ~ [g4,bb4,eb5] ~ [f4,bb4,d5]@2 ~@4 [f3,f4] ~ f4@2, ~@14 f3 ~", // Bb Eb Bb F
  BD: "[bb3,bb4] ~@3 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // Bb
  BE: "[f4,bb4,d5] ~ [f4,bb4,d5] ~ [g4,bb4,eb5] ~ [f4,bb4] ~@3 [f3,f4] ~ [f3,f4] ~ f3@2, ~@6 d5@2 ~@6 f4 ~", // Bb Eb Bb5 F
  BF: "[bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [eb5,g5]@2 ~@4 [bb3,bb4]@4, ~@6 bb4 ~@9", // Eb Ab Eb Bb
  BG: "f3@2 ~@2 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5] ~@3 [bb4,d5,f5] ~, ~@5 f5 ~@2", // Bb
  BH: "[bb4,d5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5] ~@3 [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5] ~, f5 ~@2 f5 ~@4", // Bb Eb Bb Eb Bb
  BI: "[c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~, d5 ~@15", // F
  BJ: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Eb
  BK: "[c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  BL: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]@3 ~", // Eb
  BM: "~@4 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~@3 [f5,bb5,d6] ~", // Bb
  BN: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,bb5] ~@3 f5 ~ f5 ~ f5 ~, ~@3 d6 ~@4", // Bb Eb Bb5
  BO: "bb5 ~@3 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5] ~@3 [f5,bb5,d6] ~, ~@5 d6 ~@2", // Bb Bb5 Bb
  BP: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,bb5,d6] ~@3 f5 ~ f5 ~ f5 ~", // Bb Eb Bb
  BQ: "bb5@2 ~@2 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~@3 [f5,bb5,d6] ~", BR: "[f5,bb5,d6] ~@7",
  BS: "[eb5,bb5] ~@3 [eb5,bb5,db6] ~ [eb5,bb5,db6]@2 ~@2 [bb5,db6] ~@3 [eb5,bb5,db6] ~, db6 ~@4 eb5 ~@2", // Eb5 Eb7 Bbm Eb7
  BT: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,db6] ~ [g5,bb5,db6] ~ [g5,bb5,db6] ~ [g5,bb5,db6] ~", // Bb Gdim
  BU: "[f5,bb5,d6]@2 g5@2 f5 ~ [f5,bb5] ~@9, ~@3 d6 ~@4", BV: "[d5,g5,c6]",
})).s("gm_percussive_organ").gain(0.12)

// chords · electric guitar muted · "E-Guitar"
const electric_guitar_muted = note(`<
  ~@4 A B C D E F G H I J K L M N O P Q R Q S T U O V W X Y L O N O Z AA Q@2 AB AC T O@2 AD T AE AF O AG AH AI Q AJ Q D
  AK@2 O V AL AM W L AN AO AP AI AQ AR AQ D U AS O@2 W AT AE AU AN O@3 AV AW V AX AY AZ BA@2
>`.pickRestart({
  A: "[bb2,f3]@5 ~@3", B: "~@10 [f2,c3] ~ [f2,c3]@3 ~", C: "[bb2,f3]@3 ~@5", D: "~@5 bb2@3, ~@10 f3@3 ~@3",
  E: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  F: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~", // Eb5
  G: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3]@2 [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5 Eb Bb5
  H: "[bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3]@2 [bb2,f3] ~", // Eb Bb5
  I: "[f2,f3] ~ [f2,f3] ~ [f2,f3] ~ [f2,f3]@2 f3 ~ [f3,c4] ~ d4 ~ [f3,c4] ~", // F F5
  J: "[eb3,bb3] ~ [eb3,bb3] ~@3 [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  K: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~", // F5 Dm F5
  L: "[eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  M: "[bb2,f3] ~ [bb2,f3] ~ bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  N: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5 Eb Bb5
  O: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Bb5 Eb Bb5 Eb Bb5
  P: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [f2,f3] ~ [f2,f3]@2 [f2,f3]@2", Q: "[bb2,f3]@5 ~@11",
  R: "~@5 [f2,f3] [f2,f3]@2", S: "~@5 bb2@3, ~@5 f3@2 ~",
  T: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  U: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  V: "[bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  W: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5 Dm F5
  X: "[eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~", // Eb5 Cm Eb5
  Y: "[f3,c4] ~ [f3,c4] ~ d4 ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5
  Z: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [f2,f3] ~ [f2,ab2,f3] ~ [f2,f3] ~", AA: "[bb2,f3]@3 ~@13",
  AB: "[bb2,f3]@3 ~@7 [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  AC: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  AD: "[f3,c4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~@3 [f3,c4] ~", // F5
  AE: "[f3,c4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5
  AF: "[eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~", // Eb5
  AG: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ f3 ~ f3 ~ f3 ~", // Bb5 Eb Bb5
  AH: "[bb2,g3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Eb Bb5 Eb Bb5 Eb Bb5
  AI: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [f2,f3] ~ [f2,f3]@3 ~", AJ: "~@10 [f2,f3] ~ [f2,f3]@4",
  AK: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  AL: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5 Dm F5
  AM: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  AN: "[bb2,f3] ~ [bb2,f3] ~ bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Bb5 Eb Bb5
  AO: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ f3 ~ f3 ~", // Bb5 Eb Bb5
  AP: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3,bb3] ~ [bb2,f3] ~", AQ: "[bb2,f3] ~@3",
  AR: "~@10 [f2,f3] ~ [f2,f3]@3 ~", // F
  AS: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3]@2", // Eb5 Cm Eb5
  AT: "[eb3,bb3] ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~", // Eb5
  AU: "[eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~@3 [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  AV: "~@2 [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", AW: "[bb2,f3] ~@15",
  AX: "[eb3,bb3] ~ [eb3,bb3] ~@3 [eb3,c4] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3]@2", // Eb5 Cm Eb5
  AY: "[bb2,e3,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [eb3,bb3] ~ [eb3,bb3] ~ bb3 ~ [eb3,bb3] ~", // Bb Bb5 Eb Bb5 Eb5
  AZ: "[bb2,e3,f3,bb3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3,ab3] ~@9", BA: "[bb2@13 ~@3, f3@5 ~@3]/2",
})).s("gm_electric_guitar_muted").gain(0.16)

// drums · kick
const kick = s("bd").struct("<[x!2]!36 x!4 [x!2]!49 [x ~@2 x ~@4] x ~>").gain(0.36)

// drums · snare
const snare = s("sd").struct("<~@8 A@12 ~@4 A@12 ~@3 B A@3 C A C A@3 D A E ~@4 A@12 ~@4 A@16 C F ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@2 x!3 ~ x ~ x ~ x ~ x ~ x ~", C: "~@2 x ~@3 x!2", D: "~@2 x ~@2 x!3", E: "~@2 x ~@2 x!2 ~",
  F: "~ x ~@2",
})).gain(0.42)

// drums · low tom
const low_tom = s("lt").struct("<[x!2]!8 ~@12 [x!2]!4 ~@28 [x!2]!4 ~@12 [x!2]!4 ~@20>").gain(0.24)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@8 A@12 B ~@3 A@12 B@4 ~@16 A@12 B ~@3 A@17 C B ~>".pickRestart({
  A: "x!8", B: "x", C: "x!4 ~@4",
})).gain(0.24)

// … 19 more lines

More by Chris Montez