Strudelify

26 Miles (Santa Catalina)

The Four Preps

KeyD♭ majorTempo126 bpm
0:00/0:00
// 26 Miles (Santa Catalina) — The Four Preps
// 126 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 80 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126/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.

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B@2 C D E F G@2 H I B@2 C D E F J K L M N O P Q R S T U V@2 W X Y Z AA AB@2 AC AD AE AF AG AH AI AJ AK AL AM AN AO
  AP AQ AR@2 AS AT AU@2 AV AW AX@2 AY@2 AZ BA BB BC BD@2 BE BF BG BH BI BJ BK BL@2
>`.pickRestart({
  A: "~@9 ab2 bb2 c3",
  B: "[[ab3,db4]@4 [ab3,db4,f4]@2 [f3,ab3,db4,f4]@4 [ab3,db4,f4]@2 [f3,db4,f4]@4 [db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4] ~ [bb3,gb4]@4 [bb3,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [c3,c4,ab4]@4 [c4,ab4]@2 [c4,ab4]@4 [c4,ab4]@2, db3@5 ~ bb2@12 ~@2 c3@3 ~, f3 ~ bb3 ~ db4 ~ ab3@2, ~@16 f3@7 ~ eb3@18 eb3@6]/2", // Db5 Db Bbm Ebm Gb Fm
  C: "[f3,db4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4] ~, ab3 ~, f4 ~@3 f3@8 f3@11 ~, ~@2 db3@3 ~@7", // Db Bbm
  D: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [c4,ab4]@4 [c4,ab4]@2 [c4,ab4]@4 [eb3,ab3,c4,ab4]@2, eb3@5 eb3@6 ~, ~@6 ab3@5 ~, ~@8 c3@3 ~", // Gb Fm Ab
  E: "[ab3,db4,f4]@2 [ab3,db4,f4] [db4,f4]@2 [db4,f4] [bb3,db4,f4]@2 [db4,f4] [db4,f4]@2 [db4,f4], [db3,f3]@6 [f3,ab3]@6 f3@11 ~, ~@16 bb3@7 ~", // Db Bbm Db Fm
  F: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 gb4@4 gb4 ~ [ab3,c4,ab4]@4 [c3,ab4]@2 [c3,ab4]@4 [eb3,ab3,c4,ab4]@2, ~@3 [eb3,bb3,db4]@3 ~@2 [eb3,ab3,c4]@3 ~", // Gb Ab Fm Ab Eb7 Ab
  G: "[[db3,f3,db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [f3,bb3,db4] ~ [db4,gb4]@4 [db4,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [c4,ab4]@4 [c4,ab4]@2 [ab2,c3,ab4]@4 [eb3,ab3,ab4]@2, ab3@6 bb3@5 ~ bb3@3 ~@3 ab3@5 ~, ~@4 f3@12 f3@6 ~@2 eb3 ~@5 eb3@16 ~@2, ~@2 db3@3 ~@3 bb2@10 [ab2,c3]@3 c4@3]/2", // Db Bbm Gb5 Gb Fm Ab Ab5 Ab
  H: "db4@4 [db4,f4]@2 [db3,db4,f4]@4 [ab3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4] ~, f3@12 f3@11 ~, ~@2 ab3@3 ~@7", // Db Bbm
  I: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [db4,gb4] ~ [ab3,c4,ab4]@4 ab4@2 ab4@4 [c3,eb3,c4,ab4]@2, eb3@11 ~, ~@2 ab3, ~@8 [c3,c4]@3 ~", // Gb Gb5 Ab C
  J: "[f3,ab3,db4]@2 [db4,f4] [db4,f4]@2 [ab3,db4,f4] [ab3,c4,ab4]@2 [ab3,c4,ab4] [ab3,c4,ab4]@2 [ab3,c4,ab4], db3@5 ~ eb3@6, ~@4 [f3,ab3]@7 ~@5 c3@6 ~@2", // Db Ab Fm
  K: "[db4,f4]@4 [db4,f4]@2 [ab3,db4,f4]@4 [f3,db4]@2 [db3,f3,b3,db4]@4 [db3,f3,b3,db4,f4]@2 [db3,f3,b3,db4,f4]@4 [b3,db4] ~, db3 ~, f3@10 ab3 ~@13, ab3@3 ~@2 f4@3 ~@4", // Db Db7 Bsus2
  L: "~@4 [gb3,bb3,gb4]@2 [db3,gb3,bb3,gb4]@4 [gb3,bb3,db4,gb4] ~ [ab3,eb4,ab4]@4 [ab3,eb4,ab4]@2 [eb3,ab3,c4,eb4,ab4]@4 [eb3,ab3,c4,ab4] ~, [gb3,bb3,db4]@2 db4@3 ~ [eb3,c4]@3 ~@3, ~ db3@2 ~@3 ab2@5 ~", // Gb Ab5 Ab Gb Cm
  M: "~@4 [db4,f4]@2 [f3,ab3,db4,f4]@4 [f3,ab3,db4]@2 [bb3,db4]@4 [db4,f4]@2 [f3,db4,f4]@4 [f3,bb3,db4,f4] ~, db3@5 ~@3 bb3@3 ~, [f3,ab3] ~ f3 ~", // Db Bbm Db Bbm Fm
  N: "[bb3,eb4,gb4]@4 [bb3,eb4,gb4]@2 [bb3,eb4,gb4]@4 [bb3,eb4,gb4] ~ [ab3,c4,ab4]@4 [c4,ab4]@2 [ab2,c3,c4,ab4]@4 [ab3,c4,ab4]@2, eb3!4, ~@8 ab3@3 ~", // Ebm Ab Fm Ab
  O: "db4@2 f4 f4@2 [db4,f4] [db4,f4]@2 [db4,f4] [db3,f3,b3,db4,f4]@2 [db4,f4], [f3,ab3] [db3,f3,ab3] [db3,f3] ~, ~@2 db4@3 ~ ab3@5 ~", // Db Db7 Db Fm Db
  P: "[gb3,bb3,db4]@4 [gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@4 [bb3,db4,gb4] ~@3 c3@2 [ab3,c4,ab4]@2 [c4,ab4]@4 [c4,ab4]@2, db3@3 ~@3 [eb3,ab3]@2 eb3@4, ~@8 c3@3 ~, ~@3 ab3", // Gb Ab Fm Ab5
  Q: "[f3,ab3,db4,f4]@4 [db4,f4]@2 [db3,db4,f4]@4 [f3,ab3,db4]@2 [bb3,db4]@4 [bb3,db4,f4]@2 [f3,bb3,db4]@4 [f3,bb3,db4] ~, ~@2 [f3,ab3]@3 f4@3 ~@4, ~@2 [bb2,f3] [bb2,f4]", // Db Bbm Fm Bb5
  R: "eb4@2 [eb4,f4] [g3,db4,eb4,f4]@2 [g3,db4,eb4] [eb3,g3,db4,eb4]@2 [eb3,db4,eb4,f4] [db4,eb4,f4]@2 ~, eb3@5 ~@4 eb3@3, [g3,db4]@3 ~@5 g3@3 ~", // Ebsus2 Gm7b5 Eb7 Db Gdim
  S: "[eb3,ab3,c4,eb4,ab4]@3 ~@7 gb3@2 ~@6 eb3@4 ~@2, ab2 ~@11 f3@10 ~@2", // Ab
  T: "~@4 [db4,f4]@2 [db3,f4]@4 ~@2 [f3,bb3]@4 [f3,db4,f4]@2 [f3,db4,f4]@4 [bb3,db4,f4] ~, [f3,ab3]@3 db4@5 bb3@3 ~, ~ [f3,ab3] ~@2, ~@5 f4@3 ~@4", // Db Bb5 Db Bbm Fm
  U: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [db4,gb4] ~ [c3,ab4]@4 [ab2,c3]@2 [ab2,c3,ab3,c4]@4 [ab3,c4,ab4]@2, ~ eb3, ~@2 [ab3,c4] ~, ~@8 ab4@3 ~", // Gb Gb5 Fm Ab
  V: "[db4@4 f4@2 ab3@4 [f3,ab3,db4]@2 db4@4 [db4,f4]@2 [f3,bb3,db4,f4]@4 [f3,bb3,db4,f4] ~ [db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [eb3,db4,gb4] ~ [eb3,c4,ab4]@4 [c3,ab4]@2 [c3,ab4]@4 [eb3,ab4]@2, [db3,f3]@5 ~ bb2@12 ~@2 eb3@3 ~, ab3@6 f4@6 ~@12 eb3 ~@3 eb3@6 ~@6 c4@8, ~@4 db4@6 ~@2 [f3,bb3]@6 ~@6 bb3@11 ~ ab3@6 ab3@6]/2", // Db Bbm Gb5 Ebm7 Ab Fm Ab5 Db …
  W: "[ab3,db4,f4]@4 [ab3,db4,f4]@2 [ab3,db4,f4]@4 [ab3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [bb3,db4,f4] ~, db3@5 ~ bb2@6, f3!3 ~", // Db Bbm
  X: "[bb3,db4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [bb2,eb3,bb3,db4,gb4] ~ [c3,c4,ab4]@4 ab4@2 [ab3,ab4]@4 [eb3,ab3,c4,ab4]@2, bb2@5 ~ ab3@3 ~@3, eb3@3 ~@3 eb3@5 ~, ~@8 [c3,c4]@3 ~", // Bbm Gb Ebm7 Fm Ab C
  Y: "[ab3,db4,f4]@4 [ab3,db4]@2 [f3,ab3,db4]@4 [f3,ab3,db4,f4]@2 [bb3,db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [bb3,db4,f4] ~, db3@5 ~@7, f3 ~ f3 ~, ~@2 f4@3 ~@3 bb3@3 ~", // Db Db5 Db Bbm Db Bbm
  Z: "[db4,gb4]@4 [db4,gb4]@2 [eb3,bb3,db4,gb4]@4 [eb3,bb3,db4,gb4] ~ [eb3,c4,ab4]@4 [eb3,c4,ab4]@2 [c3,c4,ab4]@4 [c4,ab4]@2, [eb3,bb3] ~ [c3,ab3] [eb3,ab3]", // Gb5 Ebm7 Ab Fm Eb5 Fm Ab5
  AA: "db4@4 [db3,db4,f4]@2 [db3,db4,f4]@4 [db4,f4]@2 [f3,bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4] ~, [f3,ab3]@6 [f3,ab3]@6 ~@4 f3@7 ~", // Db Bbm Fm
  AB: "[[bb3,db4]@4 [db4,gb4]@2 [db4,gb4]@4 [eb3,bb3,db4,gb4] ~ [c4,ab4]@4 [c4,ab4]@2 [c4,ab4]@4 c4@2 db4@4 [ab3,db4]@2 [ab3,db4]@4 [f3,ab3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4] ~, eb3@5 ~ eb3@6 [db3,f3]@5 ~@7, ~@2 bb3@3 ~ ab3@5 ab3@3 ~@4 f3@3 ~@3, ~@22 ab4 ~@5 f4@6 ~@14]/2", // Bbm Gb5 Ebm7 Fm Db5 Db Bbm Db
  AC: "[db4,gb4]@4 [db4,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4,ab4]@4 ab4@2 ab4@4 [c4,ab4]@2, bb3@3 ~@5 ab3@4, ~@2 eb3@3 eb3@7, ~@8 [c3,c4]@3 ~", // Gb5 Gb Ab Fm C
  AD: "[db4,f4]@4 [db4,f4]@2 [db3,f3,ab3,db4,f4]@4 [ab3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [db4,f4] ~, [db3,f3,ab3] ~ f3 ~", // Db Bbm Db
  AE: "[bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [eb3,bb3,db4,gb4] ~ [c4,ab4]@4 [c4,ab4]@2 [c3,ab3,c4,ab4]@4 [ab3,c4,ab4]@2, ~@2 bb3@3 ~ [eb3,ab3]@3 eb3@3", // Gb Gb5 Ebm7 Fm Ab Ab5
  AF: "[ab3,db4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4] ~ [c4,ab4]@4 ab4@2 [c3,ab3,ab4]@4 [eb3,ab3,c4,ab4]@2, f3@5 ~ eb3@5 ~, db3 ~ [ab2,c3,ab3] ~, ~@2 ab3@4 ~@2 c4@3 ~", // Db5 Db Fm Ab
  AG: "[db3,f3,db4,f4]@2 [db3,f3,db4,f4] [db4,f4]@2 [db4,f4] [b3,db4,f4]@2 [db3,b3,db4,f4] [db3,f3,b3,db4,f4]@2 ~, ab3@3 db3@5 ~@4, ~ [f3,ab3] f3 ~", // Db Db7 Fm
  AH: "[gb3,bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [db3,gb3,bb3,db4,gb4] ~ [ab3,c4]@4 [c3,ab3,c4,ab4]@2 [ab3,c4,ab4]@4 [c3,eb3,ab3,c4,ab4]@2, db3@5 ~ ab2@5 ~, ~@2 [gb3,bb3]@3 ~@3 eb3@3 ~", // Gb Gb5 Gb Ab Fm Ab Gb
  AI: "[ab3,db4]@4 db4@2 db4@4 [f3,ab3,db4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [db4,f4] ~, db3@5 ~@7, c4 ~@3 f4@8 ~@12, ~@4 [f3,ab3]@6 ~@2 f3@11 ~", // Db5 Db Bbm Db Fm
  AJ: "[bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [bb3,db4,gb4] ~ [c4,ab4]@4 [c4,ab4]@2 [c3,c4,ab4]@4 [c4,ab4]@2, eb3@6 ab2@5 ~, ~@2 bb3@3 ~ ab3@6, ~@2 [c3,eb3] eb3", // Gb Gb5 Gb Fm Cm
  AK: "[f3,db4,f4]@4 db4@2 db4@4 db4@2 db4@4 [f3,db4,f4]@2 [db3,f3,b3,db4,f4]@4 [b3,db4,f4] ~, db3@3 ~, ab3@5 [ab3,f4]@3 ab3@3 ~, ~ f3@3 ~@2, ~@2 f4@3 ~@7", // Db Db7 Db
  AL: "bb3@2 bb3@2 [gb3,bb3,db4,gb4]@2 [db3,gb3,bb3,db4,gb4]@4 [db3,gb3,bb3,db4,gb4] ~ [eb3,ab3,c4,ab4]@4 [c3,ab3,c4,ab4]@2 [c3,ab3,c4,ab4]@4 [c3,eb3,ab3,c4,ab4]@2, db3@3 ~@5 eb3@3 ~, [gb3,db4] ~@5", // Gb Ab Fm Ab Gb5
  AM: "[db4,f4]@2 [db4,f4] [db4,f4]@2 [db4,f4] [bb3,db4,f4]@2 [bb3,db4,f4] [bb3,db4]@2 [bb2,c4], [db3,f3,ab3]@11 ~ [bb2,f3]@10 ~@2, ~@3 f4", // Db Bbm Bbsus2 Db Bb5
  AN: "[g3,db4,eb4]@4 [db4,eb4]@2 [db4,eb4,f4]@4 [db4,eb4]@2 [eb3,eb4]@4 [eb3,db4,eb4,f4]@2 [eb3,db4,eb4,f4]@4 [eb3,db4] ~, ~@2 g3@6 g3@3 ~, ~ eb3@2 ~@3, ~@5 f4@3 ~@4", // Eb7 Dbsus2 Db Dbsus2 Eb Db Eb7
  AO: "[eb3,ab3,c4,eb4,ab4]@5 gb3 ~@3 eb3@2 ~, ~@6 f3@5 ~", // Ab
  AP: "ab3@4 [db4,f4]@2 [db4,f4]@4 [f3,ab3,db4]@2 [bb3,db4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [f3,bb3,db4,f4] ~, db3@5 ~ f3@5 ~, ~@2 [f3,ab3]@3 f4@3 bb2@3 ~", // Db Bbm Fm
  AQ: "[db4,gb4]@2 [db4,gb4] [db4,gb4]@2 [eb3,bb3,db4] [eb3,c4,ab4]@2 [c4,ab4] [c4,ab4]@2 [c3,eb3,ab3,c4,ab4], bb3@5 ~ ab3@5 ~, ~@8 eb3@3 ~", // Gb5 Eb7 Ab Fm Ab
  AR: "[[db3,f3,db4,f4]@4 [db3,f3,db4,f4]@2 [db3,f3,db4,f4]@4 [f3,ab3,db4,f4]@2 [bb3,db4,f4]@4 [db4,f4]@2 [f3,db4,f4]@4 [f3,bb3,db4,f4] ~ [eb3,db4,gb4]@4 [eb3,db4,gb4]@2 [db4,gb4]@4 [db4,gb4] ~ [c3,ab3,c4,ab4]@4 [c3,ab3,c4,ab4]@2 [c3,ab3,c4,ab4]@4 [eb3,ab3,c4]@2, ab3@5 ~ f3@3 bb2@9 ~@2 ab2@3 ~, ~@8 bb3@3 ~ bb3@3 [eb3,bb3]@3 eb3@5 ~]/2", // Db Bbm Db Bbm Ebm7 Gb5 Fm Ab …
  AS: "[db3,f3,db4]@4 [f3,db4,f4]@2 [f3,ab3,db4,f4]@4 [f3,f4] ~ [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [bb3,db4,f4] ~, ab3@3 ~@2 db4 ~@6", // Db F Bbm
  AT: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4]@4 [ab3,c4,ab4]@2 ab4@4 ab4 ~, eb3@5 [bb2,eb3] eb3@3 [eb3,ab3,c4]@3, ~@8 c3@3 ~", // Gb Ab Eb5 Ab
  AU: "[[db4,f4]@4 [db4,f4]@2 [f3,db4,f4]@4 [f3,db4,f4]@2 [f3,bb3,db4,f4]@4 [f3,db4,f4]@2 [f3,db4,f4]@4 [bb3,db4,f4] ~ [bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4,ab4]@4 ab4@2 ab4@4 [ab3,c4,ab4]@2, db3@5 ~@4 bb2@9 ~@2 [c3,ab3,c4]@3 ~, [f3,ab3]@3 ab3@3 ~@2 bb3@3 ~ eb3@5 eb3@3 eb3@4]/2", // Db Bbm Db Bbm Gb Ab Fm
  AV: "[f3,ab3,db4]@4 [f3,ab3,db4,f4]@2 db4@4 db4@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [bb3,db4,f4] ~, db3@5 ~ bb2@6, ~ [f3,ab3,f4] f3 ~", // Db Bbm Fm
  AW: "[bb3,db4,gb4]@2 [db4,gb4] [db4,gb4]@2 [eb3,bb3] [c4,ab4]@2 [c4,ab4] [c3,eb3]@2 eb3, bb2@6 ab2@5 ~, ~@2 [eb3,bb3]@3 ~ [eb3,ab3]@3 [ab3,c4,ab4]@3", // Gb Gb5 Eb5 Fm Cm Eb5 Ab5 Ab
  AX: "[[f3,db4]@4 [db4,f4]@2 [db3,ab3,db4,f4]@4 [ab3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [f3,bb3,db4,f4] ~ [bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [eb3,bb3,db4,gb4] ~ [eb3,c4,ab4]@4 [c4,ab4]@2 [ab2,c3,eb4,ab4]@4 ab4@2, ab3@6 ~@18 eb3 ~@3 bb3@6 ~@2 bb2 ~@3 eb3@6 ~@2, ~@4 f3@7 ~ f3@6 bb2@18 [ab2,ab3]@6 [ab3,c4]@6]/2", // Db Bbm Gb Gb5 Ebm7 Ab Fm Ab
  AY: "[[db3,db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4]@2 [f3,bb3,db4,f4]@4 [f3,bb3,db4] ~ [db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [bb2,eb3,bb3,db4,gb4] ~ c4@4 ab4@2 [ab3,ab4]@4 [eb3,ab3,ab4]@2, ab3@2 ~@4 ab3 ~, c4 ~@3 db3@6 ~@2 bb2@22 ~@6 c4@8, ~@3 f3@3 [f3,bb3]@3 ~@3 [eb3,bb3]@5 ~ eb3@5 ~, ~@20 c3@3 ~]/2", // Db Bbm Gb5 Ebm7 Ab Ab5 Bb5 Eb5
  AZ: "[ab3,db4,f4]@4 [ab3,db4,f4]@2 [db3,ab3,db4,f4]@4 [ab3,db4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [f3,bb3,db4,f4] ~, f3@2 f3 ~, db3 ~@3", // Db Db5 Bbm
  BA: "[bb3,db4,gb4]@4 [eb3,db4,gb4]@2 [db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4,ab4]@4 [c3,ab3,c4,ab4]@2 [c3,ab3,c4,ab4]@4 [ab3,c4,ab4]@2, eb3 ~@3 bb3@6 ~@2 ab2@10 ~@2, ~ eb3 eb3@2", // Gb Ebm7 Gb5 Gb Ab Fm Ab
  BB: "[db4,f4]@4 [db4,f4]@2 [db4,f4]@4 [db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4] ~, ab3@11 ~@13, ~@3 f3@3 f3@5 ~", // Db Bbm
  BC: "[bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4,ab4]@4 [c4,ab4]@2 [c4,ab4]@4 [ab3,c4,ab4]@2, eb3!2, ~@2 bb3@3 ~@3 ab3@3 ~", // Gb Gb5 Gb Ab Fm Ab
  BD: "[[db4,f4]@4 [db4,f4]@2 [db3,f3,db4,f4]@4 [ab3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [bb3,db4,f4] ~ [eb3,bb3,db4,gb4]@4 [db4,gb4]@2 [eb3,db4,gb4]@4 [bb3,db4,gb4] ~ [c4,ab4]@4 [c4,ab4]@2 [c3,eb3,c4,ab4]@4 [eb3,ab3,c4]@2, ab3@5 ~ f3@3 ~@5 bb3@3 eb3@4 ~@3, f3@3 ~@3 bb2@12 ab3@5 ~, ~@6 c3 ~]/2", // Db Bbm Ebm7 Gb5 Ebm7 Gb Fm Ab
  BE: "[db4,f4]@4 [db4,f4]@2 [db3,db4,f4]@4 [f3,db4,f4]@2 [bb3,db4,f4]@4 [bb3,db4,f4]@2 [bb3,db4,f4]@4 [f3,bb3,db4,f4] ~, ab3 ~, f3@5 ~ f3@5 ~, c4 ~@23", // Db Bbm
  BF: "[bb3,db4,gb4]@4 [bb3,db4,gb4]@2 [bb3,db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4,ab4]@4 [c4,ab4]@2 [c4,ab4]@4 [ab3,c4,ab4]@2, ~@12 eb3 ~@3 eb3@8, ~@8 ab3@3 ~", // Gb Ab Fm Ab
  BG: "[f3,ab3,db4,f4]@2 [db4,f4] f4@2 [ab3,f4] [db4,f4]@2 [bb3,db4,f4] [f3,bb3,db4,f4]@2 [bb3,db4,f4], ~@2 f3@4 f3@3 ~@3, ~@2 [db3,ab3]@3 ~@7, ~ db4 ~@2", // Db Bbm Db5
  BH: "[bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [eb3,bb3,db4,gb4] ~ [eb3,c4,ab4]@4 [c4,ab4]@2 [c3,c4,ab4]@4 [eb3,c4,ab4]@2, eb3@5 ~@3 eb3@3 ~, ~@2 bb3@3 ~ ab3@3 ab3@3", // Gb Gb5 Ebm7 Ab Fm Ab
  BI: "[db4,f4]@4 [db4,f4]@2 [f3,db4,f4]@4 [ab3,db4,f4]@2 [f3,bb3,db4,f4]@4 [f3,bb3,db4,f4]@2 [f3,bb3,db4,f4]@4 [bb3,db4,f4] ~, ab3@5 ~@7, f3 ~@3", // Db Bbm
  BJ: "[bb3,db4,gb4]@4 [db4,gb4]@2 [db4,gb4]@4 [bb3,db4,gb4] ~ [ab3,c4,ab4]@4 [ab3,c4,ab4]@2 [c3,ab3,c4,ab4]@4 [ab3,c4,ab4]@2, ~@2 bb3@3 ~ ab2@5 ~, ~@2 eb3!2", // Gb Gb5 Gb Ab Fm Ab
  BK: "[db3,f3,ab3,db4]@5 ~ [db3,f3,ab3]@5 ~", BL: "[~@10 [db3,f3,ab3,db4]@21 ~@17]/2",
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(0.3)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A B C@2 D@2 E F G@2 A B C@2 D@2 H ~ I J@2 ~ K L M ~ N O M B ~ P Q R S@2 T U ~ V W ~ X Y ~@2 Z AA AB AC AD@2 AE AF
  AG@2 AE AH ~ AI AJ AK AL AM AN@2 AO@2 AP AQ AR AS AT@2 AU@2 AV ~@2
>`.pickRestart({
  A: "f4 ~@5", B: "~@6 ab2@5 ~", C: "[~@2 f4@2 ~@12 bb2@19 ~ c3@4 ab2@6 ~@2, db3 ~@11]/2",
  D: "[~@3 db3@2 ~ bb2@12 ab2@5 ~, ~@9 c3 ~@2]/2", E: "~@3 bb2 ~@2", F: "~@2 eb3 ~@9",
  G: "[[db3,f4]@2 db3 ~@3 bb2@11 ~ [ab2,c3]@2 ab2@3 ~]/2", H: "~@6 ab2@5 ~, ~@3 c3 ~@2", I: "~@2 gb2@9 ~@13",
  J: "[~ db4 ~@3 f4 f4@2 ~@6 bb2@4 c3@2 c3 ~@3, ~@5 bb2@9 ~@4 ab2@3 ~@3]/2", K: "~@2 gb2@9 ~ ab2@10 ~@2, gb4 ~@5",
  L: "~ db3@2 ~@9", M: "f4 ~@2 f4 ~@2", N: "~@12 bb2 ~@3 bb2@6 ~@2", O: "~@2 eb3 eb3@2 ~ ab2@2 ~@4",
  P: "gb4@2 ~ eb3@2 ~ ab2@5 c3", Q: "~@9 f3@2 ~, ~@2 bb2", R: "~@3 bb2@3 ab2@5 ~",
  S: "[db3@2 ~@10 gb4@2 ~@4 c3@2 c3@3 ~, ~@18 bb2@18 ab2@11 ~]/2", T: "~@18 f3@4 f3 ~",
  U: "eb3@2 ~@5 c3 ~@4, ~@6 ab2@5 ~", V: "eb3@5 ~ c3@2 c3 ~@3, ~@12 ab2@11 ~", W: "~@3 db3@2 ~@4 ab2@2 ~",
  X: "gb2@5 ~ eb3@2 ~ c3@2 ~, ~@6 c3 ~@5", Y: "f3 ~@5", Z: "gb2@5 ~ c3@2 ~@4, gb4 ~@5", AA: "~@5 f3 ~@6",
  AB: "eb3@4 ~@18 g3 ~", AC: "ab2@5 ~@7",
  AD: "[~@2 f3@2 ~@8 bb2@4 ~@8 eb3 ~@3 eb3@2 eb3@4 bb2@2 c3@4 [ab2,c3]@6 ~@2, db4@2 ~@9 bb2@6 ~@7]/2", AE: "~@2 bb2 ~",
  AF: "~@3 ab2 ~@2", AG: "[~@2 db3@3 ~ f3@3 ~@10 ab2 ab2@3 ~, ~@5 bb2@12 ~ ab4@2 ~@4]/2",
  AH: "~@10 f4 ~ ab2@10 ~@2, ~@3 c3 ~@2", AI: "~@2 c3 ~", AJ: "db3@3 ~@5 bb2 ~@3, f4 ~@5", AK: "ab3 ~@13 c3@4 ~@6",
  AL: "~@2 f3 ~@9", AM: "~@3 [c3,ab4] ~@2, ~@6 ab2@5 ~", AN: "[~@5 f4 bb2@2 bb2@10 c3@2 ~@4]/2",
  AO: "[db3@10 ~@2 bb2@4 ~@6 f3 ~@13 c3@4 c3@6 ~@2, ~@16 bb2@19 ~ ab2@10 ~@2]/2", AP: "~@2 db3 ~@2 f3 ~@6",
  AQ: "~@4 eb3@2 ~@4 f4 ~ ab2@10 ab4@2", AR: "db3 ~@3", AS: "eb3@10 eb3 ~ c3@2 ~@4 ab2@4 ~@2, ~@8 c3@3 ~",
  AT: "[db3@2 ~@4 bb3@2 ~ bb2@9 ~@2 c3 ~@2 bb2, ~@18 ab2@5 ~]/2",
  AU: "[db3@5 ~@7 eb3@3 eb3@3 ~ c3!2 ~@2 bb2, ~@16 bb2@19 ~@13, ~@24 c4 ~@23]/2", AV: "~@6 db4@5 ~",
})).s("gm_acoustic_guitar_steel").gain(0.13).pan(0.3)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~ A B A C D E D C F G H C F E H E I J K L C M K N O P H G N E Q E F E F E F R F S T U V F W X Y Z O AA F C AB E AC E
  AD E Z S F E F E F E F E AC E F AE AC AF AC AF AG AH@2
