Strudelify

Dance On

The Shadows

KeyG majorTempo98 bpm
0:00/0:00
// Dance On — The Shadows
// 98 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 55 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(98/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 · electric bass finger
const bass = note("<~ A B C D E F G H I J K L M@2 N O P Q R S T I U V W@3 X@2 Y@3 Z@8 AA@8 AB@6>".pickRestart({
  A: "d2@4 ~@2 d2 ~ f#2@3 ~ a2@3 ~ d2@4 ~@2 d2 ~ a2@3 ~ d3@3 ~, ~@28 c3 ~@3",
  B: "g1@5 ~ [g1,a1] ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~", // Gsus2
  C: "d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ d2@5 ~ d2 ~ a2@3 ~ d3@3 ~, ~@28 c3 ~@3",
  D: "g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~", E: "g1@4 ~@11 c#2 d2@7 ~ d1@7 ~",
  F: "g1@5 ~@2 g1 b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~",
  G: "g1@4 ~@2 g1 ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~, ~@8 a#1 ~@23",
  H: "d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ d2@4 ~@2 d2 ~ f#2@2 ~@2 a2@4", I: "a1@7 ~ c2@3 ~ e2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~",
  J: "a1@7 ~ c2@3 ~ e2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~, ~@12 d#2 ~@19",
  K: "g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~, ~@16 e2 ~@15", L: "g1@7 ~@8 c#2 d2@7 ~ d1@7 ~",
  M: "g1@5 ~ g1 ~ b1@3 ~ d2@4 g1@5 ~ g1 ~ b1@3 ~ d2@3 ~", N: "d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ d2@4 ~@2 d2 ~ f#2@3 ~ a2@3 ~",
  O: "a1@5 ~ a1 ~ c2@3 ~ e2@4 d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~", P: "a1@5 ~ a1 ~ c2@3 e2@3 ~@2 d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~",
  Q: "g1@4 ~@2 g1 b1@3 ~ d2@3 ~@2 g1@3 ~ g1@3 ~ a1@3 ~ b1@3 ~",
  R: "c2@5 ~ c2 ~ e2@3 ~ g2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~",
  S: "g1@4 ~@2 g1 b1@3 ~ d2@3 ~ c#2 g1@3 g1@2 a#1 ~@2 a1@3 ~ b1@3 ~",
  T: "c2@7 ~ e2@3 ~ g2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~", U: "d2@5 ~@10 c#2 d2@7 ~ d1@7 ~",
  V: "g1@5 ~ g1 b1@3 ~@2 d2@3 ~ g1@5 ~ g1 ~ b1@3 d2@3 ~@2",
  W: "[g1@5 ~ g1 ~ b1@3 d2@3 ~ g1@5 ~@2 g1 b1@3 ~ d2@3 ~@2 e2 ~@4 d2 ~ f#2@4 a2@4 ~ d2@4 ~ d2 ~ f#2@3 ~ a2@3 ~ a1@7 ~ c2@3 ~ e2@3 ~@2 d2@5 ~ d2 ~ f#2@3 a2@3 ~@2, ~@31 d2@4 ~@61]/3",
  X: "[a1@7 c2@3 ~ e2@3 ~@2 d2@5 ~ d2 f#2@3 ~ a2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~@2 d2@5 ~ d2 ~ d2 ~@3 a2@3 ~, ~@55 f#2@3 ~@6]/2",
  Y: "[g1@4 ~ g1 ~ b1@3 ~ d2@3 ~@2 g1@11 ~@4 d2@5 ~@2 d2 f#2@3 ~ a2@3 ~ d2@5 ~@2 d2 f#2@3 ~ a2@3 ~ g1@5 ~@2 g1 b1@3 ~ d2@3 ~ g1@5 ~@2 g1 ~ b1@3 d2@3 ~@2]/3",
  Z: "[d2@4 ~ d2 ~ f#2@3 ~ a2@3 ~ d2@5 ~ d2 ~ a2@3 ~ d3@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1@3 ~ g1@3 ~ a1@3 ~ b1@3 ~ c2@5 ~@2 c2 e2@3 ~ g2@3 ~ d2@5 ~@2 d2 f#2@3 ~ a2@3 ~ g1@5 ~@2 g1 b1@3 ~ d2@3 ~ g1@3 ~ g1@3 ~ a1@3 ~ b1@3 ~ c2@5 ~ c2 ~ e2@3 ~ g2@4 d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ a1@7 ~ c2@3 ~ e2@3 ~ d2@5 ~@2 d2 f#2@3 ~ a2@3 ~ d2@5 ~@11 c#2 c2 ~@7 d1@7 g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1, ~@31 a1 ~@83 g#1 ~@91 d2@8 ~@41]/8",
  AA: "[~@5 g1 ~ b1@3 d2@3 ~@2 g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@4 d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ a1@7 ~ c2@3 ~ e2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ a1@7 ~ c2@4 e2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 c#2 g1@12 ~@4 d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ d2]/8",
  AB: "[~@5 d2 ~ f#2@3 ~ a2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ d2@5 ~ d2 ~ f#2@3 ~ a2@3 ~ g1@5 ~ g1 ~ b1@3 d2@3 ~ g1@5 ~@2 g1 ~ b1@3 d2@3 ~@2 g1@5 ~ g1 ~ b1@3 ~ d2@3 ~ g1@5 ~ g1 ~ b1@3 d2@3 ~ g1@7 ~@27]/6",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · electric guitar muted
const electric_guitar_muted = note("<~ A B A C@2 ~@25 D E F G ~@12 H I J K L M N ~>".pickRestart({
  A: "~@5 [c4,d4] ~@3 [c4,d4]@2 [c4,d4] ~@3 [c4,d4] ~@16", B: "~@4 [b3,d4] ~@4 [b3,d4]@2 [b3,d4] ~@3 [b3,d4] ~@16",
  C: "[~@4 [b3,d4] ~@3 [b3,d4]@2 ~ [b3,d4] ~@8 [b3,d4] ~@3 [b3,d4]@2 ~ [b3,d4]@2 ~@2 [b3,d4]@2 ~@31]/2", // Bm
  D: "~@4 [c4,d4] ~@3 [c4,d4] ~ [c4,d4] ~@3 [c4,d4] ~@17", E: "~@4 [b3,d4] ~@2 [b3,d4]@2 ~ [b3,d4] ~@3 [b3,d4]@2 ~@16",
  F: "~@3 [c4,d4] ~@3 [c4,d4] ~ [c4,d4] ~@4 [c4,d4]@2 ~@16", // Csus2
  G: "~@3 [b3,d4]@2 ~@2 [b3,d4] ~ [b3,d4] ~@3 [b3,d4]@2 ~@17", H: "~@3 [c4,d4] ~@3 [c4,d4]@2 [c4,d4] ~@3 [c4,d4] ~@18",
  I: "~@3 [b3,d4] ~@3 [b3,d4]@2 ~ [b3,d4] ~@2 [b3,d4]@2 ~@17", // Bm
  J: "~@3 [c4,d4] ~@3 [c4,d4]@2 ~ [c4,d4] ~@3 [c4,d4,e4] ~@17", // Csus2 C
  K: "~@3 [b3,d4] ~@3 [b3,d4]@2 [b3,d4] ~@3 [b3,d4]@2 ~@17", L: "~@3 [c4,d4] ~@3 [c4,d4]@2 [c4,d4] ~@3 [c4,d4]@2 ~@17",
  M: "~@3 [b3,d4] ~@3 [b3,d4] ~ [b3,d4] ~@9 [b3,d4] ~@3 [b3,c#4,d4] ~ [b3,d4]@2 ~@5", // Bm
  N: "~@3 [b3,d4] ~@3 [b3,d4] ~ [b3,d4] ~@9 [b3,d4] ~@3 [b3,d4]@2 [b3,d4] ~@3 [b3,d4]@2 ~", // Bm
})).s("gm_electric_guitar_muted").gain(0.4).pan(0.3)

// chords · violin
const violin = note("<~ A B C@3 D@4 E F G H@6 I@2 J K L@7 M@5 N@4 ~@2 O@5 P@8 ~>".pickRestart({
  A: "[a2,c3,d3,f#3]@31 ~", B: "[g2,b2,d3]@31 ~", C: "[[a2,c3,d3,f#3]@15 ~ g2@17 ~@15, ~@31 [b2,d3]@35 ~@30]/3",
  D: "[~ [g2,b2]@62 ~ [a2,c3,f#3]@31 ~ e3@16 [a2,c3,d3,f#3]@15 ~, ~ d3@94 c3@16 ~@17]/4", // G F#dim D7
  E: "[a2,c3,e3,g3]@15 ~ [a2,c3,d3,f#3]@15 ~, d#3 ~@31", F: "[g2,b2,d3,g3]@15 ~ [a2,c3,d3,f#3]@15 ~",
  G: "[g2,b2]@17 ~@15", // G
  H: "[[a#2,c#3] d3@61 ~ [a2,c3,d3,f#3]@31 ~ [a2,c3,e3,g3]@16 ~ [a2,d3]@15 [e3,g3]@15 ~@2 a2@14 ~ [g2,b2,d3]@16 ~ [g2,b2,d3,f3]@15 ~, [g2,g3]@62 ~@50 c3@31 [c3,d3]@15 ~@34, [f2,f3] ~@55 b2 ~@39, ~@112 f3 ~@30 f#3@11 ~@38]/6", // A#m D7 Am7 D5 Em G G7 G …
  I: "[[g2,e3]@15 ~ [a2,f#3]@15 ~ [g2,b2]@15 ~ [g2,b2,d3,f3]@15 ~, c3@31 ~ a2 ~@31, d#3 ~@15 d3@32 ~@16]/2", // C D G G7
  J: "[g2,e3]@15 ~ [a2,f#3]@15 ~, c3@31 ~, d#3 ~@31", K: "[a2,e3]@15 ~ [d3,f#3]@16, c3, d3 ~@31",
  L: "[~@32 g3@62 ~ [a2,c3]@31 ~ [a2,c3,e3,g3]@16 [a2,c3,d3,f#3]@15 ~ [a2,c3,e3,g3]@15 ~ [a2,c3,d3,f#3]@15 ~ [g2,b2,d3,g3]@16 [a2,c3,d3,f#3]@15 ~ [g2,c3,d3], ~@31 d3@94 ~@99, ~@31 [g2,b2]@63 ~@130]/7", // Am Am7 D7 Am7 D7 G D7 Gsus4 …
  M: "[~@31 [c3,d3,f#3,a3]@32 [b2,g3]@31 ~ [c3,f#3,a3]@32 [d3,g3,b3]@23 ~ [b2,f3]@8 [g2,c3,e3], ~@63 d3@63 ~@24 d3@8 ~@2]/5", // D7 Em F#dim G Bdim C
  N: "[~@15 [a2,c3,d3,f#3]@15 ~@26 f3@6 ~ [g2,e3]@15 ~ [d3,f#3]@15 ~ [a2,e3]@15 ~ [d3,f#3]@17, ~@15 e3 ~@15 [b2,d3]@32 c3@31 ~ c3@33, ~@63 d3 ~@31 d#3 ~@32]/4", // D7 C D A5 D Bm
  O: "[~@30 [a2,c3]@31 ~@2 e3@16 [d3,f#3]@15 [e3,g3]@16 ~ [a2,c3,d3,f#3]@15 [g2,b2,d3,g3]@16 [a2,c3,d3,f#3]@15 ~ [g2,b2,d3]@2, ~@62 [a2,c3,g3]@16 ~ [a2,c3]@31 ~@50, ~@79 b2 ~@14 d3 ~@16 e3 ~@30 d#3 ~@17]/5", // Am D Em D7 G D7 G Am7 …
  P: "[~@31 [a2,c3,d3,f#3]@31 ~ b2@31 ~ g#3 ~@31 b3@30 ~ [c3,f#3,a3]@30 ~@2 [b2,d3,g3,b3]@66, ~@62 g3@31 ~ [c3,f#3,a3]@31 ~ f#3@30 ~@100, ~@63 d3@95 ~@98]/8", // D7 F#dim G F#dim
})).s("gm_violin").gain(0.26)

// chords · violin · soft notes
const violin_soft = note(`<
  ~@2 A B@3 C ~ D@2 ~ E@2 F@2 ~ G@3 ~ H I J ~@2 K@2 ~@2 L@2 M ~ N O P@2 Q R S@4 T ~ U@2 V ~ W@3 ~@3
>`.pickRestart({
  A: "g3@15 ~", B: "[~@31 g3@34 ~@31]/3", C: "~ g3 ~@30", D: "[~@31 [a2,g3]@16 ~@17]/2",
  E: "[~@2 g3 ~, ~@31 d3@17 ~@16]/2", F: "[~ b2@61 ~@2]/2",
  G: "[~@16 f#3 ~@2 f#3@12 a2@15 ~@17 g3@16 ~ f#3@3 ~@13, ~@80 g3 ~@15]/3", H: "g3@15 ~@17", I: "~@15 d3 d3@15 ~",
  J: "~ a2", K: "[~@31 f#3@31 ~@2]/2", L: "[~@31 [b2,g3]@20 ~@13]/2", M: "~@31 g#3", N: "~@31 [g#3,a#3]",
  O: "~@23 g3 ~@7 d#3", P: "[~@31 g3@24 f#3 ~@8, ~@31 f#3 ~@32]/2", Q: "~@15 a2@15 ~@2", R: "~@15 a2@17",
  S: "[~@30 [g2,b2,g3]@63 ~ f#3@30 ~@4, ~@30 d3@95 ~@3]/4", T: "~@31 f#3", U: "[~@15 g3@9 ~@8]/2", V: "~@31 c3",
  W: "[~@31 g3@30 ~ d3@31 ~@3]/3",
})).s("gm_violin").gain(0.1)

// other · electric guitar clean
const electric_guitar_clean = note("<A B C D E F ~@6 G@2 ~@4 H I J K ~ L ~@6 M@2 N O@3 P@2 ~ Q ~@6 R@8 ~>".pickRestart({
  A: "~@21 d3@4 d4@3 ~ c4@3", B: "~ a3@19 d3@3 ~ c4@3 ~ b3@3 ~", C: "g3@20 d3@3 ~ d4@3 ~ c4@3 ~",
  D: "a3@19 ~ d3@4 c4@3 ~ b3@3 ~", E: "g3", F: "~@2 d4 d3, ~@16 c#4 ~@15", G: "[~@15 c#4 d4@8 d3@12 ~@28]/2",
  H: "~@16 g3@3 ~ g3@3 ~ a3@3 ~ b3@4, ~@28 c4 ~@3", I: "c4@7 ~@25", J: "~@16 g3@3 ~ g3@3 ~ a3@3 ~ b3@3 ~", K: "c4 ~@3",
  L: "~@15 c#4 d4@8 d3@7 ~", M: "[~@19 d3@3 ~ d4@3 ~ c4@3 ~ a3@18 ~@3 d3@3 ~ c4@3 ~ b3@3 ~]/2",
  N: "g3@17 ~@2 d3@3 ~ d4@3 ~ c4@3 ~@2",
  O: "[a3@16 ~@3 d3@3 ~ d4@3 ~@2 c4@3 g3@17 ~@3 g3@4 ~ a3@3 b3@3 ~ c4@12 ~@21]/3",
  P: "[~@15 g3@3 ~ g3@3 ~@2 a3@3 b3@3 ~ c4@10 ~@23]/2", Q: "~@14 c#4 d4@8 d3@8 ~",
  R: "[~@19 d3@3 ~ d4@3 ~ c4@3 ~ a3@17 ~@3 d3@3 ~ c4@3 ~ b3@3 ~ g3@18 ~@2 d3@3 ~ d4@3 ~ c4@3 ~ a3@18 ~@2 d3@3 ~ c4@3 ~ b3@3 ~ g3@19 ~ d3@3 ~ d4@3 ~ c4@3 ~ a3@18 ~@2 d3@3 ~ c4@3 ~ b3@3 ~ g3@65]/8",
})).s("gm_electric_guitar_clean").gain(0.45).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B A C D C B E F G H I C@2 E G@2 J K J L F M C@2 A F G H N O@8 P@3 Q@8 R@5
>`.pickRestart({
  A: "[a3,c4,d4,f#4]!6 f#4 [a3,c4,d4,f#4]", // D7
  B: "[d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@3 ~", // G
  C: "[d4,g4,b4]!6 b4 [d4,g4,b4]", D: "[d4,g4,b4] ~@25 [d4,g4,b4] [g4,b4,d5] [d4,g4,b4]@2 [d4,g4,b4]@2",
  E: "[a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~", // D7
  F: "[e3,a3,c4]!4 [a3,c4,d4,f#4]!2 f#4 [a3,c4,d4,f#4]", // Am D7
  G: "[e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4", // Am D7
  H: "[d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4", // G D7
  I: "[d4,g4,b4]@3 ~@23 [d4,g4,b4] [g4,b4,d5] [d4,g4,b4]@2 [d4,g4,b4]@2", // G
  J: "[d4,g4,b4]!4 [d4,f4,g4,b4]!2 b4 [d4,f4,g4,b4]", // G G7
  K: "[g3,c4,e4] ~ [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]@2 f#4@2 [a3,c4,d4,f#4]@2", // C D7
  L: "[g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [a3,c4,d4,f#4] ~@3 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~", // C D7
  M: "~@26 [a3,c4,d4,f#4] [c4,d4,f#4,a4] [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4]@2", // D7
  N: "[d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 ~@9 [d4,g4,b4] [g4,b4,d5] [d4,g4,b4]@2 [d4,g4,b4]@2 ~", // G
  O: "[[f#4,a4] ~@2 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~ [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~ [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@3 ~ [d4,f4,g4,b4]@4 [d4,f4,g4,b4]@4 b4@4 [d4,f4,g4,b4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~ [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,f4,g4,b4]@4 [d4,f4,g4,b4]@4 b4@4 [d4,f4,g4,b4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@4 [g3,c4,e4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~ [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 ~]/8", // F#m D7 G D7 G G7 C D7 …
  P: "[~@25 [a3,c4,d4,f#4] [c4,d4,f#4,a4] [a3,c4,d4,f#4]@2 [a3,c4,d4,f#4] ~ [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@3 ~ [a3,c4,d4,f#4]]/3", // D7 G D7
  Q: "[~@3 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@4 [e3,a3,c4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@3 ~ [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@3 ~ [a3,c4,d4,f#4]@2 ~@2 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@2 ~@8 [d4,g4,b4] [g4,b4,d5] [d4,g4,b4]@2 [d4,g4,b4] ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 [d4,g4,b4]]/8", // D7 Am D7 Am D7 G D7 G …
  R: "[~@3 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@3 ~ [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 [a3,c4,d4,f#4]@4 f#4@4 [a3,c4,d4,f#4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 [d4,g4,b4]@4 b4@4 [d4,g4,b4]@4 [d4,g4,b4]@4 ~@29]/5", // G D7 G
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.8)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~ A B A B ~ B@2 A@4 ~ B@2 A@3 C A C A@2 ~ B@2 A@4 ~ D E D F D F D@2 ~ E@2 D@4 ~ D E D E D E@2 ~
>`.pickRestart({
  A: "~@6 [a3,c4,d4] ~", B: "~@6 [d4,g4] ~", C: "~@6 [d4,f4,g4] ~", D: "~@23 [a3,c4,d4]@4 ~@5", E: "~@23 [d4,g4]@4 ~@5",
  F: "~@23 [d4,f4,g4]@4 ~@5", // G7
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.8)

// other · electric guitar muted
const electric_guitar_muted_2 = note(`<
  ~@6 A@2 B C D E F A@2 G C D F ~@5 A@2 G H I J K ~@9 L@2 M N O J K P L M L M L@2 ~
>`.pickRestart({
  A: "~@2 d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@3 d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~",
  B: "~@2 a3 ~ b3 ~@3 a3 ~@3 b3 ~ a3 ~@3 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~",
  C: "~@2 [e4,a4,c5] ~@5 [e4,a4,c5] ~@9 a3 ~ c4 ~@3 a3 ~@3 c4 ~ a3 ~", // Am
  D: "~@2 [e4,a4,c5] ~@5 [e4,a4,c5] ~@9 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~", // Am
  E: "~@2 d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@3 a3 ~ c4 ~@3 a3 ~@3 c4 ~ a3 ~", F: "~@2 d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@17",
  G: "~@2 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~@3 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~",
  H: "~@2 [e4,a4,c5] ~@5 [e4,a4,c5] ~@8 a3 ~@2 c4 ~@3 a3 ~@3 c4 a3 ~@2", // Am
  I: "~ [e4,a4,c5] ~@5 [e4,a4,c5] ~@9 a3 ~@2 b3 ~@2 a3 ~@3 c4 ~ a3 ~@2", // Am
  J: "~ d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@3 a3 ~ c4 ~@3 a3 ~@3 c4 ~ a3 ~@2", K: "~ d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@18",
  L: "~ d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@3 d4 ~ e4 ~@3 d4 ~@3 e4 ~ d4 ~@2",
  M: "~ a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~@3 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~@2",
  N: "~ [e4,a4,c5] ~@5 [e4,a4,c5] ~@9 a3 ~ c4 ~@3 a3 ~@3 c4 ~ a3 ~@2", // Am
  O: "~ [e4,a4,c5] ~@5 [e4,a4,c5] ~@9 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~@2", // Am
  P: "~ a3 ~ b3 ~@3 a3 ~@3 b3 ~ a3 ~@3 a3 ~ b3 ~@3 a3 ~@3 c4 ~ a3 ~@2",
})).s("gm_electric_guitar_muted").gain(0.36).pan(0.6)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@19 A@3 B ~@12 C@2 D@2 ~@16>".pickRestart({
  A: "[~@4 c5@3 ~ d5@4 e5@4 d5@4 ~ d5 c5@2 b4@3 ~ c5@2 ~@2 b4@15 ~ [g4,b4]@19 ~ c5@4 d5@4 e5@4 d5@4 c5 b4 c5 b4@4 ~ g4@3 ~, ~@20 c5@2 ~@9 d5@16 ~@49]/3", // G
  B: "[e4,a4] d4", C: "[~@3 c5@4 d5@4 e5@4 ~@4 c#5 c5 e5 c5 b4@3 ~ c5@3 ~ [b4,d5]@16 [g4,b4]@17, ~@15 d5@7 ~@42]/2",
  D: "[~@3 c5@4 d5@4 e5@4 d5@4 c5@4 b4@3 ~ g4@3 ~ [e4,a4]@15 d4@18]/2", // A5
})).s("gm_electric_guitar_jazz").gain(0.8)

// drums · kick
const kick = s("bd").struct("<~ A@4 B A@6 C A@5 C A@4 B A@5 D E F@3 E F@4 G F@6 E F@6 H ~>".pickRestart({
  A: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3", B: "x!4", C: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@2 x",
  D: "x ~@4 x ~ x ~@7 x ~@5 x ~ x ~@7 x", E: "~@5 x ~ x ~@7 x ~@5 x ~ x ~@5 x ~ x",
  F: "~@5 x ~ x ~@7 x ~@5 x ~ x ~@7 x", G: "~@7 x ~@7 x ~@7 x ~@7 x", H: "~@5 x ~ x ~@5 x ~ x ~@5 x ~ x ~@5 x ~ x",
})).gain(0.37)

// drums · snare
const snare = s("sd").struct(`<
  A B C B C A B C B C B C D B C B C B D B C B C A B C B C B E F G H G F G H G H I G H G H G H F G H G H G H F ~
>`.pickRestart({
  A: "~@27 x!2 ~ x ~", B: "~ x ~ x ~ x ~ x", C: "~@2 x ~@3 x ~@3 x ~@3 x!2",
  D: "~@4 x ~@7 x ~@6 x!2 ~ x ~@3 x ~ x ~ x ~", E: "~@4 x ~@7 x ~@6 x ~@7 x ~ x ~@2",
  F: "~@3 x ~@7 x ~@6 x!2 ~ x ~@3 x ~ x ~ x ~@2", G: "~@3 x ~@7 x ~@7 x ~@7 x ~@4",
  H: "~@3 x ~@7 x ~@7 x ~@7 x ~ x ~@2", I: "~@26 x!2 ~ x ~@2",
})).gain(0.37)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  A ~ A ~ A@2 ~ A ~ A ~ A B ~ A ~ A ~ B ~ A ~ A@2 ~ A ~ A ~ C D ~ C ~ D ~ C ~ C@2 ~ C ~ C ~ C D ~ C ~ C ~ C D ~
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@16 x!3 ~@5 x ~@7", C: "~@25 x ~@6", D: "~@15 x!3 ~@5 x ~@8",
})).gain(0.19)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B A B C A B A B A B A@2 B A B A@3 B A B C A B A B A D E@2 F E@3 F E F G E F E F E F E@2 F E F E F E ~
>`.pickRestart({
  A: "x!16", B: "x!14 ~ x", C: "x!4", D: "x ~ x ~ x!2 ~ x ~ x ~@2 x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x",
  E: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  F: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x", G: "~@7 x ~@7 x ~@7 x ~@7 x",
})).gain(0.23)

// drums · low tom
const low_tom = s("lt").struct("<~@12 A ~@5 A ~@11 B ~@3 B ~@11 B ~@6 B ~>".pickRestart({
  A: "~@13 x!3", B: "~@25 x ~ x ~ x ~@2",
})).gain(0.33)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@12 A ~@5 A ~@11 B ~@3 B ~@11 B ~@6 B ~>".pickRestart({
  A: "~@3 x", B: "~@23 x ~@8",
})).gain(0.19)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A ~ A ~@2 A ~ A ~ A ~@2 A ~ A ~@3 A ~ A ~@2 A ~ A ~ B ~@2 B ~@3 B ~ B ~@2 B ~ B ~ B ~@2 B ~ B ~ B ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@27 x ~@4",
})).gain(0.28)

// drums · mid tom
// … 17 more lines

More by The Shadows