Strudelify

Walk Don't Run

The Shadows

KeyD♭ majorTempo150 bpm
0:00/0:00
// Walk Don't Run — The Shadows
// 150 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 99 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/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 · piano · "Sologitr"
const bass = note("<db-1 ~@98>").s("gm_piano").gain(0.05)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@7 A B C D E F G H I B J B K F G L M N O P Q R S T U D V D W X Y Z AA AB ~@4 A B J D AC AD AE AF AG D J D K AD AH@2
  AI AJ AK AL Q AM AN AO AP D AQ D AR AS AE AT AU D AQ D AV AW AE AX AK AY AZ BA BB BC@8 ~
>`.pickRestart({
  A: "~@3 f4", B: "bb4 bb3 c4 db4@2 eb4 f4@2", C: "gb4@2 ab4 ~ bb4 ~ db5@5 ~ c5@4",
  D: "bb4@2 bb3@2 c4@2 db4@4 eb4@2 f4@3 ~", E: "[gb4,db5]@2 [ab4,db5] ~ [bb4,db5] ~ [ab4,db5]@5 ~ [gb4,db5]@3 ~",
  F: "[f4,ab4]@2 eb4@2 [f4,ab4] ~ [f4,ab4]@10", G: "~@2 [eb4,ab4]@2 [f4,ab4]@2 [gb4,ab4]@2 [f4,ab4]@3 ~ [eb4,ab4]@3 ~",
  H: "f4@3 ~ [eb4,f4]@2 eb4@2 db4@2 eb4@3 ~ [f4,a4]@2", I: "~@2 [f4,a4] ~ [f4,a4] ~ [f4,a4]@4 db4@2 c4@4",
  J: "gb4@2 ab4@2 bb4@2 db5@5 ~ c5@4", K: "[gb4,db5]@2 [ab4,db5]@2 [bb4,db5]@2 [ab4,db5]@5 ~ [gb4,db5]@2 ~@2",
  L: "f4@3 ~ [eb4,f4]@2 eb4@2 db4@2 eb4@4 db4@2", M: "~@2 ab3@2 bb3@2 c4@2 db4@2 eb4@2 f4@2 gb4 ~",
  N: "[f4,ab4]@5 ~ [f4,ab4]@10", O: "~@2 [f4,ab4] ~@3 [f4,ab4]@2 [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4]@2",
  P: "~@2 [db5,f5] ~@3 [bb4,db5] ~ [db5,f5]@6 ~@2", Q: "[bb4,db5,f5]@7 ~", R: "bb4 gb4 db4 bb4@2 gb4 db4@2",
  S: "c5 a4 f4 c5@2 a4 f4 ~", T: "[bb4,db5,f5]@7 f4", U: "~@2 f4@2 eb4@3 ~ db4@4 c4@3 ~",
  V: "gb4@2 ab4@2 bb4 ~ db5@5 ~ c5@4", W: "[gb4,db5] [ab4,db5] [bb4,db5] [ab4,db5]@3 [gb4,db5] ~",
  X: "[eb4,f4,ab4]@2 eb4 [f4,ab4]@3 [f4,ab4]@8 ~@2, ~@6 eb4 ~@9", Y: "~@2 eb4@2 f4 ~ gb4@2 f4@4 eb4@3 ~",
  Z: "db4@4 f4@2 eb4@2 db4@7 ~",
  AA: "~@2 [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~", // Ab
  AB: "[f4,ab4,db5] ~@7", AC: "[gb4,db5]@2 [ab4,db5] ~ [bb4,db5]@2 [ab4,db5]@5 ~ [gb4,db5]@2 ~@2",
  AD: "[f4,ab4]@2 eb4@2 [f4,ab4] ~ [f4,ab4]@9 ~", AE: "~ eb4 f4 gb4 f4@2 eb4@2",
  AF: "db4@4 [eb4,f4]@2 eb4@2 db4@2 eb4@3 ~ [f4,a4]@2", AG: "~@2 [f4,a4] ~ [f4,a4] ~ [f4,a4]@2 ~@2 db4@2 c4@3 ~",
  AH: "[~@2 eb4@2 f4@2 gb4@2 f4@2 eb4@4 db4@6 [eb4,f4]@2 eb4@2 db4@2 eb4@3 ~ db4@2]/2", // Ebsus2
  AI: "~ ab3 bb3 c4 db4 eb4 f4 gb4", AJ: "[f4,ab4]@2 ~ [f4,ab4]@4 ~",
  AK: "~@2 [f4,ab4] ~@3 [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~", // Fm
  AL: "~@2 [db5,f5]@2 ~@2 [bb4,db5] ~ [db5,f5]@5 ~@3", AM: "bb4@2 gb4@2 db4@2 bb4@2 gb4@2 db4 ~ db4@3 ~",
  AN: "c5@2 [g4,a4]@2 f4@2 c5@2 a4@2 f4@2 f4@3 ~", AO: "[bb4,db5]@7 eb4, f5@3 ~", AP: "f4 ~ f4@2 eb4@4 db4@4 c4@3 ~",
  AQ: "gb4 ab4 bb4 db5@3 c5@2", AR: "~@2 [ab4,db5]@2 [bb4,db5]@2 [ab4,db5]@5 ~ [gb4,db5]@2 ~@2",
  AS: "[eb4,ab4]@3 ~ [eb4,f4,ab4]@2 [f4,ab4]@9 ~, f4 ~@5 eb4 ~@9", AT: "db4@2 [eb4,f4] eb4 [db4,f4]@4",
  AU: "~@2 [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4]@2 [f4,a4] ~ [f4,a4] ~ [f4,a4] ~", // F
  AV: "[gb4,db5]@2 [ab4,db5] ~ [bb4,db5]@2 [ab4,db5]@5 ~ gb4@3 ~, ~@12 db5 ~@3", AW: "[f4,ab4]@2 eb4 [f4,ab4]@4 ~",
  AX: "db4@4 [eb4,f4]@2 eb4@2 db4@7 ~, eb4 ~@15", AY: "[bb4,db5,f5]@5 ~ [bb4,db5,f5]@9 ~",
  AZ: "~@2 [bb4,db5,f5] ~@3 [bb4,db5,f5] ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~", // Bbm
  BA: "[gb4,bb4,db5,gb5]@5 ~ [gb4,bb4,db5,gb5]@9 ~", // Gb
  BB: "~@2 [gb4,bb4,db5,gb5]@2 ~@2 [gb4,bb4,db5,gb5] ~ [gb4,bb4,db5,gb5] ~ [gb4,bb4,db5,gb5] ~ [gb4,bb4,db5,gb5] ~ [gb4,bb4,db5,gb5] ~", // Gb
  BC: "[[db5,ab5]@17 ~@111, f5, db6 ~@127]/8", // Db5
})).s("gm_electric_guitar_jazz").gain(0.71)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@4 A B A B A C D E F G H I A J K E L M N O P Q R S T U V I A W X Y Z AA N AB AC ~ A B A AD A W AE E AF AA AG I A AH X
  AI Q M AJ AK N@2 R@2 AL AM AN AO AP W A AQ N G AR I A AS A AT N AU N@2 R@2 AV AW AX@2 ~@7
>`.pickRestart({
  A: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~", // Bbm Ab
  B: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,c4]@3 ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~", // Gb F
  C: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,db4]@4 ~@2 [f3,a3,c4]@2 ~@2", // Gb Faug F
  D: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2 ~@2", // Bbm Ab
  E: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Gb Ab
  F: "[ab3,db4,f4] ~@3 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@4", G: "~@4 [ab3,c4,eb4]@3 ~@5 [ab3,c4,eb4]@3 ~",
  H: "~@4 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4] ~ [a3,c4,f4]@2", // Db F
  I: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@3 ~", // F
  J: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [a3,bb3] ~ a3@3 ~ [f3,a3,c4]@2 ~@2, ~@6 [f3,db4]@5 ~@5", // Gb Bbmaj7 F Db
  K: "db4 ~ [bb3,db4,f4] ~ [bb3,db4,f4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~", // Bbm Ab
  L: "[ab3,db4,f4] ~@3 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@3 ~", M: "~@4 [ab3,c4,eb4]@4 ~@4 [ab3,c4,eb4]@3 ~",
  N: "~ [ab3,db4,f4] ~ [ab3,db4,f4]", O: "~@2 [ab3,db4,f4] ~ [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@3 ~",
  P: "~@4 [ab3,db4,f4]@5 ~@3 [ab3,db4,f4]@4", Q: "~@4 [ab3,db4,f4]@4 ~@2 [ab3,db4,f4] ~ [ab3,db4,f4]@4",
  R: "~ [bb3,db4,f4] ~ [bb3,db4,f4]", S: "~@4 [bb3,db4,f4]@5 ~@3 [bb3,db4,f4]@3 ~",
  T: "~@4 [bb3,db4,gb4]@4 ~@4 [bb3,db4,gb4]@3 ~", U: "~@4 [a3,c4,f4]@3 ~@5 [a3,c4,f4]@3 ~",
  V: "~@4 [bb3,db4,f4]@3 ~@5 [bb3,db4,f4]@2 ~@2", // Bbm
  W: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,db4]@4 ~@2 [f3,a3,c4]@3 ~", // Gb Faug F
  X: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4]@2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2 ~@2", // Bbm Ab
  Y: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4]@4", // Gb Ab
  Z: "~@2 ab3 ~ [ab3,db4,f4]@3 ~@5 [ab3,db4,f4]@4", AA: "~ [ab3,c4,eb4] ~ [ab3,c4,eb4]",
  AB: "~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Ab
  AC: "[ab3,db4,f4]@3 ~@13", // Db
  AD: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,c4,f4]@3 ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~ [f3,a3,c4,f4] ~", // Gb F
  AE: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [db4,f4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2 ~@2, ~@4 bb3 ~@11", // Bbm Db Ab
  AF: "[ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@4", // Db
  AG: "~@4 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4] ~ [a3,c4,eb4,f4]@2", // Db F7
  AH: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,db4]@5 ~ [f3,a3,c4]@3 ~", // Gb Faug F
  AI: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@4", // Gb Ab
  AJ: "~@4 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@3 ~", // Db
  AK: "~@4 [ab3,db4,f4]@5 ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4]@2", // Db
  AL: "~@4 [db4,gb4]@4 ~@4 [bb3,db4,gb4]@3 ~, ~@4 bb3 ~@11", AM: "~@4 [a3,c4,f4]@4 ~@4 [a3,c4,f4]@3 ~",
  AN: "~@4 [bb3,db4,f4]@3 ~@5 [bb3,db4,f4]@3 ~", // Bbm
  AO: "~@2 [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,f4]@4, ~@6 c4 ~", // F5 F
  AP: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4]@2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~", // Bbm Ab
  AQ: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2", // Gb Ab
  AR: "~@4 [ab3,db4,f4]@3 ~@5 [ab3,db4,f4]@3 ~", // Db
  AS: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,db4]@5 ~ [f3,a3,c4]@2 ~@2", // Gb Faug F
  AT: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Gb Ab
  AU: "~@4 [ab3,c4,eb4]@3 ~@5 [ab3,c4,eb4]@4", AV: "~@4 [bb3,db4,gb4]@5 ~@3 [bb3,db4,gb4]@4",
  AW: "~@4 [bb3,db4,gb4]@3 ~@5 [bb3,db4,gb4]@2 ~@2", AX: "[[f3,ab3,db4,f4]@21 ~@11]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.45).pan(0.3)

