Strudelify
The Tide Is High cover art

Feels So Good

The Tide Is High

Atomic Kitten

KeyG majorTempo104 bpm
0:00/0:00
// The Tide Is High — Atomic Kitten
// 104 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 99 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(104/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.

// other · piano
const piano = note("<~@28 A@2 ~@31 A@2 ~@36>".pickRestart({
  A: "[~@2 c5@5 ~]/2",
})).s("gm_piano").gain(0.01)

// bass · synth bass 2
const bass = note(`<
  ~@4 A B C D C D C D C ~@8 B C D C D C D C E F E G H I H I H I H J B C D C D C D C E F E K L M L N L N O M ~@8 P Q@3
  R@3 S T@8 U@8 V@5 W
>`.pickRestart({
  A: "~@5 b1@3", B: "c2@2 ~@2 c2@2 ~ c2", C: "f1@2 ~ f1 g1@2 ~ g1", D: "c2@2 ~ g1 c2@2 ~ c2", E: "d1@2 ~ d1@2 g1 ~ d1",
  F: "g1@2 ~@3 g1 ~ a1", G: "g1@2 ~@3 g1 d2 g1", H: "c2 ~@4 c2 ~ c2", I: "f1 ~@4 g1 ~ b1", J: "f1 g1",
  K: "g1@8 ~@12 a1@4 e2@3 a1@4 ~", L: "d2@8 ~@4 a1@4 d2@3 d1@6 ~@2 d2@4 ~", M: "g1@8 ~@4 g1@3 a1@8 ~@5 a1@4",
  N: "g1@2 ~ g1 a1@2 ~ a1", O: "d2@4 ~@2 a1@2 d2@2 d1@3 ~ d2@2", P: "~@19 d2@12 ~",
  Q: "[d2@8 ~@7 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@5 a1@3 d2@8 ~@4 d2@4 ~]/3",
  R: "[g1@8 ~@4 g1@4 a1@8 ~@3 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1@8 ~@5 g1@4 a1@8 ~@3 a1@4 ~]/3",
  S: "d2@8 ~@3 a1@4 ~ d2@8 ~@4 d2@4",
  T: "[g1@8 ~@3 g1@4 a1@8 ~@5 a1@3 d2@8 ~@8 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1]/8",
  U: "[~@11 g1@4 a1@8 ~@4 a1@4 d2@8 ~@8 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1@8 ~@4 g1@4 a1@8 ~@4 a1@4 d2@8 ~@4 a1@4 d2@8 ~@4 d2@4 g1]/8",
  V: "[~@11 g1@4 a1@8 ~@4 a1@4 e1@8 ~@4 e1@8 a1@4 ~@4 e1@4 a1@8 ~@12 a1@4 ~@4 b1@4 e1@8 ~@4 e1@8 a1@4 ~@4 e1@4 a1@8 g1@8 f#1@8 e1@8 ~]/5",
  W: "~@7 d2@4 ~@21",
})).s("gm_synth_bass_2").gain(0.48)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@3 A B A C A B A C D C ~ E ~ F ~ G H I D C D C D C D C J K J K ~ E ~ L ~ G H M D C D C D C D C N K N O ~ P ~ P ~ P Q
  P ~@2 P ~ P ~ P Q R@8 S@16 T@6
