Strudelify
Do the Limbo Dance cover art

Do the Limbo Dance

Hasselhoff David

KeyE♭ majorTempo107 bpm
0:00/0:00
// Do the Limbo Dance — Hasselhoff David
// 107 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 2 "FINGERDBAS" Harmo Pan -> pad warm
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/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 · pad warm · "FINGERDBAS"
const bass = note(`<
  ~@4 A B C D E F G H I F J K L M N O P Q R D ~ S F T U V W X Y A Q C D A Z C D ~@7 AA B C AB AC AD AE AF AG AH AI AJ
  ~@8 AK AL AM AN AK AO AM AP ~ AQ AR AM AS AT AO AM AN AK AO AM AN AU AR AV AW AX AY ~@8
>`.pickRestart({
  A: "ab1@2 ~ ab1 f1@2 eb1@2 ab1!2 ~ ab1 f1@2 eb1@2", B: "ab1@2 ~ ab1 f1@2 eb1@2 eb2@2 ~ eb2 c2@2 bb1@2",
  C: "eb2@2 ~ eb2 c2@2 bb1@2 eb2!2 ~ eb2 c2@2 bb1@2", D: "db2@2 ~ db2 c2@2 bb1@2 ab1@2 ~ ab1 f1@2 eb1@2",
  E: "ab1 ~ ab1 ~ ab1@2 ~ eb1 ab1 ~ ab1 ~ ab1@2 ~@2", F: "ab1 ~ ab1 ~ ab1@2 ~ ab1 eb1 ~ eb1 ~ eb1@3 ~",
  G: "eb1 ~ eb1 ~ eb1@2 ~ bb1 eb2 ~ eb2 ~ eb2@4", H: "eb1 ~ eb1 ~ eb1@2 ~ eb1 ab1 ~ ab1@2 f1@2 eb1@2",
  I: "ab1 ~ ab1 ~ ab1@2 ~ eb1 ab1 ~ ab1 ~ ab1@3 ~", J: "ab1 ~ eb1 ~ eb1@2 ~ eb1 ab1 ~ ab1 ~ ab1@2 ~ ab1",
  K: "eb1 ~ eb1@2 eb2 bb1 eb1@2 ab1 ~ ab1 ~ ab1 ~@3", L: "ab1 ~@2 ab1 f1@2 eb1@2 ab1 ~@2 ab1 f1@2 eb1@2",
  M: "ab1!2 ~ ab1 f1@2 eb1@2 eb2@2 ~ eb2 c2@2 bb1@2", N: "eb2!2 ~ eb2 c2@2 bb1@2 eb2 ~@2 eb2 c2@2 bb1@2",
  O: "db2 ~@2 db2 c2@2 bb1@2 ab1 ~@2 ab1 f1@2 eb1@2", P: "ab1 ~@2 ab1 f1@2 eb1 ~ ab1!2 ~ ab1 f1@2 eb1@2",
  Q: "ab1 ~@2 ab1 f1@2 eb1@2 eb2!2 ~ eb2 c2@2 bb1@2", R: "eb2 ~@2 eb2 c2@2 bb1 ~ eb2!2 ~ eb2 c2@2 bb1@2",
  S: "ab1 ~ ab1 ~ ab1@2 ~ eb1 ab1 ~ ab1 ~ ab1@2 ~ eb1", T: "eb1 ~ eb1 ~ eb1 ~ eb1!2 ~ eb1!2 ~ eb1@2 ~ eb1",
  U: "eb1 ~ eb1@2 eb2@2 eb1@2 ab1 ~ ab1 ~ ab1@2 ~ eb1", V: "ab1 ~ ab1 ~ ab1 ~ ab1!2 ~ ab1!2 ~ ab1@2 ~ eb1",
  W: "ab1 ~ ab1 ~ ab1@2 ~ ab1 eb1 ~ eb1 ~ eb1@2 ~ bb1", X: "eb2 ~ eb2 ~ eb2@2 ~ eb1 ab1 ~ ab1 ~ ab1@2 ~ ab1",
  Y: "eb1 ~ eb1 ~ eb1!2 ~ eb1 ab1 ~ ab1 ~ ab1@2 ~@2", Z: "ab1 ~@2 ab1 f1@2 eb1 ~ eb2!2 ~ eb2 c2@2 bb1@2",
  AA: "ab1@2 ~ ab1 f1@2 eb1@2 ab1 ~@2 ab1 f1@2 eb1@2", AB: "db2@2 ~ db2 c2@2 bb1@2 ab1@3 ~@5",
  AC: "bb1@2 ~ bb1 ~@2 f1 ~ bb1!2 ~ bb1 bb1@2 f1@2", AD: "bb1 ~ bb1 ~ bb1@2 ~ bb1 f1 ~ f1 ~ f1 ~ f1!2",
  AE: "f1!2 ~ f1 f1@2 ~ f1!2 ~ f1 ~ f1@2 ~ f1", AF: "f2 ~ f2@2 f1@2 ~ f1 bb1 ~ bb1@2 ~@2 f1@2",
  AG: "bb1 ~ bb1 ~ bb1@2 ~ f1 bb1 ~ bb1 ~ bb1@2 ~ f1", AH: "bb1 ~ bb1 ~ bb1!2 ~ bb1 f1 ~ f1 ~ f1@2 ~ c2",
  AI: "f2 ~ f2 ~ f2@2 ~ f1 bb1 ~ bb1 ~ bb1@2 ~ bb1", AJ: "f1 ~ f1 ~ f1!2 ~ f1 bb1 ~ bb1 ~ bb1@2 ~@2",
  AK: "bb1@2 ~ bb1 g1@2 f1@2 bb1!2 ~ bb1 g1@2 f1@2", AL: "bb1@2 ~ bb1 g1@2 f1@2 f2!2 ~ f2 d2@2 c2@2",
  AM: "f2@2 ~ f2 d2@2 c2@2 f2!2 ~ f2 d2@2 c2@2", AN: "eb2@2 ~ eb2 d2@2 c2@2 bb1 ~@2 bb1 g1 f1 g1@2",
  AO: "bb1@2 ~ bb1 g1@2 f1@2 f2@2 ~ f2 d2@2 c2@2", AP: "eb2@2 ~ eb2 d2@2 c2@2 bb1@2 ~ bb1 g1 f1 g1@2",
  AQ: "bb1@2 ~ bb1 g1@2 f1@2 bb1 ~@2 bb1 g1@2 f1@2", AR: "bb1!2 ~ bb1 g1@2 f1@2 f2@2 ~ f2 d2@2 c2@2",
  AS: "eb2@2 ~ eb2 d2@2 c2@2 bb1 ~@2 bb1 g1@2 f1@2", AT: "bb1@2 ~ bb1 g1@2 f1 ~ bb1!2 ~ bb1 g1@2 f1@2",
  AU: "bb1@2 ~ bb1 g1@2 f1@2 bb1@2 ~ bb1 g1@2 f1 ~", AV: "f2@2 ~ f2 d2@2 c2@2 f2 ~@2 f2 d2@2 c2@2",
  AW: "eb2 ~@2 eb2 d2@2 c2@2 bb1 ~@2 bb1 g1@2 f1 ~", AX: "~@13 f1 g1@2", AY: "bb1 ~@7",
})).s("gm_pad_warm").gain(0.36)

