Strudelify

A Groovy Kind of Love

The Mindbenders

KeyD majorTempo120 bpm
0:00/0:00
// A Groovy Kind of Love — The Mindbenders
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 95 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · "FINGERDBAS"
const bass = note("<~@46 A@3 B@7 C@8 D@2 E@8 F G@4 H@5 I@5 J@6>".pickRestart({
  A: "[~@7 a1@51 ~@2 a1@36]/3", B: "[~@4 a1@12 ~ a1@51 ~ a1@51 ~@2 a1@51 ~@2 a1@49]/7",
  C: "[~@3 b1@51 ~@2 c#2@51 ~@2 d2@104 ~ a1@42]/8", D: "[~@11 a1@51 ~@2]/2",
  E: "[a1@51 ~ a1@51 ~@2 b1@51 ~@2 c#2@51 ~ d2@38 ~@2 d2@6]/8", F: "~@7 e2@25",
  G: "[~ e2@12 ~ e2@12 ~@2 a1@51 ~ a1@48]/4", H: "[~@5 a1@51 ~@2 a1@51 ~ a1@50]/5",
  I: "[~@3 a1@48 ~@5 f#1@38 ~ f#1@12 ~@2 e1@51]/5", J: "[~ f#1@38 ~@2 f#1@12 ~ e1@51 ~@2 a1@79 ~@6]/6",
})).s("gm_electric_bass_finger").gain(0.46)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@26 A@7 B@5 C@8 D@2 E@4 F@2 G@5 H@4 ~ I@2 J K@7 L@3 M@7 N@8 O@3>".pickRestart({
  A: "[~@15 [g3,b3,d4]@51 ~@2 [f#3,a3,d4]@51 ~ [g3,b3,d4]@51 ~@2 [a3,c4,e4]@51]/7", // G D G Am
  B: "[~@2 [g3,c4,e4]@51 ~ [a3,d4,f#4]@51 ~@2 [c4,e4,g4]@51 ~@2]/5", // C D C
  C: "[[d4,f#4,a4]@48 ~@4 [g3,b3,d4]@51 ~@2 [f#3,a3,d4]@51 ~@2 [g3,b3,d4]@51 ~@2 f#3@45, ~@105 [a3,d4]@23]/8", // D G D G D5
  D: "[~@7 c#4@18 ~@2 b3@18 ~@2 c#4@12 ~@5]/2",
  E: "[~@22 a4@6 ~ b4@6 c#5@5 ~@2 d5@5 ~ e5@26 ~ d5@6 c#5@5 ~@2 b4@5 ~@2 a4@5 ~ g#4@26 ~]/4",
  F: "[a4@5 ~ g#4@5 ~@2 f#4@5 ~ g#4@5 ~@2 a4@26 b4@5 ~@2 a4@5]/2",
  G: "[~@2 g#4@5 ~ a4@5 ~@2 b4@26 b5@5 ~ c#6@5 ~@2 d6@6 ~ e6@6 f#6@26 ~ e6@6 d6@5 ~@2 c#6@5 ~ b5@5 ~@2 e6@12 ~ e6@12 ~ d6@6 ~ c#6@5 ~@2]/5",
  H: "[b5@5 ~ c#6@5 ~@2 a5@100 ~@15]/4", I: "[~@11 b4@6 a4@6 ~ b4@38 ~@2]/2", J: "e5@3 d5@3 ~@10",
  K: "[~@20 [f#4,b4,d5]@51 ~@2 [f#4,a4,d5]@51 ~@2 [g#4,b4,e5]@51 ~ [a4,d5,f#5]@46]/7", // Bm D E D
  L: "[~@7 [g#4,b4,e5]@51 ~@2 c#5@9 d5@3 ~ c#5@6 b4@6 ~ c#5@10, ~@5 [e4,a4]@3]/3", // E A5
  M: "[~@3 [a4,c#5,e5]@12 ~ [g#4,b4,e5]@51 ~@22 a5@6 a5@7 a5 ~@5 a5@6 ~ a5@7 [g#4,b4,e5]@51 ~@21 a5@6 ~ a5@6 a5@6 ~ a5@6 a5@4, ~@69 [f#4,a4,d5]@53 ~@52 [f#4,a4,d5]@50]/7", // A E D
  N: "[~@3 [g#4,b4,e5]@48 ~@5 [d5,e5,a5]@200]/8", O: "[~@11 [a3,e4,a4,c#5,e5]@78 ~@7]/3",
})).s("gm_string_ensemble_2").gain(0.15).pan(0.7)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@62 A@6 ~@27>".pickRestart({
  A: "[~@23 e5@5 ~ d5@6 e5@38 ~@2 [e4,g#4]@51 ~@28 [a4,c#5]@13 [e4,a4,c#5]@14 ~@11, ~@22 [e4,a4,c#5]@51 ~@54 [e4,a4,c#5]@26 ~@39, ~@141 e5@26 ~@25]/6", // E A
})).s("gm_string_ensemble_2").gain(0.05).pan(0.7)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note("<~@46 A@5 B@4 C@4 D@4 ~@4 E F G ~@25>".pickRestart({
  A: "[~@7 [e3,a3]@51 ~@2 [g#3,b3]@51 ~ [a3,c#4]@48]/5", // A5 G#m A
  B: "[~@5 [g#3,b3]@52 ~ [a3,c#4]@51 ~@2 a3@6 a3@7 b3@4, ~@111 d4@17]/4", // G#m A
  C: "[~@2 c#4@6 ~ [b3,d4]@6 c#4@6 ~ [b3,d4]@6 ~ [a3,e4]@6 f#4@25 ~@2 g#4@6 f#4@6 ~ e4@6 d4@6 ~ g#4@12 ~ g#4@12 ~ f#4@6 ~ e4@6 ~, ~@35 b3@51 ~@42]/4", // Bm A5
  D: "[d4@5 a4@7 ~ [a4,d5]@100 ~@15]/4", E: "~@27 a3@5", F: "~ b3@6 ~ c#4@6 d4@6 ~ c#4@6 ~ b3@4", G: "~ f#3@3 ~@12",
})).s("gm_string_ensemble_2").gain(0.1).pan(0.3)

