Strudelify
Let's Dance cover art

1963 · No No No

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

// bass · acoustic bass · "Ak.Bass"
const bass = note(`<
  ~@4 A B A C D@2 E@2 F D F G H I J K A B A C D L E@2 F M F G H I N O P@3 Q@3 R S@5 T U T V W@2 X@4 R Y@5 Z AA T AB W@2
  X@4 R AC@5 T AA AD AA AE AF AG@2 AH AI AJ@2
>`.pickRestart({
  A: "bb1@5 ~@11", B: "~@10 f1 ~ f1@4", C: "~@5 bb1@3", D: "eb2 c2 bb1 c2", E: "bb1@4 g1@3 ~ f1@4 g1@4",
  F: "f2@2 d2@2 c2@2 d2 ~", G: "eb2@2 c2@2 bb1@2 c2 ~", H: "bb1@2 d2@2 f2@2 g2 f2", I: "bb1@2 f2 bb2@3 eb2@2",
  J: "bb1 d2 f2 d2", K: "bb1@4 f2@2 bb2@3 ~ f2 ~ f2@3 ~", L: "eb2 c2 bb1 eb2", M: "eb2@3 ~ c2@4 bb1@4 c2@2 eb2@2",
  N: "bb1 f2 bb2 f2", O: "~@4 f2@2 bb2@4 f2 ~ f2 ~ f2@2, bb1", P: "bb1",
  Q: "[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", R: "~@4 g1@3 ~ f1@4 g1@4, bb1",
  S: "[~@4 d2@4 f2@4 g2@4 f2@4 d2@4 c2@4 d2@3 ~ eb2@4 c2@4 ~@4 c2@4 f2@4 d2@4 c2@4 d2@3 ~ eb2@4 c2@4 ~@4 c2@4, bb1@5 bb1@4 bb1]/5",
  T: "~@2 d2@2 f2@2 g2 f2, bb1", U: "~@4 f2 ~ bb2@6 eb2@4, bb1", V: "~@4 f2@2 bb2@4 f2 ~ f2@3 ~, bb1",
  W: "[~@26 f1 ~ f1@4, bb1]/2", X: "[~@8 eb2 c2 ~ c2 eb2 c2 ~ c2, bb1@4 ~ bb1@2 bb1, ~@13 bb1@7 ~@12]/4",
  Y: "[~@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",
  Z: "~@4 d2@3 ~ f2@4 g2@2 f2@2, bb1", AA: "~@2 f2 bb2@3 eb2@2, bb1", AB: "~@4 f2@2 bb2@2 ~@2 f2 ~ f2@4, bb1",
  AC: "[~@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@3 ~ eb2@4 c2@4 ~@4 c2@4, bb1@5 bb1@4 bb1]/5",
  AD: "~ d2 f2 d2, bb1", AE: "~@3 f2 bb2@2 f2 ~, bb1", AF: "~ c3@3 a2@2 f2@2, bb1",
  AG: "[~ d2 f2 g2 eb2 c2 ~ c2, bb1@3 bb1]/2", AH: "~ d2 eb2 d2, bb1", AI: "~ g1 f1 bb1@5, bb1@3 ~@5",
  AJ: "[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 G I J K L@2 M N M C O E P ~ Q R G S T U V@2 A@2 W X Y Z AA AB AC AD AE AF J AG AH N AI N M C
  AJ E AK ~ AL AM G AF AN@2 AO N AP N M ~ AQ@2 AR ~ AS R AS R AT@2 AU AV AU AW AX AY AZ BA BB@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: "[eb3,g3,bb3,eb4]@11 ~@5", J: "[bb2,f3,bb3,d4]@13 ~@3", K: "~@10 [eb3,g3,bb3,eb4]@5 ~",
  L: "[[f3,bb3,d4]@18 ~@8 [f2,f4] ~ f2@2 ~@2, bb2@16 ~@12 f4 ~@3]/2", M: "[bb2,f3,bb3,d4]@3 ~@5",
  N: "~@10 [f2,f3] ~ [f2,f3]@3 ~", O: "[eb3,g3,bb3,eb4]@7 ~@9", P: "[bb2,bb3,d4,f4]@7 ~@9", Q: "[a3,c4]@3 ~",
  R: "[eb3,g3,bb3,c4,eb4]@3 ~", S: "[eb3,c4,eb4]@3 ~, [g3,bb3]@7 ~", T: "[bb2,f3,bb3,d4]@9 ~@7",
  U: "~@6 [g3,bb3,eb4] ~", V: "[[f3,bb3,d4]@29 ~@3, bb2@3 ~]/2", W: "[bb2,bb3,d4,f4]@5 ~@11, f3 ~@15",
  X: "[bb2,bb3,d4,ab4]@13 ~@3", Y: "~ [bb3,c4,eb4,g4] ~@2 [bb3,c4,eb4,g4] ~@3",
  Z: "[bb3,c4,eb4,g4]@2 ~@4 [bb3,c4,eb4,g4]@7 ~@3", AA: "~ [f3,g3,bb3,d4] ~@2 [f3,g3,bb3,d4] ~@3",
  AB: "[f3,g3,bb3,d4]@2 ~@4 [f3,g3,bb3,d4]@5 ~@5", AC: "[a3,c4,d4,f4]@13 ~@3", AD: "[g3,eb4]@14 c4 ~",
  AE: "[a3,c4,d4]@13 ~@3", AF: "[bb3,c4,eb4]@3 ~", AG: "~@10 [f2,f3] ~ [f2,f3] ~ f2@2, ~@14 f3 ~",
  AH: "[bb2,f3,bb3]@13 ~@3", AI: "[bb2,bb3]@7 ~@9", AJ: "[eb3,g3,bb3,eb4]@3 ~", AK: "[bb2,bb3,d4,f4]@9 ~@7",
  AL: "[f3,a3,c4,f4]@11 ~@5", AM: "[eb3,bb3,eb4]@13 ~@3", AN: "[[bb2,f3,bb3,d4]@19 ~@7 [eb3,g3,bb3,eb4]@5 ~]/2",
  AO: "[f3,bb3,d4]@11 ~@5, bb2 ~", AP: "[bb2,f3,bb3] ~@3", AQ: "[[eb3,g3,bb3,eb4]@21 ~@7 [eb3,bb3,eb4,g4]@4]/2",
  AR: "[bb2,bb3,d4,f4]@3 ~", AS: "[f3,a3,c4,f4]@13 ~@3", AT: "[[f3,bb3,d4]@18 ~@8 [eb3,bb3,eb4,g4]@5 ~, bb2 ~]/2",
  AU: "[bb2,bb3,d4,f4]@5 ~@11", AV: "~@10 [eb3,bb3,eb4,g4]@5 ~", AW: "[bb2,bb3,d4,f4] ~@3",
  AX: "[bb3,d4,f4]@13 ~@3, e4 ~@15", AY: "[eb3,bb3,eb4,g4]@15 ~, db4@13 ~@3",
  AZ: "[bb2,f4]@7 ~ [bb3,db4,eb4,g4]@5 ~@3, ~@8 eb3@3 ~@5", BA: "bb3 g3 f3 bb3 ~@4", BB: "[[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 F M A B A N O E P G Q R H S P M T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL B A
  C D E AM AN AO AP AQ AR AS AT AU AV AW B A C D AX AY AZ BA R H J BB BC BD BC BE BF BB BG BH BI BJ ~
>`.pickRestart({
  A: "[bb3,bb4]@3 ~@13", B: "~@10 [f3,f4] ~ [f3,f4]@4", C: "~@5 [bb3,bb4]@3",
  D: "~@4 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~", // 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: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5]@2 ~@2 f3 ~ f3 ~ f3 ~", N: "~@10 [bb3,bb4]@5 ~",
  O: "[bb4,eb5]@2 ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~@3 [bb4,eb5,g5] ~, bb3 ~@15", // Eb5 Eb
  P: "[bb3,bb4]@3 ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~", // Bb
  Q: "[f3,c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
  R: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5] ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Eb
  S: "[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
  T: "[bb3,bb4]@2 ~@2 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [bb4,d5,f5] ~", // Bb
  U: "[bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,eb5,g5] ~ [bb4,d5,f5] ~@3 [f3,f4] ~ [f3,f4] ~ [f3,f4] ~", // Bb Eb Bb F
  V: "[bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~ [bb3,bb4] ~", // Bb
  W: "[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
  X: "[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
  Y: "[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
  Z: "~@2 [g5,bb5,c6,eb6] ~@5 [g5,bb5,c6,eb6]@4 ~@2 bb5 ~", // Cm7
  AA: "[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
  AB: "~@2 [f5,g5,bb5,d6] ~@5 [f5,g5,bb5,d6]@3 ~@5", // Gm7
  AC: "[f5,g5,bb5,d6]@2 ~@4 [f5,g5,bb5]@5 [a5,b5] [c5,d5,e5,f5] ~@3, ~@3 d6@2 ~@3", // Gm7 Asus2 Dm7
  AD: "[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
  AE: "[g5,bb5,c6,eb6]@3 ~ [g5,bb5,c6,eb6] ~ [g5,bb5,c6,eb6]@9 ~", // Cm7
  AF: "[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
  AG: "[g5,bb5,c6,eb6]@3 ~ [g5,bb5,c6,eb6] ~ [g5,bb5,c6,eb6]@7 ~@3", // Cm7
  AH: "bb4@4 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5] ~@3 [f5,bb5,d6] ~, ~@5 d6 ~@2", // Bb Bb5 Bb
  AI: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,d6] ~@3 f4 ~ f4 ~ f4 ~, ~@3 bb5 ~@4", // Bb Eb Dm
  AJ: "bb4@4 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~@3 [f5,bb5,d6] ~", // Bb
  AK: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,bb5,d6] ~@3 f4 ~ f4@4", AL: "bb4 ~@3",
  AM: "~@4 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // Bb
  AN: "[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
  AO: "[a4,c5,f5]@2 ~@2 [a4,c5,f5] ~ [a4,c5,f5]@2 ~@2 [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  AP: "[g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~", // Eb
  AQ: "[a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a4,c5,f5]@3 ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  AR: "[g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5] ~ [g4,bb4,eb5]@4", // Eb
  AS: "~@4 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~@3 [f4,bb4,d5] ~", // Bb
  AT: "[f4,bb4,d5] ~ [f4,bb4,d5] ~ [g4,bb4,eb5] ~ [f4,bb4,d5]@2 ~@4 [f3,f4] ~ f4@2, ~@14 f3 ~", // Bb Eb Bb F
  AU: "[bb3,bb4] ~@3 [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // Bb
  AV: "[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
  AW: "[bb3,bb4] ~@7", AX: "[bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [c5,eb5,ab5] ~ [eb5,g5]@2 ~@4 [bb3,bb4]@4, ~@6 bb4 ~@9",
  AY: "f3@2 ~@2 [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5,f5] ~ [bb4,d5] ~@3 [bb4,d5,f5] ~, ~@5 f5 ~@2", // Bb
  AZ: "[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
  BA: "[c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5]@3 ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~, d5 ~@15", // F
  BB: "~@4 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~@3 [f5,bb5,d6] ~", // Bb
  BC: "[f5,bb5,d6] ~ [f5,bb5,d6] ~ [g5,bb5,eb6] ~ [f5,bb5] ~@3 f5 ~ f5 ~ f5 ~, ~@3 d6 ~@4", // Bb Eb Bb5
  BD: "bb5 ~@3 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5] ~@3 [f5,bb5,d6] ~, ~@5 d6 ~@2", // Bb Bb5 Bb
  BE: "bb5@2 ~@2 [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~ [f5,bb5,d6] ~@3 [f5,bb5,d6] ~", BF: "[f5,bb5,d6] ~@7",
  BG: "[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
  BH: "[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
  BI: "[f5,bb5,d6]@2 g5@2 f5 ~ [f5,bb5] ~@9, ~@3 d6 ~@4", BJ: "[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 G N O C P C D Q R N S T L U L N G N V W C@2 X Q@2 N@2 Y Q Z AA N AB AC AD C AE C D AF Q
  N S AG AH T L AI AJ AK AD C AL W D R E N@2 T AM Z AN AI N@3 AO AP S AQ AR AS AT@2
>`.pickRestart({
  A: "[bb2,f3]@5 ~@3", B: "~@10 [f2,c3] ~ [f2,c3]@3 ~", C: "[bb2,f3]@5 ~@11", 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] ~ [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,g3] ~ [bb2,f3] ~", // Bb5 Eb Bb5 Eb Bb5
  O: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [f2,f3] ~ [f2,f3]@2 [f2,f3]@2", P: "~@5 [f2,f3] [f2,f3]@2",
  Q: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  R: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  S: "[bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  T: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5 Dm F5
  U: "[f3,c4] ~ [f3,c4] ~ d4 ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5
  V: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [f2,f3] ~ [f2,ab2,f3] ~ [f2,f3] ~", W: "[bb2,f3] ~@3",
  X: "[bb2,f3]@3 ~@7 [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  Y: "[f3,c4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~@3 [f3,c4] ~", // F5
  Z: "[f3,c4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~ [f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5
  AA: "[eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~", // Eb5
  AB: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ f3 ~ f3 ~ f3 ~", // Bb5 Eb Bb5
  AC: "[bb2,g3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Eb Bb5 Eb Bb5 Eb Bb5
  AD: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [f2,f3] ~ [f2,f3]@3 ~", AE: "~@10 [f2,f3] ~ [f2,f3]@4",
  AF: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4]@2 [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  AG: "[f3,c4] ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~ f3 ~ [f3,c4] ~ [f3,d4] ~ [f3,c4] ~", // F5 Dm F5 Dm F5
  AH: "[eb3,bb3] ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5 Cm Eb5
  AI: "[bb2,f3] ~ [bb2,f3] ~ bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", // Bb5 Eb Bb5
  AJ: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ f3 ~ f3 ~", // Bb5 Eb Bb5
  AK: "[bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3,bb3] ~ [bb2,f3] ~", // Bb5 Eb Bb5 Eb Bb5
  AL: "~@10 [f2,f3] ~ [f2,f3]@3 ~", AM: "[eb3,bb3] ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~ eb3 ~ [eb3,bb3] ~",
  AN: "[eb3,bb3] ~ [eb3,bb3] ~ c4 ~ [eb3,bb3] ~@3 [eb3,bb3] ~ [eb3,c4] ~ [eb3,bb3] ~", // Eb5 Cm Eb5
  AO: "~@2 [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~", AP: "[bb2,f3] ~@15",
  AQ: "[eb3,bb3] ~ [eb3,bb3] ~@3 [eb3,c4] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3] ~ [eb3,bb3]@2", // Eb5 Cm Eb5
  AR: "[bb2,e3,f3] ~ [bb2,f3] ~ [bb2,g3] ~ [bb2,f3] ~ [eb3,bb3] ~ [eb3,bb3] ~ bb3 ~ [eb3,bb3] ~", // Bb Bb5 Eb Bb5 Eb5
  AS: "[bb2,e3,f3,bb3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3,ab3] ~@9", AT: "[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)

// drums · mid tom
const mid_tom = s("mt").struct("<A@8 ~@12 A@4 ~@28 A@4 ~@12 A@3 B ~@20>".pickRestart({
  A: "~ x!3 ~ x!3", B: "~ x!3 ~ x!2 ~",
})).gain(0.24)

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

// drums · crash
const crash = s("cr").struct("<~@4 A ~@3 A ~@11 A ~@3 A ~@11 A@5 ~@11 A ~@3 A ~ A ~@9 A ~@3 A ~@17 A ~>".pickRestart({
  A: "x",
})).gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@40 [x!8]!12 x ~@39>").gain(0.24)

stack(
  bass, piano, percussive_organ, electric_guitar_muted, kick, snare, low_tom, pedal_hat, mid_tom, high_tom, crash, ride
)

More by Chris Montez