>`.pickRestart({
  A: "~@2 [c4,e4]@27 ~@3, c3@7 ~, ~ [e3,g3]@27 ~@4", // C Em
  B: "~@2 f4@13 ~@3 g4@13 ~, [f3,a3]@14 ~@2 g3@15 ~, ~ c4@13 ~@3 [b3,d4]@14 ~", // F Bm
  C: "~ [c4,f4]@13 ~@3 [d4,g4]@13 ~@2, [f3,a3]@7 ~ [g3,b3]@7 ~", D: "~ e4@13 ~@2, [c3,e3]@7 ~, ~ [g3,c4]@27 ~@4",
  E: "~@16 g3@4 g4@3 d4 b3@4 ~@4", F: "~@18 g4@2 ~@4 b3@7 ~, ~@8 g3@7 ~, ~@2 b3 ~, ~@17 d4@6 d4@8 ~, ~@10 g4@5 ~",
  G: "~ [a3,c4,f4]@13 ~@2 g3@4 g4@3 d4 b3@4 ~@4, f3@7 ~@9", H: "~@20 c4 ~@11",
  I: "~@17 g4@3 ~@4 b3@6 ~@2, ~@8 g3@7 ~, ~@17 [b3,d4]@6 d4@8 ~, ~@20 g4@11 ~", // Bm
  J: "~ [c4,f4]@23 ~ [c4,f4]@7, [d3,f3,a3]@23 ~ [d3,f3,a3]@7 ~", K: "~ g4@31, [d3,g3,b3,d4]@31 ~",
  L: "~@17 g4@3 ~@4 b3@7 ~, ~@8 g3@7 ~, ~@2 b3 ~, ~@17 d4@5 d4@8 ~@2, ~@10 g4@5 ~",
  M: "~@17 g4@3 ~@4 b3@6 ~@2, ~@8 g3@7 ~, ~@2 b3 ~, ~@17 d4@5 d4@8 ~@2, ~@10 g4@5 ~",
  N: "~ f4@22 ~@2 f4@6 ~, [d3,f3,a3,c4]@23 ~ [d3,f3,a3,c4]@7 ~", // Dm7
  O: "~ g4@15 ~ a4@14 ~, [d3,g3,b3,d4]@15 ~ [e3,a3,c#4,e4]@15 ~", P: "~@16 a3@4 ~@2 e4 ~ c#4@4 ~@4, ~@5 a4 ~@2",
  Q: "~@20 d4 ~@11",
  R: "[~@15 a3@4 a4@3 e4 c#4@4 ~@6 [d4,f#4]@27 ~@5 g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@5 g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@5 g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@3 g3, ~@31 d3@28 ~@5 [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5 [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5 [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5, ~@32 [f#3,a3]@27 ~@4 g3@14 ~@3 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@4 g3@14 ~@3 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@4 g3@14 ~@3 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@5]/8", // D Bm F#m C#m F#m C#m F#m C#m …
  S: "[~ g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@5 g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@5 g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@5 g4@13 ~@3 a4@13 ~@3 [d4,f#4]@27 ~@3 g3, [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5 [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5 [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5 [b3,d4]@14 ~ a3@15 ~ d3@28 ~@5, ~@16 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@4 g3@14 ~@3 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@4 g3@14 ~@3 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@4 g3@14 ~@3 [c#4,e4]@14 ~@2 [f#3,a3]@27 ~@5]/8", // D Bm C#m F#m C#m F#m C#m F#m …
  T: "[~ g4@13 ~@3 a4@13 ~@2 [g3,b3,d4,g4]@23 ~ [b3,d4,g4]@7 ~ [a3,c#4,e4,a4]@31 ~ [b3,d4,g4]@23 ~ [g3,b3,d4,g4]@7 ~ [c#4,e4,a4]@15 ~ [a3,c#4,e4,a4]@15 ~@9 [a3,d4,f#4]@3 ~@21, [b3,d4]@14 ~ a3@14 ~@2 e3@24 [e3,g3]@7 ~ e3@31 ~ [e3,g3]@23 ~ e3@7 ~ [e3,a3]@15 ~ e3@15 ~ d3@7 d4@2 ~@24, ~@16 [c#4,e4]@14 ~@132 f#3@5 [d3,f#3]@4 ~@21, ~@163 a3@5 ~@24]/6", // G A G A D Bm Em A5 …
})).s("gm_acoustic_guitar_steel").gain(0.04).pan(0.1)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~ A B A B A B A B A B A B C ~ C ~ C ~ C D A B A B A B A B E F E F C ~ C ~ C ~ G D A H A B I H A H E F E J@2 K L K L K
  M@2 ~ N ~ N O@2 ~ P@3 Q@4 R@3 S@8 T@8 F U F V@2
>`.pickRestart({
  A: "~@7 c4@2 ~@23, c3@9 ~@23, ~@3 e3@7 ~@22, ~@4 g3@5 ~@23",
  B: "~@7 f4@3 ~@13 g4@3 ~@6, f3@9 ~@7 g3@9 ~@7, ~@3 a3@7 ~@10 d4@5 ~@7, ~@4 c4@5 ~@10 b3@7 ~@6",
  C: "~@7 c4@6 ~@19, c3@13 ~@19, ~@4 g3@9 ~@19", D: "f3@13 ~@3 g3@12 ~@4", E: "~@7 f4@17 ~@8", F: "~@6 g4@17 ~@9",
  G: "~@6 c4@7 ~@19, c3@13 ~@19, ~@4 g3@9 ~@19",
  H: "~@6 f4@3 ~@13 g4@3 ~@7, f3@9 ~@7 g3@9 ~@7, ~@2 a3@7 ~@11 d4@5 ~@7, ~@4 c4@5 ~@9 b3@7 ~@7",
  I: "~@6 c4@3 ~@23, c3@9 ~@23, ~@2 e3@7 ~@23, ~@4 g3@5 ~@23",
  J: "[~@6 g4@9 ~@7 a4@9 ~@7 d4@3 ~@23, ~@31 d3@10 ~@23, ~@34 f#3@7 ~@23, ~@36 a3@5 ~@23]/2",
  K: "~@6 g4@3 ~@13 a4@2 ~@8, g3@9 ~@7 a3@9 ~@7, ~@2 b3@7 ~@11 e4@5 ~@7, ~@4 d4@5 ~@9 c#4@7 ~@7",
  L: "~@6 d4@3 ~@23, d3@9 ~@23, ~@2 f#3@7 ~@23, ~@4 a3@5 ~@23",
  M: "[~@6 d4@3 ~@29 g4@3 ~@13 a4@3 ~@7, d3@9 ~@27 d4@5 ~@9 c#4@7 ~@7, ~@2 f#3@7 ~@22 g3@10 ~@7 a3@9 ~@7, ~@4 a3@5 ~@25 b3@7 ~@11 e4@5 ~@7]/2",
  N: "~@6 d4@7 ~@19, d3@13 ~@19, ~@4 a3@9 ~@19", O: "[~@38 d4@7 ~@19, ~@31 d3@13 ~@20, ~@36 a3@9 ~@19]/2",
  P: "[~@6 d4@7 ~@18 g3@13 ~@3 a3@12 ~@11 d4@2 ~@24, d3@13 ~@50 d3@9 ~@24, ~@4 a3@9 ~@53 f#3@7 ~@23, ~@67 a3@5 ~@24]/3",
  Q: "[~@6 g4@3 ~@13 a4@2 ~@14 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@2 ~@24, g3@9 ~@6 a3@10 ~@6 d3@10 ~@26 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@23, ~@2 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@6 a3@9 ~@7 d3@9 ~@24, ~@3 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@11 e4@5 ~@11 a3@5 ~@24]/4",
  R: "[~@6 g4@3 ~@13 a4@2 ~@14 d4@3 ~@29 g4@3 ~@13 a4@3 ~@7, g3@9 ~@6 a3@10 ~@6 d3@10 ~@27 d4@5 ~@9 c#4@7 ~@7, ~@2 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@7 a3@9 ~@7, ~@3 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@12 e4@5 ~@7]/3",
  S: "[~@6 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@3 ~@29 g4@3 ~@13 a4@3 ~@6 d3, d3@9 ~@26 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@7 a3@9 ~@7 d3@9 ~@27 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@7 a3@9 ~@8, ~@2 f#3@7 ~@22 g3@10 ~@6 a3@9 ~@7 d3@9 ~@27 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@7 a3@9 ~@7 d3@9 ~@27 d4@5 ~@10 c#4@7 ~@7, ~@4 a3@5 ~@25 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@10 e4@5 ~@8]/8",
  T: "[~@6 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@3 ~@29 g4@3 ~@13 a4@3 ~@13 d4@3 ~@29 g4@2 ~@14 a4@2 ~@8, ~@2 f#3@7 ~@22 g3@9 ~@7 a3@9 ~@7 d3@9 ~@27 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@7 a3@9 ~@7 d3@9 ~@27 d4@5 ~@10 c#4@7 ~@7, ~@3 a3@5 ~@26 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@6 a3@9 ~@7 d3@9 ~@27 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@7 a3@9 ~@8, ~@35 d4@5 ~@10 c#4@7 ~@9 f#3@7 ~@22 g3@9 ~@11 e4@5 ~@11 a3@5 ~@26 b3@7 ~@10 e4@5 ~@11 a3@5 ~@26 b3@7 ~@10 e4@5 ~@8]/8",
  U: "~@6 a4@17 ~@9", V: "[~@6 a4@9 ~@7 a4@9 ~@7 d4@6 ~@20, ~@31 d3@12 ~@21, ~@34 f#3@9 ~@21, ~@35 a3@8 ~@21]/2",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.9)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@33 A ~ A ~ A ~ A ~@59>".pickRestart({
  A: "~@3 [c4,e4,g4,c5] ~@12", // C
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note("<~@4 A@2 ~@14 B@2 ~@18 C@2 ~@57>".pickRestart({
  A: "[~@17 [g#3,g#4]@2 ~@10 [f4,f5]@2 ~ [g4,g5]@2 ~@30, ~@16 [g3,g4]@2 ~ [a3,a4]@2 b3@2 [c4,c5]@2 d4@2 [d#4,d#5]@2 ~@35, ~@20 [a#3,a#4]@2 b4@2 [c#4,c#5]@2 d5@2 [e4,e5]@2 ~ [f#4,f#5]@2 ~@31]/2", // G# F G A C D# A# C# …
  B: "[~@17 [g#3,g#4]@2 ~@2 [b3,b4]@2 ~@2 [d4,d5]@2 ~@2 [f4,f5]@2 ~ [g4,g5]@2 ~@30, ~@16 [g3,g4]@2 ~ [a3,a4]@2 ~@3 [c#4,c#5]@2 ~ [d#4,d#5]@2 ~@35, ~@20 [a#3,a#4]@2 ~ [c4,c5]@2 ~@3 [e4,e5]@2 ~ [f#4,f#5]@2 ~@31]/2", // G# B D F G A C# D# …
  C: "[~@13 [d#4,d#5] ~@2 [g4,g5] ~@15, ~@16 [g3,g4]@2 a3@2 [a#3,a#4]@2 c4@2 [c#4,c#5]@2 ~@3 [f4,f5]@2 f#5@2 ~@31, ~@17 [g#3,g#4]@2 a4@2 [b3,b4]@2 c5@2 [d4,d5]@2 ~ [e4,e5]@2 f#4@2 ~@32]/2", // D# G A# C# F G# B D …
})).s("gm_string_ensemble_1").gain(0.09)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@5 A B A B A B A B ~@8 A C@4 D@7 ~@7 E@2 F@6 G@8 H@5 ~@8 I@8 J@16 K@5 L
>`.pickRestart({
  A: "[c4,e4,g4]", B: "[a3,c4,f4] [b3,d4,g4]",
  C: "[[a3,c4,f4]@15 ~ [b3,d4]@15 ~ [e4,g4]@31 ~ c4@15 ~ [d4,g4]@15 ~ [c4,e4]@31 f4, ~@15 g4@16 c4@32 [a3,f4]@16 b3@16 g4@32 ~]/4", // F Bm Em G5 C Dm
  D: "[[a3,c4]@15 ~ [b3,d4,g4]@15 ~ [c4,e4]@31 ~ c4@15 ~ [b3,d4,g4]@15 ~ [a3,c4]@31 ~ [d4,g4]@31 ~ [a3,c4]@31 ~ g4@31 ~, ~@31 g4@32 [a3,f4]@16 ~@16 f4@32 b3@32 f4@32 [b3,d4]@32 ~]/7", // Am G C G Am G5 Am Dm …
  E: "[~@32 e4@31 [a3,c4], ~@31 [c4,g4]@32 ~]/2", // Am C5
  F: "[f4@15 [b3,d4,g4]@16 [c4,e4,g4]@32 [a3,c4,f4]@16 [b3,d4,g4]@15 ~ [c4,e4,g4]@32 [a3,c4,f4]@16 [b3,d4,g4]@15 ~ [c4,e4,g4]@32 [a3,c4,f4]]/6", // G C F G C F G C …
  G: "[~@15 [b3,d4,g4]@15 ~ [a3,c4,f4]@32 [b3,d4,g4]@32 [a3,c4,f4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]]/8", // G F G F G A D G …
  H: "[~@15 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 ~]/5", // A D G A D G A
  I: "[~@31 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]]/8", // D G A D G A D G …
  J: "[~@15 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]@16 [c#4,e4,a4]@16 [d4,f#4,a4]@32 [b3,d4,g4]]/8", // A D G A D G A D …
  K: "[~@15 [c#4,e4,a4]@16 [b3,d4,g4]@32 [c#4,e4,a4]@31 ~ [b3,d4,g4]@32 [c#4,e4,a4]@31 ~@2]/5", // A G A G A
  L: "~@7 [d4,f#4,a4,d5]@4 ~@21", // D
})).s("gm_string_ensemble_2").gain(0.06)

// other · piano
const piano_2 = note("<~@4 A ~@15 A ~@19 A ~@20 A ~@7 A ~@27 B ~>".pickRestart({
  A: "~ g4", B: "~@15 g4@16 ~",
})).s("gm_piano").gain(0.52)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  ~ A B A B A B A B A B A B A C A B A C A D A B A B A B A B E@4 A C A B A C A D A B A B A B A F G@4 H I J@2 H I H I ~
  K@2 H L@2 M@3 N@3 L@2 O@2 P@8 Q@8 R S@4 T
>`.pickRestart({
  A: "~@8 d4@3 ~@13 d4@3 ~@5, c3@10 ~@10 c3@7 ~@5, ~@3 e3@8 ~@21, ~@4 g3@7 ~@21, ~@7 c4@4 ~@21",
  B: "~@4 a3@4 c4@3 ~@13 d4@3 ~ c3@3 ~, f3@11 ~@9 b3@7 ~@5, ~@23 g4@4 ~@5",
  C: "~@8 c4@3 ~@13 d4@4 c3@2 ~@2, f3@11 ~@9 g3@8 ~@4, ~@4 a3@7 ~@21",
  D: "~@8 c4@3 ~ f3@3 ~@9 d4@3 ~ g3@3 ~, f3@11 ~@5 g3@11 ~@5, ~@4 a3@7 ~@9 b3@7 ~@5",
  E: "[~@8 f4@16 f4@15 ~ g4@15 ~ g4@15 ~ f4@16 f4@15 ~ g4@7 ~ g4@7 ~ g4@7 ~]/4",
  F: "~@4 a3@4 c4@3 ~@13 d4@2 ~@2 c3@3 ~, f3@11 ~@9 b3@7 ~@5, ~@11 g4@2 ~@3",
  G: "[~@8 f4@16 f4@15 ~ g4@15 ~ g4@15 ~ f4@16 f4@15 ~ g4@7 ~ a4@8 a4@7 ~]/4",
  H: "~@8 e4@3 ~@13 e4@2 ~@6, d3@11 ~@9 d3@7 ~@5, ~ f#3@4 ~@11, ~@4 a3@7 ~@21, ~@3 d4@2 ~@11",
  I: "~@8 d4@2 ~@14 e4@2 ~@2 d3@3 ~, g3@11 ~@11 a4@4 ~@6, ~@4 b3@7 ~@9 c#4@7 ~@5",
  J: "[~@8 e4@2 ~@14 e4@3 ~@13 d4@2 ~@13 e4@3 ~@2 d3@3 ~, d3@11 ~@9 d3@7 ~@37, ~@2 f#3@8 ~@21 g3@11 ~@22, ~@4 a3@7 ~@25 b3@7 ~@11 a4@4 ~@6, ~@6 d4@4 ~@41 c#4@7 ~@6]/2",
  K: "[~@8 e4@2 ~@14 e4@3 ~@12 d4@3 ~@14 e4@4 d3@3 ~, d3@11 ~@9 d3@7 ~@37, ~@2 f#3@8 ~@21 g3@11 ~@10 a3@8 ~@4, ~@4 a3@7 ~@25 b3@6 ~@22, ~@3 d4@2 ~@27]/2",
  L: "[~@4 b3@4 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@8 d3@5 e4@3 ~@5, g3@10 ~@9 c#4@7 ~@5 d3@11 ~@22, ~@11 a4@2 ~@4 f#3@4 ~@11, ~@36 a3@7 ~@21, ~@19 d4@2 ~@11]/2",
  M: "[~@7 d4@3 ~@14 e4@3 d3@3 ~@9 e4@3 ~@13 e4@2 ~@14 d4@4 ~ g3@3 ~@4 c#4@5 e4@3 ~ a3@3 ~, g3@11 ~@9 a3@8 ~@3 d3@11 ~@9 d3@7 ~@38, ~@4 b3@7 ~@23 f#3@8 ~@21 g3@11 ~@5 a3@12 ~@5, ~@35 a3@7 ~@25 b3@8 ~@21, ~@19 d4@2 ~@27]/3",
  N: "[~@7 e4@3 ~@13 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@10 e4@3 ~@8 d3@5 e4@3 ~@5, d3@10 ~@10 d3@6 ~@37 d3@11 ~@22, ~@2 f#3@8 ~@21 g3@11 ~@24 f#3@8 ~@22, ~@4 a3@7 ~@24 b3@7 ~@12 a4@4 ~@12 d4@4 ~@22, ~@6 d4@4 ~@41 c#4@6 ~@11 a3@7 ~@21]/3",
  O: "[~@4 b3@4 d4@3 ~@13 e4@2 ~@2 d3@3 ~@8 e4@3 ~@13 e4@3 ~@6, g3@10 ~@9 c#4@7 ~@5 d3@11 ~@9 d3@7 ~@6, ~@11 a4@2 ~@4 f#3@4 ~@11, ~@35 a3@7 ~@22, ~@19 d4@2 ~@11]/2",
  P: "[~@7 d4@3 ~@14 e4@2 ~ d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@5 g3, g3@10 ~@12 a4@4 ~@8 f#3@8 ~@21 g3@10 ~@25 f#3@8 ~@21 g3@10 ~@25 f#3@8 ~@21 g3@10 ~@25 f#3@8 ~@22, ~@4 b3@6 ~@9 c#4@7 ~@5 d3@11 ~@53 d3@11 ~@53 d3@11 ~@53 d3@11 ~@22, ~@35 a3@7 ~@25 b3@7 ~@12 a4@4 ~@12 d4@4 ~@41 c#4@6 ~@10 a3@7 ~@25 b3@7 ~@12 a4@4 ~@12 d4@4 ~@22, ~@38 d4@4 ~@41 c#4@6 ~@10 a3@7 ~@25 b3@7 ~@12 a4@4 ~@12 d4@4 ~@41 c#4@6 ~@10 a3@7 ~@22]/8",
  Q: "[~@7 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@13 d4@3 ~@13 e4@2 ~@2 d3@3 ~@9 e4@3 ~@9 d3@4 e4@3 ~@5 g3, ~@3 b3@7 ~@9 c#4@6 ~@6 d3@11 ~@53 d3@11 ~@53 d3@11 ~@53 d3@11 ~@22, ~@22 a4@4 ~@8 f#3@8 ~@21 g3@10 ~@25 f#3@8 ~@21 g3@10 ~@25 f#3@8 ~@21 g3@10 ~@25 f#3@8 ~@22, ~@35 a3@7 ~@25 b3@7 ~@12 a4@4 ~@12 d4@4 ~@41 c#4@6 ~@10 a3@7 ~@25 b3@7 ~@12 a4@4 ~@12 d4@4 ~@22, ~@38 d4@4 ~@41 c#4@6 ~@10 a3@7 ~@25 b3@7 ~@12 a4@4 ~@12 d4@4 ~@41 c#4@6 ~@10 a3@7 ~@22]/8",
  R: "~@3 b3@4 d4@3 ~@13 e4@3 ~ d3@3 ~@2, ~@19 c#4@6 ~@7, ~@11 a4@2 ~@3",
  S: "[~@7 g4@15 ~ g4@15 ~ a4@15 ~ a4@16 g4@15 ~ g4@15 ~ a4@7 ~ a4@8 a4@7 ~@2]/4",
  T: "~@7 f#4@4 ~@21, ~@3 d3@8 ~@21, ~@6 d4@5 ~@21",
})).s("gm_acoustic_guitar_steel").gain(0.18)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A C A B A C A B A C A B A C A B A D A B A C A B A C A B A E A B A C A B A D A B A C A B A F A G A H A G A F A G
  A D I ~@3 J A G A K L M L N L M L N L M L N L M L N L M L N L M L N L M L O P