// other · synth brass 2 · "SYNBRASS 2"
const synth_brass_2 = note("<~@69 A@5 B@5 C@5 D@5 E@6>".pickRestart({
  A: "[~@9 d3@52 e3@53 f#3@46]/5", B: "[~@7 g#3@39 ~@14 a2@48 ~ a2@2 ~ a2@47 ~]/5",
  C: "[~ a2@2 ~@22 a5@5 ~ a5@5 ~@2 a5@6 a5@6 ~@4 a2@2 ~@2 [a2,e5]@48 a2@2 ~@22 a5@5 ~@2 a5@5 ~ a5@6 ~ a5@6 a5@4, ~@4 a2@47 a5@6 ~@53 a2@48 ~@2]/5", // A5
  D: "[a2@2 ~ [a2,e5]@50 ~@10 a3 ~@5 d4 ~@6 a4@25 ~ d4 ~@5 a4@6 ~ g#4 ~@5 e4 ~@5 a4@7 ~ g#4 ~@5 e4@2 ~@4 a4@2 ~ g#4@2 ~@2 e4@2 ~@4, ~@56 f#2@52 e2@43 ~@9]/5", // A5
  E: "[~@7 a3 ~@6 d4 ~@6 a4@26 d4 ~@6 a4@6 g#4@2 ~@5 e4@2 ~@4 a4@4 ~@2 g#4@2 ~@5 e4@2 ~@5 d4@2 ~ c#4@2 ~ a3@2 ~@6 a3@78 ~@7, ~ f#2@51 ~@2 e2@51 ~ a2@78 ~@8]/6",
})).s("gm_synth_brass_2").gain(0.25).pan(0.6)

// other · synth brass 2 · "SYNBRASS 2" · soft notes
const synth_brass_2_soft = note("<~@56 A@3 B@4 ~@4 C D E ~@25>".pickRestart({
  A: "[~@3 f#5@25 ~@2 g#5@5 ~ f#5@5 ~@2 e5@6 d5@5 ~@2 g#5@12 ~ g#5@12 ~ f#5@5 ~@2 e5@6 ~]/3",
  B: "[d5@5 ~ a5@5 ~@2 a4@104 ~@11]/4", C: "~@27 a3@5", D: "~ b3@5 ~@2 c#4@5 ~ d4@6 ~ c#4@5 ~@2 b3@4",
  E: "~@2 f#3@5 ~@25",
})).s("gm_synth_brass_2").gain(0.15).pan(0.6)