// other · tuba
const tuba = note(`<
  ~@17 A B C ~ A B C ~@10 A D C ~ A E C ~@22 F ~@5 G H I ~ G J I K ~ G L I ~ G H I ~ G H I ~ G H I M N ~@8
>`.pickRestart({
  A: "eb4!2 ~ eb4 db4 ~ c4 ~ bb3 ~ g4 eb4 ~ eb4 g4 ~", B: "eb4 ~@2 eb4@3 ~@10",
  C: "db4!2 ~ db4 c4 ~ bb3 ~ ab3 ~ eb4 ab4 ~ bb4 c5 ~", D: "eb4 ~@2 eb4@5 ~@8", E: "eb4 ~@2 eb4@4 ~@9",
  F: "~@10 f4 bb4 ~ c5 d5 ~", G: "f4!2 ~ f4 eb4 ~ d4 ~ c4 ~ a4 f4 ~ f4 a4 ~", H: "f4 ~@2 f4@5 ~@8",
  I: "eb4!2 ~ eb4 d4 ~ c4 ~ bb3 ~ f4 bb4 ~ c5 d5 ~", J: "f4 ~@2 f4@4 ~@9",
  K: "bb3 ~ bb3 ~ bb3 ~@2 bb3!2 ~ bb3 ~ bb3 ~@3", L: "f4 ~@2 f4@3 ~@10, ~@3 g4 ~@12", M: "~@12 f4 g4 ab4 a4",
  N: "bb4 ~@15",
})).s("gm_tuba").gain(0.32).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@4 A B C D E F G H I J K L M N C O M P C O ~ Q R S H E T H U V W C X Y Z G AA ~@7 AB AC C AD AE AF AG AH AI AF AH AJ
  ~@8 AK AL AM AN AK AO AP AQ ~ AK AR AS AQ AT AL AS AU AV AW AP AX AV AY AS AX ~@10