>`.pickRestart({
  A: "db2@5 ~ db2@5 ~ bb1@4 ~@2 bb1@5 ~", B: "eb2@5 ~ eb2@5 ~ ab1@5 ~ ab1@5 ~",
  C: "eb2@4 ~@2 eb2@4 ~@2 ab1@4 ~@2 ab1@5 ~", D: "db2@5 ~ db2@5 ~ bb1@4 ~@2 bb1@4 ~@2",
  E: "eb2@2 ~ eb2@2 ~ ab1@2 ~ ab1@2 ~", F: "db2@2 ~ db2@2 ~ bb1@2 ~ bb1@2 ~", G: "eb2@4 ~@2 eb2@5 ~ ab1@4 ~@2 ab1@5 ~",
  H: "db2@4 ~@2 db2@5 ~ bb1@4 ~@2 bb1@4 ~@2", I: "db2@4 ~@2 db2@4 ~@2 ab1@4 ~@2 ab1@5 ~",
  J: "db2@4 ~@2 db2@5 ~ db2@4 ~@2 db2@4 ~@2", K: "gb1@4 ~@2 gb1@5 ~ ab1@4 ~@2 ab1@5 ~",
  L: "db2@3 ~@3 db2@4 ~@2 bb1@3 ~@3 bb1@5 ~", M: "db2@4 ~@2 db2@4 ~@2 db2@4 ~@2 db2@5 ~",
  N: "db2@4 ~@2 db2@5 ~ bb1@4 ~@2 bb1@5 ~", O: "eb2@4 ~@2 eb2@4 ~@2 eb2@3 ~@3 eb2@4 ~@2",
  P: "ab2@3 ~@6 gb2@2 ~ f2@5 ~ eb2@4 ~@2", Q: "db2@4 ~@2 db2@4 ~@2 bb1@4 ~@2 bb1@5 ~",
  R: "eb2@4 ~@2 eb2@4 ~@2 ab1@5 ~ ab1@4 ~@2", S: "eb2@4 ~@2 eb2@5 ~ ab1@4 ~@2 ab1@4 ~@2",
  T: "db2@4 ~@2 db2@4 ~@2 ab1@3 ~@3 ab1@5 ~", U: "db2@2 ~ db2@2 ~ db2@2 ~ db2@2 ~",
  V: "gb1@4 ~@2 gb1@5 ~ ab1@4 ~@2 ab1@4 ~@2", W: "eb2@3 ~@3 eb2@4 ~@2 ab1@5 ~ ab1@5 ~",
  X: "db2@3 ~@3 db2@4 ~@2 db2@4 ~@2 db2@5 ~", Y: "gb1@2 ~ gb1@2 ~ ab1@2 ~ ab1@2 ~",
  Z: "db2@3 ~@3 db2@4 ~@2 bb1@4 ~@2 bb1@4 ~@2", AA: "ab2 ~@2 gb2 f2@2 eb2@2",
  AB: "db2@4 ~@2 db2@3 ~@3 bb1@4 ~@2 bb1@4 ~@2", AC: "db2@4 ~@2 db2@4 ~@2 bb1@3 ~@3 bb1@4 ~@2",
  AD: "db2@4 ~@2 db2@4 ~@2 bb1@3 ~@3 bb1@5 ~", AE: "eb2@4 ~@2 eb2@3 ~@3 ab1@4 ~@2 ab1@4 ~@2",
  AF: "eb2@4 ~@2 eb2@4 ~@2 ab1@3 ~@3 ab1@4 ~@2", AG: "db2 ~@3 db2 ~@3", AH: "[~@5 db2@10 ~@9]/2",
})).s("gm_acoustic_bass").gain(0.38)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C D E F G B C D E F G F G B C H I J K L M N O P Q F G B C D E F G B C D E F G R I S T U V W X Y Z F G B C D E F G
  B C D E F G F G B C D E F G B C D E AA AB@2
>`.pickRestart({
  A: "~@18 ab3@2 bb3 ~ c4@2", B: "db4 ~@4 c4 bb3@2 f4 ~@2 bb3",
  C: "eb4@3 ~@3 eb4@2 f4 ~ eb4@2 ab3@2 ~@4 ab3@2 bb3 ~ c4@2", D: "db4@2 ~@8 c4@2 bb3@3 ~ f4@2 ~@4 bb3 ~",
  E: "eb4@3 ~@3 eb4@2 f4@2 eb4@2 ab3@2 ~@4 ab3@2 bb3 ~ c4@2, d4 ~@23", F: "db4@2 ~@8 c4@2 bb3@4 f4 ~@5 bb3 ~",
  G: "eb4@2 ~ eb4 f4 eb4 ab3 ~@2 ab3 bb3 c4", H: "db4@4 f4@2 ab4@4 f4@2 ab3@3 ~ c4@2 eb4@4 c4 ~",
  I: "db4@3 ~@3 ab4@4 db5@9 ~@5, ~ f4 ~@4", J: "~@4 gb4@2 bb4@4 db5@2 gb5@3 ~@3 c5@5 ~, ~@16 eb5@7 ~",
  K: "~@6 db5@4 f5@2 db5@3 ~ ab4@2 f4@4 ab4@2, ~ ab4 ~@4", L: "~@6 db5@4 gb5 ~ c5@4 ~@2 ab5@5 ~, ~@4 bb4@4 ~@8 eb5@7 ~",
  M: "db4@3 ~ f4@2 ab4@3 ~ db5@2 b4@3 ~ db5@2 ab4@3 ~ a4@2",
  N: "bb4@4 ~@2 gb5@3 ~ db5@2 bb4@3 ~ c5@2 eb5@4 ~@2, ~@4 db5@5 ~@15",
  O: "~@4 ab4@2 db5@3 ~ bb4@2 a4@3 ~ ab4@2 f4@4 ~@2", P: "~@4 g4@2 bb4@3 ~@3 db5@3 ~ bb4@2 g4@4 bb4@2, ~@5 eb5@2 ~@5",
  Q: "ab4@2 ~@8 gb4@2 f4@5 ~ eb4@3 ~@3", R: "db4 ~@4 c4 ab3@2 eb4 ~@2 ab3",
  S: "~@4 bb4@2 db5@4 gb5@2 c5@3 ~ bb4@2 ab4@3 ~ gb4@2", T: "~@4 f4@2 ab4@3 ~ db5@2 bb4@3 ~ ab4@2 f4@4 ab4@2",
  U: "~@4 bb4@2 db5@4 gb5 ~ c5@4 ~@2 ab5@3 ~@3, ~@16 eb5@5 ~@3", V: "~@4 f4@2 ab4@3 ~ db5@5 ~ b4@2 ~@4 db5@2, ~@3 ab4",
  W: "~@4 gb4@2 bb4@4 db5 ~ ab4@4 c5@2 eb5@4 c5@2", X: "~@4 ab4@2 db5@3 ~ f5@2 ~@6 f4@4 ~@2, ~@4 ab4 ~",
  Y: "~@4 g4@2 bb4@3 ~ eb5@2 db5@3 ~ bb4@2 g4@4 bb4@2", Z: "ab4@2 ~@8 gb4@2 f4@5 ~ eb4@4 ~@2",
  AA: "~@6 [ab4,db5]@3 ~@9 [ab4,db5]@2 ~@4", AB: "[~@7 gb3@2 f3@2 db3@18 ~@19, ~@3 ab3 ~@20]/2",
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.7)

// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  ~@3 A@2 B@2 C@4 A@2 B@2 D@3 ~@9 A@2 B@2 C@4 A@2 B@2 D@3 ~@9 A@2 B@2 C@4 A@2 B@2 E@3 F ~@13
>`.pickRestart({
  A: "[[ab3,db4,f4]@6 bb3@6 [gb3,bb3]@5 [eb3,ab3,c4]@6 ~, f3@12 eb4@11 ~, ~@6 db4@11 ~@7]/2", // Db Gb Ab
  B: "[[ab3,f4]@6 ~@6 gb3@5 [ab3,c4]@7, [f3,db4] eb4, ~@6 bb3@11 ~@7]/2", // Db Ab Db
  C: "[[ab3,f4]@6 ~@6 gb3@5 c4@6 ~@12 gb3@6 [ab3,c4]@6 ~, [f3,db4]@12 eb3@11 db4@18 ~@7, ~@6 bb3@11 ab3@12 bb3@12 ~@7, ~@23 f3@12 eb3@12 ~]/4", // Db Ab Db
  D: "[[ab3,f4]@12 ~@12 gb3@10 c4@12 [f3,db4]@9 ~@17, [f3,db4]@12 eb3@11 ~@13, ~@12 bb3@22 ab3@21 ~@17]/3", // Db
  E: "[[ab3,f4]@12 ~@12 gb3@10 c4@12 [f3,db4]@8 [db4,f4,ab4]@3 ~ [bb3,db4,f4,bb4]@3 ~@5 [bb3,db4,f4,bb4]@3 ~ [bb3,db4,gb4,bb4]@2, [f3,db4]@12 eb3@11 ~@13, ~@12 bb3@22 ab3@21 ~@17]/3", // Db Bbm Gb Db
  F: "~@6 [bb3,db4,gb4,bb4]@3 ~ [c4,eb4]@8 ~@6, ~@5 [ab4,c5]@3 ~@4", // Gb Cm Ab
})).s("gm_epiano1").gain(0.35).pan(0.3)

// other · whistle
const whistle = note(`<
  ~@11 A B C D E F G@2 ~@8 H I E J K L M N E O C P Q R S@2 ~@8 T U V W X Y Z@2 AA AB C AC AD AE@3 AF AG AA AH Q B K AI
  AA B AJ@2 ~
>`.pickRestart({
  A: "~@6 e6 f6@2 ~@3 db6@6 ~@6", B: "bb5@2 ab5 bb5@2 ab5@5 ~@2", C: "~@3 f6 ~@2 db6@4 ~@2",
  D: "bb5@2 ab5 bb5@2 ab5@6 ~", E: "~@3 f6 ~@2 db6@4 ~@2, ~@6 e6 ~@17", F: "bb5@4 ab5@2 bb5@3 ~ ab5@5 ~@3 ab5@4 db6@2",
  G: "[~@6 db6@4 bb5@6 ab5@2 bb5@4 db6@21 ~@5]/2", H: "~@5 e6 f6 ~@5 db6@10 ~@2", I: "bb5@3 ~ ab5@2 bb5@4 ab5@12 ~@2",
  J: "bb5@4 db6@2 bb5@4 ab5@13 ~", K: "~@6 f6 ~@5 db6@8 ~@4", L: "bb5@3 ~ ab5@2 bb5@3 ~ ab5@6 ~@2 ab5@4 db5@2",
  M: "~@6 db6@4 bb5@3 ~@5 bb5@4 eb5@2", N: "~@3 bb5@2 ab5@5 ~@2", O: "bb5@3 ab5@3 bb5@4 ab5@11 ~@3",
  P: "bb5@3 ab5@3 bb5@4 ab5@12 ~@2", Q: "~@6 f6@2 ~@4 db6@7 ~@5, ~@6 e6 ~@17",
  R: "bb5@4 db6@2 bb5@2 ~ ab5@6 ~@3 ab5@4 db5@2", S: "[~@6 db6@4 bb5@2 ~@4 ab5@2 bb5@3 db6@23 ~@4]/2",
  T: "~@5 e6 f6@2 ~@4 db6@10 ~@2", U: "bb5@4 ab5@2 bb5@4 ab5@13 ~", V: "~@5 e6 f6@2 ~@4 db6@9 ~@3",
  W: "bb5@3 ~ db6@2 bb5@4 ab5@10 ~@4", X: "~@6 f6@2 ~@4 db6@9 ~@3", Y: "bb5@4 db6@2 bb5@3 ~ ab5@6 ~@2 ab5@4 db5@2",
  Z: "[~@6 db6@4 bb5@2 ~@6 bb5@4 eb5@4 ~@4 bb5@4 ab5@9 ~@5]/2", AA: "~@6 f6@2 ~@4 db6@9 ~@3, ~@6 e6 ~@17",
  AB: "bb5@4 ab5@2 bb5@3 ab5@10 ~@5", AC: "bb5@4 ab5@2 bb5@4 ab5@5 ~@9", AD: "~@3 f6 ~@2 db6@3 ~@3, ~@6 e6 ~@17",
  AE: "[bb5@3 ~ ab5@2 bb5@3 ab5@5 ~@4 ab5@3 db5@5 ~@4 db6@4 bb5@4 ~@4 f5@3 ~ eb5@4 ~@4 bb5@3 ab5@10 ~@5]/3",
  AF: "~@3 f6 ~@2 db6@4 ~@2, ~@6 eb6 ~@17", AG: "bb5@3 ~ ab5@2 bb5@4 ab5@10 ~@4", AH: "bb5@4 db6@2 bb5@4 ab5@11 ~@3",
  AI: "bb5@3 db6@2 ~ bb5@3 ab5@10 ~@5", AJ: "[~@3 f6 ~@2 db6@7 ~@11, ~@6 e6 ~@41]/2",
})).s("gm_whistle").gain(0.33).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~ [x!2]!25 x [x!2]!23 x [x!2]!26 x ~@2>").gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  ~
  [x ~ x!2 ~ x!2 ~ x!2 ~ x]!25
  x
  [x ~ x!2 ~ x!2 ~ x!2 ~ x]!23
  x
  [x ~ x!2 ~ x!2 ~ x!2 ~ x]!26
  x
  ~@2
>`).gain(0.44)

stack(acoustic_guitar_steel, acoustic_guitar_steel_2, bass, electric_guitar_muted, epiano1, whistle, kick, snare)