// other · piano · "HONKY-TONK"
const piano = note("<A@5 B@5 C@3 D@5 E@5 F@8 G@2 H@5 I@8 J ~@48>".pickRestart({
  A: "[~@4 g2@45 ~ g2@52 ~@7 g2@45 ~ g2@5]/5", B: "[~@2 g2@52 ~ g2@45 ~ g2@6 g2@45 ~@5 g2@3]/5",
  C: "[g2@45 ~@4 g2@3 ~ g2@43]/3", D: "[~@3 g2@6 a2@52 ~ b2@52 ~ c3@45]/5", E: "[~@8 d3@51 ~ g2@45 ~ g2@6 ~ g2@47]/5",
  F: "[~@6 g2@51 ~ d2@52 ~ g2@45 ~ g2@6 ~ g2@46 g2@6 g2@40]/8", G: "[~@6 g2@6 ~ g2@51]/2",
  H: "[~@2 a2@46 ~@6 b2@52 ~ c3@52 ~, ~@24 a2@23 ~@33]/5", I: "[d3@51 ~ g2@45 ~@5 g2@3 g2@52 ~ g2@49 g2@3 g2@46]/8",
  J: "~ g2@6 ~@25",
})).s("gm_piano").gain(0.25).pan(0.6)

// other · piano · "HONKY-TONK"
const piano_2 = note("<~@85 A@4 B@6>".pickRestart({
  A: "[~@24 f#2@38 ~ [f#2,f#3]@12 ~ e3@38 ~@8 e3@6, ~@76 e2@51 ~]/4", // F#
  B: "[~ [f#2,f#3]@38 ~@2 [f#2,f#3]@12 ~ [e2,e3]@38 ~ [e2,e3]@12 ~ [a2,e3]@78 ~@8]/6", // F# E A5
})).s("gm_piano").gain(0.25).pan(0.6)