>`.pickRestart({
  A: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~", // Ab
  B: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4]!2", // Ab Eb
  C: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~", // Eb
  D: "~@2 [ab3,db4,f4] ~@3 [ab3,db4,f4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]!2", // Db Ab
  E: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~", // Ab
  F: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4]!2", // Ab Eb
  G: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Eb
  H: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]!2", // Eb Ab
  I: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]!2", // Ab
  J: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~", // Ab Eb
  K: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~", // Eb Ab
  L: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4] ~@3 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3", // Eb Ab
  M: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4]!2 ~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4]!2", // Ab
  N: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2", // Ab Eb
  O: "~@2 [ab3,db4,f4] ~@3 [ab3,db4,f4] ~@3 [c4,eb4,ab4]!5 ~", // Db Ab
  P: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [bb3,eb4,g4] ~ [bb3,eb4,g4]!3 ~", // Ab Eb
  Q: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [ab3,c4,eb4] ~@3 [c4,eb4,ab4] ~", // Ab
  R: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [bb3,eb4,g4] ~@3 [g3,bb3,eb4] ~", // Ab Eb
  S: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4]!2 ~@2 [g3,bb3,eb4] ~@3 [bb3,eb4,g4] ~", // Eb
  T: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [g3,bb3,eb4] ~@3 [bb3,eb4,g4]!2", // Ab Eb
  U: "~@2 [g3,bb3,eb4] ~@3 [g3,bb3,eb4]!2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3", // Eb Ab
  V: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4]!2", // Ab
  W: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [bb3,eb4,g4]!2 ~@2 [bb3,eb4,g4] ~", // Ab Eb
  X: "~@2 [ab3,db4,f4] ~@3 [ab3,db4,f4] ~@3 [ab3,c4,eb4]!3 ~ [ab3,c4,eb4] ~", // Db Ab
  Y: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]!2 ~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]!2", // Ab
  Z: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [g3,bb3,eb4]!5 ~", // Ab Eb
  AA: "~@2 [ab3,db4,f4] ~@3 [g3,bb3,eb4] ~@3 [ab3,c4,eb4]!2 ~ [ab3,c4,eb4]!2 ~", // Db Eb Ab
  AB: "~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3 [c4,eb4,ab4] ~", // Ab
  AC: "~@2 [c4,eb4,ab4]!2 ~@2 [c4,eb4,ab4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~", // Ab Eb
  AD: "~@2 [ab3,db4,f4] ~@3 [ab3,db4,f4] ~@3 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@3", // Db Ab
  AE: "~@2 [bb3,d4,f4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~", // Bb
  AF: "~@2 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~", // Bb F
  AG: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~", // F
  AH: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~", // F Bb
  AI: "~@2 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~", // Bb
  AJ: "~@2 [a3,c4,f4] ~@3 [a3,c4,f4] ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3", // F Bb
  AK: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4]!2 ~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4]!2", // Bb
  AL: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4]!2", // Bb F
  AM: "~@2 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4]!2", // F
  AN: "~@2 [eb4,g4,bb4] ~@3 [eb4,g4,bb4] ~@3 [d4,f4,bb4]!2 ~ [d4,f4,bb4]!2 ~", // Eb Bb
  AO: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [c4,f4,a4] [c4,f4,ab4,a4] ~ [c4,f4,a4]!2 ~", // Bb F
  AP: "~@2 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~@3 [c4,f4,a4] ~", // F
  AQ: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,d4,f4]!2 ~ [bb3,d4,f4]!2 ~", // Eb Bb
  AR: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [c4,f4,a4]!2 ~@2 [c4,gb4,a4] ~", // Bb F Gbdim
  AS: "~@2 [c4,f4,a4] ~@3 [c4,f4,a4]!2 ~@2 [c4,f4,a4] ~@3 [c4,f4,a4] ~", // F
  AT: "~@2 [bb3,d4,f4] ~@3 [bb3,d4,f4]!2 ~@2 [bb3,d4,f4] ~@3 [d4,f4,bb4]!2", // Bb
  AU: "~@2 [bb3,eb4,g4]!2 ~@2 [bb3,eb4,g4] ~@3 [d4,f4,bb4]!2 ~ [d4,f4,bb4]!2 ~", // Eb Bb
  AV: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [d4,f4,bb4]!2", // Bb
  AW: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [c4,f4,a4]!5 ~", // Bb F
  AX: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [d4,f4,bb4]!2 ~ [d4,f4,bb4]!2 ~", // Eb Bb
  AY: "~@2 [d4,f4,bb4] ~@3 [d4,f4,bb4] ~@3 [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~", // Bb F
})).s("gm_acoustic_guitar_steel").gain(0.29)

// other · marimba
const marimba = note(`<
  ~@8 A B C D E F G H I J K L M N O P Q A R S T U V W X I Y Z AA I AB AC AD ~@11 AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS AT AQ AU AV AW AQ AX AY AZ BA AQ BB BC BD BE BF BG BH BI BJ BK BL BM AX BN BO BP BQ ~@8
