Strudelify
Walk Don't Run cover art

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, A@4 for four bars: 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 B D E F G H B I B D E F J K L M N O P Q R S B I B T U V W X Y ~@4 A B I B Z AA V AB AC B I B D AA AD@2 K AE
  M AF O AG AH AI AJ B I B AK AL V AM AN B I B AO AP V AQ M AR AS AT AU AV@8 ~
>`.pickRestart({
  A: "~@3 f4", B: "bb4@2 bb3@2 c4@2 db4@4 eb4@2 f4@3 ~", C: "gb4@2 ab4 ~ bb4 ~ db5@5 ~ c5@4",
  D: "[gb4,db5]@2 [ab4,db5]@2 [bb4,db5]@2 [ab4,db5]@5 ~ [gb4,db5]@2 ~@2", E: "[f4,ab4]@2 eb4@2 [f4,ab4] ~ [f4,ab4]@10",
  F: "~@2 [eb4,ab4]@2 [f4,ab4]@2 [gb4,ab4]@2 [f4,ab4]@3 ~ [eb4,ab4]@3 ~", // Ab5 Fm Gbsus2 Fm Ab5
  G: "f4@3 ~ [eb4,f4]@2 eb4@2 db4@2 eb4@3 ~ [f4,a4]@2", H: "~@2 [f4,a4] ~ [f4,a4] ~ [f4,a4]@4 db4@2 c4@4",
  I: "gb4@2 ab4@2 bb4@2 db5@5 ~ c5@4", J: "f4@3 ~ [eb4,f4]@2 eb4@2 db4@2 eb4@4 db4@2",
  K: "~@2 ab3@2 bb3@2 c4@2 db4@2 eb4@2 f4@2 gb4 ~", L: "[f4,ab4]@5 ~ [f4,ab4]@10",
  M: "~@2 [f4,ab4] ~@3 [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~ [f4,ab4] ~", // Fm
  N: "~@2 [db5,f5] ~@3 [bb4,db5] ~ [db5,f5]@6 ~@2", O: "[bb4,db5,f5]@7 ~", P: "bb4 gb4 db4 bb4@2 gb4 db4@2",
  Q: "c5 a4 f4 c5@2 a4 f4 ~", R: "[bb4,db5,f5]@7 f4", S: "~@2 f4@2 eb4@3 ~ db4@4 c4@3 ~",
  T: "[gb4,db5] [ab4,db5] [bb4,db5] [ab4,db5]@3 [gb4,db5] ~", // Gb5 Db5 Bbm Db5 Gb5
  U: "[eb4,f4,ab4]@2 eb4 [f4,ab4]@3 [f4,ab4]@8 ~@2, ~@6 eb4 ~@9", V: "~ eb4 f4 gb4 f4@2 eb4@2",
  W: "db4@4 f4@2 eb4@2 db4@7 ~",
  X: "~@2 [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~", // Ab
  Y: "[f4,ab4,db5] ~@7", Z: "[gb4,db5]@2 [ab4,db5] ~ [bb4,db5]@2 [ab4,db5]@5 ~ [gb4,db5]@2 ~@2",
  AA: "[f4,ab4]@2 eb4@2 [f4,ab4] ~ [f4,ab4]@9 ~", AB: "db4@4 [eb4,f4]@2 eb4@2 db4@2 eb4@3 ~ [f4,a4]@2",
  AC: "~@2 [f4,a4] ~ [f4,a4] ~ [f4,a4]@2 ~@2 db4@2 c4@3 ~", // F
  AD: "[~@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", AE: "[f4,ab4]@2 ~ [f4,ab4]@4 ~",
  AF: "~@2 [db5,f5]@2 ~@2 [bb4,db5] ~ [db5,f5]@5 ~@3", AG: "bb4@2 gb4@2 db4@2 bb4@2 gb4@2 db4 ~ db4@3 ~",
  AH: "c5@2 [g4,a4]@2 f4@2 c5@2 a4@2 f4@2 f4@3 ~", AI: "[bb4,db5]@7 eb4, f5@3 ~", AJ: "f4 ~ f4@2 eb4@4 db4@4 c4@3 ~",
  AK: "~@2 [ab4,db5]@2 [bb4,db5]@2 [ab4,db5]@5 ~ [gb4,db5]@2 ~@2", // Db5 Bbm Db5 Gb5
  AL: "[eb4,ab4]@3 ~ [eb4,f4,ab4]@2 [f4,ab4]@9 ~, f4 ~@5 eb4 ~@9", AM: "db4@2 [eb4,f4] eb4 [db4,f4]@4",
  AN: "~@2 [f4,a4] ~ [f4,a4] ~ [f4,a4] ~ [f4,a4]@2 [f4,a4] ~ [f4,a4] ~ [f4,a4] ~", // F
  AO: "[gb4,db5]@2 [ab4,db5] ~ [bb4,db5]@2 [ab4,db5]@5 ~ gb4@3 ~, ~@12 db5 ~@3", AP: "[f4,ab4]@2 eb4 [f4,ab4]@4 ~",
  AQ: "db4@4 [eb4,f4]@2 eb4@2 db4@7 ~, eb4 ~@15", AR: "[bb4,db5,f5]@5 ~ [bb4,db5,f5]@9 ~",
  AS: "~@2 [bb4,db5,f5] ~@3 [bb4,db5,f5] ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~ [bb4,db5,f5] ~", // Bbm
  AT: "[gb4,bb4,db5,gb5]@5 ~ [gb4,bb4,db5,gb5]@9 ~", // Gb
  AU: "~@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
  AV: "[[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 A D E F G H A I J D E K L M L N O@2 P Q R H A S T U V K L W X ~ A B A Y A S T D Z K AA H A S T U N F
  AB AC L@2 O@2 AD AE O AF A S A AG L F AH H A S A AI L F L@2 O@2 AJ AK AL@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: "[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
  E: "[ab3,db4,f4] ~@3 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@4", F: "~@4 [ab3,c4,eb4]@3 ~@5 [ab3,c4,eb4]@3 ~",
  G: "~@4 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4] ~ [a3,c4,f4]@2", // Db F
  H: "~@2 [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]@3 ~", // F
  I: "[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
  J: "db4 ~ [bb3,db4,f4] ~ [bb3,db4,f4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~", // Bbm Ab
  K: "~@4 [ab3,c4,eb4]@4 ~@4 [ab3,c4,eb4]@3 ~", L: "~ [ab3,db4,f4] ~ [ab3,db4,f4]",
  M: "~@2 [ab3,db4,f4] ~ [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@3 ~", // Db
  N: "~@4 [ab3,db4,f4]@4 ~@2 [ab3,db4,f4] ~ [ab3,db4,f4]@4", O: "~ [bb3,db4,f4] ~ [bb3,db4,f4]",
  P: "~@4 [bb3,db4,gb4]@4 ~@4 [bb3,db4,gb4]@3 ~", Q: "~@4 [a3,c4,f4]@3 ~@5 [a3,c4,f4]@3 ~",
  R: "~@4 [bb3,db4,f4]@3 ~@5 [bb3,db4,f4]@2 ~@2", // Bbm
  S: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [f3,a3,db4]@4 ~@2 [f3,a3,c4]@3 ~", // Gb Faug F
  T: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4]@2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4]@2 ~@2", // Bbm Ab
  U: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@2 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4]@4", // Gb Ab
  V: "~@2 ab3 ~ [ab3,db4,f4]@3 ~@5 [ab3,db4,f4]@4", // Db
  W: "~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Ab
  X: "[ab3,db4,f4]@3 ~@13", // Db
  Y: "[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
  Z: "[ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@4", // Db
  AA: "~@4 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4] ~ [a3,c4,eb4,f4]@2", AB: "~@4 [ab3,db4,f4]@4 ~@4 [ab3,db4,f4]@3 ~",
  AC: "~@4 [ab3,db4,f4]@5 ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4]@2", // Db
  AD: "~@4 [db4,gb4]@4 ~@4 [bb3,db4,gb4]@3 ~, ~@4 bb3 ~@11", AE: "~@4 [a3,c4,f4]@4 ~@4 [a3,c4,f4]@3 ~",
  AF: "~@2 [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,c4,f4] ~ [f3,f4]@4, ~@6 c4 ~", // F5 F
  AG: "[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
  AH: "~@4 [ab3,db4,f4]@3 ~@5 [ab3,db4,f4]@3 ~", // Db
  AI: "[gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Gb Ab
  AJ: "~@4 [bb3,db4,gb4]@5 ~@3 [bb3,db4,gb4]@4", AK: "~@4 [bb3,db4,gb4]@3 ~@5 [bb3,db4,gb4]@2 ~@2",
  AL: "[[f3,ab3,db4,f4]@21 ~@11]/2", // Db
})).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 A B A B A C D E F G H B A I D E D J D@2 K@2 L M K N A B A O P E D Q R ~ A B A B A B A S T E F G A B U V D E
  D@4 K@2 L W K G A B A X D E D G A B A I Y E D Z K@2 L@2 AA@2 ~@7
>`.pickRestart({
  A: "bb2 ~ bb2 ~ bb2@3 ~ ab2 ~ ab2 ~ ab2@3 ~", B: "gb2 ~ gb2 ~ gb2 ~ f2@3 ~ f2 ~ f2 ~ f2@2",
  C: "gb2 ~ gb2 ~ gb2 ~ [ab2,eb3]@3 ~ ab2 ~ ab2 ~ ab2@2", // Ab5
  D: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  E: "[ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", // Ab5
  F: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [c3,f3]@2", // Db5 F5
  G: "~@2 [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~", // F5
  H: "bb2 ~ bb2 ~ bb2@2 ~@2 ab2 ~ ab2 ~ ab2@3 ~", I: "gb2 ~ gb2 ~ gb2 ~ ab2@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3]@2",
  J: "~@4 [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  K: "[bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  L: "[gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~ [gb2,db3] ~", // Gb5
  M: "[f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~", // F5
  N: "[c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~ [c3,f3] ~", // F5
  O: "gb2 ~ gb2 ~ gb2 ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3]@2", // Ab5
  P: "db3 ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  Q: "~@2 [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", R: "[db3,ab3] ~@7",
  S: "gb2 ~ gb2 ~ gb2 ~ ab2@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", // Ab5
  T: "[eb3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Ab5 Db5
  U: "bb2 ~ bb2 ~ bb2 ~ bb2 ~ ab2 ~ ab2 ~ ab2@3 ~",
  V: "gb2 ~ gb2 ~ gb2 ~ ab2@2 ~@2 [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3]@2", // Ab5
  W: "[f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,b2,c3] ~ [f2,c3] ~ [f2,c3] ~", // F5 F F5
  X: "gb2 ~ gb2 ~ gb2 ~ [ab2,eb3]@3 ~ [ab2,eb3] ~ [ab2,eb3] ~ [ab2,eb3] ~", // Ab5
  Y: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3]@4", // Db5
  Z: "[db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~ [db3,ab3]@2", // Db5
  AA: "[[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 B A C N O N P Q ~@5 A B A C N O R@2 E F A C N O S@4 T@2 J K U V A F A C
  N O W X Y F A C G@2 Z@4 AA@2 AB@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]@15 ~ [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: "[ab3,db4,f4]@15 ~", O: "[ab3,c4,eb4]@15 ~",
  P: "~@2 [ab3,c4,eb4]@13 ~", Q: "[ab3,db4,f4]@3 ~@13", R: "[[ab3,db4,f4]@12 ~@2 [a3,c4,eb4,f4]@15 ~@3]/2",
  S: "[[ab3,db4,f4]@63 ~]/4", T: "[[bb3,db4,f4]@31 ~]/2", U: "[bb3,db4,f4]", V: "[a3,c4,eb4,f4]@7 ~",
  W: "[ab3,db4,f4]@13 ~@3", X: "~ [a3,c4,eb4,f4]@14 ~", Y: "[bb3,db4,f4] ~ [bb3,db4,f4]@5 ~ [ab3,c4,eb4]@7 ~",
  Z: "[db4@32 ~@4 db4@27 ~, f4@63 ~, ab3@31 ~ bb3@30 ~@2]/4", AA: "[[bb3,db4,gb4]@31 ~, gb3@7 ~]/2",
  AB: "[[db3,ab3,db4,f4]@23 ~@9]/2", // Db
})).s("gm_synth_strings_1").gain(0.35)