// chords · piano · "HONKY-TONK"
const piano_3 = note("<A@3 B C D@5 E@2 F@6 G@3 H@6 I J@3 K L M@5 N@8 O@3 P Q R@3 S T U@3 V@4 ~@32>".pickRestart({
  A: "[~@4 [d3,g3,b3]@18 ~@2 [d3,g3,a3]@12 ~ [d3,g3,b3]@19 ~ [d3,f#3,a3]@25 ~ [d3,e3,g3]@12 ~]/3", // G Dsus4 G D Em7
  B: "[d3,f#3,a3]@12 ~ [d3,g3,b3]@18 ~", C: "~ [d3,g3,a3]@12 ~ [d3,g3,b3]@18",
  D: "[~@2 [d3,f#3,a3]@51 ~@2 [d3,g3,b3]@25 ~ [d3,g3,b3]@25 ~ [d3,f#3,a3]@18 ~@2 [d3,f#3,a3]@18 ~@2 [d3,f#3,a3]@11 ~@2]/5", // D G D
  E: "[[d3,g3,b3]@18 ~@2 [d3,g3,b3]@18 ~@2 [d3,g3,b3]@12 ~ [e3,a3,c4]@6 c4@3 ~ a3]/2", // G Am
  F: "[~@8 [e3,a3,c4]@12 ~@2 [e3,a3,c4]@6 [e3,a3,c4]@9 ~@4 e4@25 ~@15 e4@11 ~@2 f#4@25 ~@15 f#4@12 ~ [e4,g4]@12 ~ e4@11 ~@2 g4@12 ~ e4@6, ~@41 [g3,c4]@51 ~@2 [a3,d4]@52 ~ c4@45, ~@68 d4@18 ~@35 e4@25 ~@46]/6", // Am Em C5 D5
  G: "[~@8 [d4,f#4,a4]@31 ~ [d4,f#4,a4]@18 ~@2 [d3,g3,b3]@18 ~@2 [d3,g3,a3]@16]/3", // D G Dsus4
  H: "[~@4 [d3,g3,b3]@12 ~ [d3,f#3,a3]@25 ~ [d3,e3,g3]@12 ~ [d3,f#3,a3]@12 ~@2 [d3,g3,b3]@18 ~ [d3,g3,a3]@12 ~ [d3,g3,b3]@18 ~@2 [d3,f#3,a3]@51 ~@2 [d4,g4,b4]@17]/6", // G D Em7 D G Dsus4 G D …
  I: "~@3 [d4,a4]@19 [d4,g4,b4]@10", // D5 G
  J: "[~@4 [d4,f#4,a4]@18 ~ [d4,f#4,a4]@18 ~@2 [d4,f#4,a4]@6 ~ [d4,f#4,a4]@6 [d4,g4,b4]@18 ~@2 [d4,g4,b4]@19 ~]/3", // D G
  K: "[d4,g4,b4]@12 ~ [c4,e4,a4]@18 ~", L: "~ [c4,e4,a4]@18 ~ [c4,e4,a4]@9 ~@3",
  M: "[~@2 [g4,c5,e5]@18 ~ [g4,c5,e5]@19 ~ [g4,c5,e5]@11 ~@2 [a4,d5,f#5]@18 ~@2 f#5@9 ~@4 e5@6 ~ [a4,d5,f#5]@12 ~ [c5,e5,g5]@19 ~ [c5,e5,g5]@19 ~ [c5,e5,g5]@12 ~, ~@37 [a4,d5]@9 ~@34]/5", // C D C D5
  N: "[[a4,d5,f#5]@48 ~@4 [d4,g4,b4]@18 ~@2 [d4,a4]@9 ~@4 [d4,g4,b4]@18 ~@2 [d4,f#4,a4]@18 ~@2 [d4,g4]@19 ~ [d4,f#4,a4]@12 ~ [d4,g4,b4]@18 ~@2 d4@9 ~@4 [d4,g4,b4]@18 ~ [d4,f#4,a4]@46, ~@177 a4@9 ~@70]/8", // D G D5 G D G5 D G …
  O: "[~@7 [e4,a4,c#5]@18 ~@2 [e4,b4]@18 ~@2 [e4,a4,c#5]@12 ~ [e4,g#4,b4]@34 ~@2]/3", // A E5 A E
  P: "~@3 [e4,g#4,b4]@11 ~@2 [e4,a4,c#5]@16", Q: "~@2 [e4,a4,c#5]@9 ~ [e4,a4,c#5]@4",
  R: "[~@5 [e4,g#4,b4]@18 ~@2 [e4,g#4,b4]@18 ~@2 [e4,g#4,b4]@11 ~@2 [e4,a4,c#5]@18 ~@2 [e4,a4,c#5]@18]/3", // E A
  S: "~@2 [e4,a4,c#5]@12 ~ [d4,f#4,b4]@17", T: "~@2 [d4,f#4,b4]@18 ~@2 [d4,f#4,b4]@9 ~",
  U: "[~@3 [f#4,a4,d5]@18 ~@2 [f#4,a4,d5]@18 ~@2 [f#4,a4,d5]@9 ~@4 [g#4,b4,e5]@19 ~ [g#4,b4,e5]@18 ~@2]/3", // D E
  V: "[[g#4,b4,e5]@9 ~@4 f#5@21 ~@5 a5@12 ~ f#5@18 ~@2 a5@6 ~ f#5@11 ~@2 a5@22 ~@14, ~@13 [a4,d5]@101 ~@14]/4", // E D5
})).s("gm_piano").gain(0.2).pan(0.4)