>`.pickRestart({
  A: "[ab4,c5]!3 c5 [eb4,ab4] ~ [c4,eb4] ~ [ab4,c5]!3 c5 [eb4,ab4] ~ [c4,eb4] ~", // Ab Ab5 Cm Ab Ab5 Cm
  B: "[ab4,c5] c5 [ab4,c5] c5 [eb4,ab4] ~ [c4,eb4] ~ [eb5,g5]!4 [bb4,eb5] ~ [f4,g4,bb4] ~", // Ab Ab5 Cm Eb Eb5 Gm7
  C: "g5 [eb5,g5]!3 [bb4,eb5] ~ [g4,bb4] ~ [eb5,g5]!3 g5 [bb4,eb5] ~ [g4,bb4] ~", // Eb Eb5 Gm Eb Eb5 Gm
  D: "g5 [eb5,g5]!3 [bb4,eb5] ~ [g4,bb4] ~ [ab4,c5] c5 [ab4,c5]!2 [eb4,ab4] ~ [c4,eb4] ~", // Eb Eb5 Gm Ab Ab5 Cm
  E: "c5 [ab4,c5]!3 [eb4,ab4] ~ [c4,eb4] ~ [ab4,c5]!2 c5 [ab4,c5] [eb4,ab4] ~ [c4,eb4] ~", // Ab Ab5 Cm Ab Ab5 Cm
  F: "[ab4,c5] c5 [ab4,c5]!2 [eb4,ab4] ~ [c4,eb4] ~ g5 [eb5,g5]!3 [bb4,eb5] ~ [f4,g4,bb4] ~", // Ab Ab5 Cm Eb Eb5 Gm7
  G: "[bb4,eb5]!3 eb5 [bb4,eb5] ~ [bb4,eb5] ~ [ab4,c5]!3 c5 [eb4,ab4] ~ [ab4,c5] ~", // Eb5 Ab Ab5 Ab
  H: "[g4,bb4]!3 bb4 [eb4,g4] ~ [eb4,bb4] ~ [c4,ab4]!4 ab4 ~@3", // Gm Eb Eb5 Fm
  I: "[c4,ab4] ~ [c4,ab4] ~ [eb4,c5]!3 ~ [c4,ab4] ~ [c4,ab4] ~ [eb4,c5]!3 ~", // Fm Cm Fm Cm
  J: "[ab4,eb5]!2 ~ [ab4,eb5] [bb4,db5] ~ [ab4,c5] ~ [g4,bb4]!6 bb4 ~", // Ab5 Bbm Ab Gm
  K: "[g4,eb5] ~ [g4,eb5] ~ [g4,eb5] ~ [ab4,f5] ~ [g4,eb5] ~ [db4,bb4] ~ [g4,bb4]!3 bb4", // Cm Db Cm Gb Gm
  L: "[f4,db5]!2 ~ [f4,db5] [eb4,c5] ~ [d4,bb4] ~ [c4,ab4]!3 ab4 [eb4,c5] ~@3", // Db Cm Gm Fm Cm
  M: "[c4,ab4] ~ [c4,ab4] ~ [eb4,c5]!3 c5 [c4,ab4] ~ [c4,ab4] ~ [eb4,c5]!3 c5", // Fm Cm Fm Cm
  N: "[ab4,eb5]!2 eb5 [ab4,eb5] [bb4,db5] ~ [ab4,c5] ~ [g4,bb4]!3 bb4 [g4,bb4] ~@3", // Ab5 Bbm Ab Gm
  O: "[g4,eb5]!4 eb5 ~ [ab4,f5] ~ [g4,eb5] ~ [g4,bb4] ~ [g4,bb4] ~@3", // Cm Db Cm Gm
  P: "[f4,db5]!3 db5 [eb4,c5] ~ [db4,bb4] ~ [c4,ab4]!4 ab4 ~ [c4,ab4] ~", Q: "[c4,ab4] ~@15",
  R: "c5 [ab4,c5] c5 [ab4,c5] [eb4,ab4] ~ [c4,eb4] ~ [eb5,g5]!3 g5 [bb4,eb5] ~ [g4,bb4] ~", // Ab Ab5 Cm Eb Eb5 Gm
  S: "[eb5,g5] g5 [eb5,g5]!2 [bb4,eb5] ~ [g4,bb4] ~ [eb5,g5]!2 g5 [eb5,g5] [bb4,eb5] ~ [g4,bb4] ~", // Eb Eb5 Gm Eb Eb5 Gm
  T: "[eb5,g5]!3 g5 [bb4,eb5] ~ [g4,bb4] ~ [ab4,c5]!2 c5 [ab4,c5] [eb4,ab4] ~ [c4,eb4] ~", // Eb Eb5 Gm Ab Ab5 Cm
  U: "c5 [ab4,c5]!3 [eb4,ab4] ~ [c4,eb4] ~ c5 [ab4,c5]!2 c5 [eb4,ab4] ~ [c4,eb4] ~", // Ab Ab5 Cm Ab Ab5 Cm
  V: "c5 [ab4,c5]!2 c5 [eb4,ab4] ~ [c4,eb4] ~ g5 [eb5,g5] g5 [eb5,g5] [bb4,eb5] ~ [g4,bb4] ~", // Ab Ab5 Cm Eb Eb5 Gm
  W: "g5 [eb5,g5]!3 [bb4,eb5] ~ [g4,bb4] ~ [c5,eb5]!3 eb5 [ab4,c5] ~ [eb4,ab4] ~", // Eb Eb5 Gm Cm Ab Ab5
  X: "[g4,bb4]!3 bb4 [eb4,bb4] ~ [eb4,bb4] ~ [c4,ab4] ~ [c4,ab4] ~ [c4,ab4] ~@3", // Gm Eb5 Fm
  Y: "[ab4,eb5]!2 ~ [ab4,eb5] [ab4,d5] ~ [ab4,c5] ~ [g4,bb4]!4 bb4 ~@3", // Ab5 Abdim Ab Gm
  Z: "[g4,eb5]!4 eb5 ~ [ab4,f5] ~ [g4,eb5] ~ [eb4,bb4] ~@3 [eb4,bb4] ~", // Cm Db Cm Eb5
  AA: "[f4,db5]!2 ~ [f4,db5] [eb4,c5] ~ [db4,bb4] ~ [c4,ab4]!2 ab4 [c4,ab4] eb4 ~ c4 ~", // Db Cm Gb Fm
  AB: "[c5,eb5]!2 ~ [c5,eb5] [bb4,db5] ~ [ab4,c5] ~ [g4,bb4]!4 [eb4,g4] ~@3", // Cm Bbm Ab Gm Eb
  AC: "[g4,eb5] ~ [g4,eb5] ~ [g4,eb5] ~ [ab4,f5] ~ [g4,eb5] ~ bb4 ~ [g4,bb4] bb4 ~@2", // Cm Db Cm Gm
  AD: "[f4,db5] db5 [f4,db5]!2 [eb4,c5] ~ [db4,bb4] ~ [c4,ab4] ab4 [c4,ab4]!3 ~ [c4,ab4] ~", // Db Cm Gb Fm
  AE: "d5 [bb4,d5]!2 d5 [f4,bb4] ~ [d4,f4] ~ d5 [bb4,d5]!2 d5 [f4,bb4] ~ [d4,f4] ~", // Bb Bb5 Dm Bb Bb5 Dm
  AF: "[bb4,d5] d5 [bb4,d5] d5 [f4,bb4] ~ [d4,f4] ~ [f5,a5]!3 a5 [c5,f5] ~ [a4,c5] ~", // Bb Bb5 Dm F F5 Am
  AG: "[f5,a5]!3 a5 [c5,d5,f5] ~ [a4,c5] ~ [f5,a5]!3 a5 [c5,f5] ~ [a4,c5] ~", // F Dm7 Am F F5 Am
  AH: "[f5,a5]!3 a5 [c5,f5] ~ [a4,c5] ~ [bb4,d5]!3 d5 [f4,bb4] ~ [d4,f4] ~", // F F5 Am Bb Bb5 Dm
  AI: "[bb4,d5]!3 d5 [f4,bb4] ~ [d4,f4] ~ [bb4,d5]!3 d5 [f4,bb4] ~ [d4,f4] ~", // Bb Bb5 Dm Bb Bb5 Dm
  AJ: "[bb4,d5] d5 [bb4,d5]!2 [f4,bb4] ~ [d4,f4] ~ [f5,a5]!3 a5 [c5,f5] ~ [a4,c5] ~", // Bb Bb5 Dm F F5 Am
  AK: "a5 [f5,a5]!3 [c5,f5] ~ [a4,c5] ~ [bb4,d5]!3 d5 [f4,bb4] ~ [d4,f4] ~", // F F5 Am Bb Bb5 Dm
  AL: "[a4,c5]!3 c5 [f4,c5] ~ [eb4,c5] ~ [d4,bb4]!5 ~@3", // Am F5 Cm Gm
  AM: "[d4,bb4] ~ [d4,bb4] ~ [f4,d5]!3 d5 [d4,bb4] ~ [d4,bb4] ~ [f4,d5]!3 ~", // Gm Dm Gm Dm
  AN: "[bb4,f5]!4 [c5,eb5] ~ [bb4,d5] ~ [a4,c5]!6 c5 ~", // Bb5 Cm Bb Am
  AO: "[a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [bb4,g5] ~ [a4,f5] ~ [f4,c5] ~ [a4,c5]!3 ~", // Dm Eb Dm F5 Am
  AP: "[c5,eb5]!3 eb5 [bb4,d5] ~ [a4,c5] ~ [f4,bb4]!5 ~@3", // Cm Bb Am Bb5
  AQ: "[d4,bb4] ~ [d4,bb4] ~ [f4,d5]!3 d5 [d4,bb4] ~ [d4,bb4] ~ [f4,d5]!3 d5", // Gm Dm Gm Dm
  AR: "[d5,f5]!3 f5 [c5,eb5] ~ [bb4,d5] ~ [a4,c5]!3 c5 [g4,bb4] ~ [f4,a4] ~", // Dm Cm Bb Am Gm F
  AS: "[a4,f5]!3 f5 [a4,f5] ~ [bb4,g5] ~ [a4,f5] ~ [f4,c5] ~ [f4,c5] ~@3", // Dm Eb Dm F5
  AT: "[g4,eb5]!3 eb5 [f4,d5] ~ [eb4,c5] ~ [d4,bb4] ~@2 d4 f4 ~ g4 ~", // Cm Dm Cm Gm
  AU: "[bb4,d5]!3 d5 [a4,c5] ~ [g4,bb4] ~ [f4,a4]!4 a4 ~ [f4,a4] ~", // Bb Am Gm F
  AV: "[a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [bb4,g5] ~ [a4,f5] ~ [a4,c5] ~ [a4,c5]!2 c5 ~", // Dm Eb Dm Am
  AW: "[g4,eb5]!3 eb5 [f4,d5] ~ [eb4,c5] ~ [d4,bb4]!3 bb4 f4 ~ d4 ~", // Cm Dm Cm Gm
  AX: "[bb4,f5]!2 f5 [bb4,f5] [c5,eb5] ~ [bb4,d5] ~ [a4,c5]!3 c5 [g4,bb4] ~ [f4,a4] ~", // Bb5 Cm Bb Am Gm F
  AY: "[a4,f5]!4 f5 ~ [bb4,g5] ~ [a4,f5] ~ [a4,c5] ~ [a4,c5]!2 c5 [a4,c5]", // Dm Eb Dm Am
  AZ: "[g4,eb5] eb5 [g4,eb5]!2 [f4,d5] ~ [eb4,c5] ~ [d4,bb4] ~@2 f4 g4 ~ bb4 ~", BA: "[d4,bb4] ~@15",
  BB: "[bb4,f5]!3 f5 [c5,eb5] ~ [bb4,d5] ~ [a4,c5]!4 c5 ~ [a4,c5] ~", // Bb5 Cm Bb Am
  BC: "[a4,f5]!2 f5 [a4,f5]!2 ~ [bb4,g5] ~ [a4,f5] ~ [a4,c5] ~ [a4,c5]!3 ~", // Dm Eb Dm Am
  BD: "[g4,d5,eb5] [g4,eb5]!2 eb5 [f4,d5] ~ [eb4,c5] ~ [d4,bb4]!2 bb4 f4 g4 ~ bb4 ~", // Ebmaj7 Cm Dm Cm Gm
  BE: "[d4,bb4] ~ [d4,bb4] ~ [f4,d5]!3 d5 [d4,bb4] ~ [d4,bb4] ~ [f4,d5] d5 [f4,d5]!2", // Gm Dm Gm Dm
  BF: "[d5,f5]!2 f5 [d5,f5] [c5,eb5] ~ [bb4,d5] ~ [a4,c5]!2 c5 ~ [a4,f5] ~@3", // Dm Cm Bb Am Dm
  BG: "[a4,f5] ~ [a4,f5] ~ [a4,f5] ~ [bb4,g5] ~ [a4,f5] ~ [a4,c5]!6", // Dm Eb Dm Am
  BH: "[g4,eb5]!3 eb5 [f4,d5] ~ [eb4,c5] ~ [d4,bb4] ~@2 f4 g4 ~ bb4 ~", // Cm Dm Cm Gm
  BI: "[d4,bb4] ~ [d4,bb4] ~ [f4,d5]!3 ~ [d4,bb4] ~ [d4,bb4] ~ [f4,d5]!2 d5 [f4,d5]", // Gm Dm Gm Dm
  BJ: "[bb4,f5]!3 f5 [c5,eb5] ~ [bb4,d5] ~ [a4,c5]!2 c5 [a4,c5] [g4,bb4] ~ [f4,a4] ~", // Bb5 Cm Bb Am Gm F
  BK: "f5 [a4,f5]!4 ~ [bb4,g5] ~ [a4,f5] ~ [a4,c5]!4 c5 ~", BL: "[g4,eb5]!4 [f4,d5] ~ [eb4,c5] ~ [d4,bb4]!4 g4 ~ f4 ~",
  BM: "[d4,b4] ~ [d4,bb4] ~ [f4,d5]!3 d5 [d4,bb4] ~ [d4,bb4] ~ [f4,d5] d5 [f4,d5] f4", // G Gm Dm Gm Dm
  BN: "[a4,b4,f5] ~ [a4,f5] ~ [a4,f5] ~ [bb4,g5] ~ [a4,f5] ~ [a4,c5] ~ [a4,c5]!3 c5", // Bm7b5 Dm Eb Dm Am
  BO: "[g4,eb5]!4 [f4,d5] ~ [eb4,c5] ~ [d4,bb4]!4 f4 ~ g4 ~", BP: "[d4,bb4] ~@9 f4 g4 ~ f4 d4 ~", BQ: "bb3 ~@15",
})).s("gm_marimba").gain(0.3)

// chords · trumpet
const trumpet = note(`<
  A B C D ~@5 E ~ F ~ G ~@2 A H I J K L M N ~@2 G ~ O ~ G ~@2 P L Q R S L T N ~@12 U ~ V ~ U ~@2 W X Y Z AA AB AC AD W
  AE AF AG W AH AI AG AJ W AE AK AG W AL AM AG W AN AO AG W AB AM AP AQ AR ~@8