>`.pickRestart({
  A: "x ~@3 x ~@2 x", B: "x ~@19 x ~@2 x ~@4 x ~@2 x", C: "x ~@15 x ~@3 x ~@2 x ~@4 x ~@2 x", D: "x ~@13 x!2",
  E: "x ~@15 x ~@3 x ~@2 x!2 ~@3 x ~@2 x", F: "x ~@7 x ~ x!2 ~@2 x!2", G: "x ~@9 x!2 ~@2 x!2", H: "x ~@7 x ~ x!3 ~ x!2",
  I: "x ~ x!2 ~@3 x ~@2 x ~@2 x ~@2", J: "~@10 x ~@3 x!2", K: "x ~@26 x ~@2 x!2", L: "~@15 x ~@11 x ~@3 x",
  M: "~@19 x ~@2 x ~@4 x ~@2 x!2", N: "~@15 x ~@3 x ~@2 x ~@4 x ~@2 x!2", O: "~@15 x ~@3 x ~@2 x!2 ~@3 x ~@2 x!2",
  P: "~@3 x ~@3 x ~@24",
})).gain(0.35)

// drums · snare
const snare = s("sd").struct("<~ A@19 B A@19 B A@19 B A ~@3 B A@3 B A@7 C A@6 D@14 ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@7 x ~@14 x!2 ~@2 x!2 ~@4", D: "~@7 x ~@15 x ~@8",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@61 x ~@37>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<A B@19 C B@19 C B@19 C ~@5 B@3 C B@14 D@14 ~>".pickRestart({
  A: "x!4", B: "~ x ~ x ~ x ~ x", C: "~@7 x", D: "~@3 x ~@7 x ~@7 x ~@7 x ~@4",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@7 A ~@7 A ~@7 A ~@3 A ~@7 A ~@7 A ~@3 A ~@15 B ~@7 B ~@7 B ~@7 B ~@4 C
>`.pickRestart({
  A: "x", B: "~@31 x", C: "~@7 x ~@24",
})).gain(0.3)

// drums · mt
const mt = s("mt").struct("<~@20 A ~@11 A ~@7 A ~@11 A ~@7 A ~@8 A ~@7 A ~@19 B ~>".pickRestart({
  A: "~@10 x!5 ~", B: "~@19 x ~ x ~ x ~@2 x!2 ~@4",
})).gain(0.15)

// drums · mt · soft notes
const mt_soft = s("mt").struct("<~@20 A ~@11 A ~@7 A ~@11 A ~@7 A ~@8 A ~@7 A ~@19 B ~>".pickRestart({
  A: "~@21 x ~ x ~@8", B: "~@10 x!2 ~@4",
})).gain(0.1)

// drums · shaker
const shaker = s("sh").struct("<~@21 A@12 ~@8 A@8 ~@20 B C@23 D ~@5>".pickRestart({
  A: "x!8", B: "~@31 x", C: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x",
  D: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@4",
})).gain(0.3)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct(`<
  ~@21
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!12
  ~@8
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!8
  ~@21
  [~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x]!24
  ~@5
>`).gain(0.2)

stack(
// … 4 more lines

More by Atomic Kitten