// chords · piano · "HONKY-TONK"
const piano_4 = note("<~@63 A@7 B@2 C@3 D@7 E F G@5 H@6>".pickRestart({
  A: "[~@10 [e4,b4]@18 ~@2 [e4,a4,c#5]@11 ~@2 [e4,g#4,b4]@18 ~ [e4,g#4,b4]@18 ~@2 [e4,g#4,b4]@12 ~ [e4,a4,c#5]@18 ~@2 [e4,a4,c#5]@18 ~@2 [e4,a4,c#5]@11 ~@2 [d4,f#4,b4]@51 ~@2 [f#4,a4,d5]@21 ~@2]/7", // E5 A E A Bm D
  B: "[~@3 [f#4,a4,d5]@11 ~@2 [a4,d5,f#5]@9 ~@5 g#5@18 ~ [b4,e5,g#5]@6 ~ [g#4,b4,e5]@8, ~@29 [b4,e5]@18 ~@17]/2", // D E E5
  C: "[~@5 [g#4,b4,e5]@9 ~@4 [f#4,a4,d5]@48 ~@5 [g#4,b4,e5]@9 ~@4 [b4,e5,g#5]@11 ~]/3", // E D E
  D: "[~ [g#4,b4,e5]@9 ~@4 [g#4,b4,e5]@12 ~@2 c#5@6 ~@3 d5@3 ~ c#5@6 [e4,b4]@9 ~@4 [e4,a4,c#5]@9 ~@5 [e4,a4,c#5]@6 [e4,g#4,b4]@19 ~ [e4,g#4,b4]@18 ~@2 [e4,g#4,b4]@12 ~ [f#4,a4,d5]@18 ~@2 [a4,d5]@11 ~@2 [f#4,a4,d5]@18 ~@2 [e4,g#4,b4]@18 ~ [e4,g#4,b4]@18 ~, ~@14 [e4,a4]@9 ~@89]/7", // E E5 A E D D5 D E …
  E: "~ [e4,g#4,b4]@12 ~ [f#4,a4,d5]@18", F: "~@2 [a4,d5]@9 ~@4 [f#4,a4,d5]@17",
  G: "[~@3 [e4,g#4,b4]@18 ~@2 [e4,g#4,b4]@15 ~@4 [e4,g#4,b4]@11 ~@3 [d4,e4,a4]@35 ~@4 [d4,e4,a4]@12 ~ [d4,e4,a4]@48 ~@4]/5", // E Dsus2
  H: "[~ [d4,e4,a4]@35 ~@4 [d4,e4,a4]@12 ~@2 [d4,e4,a4]@34 ~@5 [d4,e4,a4]@9 ~@4 [a3,c#4,e4]@78 ~@8]/6", // Dsus2 A
})).s("gm_piano").gain(0.2).pan(0.4)

// other · pad warm · "GT/EP/WP/A"
const pad_warm = note("<~@92 A@3>".pickRestart({
  A: "[~@30 a4@20 a5@39 ~@7, ~@17 a4@10 ~@69, ~@23 e5@13 ~@60]/3",
})).s("gm_pad_warm").gain(0.35)

// drums · kick
const kick = s("bd").struct(`<
  ~@46 A B ~ C ~ D E ~ F ~ G H ~ I ~ J K ~ L M ~ N ~ O P ~ Q ~ A R ~ C ~ D S ~ F ~ G H ~ T ~ J K ~@4
>`.pickRestart({
  A: "~@7 x ~@24", B: "~@7 x", C: "~ x", D: "~@5 x ~@26", E: "~@13 x ~@2", F: "~@7 x ~@8", G: "~@3 x ~@28", H: "~@3 x",
  I: "~@13 x ~@18", J: "~ x ~@30", K: "~@11 x ~@4", L: "~@11 x ~@20", M: "~@31 x", N: "~@5 x ~@2", O: "~@9 x ~@22",
  P: "~@29 x ~@2", Q: "~@9 x ~@6", R: "~@27 x ~@4", S: "~@25 x ~@6", T: "~@3 x ~@4",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  ~@46 A B C D E F G H I J K L M N A B C D E F G H I J K L M N A O C P E F Q H R J K S M T A O U P ~@3
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@15 x ~@16", C: "~@9 x ~@22", D: "~@3 x ~@26 x ~", E: "~@3 x", F: "~@9 x ~@6", G: "~@13 x ~@18",
  H: "~@7 x ~@24", I: "~ x ~@26 x ~@3", J: "~@11 x ~@4", K: "~ x", L: "~@11 x ~@20", M: "~@5 x ~@25 x", N: "~@13 x ~@2",
  O: "~@7 x ~@8", P: "~@3 x ~@25 x ~@2", Q: "~@3 x ~@4", R: "~ x ~@25 x ~@4", S: "~@5 x ~@10", T: "~@25 x ~@6",
  U: "~ x ~@2",
})).gain(0.25)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@26 A B C D E F G H I J K ~ L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF F AG AH AI AJ AK AL AM AN AO AP AQ Q AR
  AS AT AU A W X Y AV F AW AC AD AX K E AG AH AY O ~@3