>`.pickRestart({
  A: "[c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [eb4,ab4,c5]@3 ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [eb4,ab4,c5]@2 ~@2", // Ab
  B: "[c5,eb5]!4 [bb4,db5]@2 [ab4,c5]@2 [g4,bb4]@5 ~@3", // Cm Bbm Ab Gm
  C: "[g4,eb5] ~ [g4,eb5] ~ [g4,eb5] ~ [ab4,f5] ~ [g4,eb5] ~ [g4,bb4] ~ [g4,bb4]@3 ~", // Cm Db Cm Gm
  D: "[f4,db5]!4 [eb4,c5] ~ [db4,bb4] ~ [c4,ab4]@6 ~@2", // Db Cm Gb Fm
  E: "[ab4,c5] ~ [ab4,c5] ~ [ab4,c5]@3 [bb4,db5] [ab4,c5] ~ [g4,bb4]@2 [g4,bb4]@4", // Ab Bbm Ab Gm
  F: "[g4,bb4] ~ [g4,bb4] ~ [g4,bb4]@2 ~ [ab4,c5] [g4,bb4] ~ ab4 ~ [eb4,ab4]@4", // Gm Ab Gm Ab5
  G: "[ab4,c5] ~ [ab4,c5] ~ [ab4,c5]@2 ~ [bb4,db5] [ab4,c5] ~ [g4,bb4]@5 ~", // Ab Bbm Ab Gm
  H: "[c5,eb5]!4 db5@2 [ab4,c5] ~ [g4,bb4]@6 ~@2, ~@4 bb4 ~@11", // Cm Ab Gm
  I: "[g4,eb5] ~ [g4,eb5] ~ [g4,eb5]@2 f5@2 [g4,eb5] ~ [g4,bb4] ~ [g4,bb4]@3 ~, ~@6 ab4 ~@9", // Cm Gm
  J: "[f4,db5]!4 [eb4,c5]@2 [db4,bb4] ~ [c4,ab4]@6 ~@2", // Db Cm Gb Fm
  K: "[c4,ab4] ~ [c4,eb4,ab4] ~ [eb4,ab4,c5]@3 ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [eb4,ab4,c5]@4", // Fm Ab
  L: "[c5,eb5]!4 [bb4,db5]@2 [ab4,c5] ~ [g4,bb4]@6 ~@2", // Cm Bbm Ab Gm
// … 167 more lines

More by Hasselhoff David