// chords · electric guitar muted · "E.guitar"
const electric_guitar_muted = note(`<
  ~@4 A B C B C B C D E F G H I B C J E F E K E@2 L@2 M N L O C P C Q R F E S T ~ C U C B C B C V W F G H C U X Y E F
  E@4 L@2 M Z L H C AA C AB E F E H C B C J AC F E AD L@2 M@2 AE@2 ~@7
>`.pickRestart({
  A: "bb2 ~ bb2 ~ bb2@4 ab2 ~ ab2 ~ ab2@3 ~", B: "gb2 ~ gb2 ~ gb2 ~ f2@3 ~ f2 ~ f2 ~ f2@2",
  C: "bb2 ~ bb2 ~ bb2@3 ~ ab2 ~ ab2 ~ ab2@3 ~", D: "gb2 ~ gb2 ~ gb2 ~ [ab2,eb3]@3 ~ ab2 ~ ab2 ~ ab2@2",
  E: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  F: "[ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", // Ab5
  G: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [c3,f3]@2", // Db5 F5
  H: "~@2 [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~", // F5
  I: "bb2 ~ bb2 ~ bb2@2 ~@2 ab2 ~ ab2 ~ ab2@3 ~", J: "gb2 ~ gb2 ~ gb2 ~ ab2@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3]@2",
  K: "~@4 [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  L: "[bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  M: "[gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~", // Gb5
  N: "[f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~", // F5
  O: "[c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~", // F5
  P: "gb2 ~ gb2 ~ gb2 ~ f2@2 ~@2 f2 ~ f2 ~ f2 ~",
  Q: "gb2 ~ gb2 ~ gb2 ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3]@2", // Ab5
  R: "db3 ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  S: "~@2 [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", T: "[db3,ab3] ~@7",
  U: "gb2 ~ gb2 ~ gb2 ~ f2@2 ~@2 f2 ~ f2 ~ f2@2", V: "gb2 ~ gb2 ~ gb2 ~ ab2@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~",
  W: "[eb3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Ab5 Db5
  X: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ ab2 ~ ab2 ~ ab2@3 ~",
  Y: "gb2 ~ gb2 ~ gb2 ~ ab2@2 ~@2 [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3]@2", // Ab5
  Z: "[f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,b2,c3] ~ [f2,c3] ~ [f2,c3] ~", // F5 F F5
  AA: "gb2 ~ gb2 ~ gb2 ~ f2@3 ~ f2 ~ f2 ~ f2 ~",
  AB: "gb2 ~ gb2 ~ gb2 ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", // Ab5
  AC: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3]@4", // Db5
  AD: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3]@2", // Db5
  AE: "[[ab2,db3]@5 ~@3]/2", // Db5
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.7)

// chords · synth strings 1 · "Fl„che"
const synth_strings_1 = note(`<
  ~@8 A B A C D@4 E F E C G@2 H@2 I@4 J K L@2 M N A C O P O Q R ~@5 A B A S O P T@2 E N A C O U V@4 W@2 J X Y Z A AA AB
  AC O AD AE AF AG AH A AC G@2 AI@4 AJ@2 AK@2 ~@7
>`.pickRestart({
  A: "[bb3,db4,f4]@7 ~ [ab3,c4,eb4]@7 ~", B: "[gb3,bb3,db4]@5 ~ db4@5 ~ c4@3 ~, ~@3 [f3,a3]@4 ~",
  C: "[gb3,bb3,db4]@5 ~ [ab3,c4,eb4]@8 ~@2", // Gb Ab
  D: "[[db4,f4]@15 ~ [c4,eb4]@16 [db4,f4]@13 ~ [a3,c4,eb4,f4]@15 ~@3, ab3@11 ~@5]/4", // Db Cm Db F7
  E: "[bb3,db4,f4]@7 ~ [ab3,c4,eb4]@6 ~@2", F: "[gb3,bb3,db4]@2 ~ [f3,a3]@3 c4 ~, ~@6 db4@5 ~@5",
  G: "[[db4,f4]@15 ~ [c4,eb4]@15 ~, ab3@15 ~]/2", H: "[[ab3,db4,f4]@31 ~]/2", I: "[ab3@32 bb3@31 ~, [db4,f4]@63 ~]/4",
  J: "[bb3,db4,gb4]@15 ~", K: "[a3,c4,f4]@15 ~", L: "[[bb3,db4]@8 [a3,c4]@7 ~, f4@15 ~]/2",
  M: "[bb3,db4,f4]@8 [ab3,c4,eb4] ~ [ab3,c4,eb4]@5 ~", N: "[gb3,bb3,db4]@5 ~ [f3,a3]@6 c4@2 ~@2, ~@6 db4@5 ~@5",
  O: "[ab3,db4,f4]@15 ~", P: "[ab3,c4,eb4]@15 ~", Q: "~@2 [ab3,c4,eb4]@13 ~", R: "[ab3,db4,f4]@3 ~@13",
  S: "[gb3,bb3,db4]@5 ~ [ab3,c4,eb4]@9 ~", T: "[[ab3,db4,f4]@12 ~@2 [a3,c4,eb4,f4]@15 ~@3]/2", U: "[c4,eb4], ab3@7 ~",
  V: "[[ab3,db4,f4]@63 ~]/4", W: "[[bb3,db4,f4]@31 ~]/2", X: "[a3,c4,f4]@7 ~", Y: "[bb3,db4,f4]",
  Z: "[a3,c4,eb4,f4]@7 ~", AA: "[gb3,db4]@5 ~ [f3,a3,db4]@6 c4@2 ~@2, bb3@3 ~@13",
  AB: "[bb3,db4,f4]@6 ~@2 [ab3,c4,eb4]@7 ~", AC: "[gb3,bb3,db4]@5 ~ [ab3,c4,eb4]@7 ~@3", AD: "[ab3,c4,eb4]@7 ~",
  AE: "[ab3,db4,f4]@13 ~@3", AF: "~ [a3,c4,eb4,f4]@14 ~", AG: "[bb3,db4,f4] ~ [bb3,db4,f4]@5 ~ [ab3,c4,eb4]@7 ~",
  AH: "[gb3,bb3,db4]@5 ~ [f3,a3,db4]@6 c4@2 ~@2", AI: "[db4@32 ~@4 db4@27 ~, f4@63 ~, ab3@31 ~ bb3@30 ~@2]/4",
  AJ: "[[bb3,db4,gb4]@31 ~, gb3@7 ~]/2", AK: "[[db3,ab3,db4,f4]@23 ~@9]/2",
})).s("gm_synth_strings_1").gain(0.35)

// bass · electric bass finger · "Bass"
const bass_2 = note(`<
  ~@4 A B C D E F E G H I J K E L E M N O P Q N R S T U V W X E D E Y Z I AA AB AC ~ AD AE E AE E B E Y AF AG AH AI E AJ
  E Y AF AK N AL AM AN AO AP AQ AR AP AS E AT E AU AF AV H AW AD D E AX AY I AN Q AZ BA U BB BC@2 ~@7
>`.pickRestart({
  A: "bb1 ~ bb1 ~ bb1@4 ab1 ~ ab1 ~ ab1 ~@3", B: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1 ~ f1@4",
  C: "bb1 ~ bb1 ~ bb1@3 ~ ab1 ~ ab1 ~ ab1@4", D: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1 ~ f1 ~ f1@2",
  E: "bb1 ~ bb1 ~ bb1@3 ~ ab1 ~ ab1 ~ ab1@3 ~", F: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1@3 ~ f1@2",
  G: "gb1 ~ gb1 ~ gb1 ~ ab1@2 ~@2 ab1@3 ~ ab1@2", H: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2@4",
  I: "ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~ ab1@2", J: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ f1@2",
  K: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2", L: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1 ~ f1 ~ f1 ~",
  M: "gb1 ~ gb1 ~ gb1 ~ ab1@3 ~ ab1@3 ~ ab1@2", N: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ db2@2",
  O: "ab1 ~ ab1 ~ ab1@4 ab1 ~ ab1 ~ ab1 ~ ab1 ~", P: "db2 ~ db2 ~ db2@2 db2 ~ db2 ~ db2 ~ db2 ~ db2@2",
  Q: "~@2 db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~", R: "~@2 db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2@2 db2 ~",
  S: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@3 ~", T: "bb1 ~ bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1@2",
  U: "gb1 ~ gb1 ~ gb1@3 ~ gb1 ~ gb1 ~ gb1@3 ~", V: "f1 ~ f1 ~ f1 ~ f1@3 ~ f1 ~ f1 ~ f1 ~",
  W: "bb1 ~ bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1 ~", X: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
  Y: "gb1 ~ gb1 ~ gb1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1@2", Z: "db2 ~ db2 ~ db2 ~ db2@3 ~ db2 ~ db2@3 ~",
  AA: "db2 ~ db2 ~ db2 ~ db2@2 ~@2 db2 ~ db2 ~ db2 ~", AB: "~@2 ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ [ab1,db2] ~ ab1 ~",
  AC: "db2 ~@7", AD: "bb1 ~ bb1 ~ bb1@4 ab1 ~ ab1 ~ ab1@3 ~", AE: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1 ~ f1@3 ~",
  AF: "db2 ~ db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~", AG: "ab1 ~ ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1@2",
  AH: "db2 ~ db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ f1@2", AI: "~@2 f1@2 f2@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
  AJ: "gb1 ~ gb1 ~ gb1@2 f1@2 ~@2 f1 ~ f1 ~ f1@2", AK: "ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~",
  AL: "~@2 db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ db2 ~", AM: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2@3 ~",
  AN: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2@2", AO: "bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1@3 ~",
  AP: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~", AQ: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~",
  AR: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", AS: "bb1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
  AT: "gb1 ~ gb1 ~ gb1@2 f1@3 ~ f1 ~ f1 ~ f1@2", AU: "gb1 ~ gb1 ~ gb1 ~ ab1@2 ~@2 ab1 ~ ab1 ~ ab1 ~",
  AV: "ab1 ~ ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~", AW: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4",
  AX: "gb1 ~ gb1 ~ gb1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~", AY: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ db2 ~",
  AZ: "bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2", BA: "~@2 bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2",
  BB: "gb1 ~ gb1 ~ gb1 ~ gb1@3 ~ gb1 ~ gb1 ~ gb1 ~", BC: "[db2@9 ~@7]/2",
})).s("gm_electric_bass_finger").gain(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A@3 B A C D E D F A F G D A F D F D@2 B G D B@3 D H D I D F D J D B D K A L M J D F D F D F B D@2 E D F N J B@2 D
  B D B C B D B D@3 J D J D@3 I D F D J D B D N D G B@2 O ~@8
>`.pickRestart({
  A: "x!2", B: "x ~@3 x!2 ~ x", C: "x ~@3 x ~@2 x", D: "x ~@3 x!2 ~@2", E: "x ~@2 x ~ x ~ x", F: "x!2 ~ x ~@3 x",
  G: "x!2 ~@2 x!2 ~ x", H: "x ~@2 x!2 ~@3", I: "~ x!7", J: "x!2 ~ x ~ x ~ x", K: "~@3 x ~ x ~ x", L: "x!2 ~@2 x ~@2 x",
  M: "x!2 ~@2 x ~@3", N: "x!2 ~@2 x!2 ~@2", O: "x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A@5 B A@3 C D@3 E A@3 B D@3 F D@7 G A@3 H D@3 I A@5 J A@3 K D@3 L A@3 K D@3 F D@7 M A@3 N D@3 M A@3 N D@7 O ~@9
>`.pickRestart({
// … 27 more lines

More by The Shadows