// bass · electric bass finger · "Bass"
const bass_2 = note(`<
  ~@4 A B C D C E C F G H I J C D C F K H L M K M N O P Q R S C D C T U H V W X ~ C B C B C B C T V Y Z AA C D C T V AB
  K AC AD AE AF AG AH AI AG AJ C AK C T V Y G AL C D C AM K H AE M AN AO P AP AQ@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@3 ~", D: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1 ~ f1 ~ f1@2",
  E: "gb1 ~ gb1 ~ gb1 ~ f1@3 ~ f1@3 ~ f1@2", F: "gb1 ~ gb1 ~ gb1 ~ ab1@2 ~@2 ab1@3 ~ ab1@2",
  G: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2@4", H: "ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1 ~ ab1@2",
  I: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ f1@2", J: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@2",
  K: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ db2@2", L: "db2 ~ db2 ~ db2@2 db2 ~ db2 ~ db2 ~ db2 ~ db2@2",
  M: "~@2 db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~", N: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@3 ~",
  O: "bb1 ~ bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1@2", P: "gb1 ~ gb1 ~ gb1@3 ~ gb1 ~ gb1 ~ gb1@3 ~",
  Q: "f1 ~ f1 ~ f1 ~ f1@3 ~ f1 ~ f1 ~ f1 ~", R: "bb1 ~ bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1 ~",
  S: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", T: "gb1 ~ gb1 ~ gb1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1@2",
  U: "db2 ~ db2 ~ db2 ~ db2@3 ~ db2 ~ db2@3 ~", V: "db2 ~ db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~",
  W: "~@2 ab1 ~ ab1 ~ ab1 ~ ab1 ~ ab1 ~ [ab1,db2] ~ ab1 ~", X: "db2 ~@7",
  Y: "ab1 ~ ab1 ~ ab1 ~ ab1@3 ~ ab1 ~ ab1 ~ ab1@2", Z: "db2 ~ db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ f1@2",
  AA: "~@2 f1@2 f2@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", AB: "ab1 ~ ab1 ~ ab1@4 ab1 ~ ab1 ~ ab1 ~ ab1 ~",
  AC: "~@2 db2 ~ db2@3 ~ db2 ~ db2 ~ db2 ~ db2 ~", AD: "db2 ~ db2 ~ db2@3 ~ db2 ~ db2 ~ db2@3 ~",
  AE: "db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2 ~ db2@2", AF: "bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1@3 ~",
  AG: "bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~", AH: "gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~ gb1 ~",
  AI: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", AJ: "bb1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~",
  AK: "gb1 ~ gb1 ~ gb1@2 f1@2 ~@2 f1 ~ f1 ~ f1@2", AL: "~@2 f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1@4",
  AM: "gb1 ~ gb1 ~ gb1 ~ ab1@2 ~@2 ab1 ~ ab1 ~ ab1 ~", AN: "bb1 ~ bb1 ~ bb1@3 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2",
  AO: "~@2 bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1 ~ bb1@2", AP: "gb1 ~ gb1 ~ gb1 ~ gb1@3 ~ gb1 ~ gb1 ~ gb1 ~",
  AQ: "[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({
  A: "~@2 x!2 ~@2 x ~", B: "~@4 x ~@3 x ~ x!3 ~ x ~", C: "~@4 x ~@3 x ~ x!5 ~", D: "~ x ~ x", E: "~ x!3",
  F: "~@4 x ~@3 x!2 ~@2 x!2 ~@2", G: "~@4 x ~@2 x!2 ~ x ~ x!3 ~", H: "~@4 x ~ x ~@5 x ~ x!2", I: "~ x!7",
  J: "~@4 x ~ x ~@3 x!5 ~", K: "~@4 x ~ x ~@3 x ~ x ~ x!2", L: "~@4 x ~@3 x ~@3 x!4", M: "~@2 x ~ x ~ x ~ x ~ x ~ x!4",
  N: "~@4 x ~ x ~@3 x ~ x!3 ~", O: "~@4 x ~@5 x ~ x!3 ~",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~@2 [~@2 x!2 ~@2 x ~]!2 ~@2 [~@2 x!2 ~@2 x ~]!2 ~@32 [~@2 x!2 ~@2 x ~]!6 ~@53>")
  .gain(0.72)

// drums · hihat
const hihat = s("hh").struct("<~@2 A@47 B A@3 C A@3 B A@3 D A@7 E A B A B A@7 B A@8 F ~@8>".pickRestart({
  A: "x!8", B: "x!4 ~ x!3", C: "~ x!4 ~ x ~", D: "x!6 ~ x", E: "~ x!7", F: "x",
})).gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 [~@5 x ~ x] ~@37 [~@5 x ~ x] ~@37>").gain(0.8)

// drums · crash
const crash = s("cr").struct("<~@8 A ~@15 A ~@21 A ~@7 A ~@7 A ~@15 A ~@11 A ~@8>".pickRestart({
  A: "x",
// … 6 more lines

More by The Shadows