>`.pickRestart({
  A: "~@15 x ~@16", B: "~@3 x ~@28", C: "~@4 x ~@18 x ~@8", D: "~@3 x", E: "~@3 x ~@4", F: "~@13 x ~@18", G: "~ x ~@30",
  H: "~@2 x ~@18 x ~@10", I: "~@11 x ~@4", J: "~@5 x ~@10", K: "~@11 x ~@19 x", L: "x ~@18 x ~@12", M: "~@5 x ~@2",
  N: "~ x ~@2", O: "~@9 x ~@19 x ~@2", P: "~@15 x", Q: "~@17 x ~@14", R: "~@9 x ~@6", S: "~@3 x ~@12",
  T: "~@7 x ~@19 x ~@4", U: "~@15 x ~@12 x ~@3", V: "~ x", W: "~@3 x ~@12 x ~@15", X: "~ x ~@4 x ~",
  Y: "~@5 x ~@19 x ~@6", Z: "~@13 x ~@12 x ~@5", AA: "~@7 x ~@8", AB: "~ x ~@13 x ~@16", AC: "~ x ~@9 x ~@4",
  AD: "~@3 x ~@19 x ~@8", AE: "~@11 x ~@12 x ~@7", AF: "~@12 x ~@18 x", AG: "x ~@4 x ~@2", AH: "~ x ~@19 x ~@10",
  AI: "~@9 x ~@12 x ~@9", AJ: "~@5 x ~@9 x", AK: "~@11 x ~@18 x ~", AL: "~@18 x ~@12 x", AM: "~@19 x ~@12",
  AN: "~@7 x ~@12 x ~@11", AO: "~@2 x ~@4 x", AP: "~@9 x ~@18 x ~@3", AQ: "~@16 x ~@12 x ~@2", AR: "~@5 x ~@12 x ~@13",
  AS: "~@3 x ~@9 x ~@2", AT: "~@7 x ~@18 x ~@5", AU: "~@14 x ~@12 x ~@4", AV: "~@6 x ~@6 x ~@2", AW: "~ x ~@12 x ~@17",
  AX: "~@5 x ~@6 x ~@3", AY: "~@4 x ~@6 x ~@4",
})).gain(0.35)

// drums · open hat
const open_hat = s("oh").struct("<~@45 [~@21 x!6 ~ x!4] [x!6 ~ x ~@24] ~@48>").gain(0.2)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@45 [~@13 x!8 ~@11] ~@49>").gain(0.1)

// drums · crash
const crash = s("cr").struct("<~@93 [x ~ x ~ x!5 ~ x!11 ~ x!9 ~] [x!11 ~ x!4 ~ x!9 ~@6]>").gain(0.35)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@92 [~@10 x!3 ~ x!4 ~ x!11 ~ x] [~ x ~ x ~@28] ~>").gain(0.15)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@26 A B C D E F G H I J K L M N O P Q R S T U V I W K X Y N O Z AA R AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AB AP
  AQ AR AS AT AU AI AV AK AW AM AX AY AZ BA AQ BB BC BD BE ~@2
>`.pickRestart({
  A: "~@28 x ~@2 x", B: "~@3 x ~@2 x ~@2 x ~@12 x ~@3 x ~@2 x ~@2", C: "x ~@3 x ~@12 x ~@2 x ~@2 x ~@3 x ~@2 x ~",
  D: "~@11 x ~@2 x ~@3 x ~@2 x ~@2 x ~@7", E: "~@5 x ~@3 x ~@2 x ~@2 x ~@3 x ~@12",
  F: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@12 x ~@2 x ~@2", G: "~ x ~@2 x ~@2 x ~@12 x ~@3 x ~@2 x ~@2 x ~",
  H: "~@2 x ~@12 x ~@2 x ~@2 x ~@3 x ~@2 x ~@3", I: "~@9 x ~@2 x ~@3 x ~@2 x ~@2 x ~@9",
  J: "~@3 x ~@3 x ~@2 x ~@2 x ~@3 x ~@12 x ~", K: "~ x ~@2 x ~@3 x ~@2 x ~@12 x ~@2 x ~@3 x",
  L: "~@2 x ~@2 x ~@12 x ~@3 x ~@2 x ~@2 x ~@3", M: "x ~@12 x ~@2 x ~@2 x ~@3 x ~@2 x ~@5",
  N: "~@7 x ~@2 x ~@3 x ~@2 x ~@2 x ~@11", O: "~ x ~@3 x ~@2 x ~@2 x ~@3 x ~@12 x ~@2 x",
  P: "~@2 x ~@3 x ~@2 x ~@12 x ~@3 x ~@2 x ~@2", Q: "x ~@2 x ~@13 x ~@2 x ~@2 x ~@2 x ~@3 x ~",
  R: "~@11 x ~@2 x ~@2 x ~@3 x ~@2 x ~@7", S: "~@5 x ~@3 x ~@2 x ~@2 x ~@2 x ~@13",
  T: "x ~@2 x ~@2 x ~@2 x ~@3 x ~@12 x ~@2 x ~@2", U: "~ x ~@2 x ~@15 x ~@3 x ~@2 x ~@2 x ~",
  V: "~ x ~@13 x ~@2 x ~@2 x ~@2 x ~@3 x ~@3", W: "~@3 x ~@3 x ~@2 x ~@2 x ~@2 x ~@13 x ~",
  X: "~@2 x ~@2 x ~@12 x ~@3 x ~@2 x ~@2 x ~@2 x", Y: "~@13 x ~@2 x ~@2 x ~@3 x ~@2 x ~@5",
  Z: "~@2 x ~@3 x ~@2 x ~@12 x ~@2 x ~@3 x ~@2", AA: "x ~@2 x ~@12 x ~@3 x ~@2 x ~@2 x ~@3 x ~",
  AB: "~@5 x ~@2 x ~@3 x ~@2 x ~@2 x ~@12 x", AC: "~@3 x ~@2 x ~@2 x ~@3 x ~@12 x ~@2 x ~@2",
  AD: "x ~@3 x ~@2 x ~@12 x ~@2 x ~@3 x ~@2 x ~", AE: "~ x ~@12 x ~@3 x ~@2 x ~@2 x ~@3 x ~@3",
  AF: "~@9 x ~@2 x ~@2 x ~@3 x ~@12", AG: "~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@13 x ~",
  AH: "~ x ~@2 x ~@2 x ~@3 x ~@12 x ~@2 x ~@2 x ~", AI: "~@2 x ~@2 x ~@12 x ~@2 x ~@3 x ~@2 x ~@2 x",
  AJ: "~@13 x ~@2 x ~@2 x ~@2 x ~@3 x ~@5", AK: "~@7 x ~@2 x ~@2 x ~@3 x ~@2 x ~@11",
  AL: "~ x ~@2 x ~@3 x ~@2 x ~@2 x ~@13 x ~@2 x", AM: "~@2 x ~@2 x ~@3 x ~@12 x ~@2 x ~@2 x ~@3",
  AN: "x ~@2 x ~@12 x ~@3 x ~@2 x ~@2 x ~@2 x ~@2", AO: "~@11 x ~@2 x ~@2 x ~@2 x ~@3 x ~@7",
  AP: "~@2 x ~@3 x ~@2 x ~@2 x ~@13 x ~@2 x ~@2", AQ: "x ~@2 x ~@3 x ~@12 x ~@2 x ~@2 x ~@3 x ~",
  AR: "~ x ~@12 x ~@3 x ~@2 x ~@2 x ~@2 x ~@4", AS: "~@9 x ~@2 x ~@2 x ~@2 x ~@3 x ~@9",
  AT: "~@3 x ~@2 x ~@3 x ~@2 x ~@2 x ~@12 x ~@2", AU: "~ x ~@2 x ~@2 x ~@2 x ~@13 x ~@2 x ~@2 x ~",
  AV: "~@12 x ~@3 x ~@2 x ~@2 x ~@3 x ~@5", AW: "~ x ~@2 x ~@3 x ~@2 x ~@15 x ~@3 x",
  AX: "x ~@2 x ~@12 x ~@2 x ~@3 x ~@2 x ~@2 x ~@2", AY: "~@10 x ~@3 x ~@2 x ~@2 x ~@3 x ~@7",
  AZ: "~@5 x ~@2 x ~@2 x ~@3 x ~@2 x ~@12 x", BA: "~@2 x ~@3 x ~@2 x ~@2 x ~@12 x ~@3 x ~@2",
  BB: "~ x ~@12 x ~@2 x ~@3 x ~@2 x ~@2 x ~@4", BC: "~@8 x ~@3 x ~@2 x ~@2 x ~@3 x ~@9",
  BD: "~@3 x ~@2 x ~@2 x ~@3 x ~@2 x ~@12 x ~@2", BE: "x ~@3 x ~@2 x ~@24",
})).gain(0.2)

// drums · tambourine · soft notes
// … 47 more lines