Strudelify

Hold Me Now

Thompson Twins

KeyG majorTempo109 bpm
0:00/0:00
// Hold Me Now — Thompson Twins
// 109 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(109/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.

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~ A B C D E F G H I@2 J@2 K@2 L@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q I@2 J@2 K@2 L@2 I@2 J@2 K@2 L@2 M@2 N@2 O@2 P Q M@2
  N@2 O@2 P Q R S R S T U ~@2 V W X@2 Y@2 Z AA V W X@2 Y@2 Z AA M@2 N@2 O@2 P Q M@2 N@2 O@2 P Q M@2 N@2 O@2 P Q R S R S
  T U T U ~
>`.pickRestart({
  A: "~@2 [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4] ~ [a3,d4,e4] ~@3 [a3,d4,e4] ~", // Asus4 D5 Asus4
  B: "~@2 [a3,d4,e4] ~ [a3,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~ [a3,d4,e4] ~@3 [a3,d4,e4] ~", // Asus4 A5 Asus4
  C: "~@2 [f#3,c#4,d4] ~ [f#3,c#4,d4] ~ [f#3,c#4,d4] ~ [f#3,c#4,d4] ~ [f#3,c#4,d4,f#4] ~@3 [f#3,c#4,d4] ~", // Dmaj7
  D: "~@2 [f#3,c#4,d4] ~ [f#3,c#4,d4] ~ [f#3,c#4,d4] ~ [f#3,c#4,d4] ~ [f#3,c#4,d4,f#4] ~@3 [g3,c4,d4] ~", // Dmaj7 Gsus4
  E: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,d4] ~ [g3,c4,e4] ~@3 [g3,c4,e4] ~", // C Gsus4 C
  F: "~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,d4] ~ [g3,c4,e4] ~@3 [a3,c4,e4] ~", // C Gsus4 C Am
  G: "~@2 [a3,c4,d4] ~ [a3,c4,d4,g4] ~ [a3,c4,d4] ~ [a3,c4,d4] ~ [a3,c4,d4,g4] ~@3 [a3,c4,d4] ~", // D7 Am7 D7 Am7 D7
  H: "~@2 [a3,c4,d4] ~ [a3,c4,d4,g4] ~ [a3,c4,d4] ~ [a3,c4,d4] ~ [a3,c4,d4] ~@3 [a3,c4,d4] ~", // D7 Am7 D7
  I: "~@2 d4 ~ d4 ~ d4 ~ d4 ~ d4 ~@3 d4 ~", J: "~@2 b3 ~ b3 ~ b3 ~ b3 ~ b3 ~@3 b3 ~",
  K: "~@2 c4 ~ c4 ~ c4 ~ c4 ~ c4 ~@3 c4 ~", L: "~@2 a3 ~ a3 ~ a3 ~ a3 ~ a3 ~@3 a3 ~",
  M: "d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ d4 ~", N: "b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~ b3 ~",
  O: "g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~", P: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~",
  Q: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ e4 ~ a4@2", R: "a#4 ~ a#4 ~ a#4 ~ a#4 ~ a#4 ~ a#4 ~ a#4 ~ a#4 ~",
  S: "c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ c5 ~", T: "[d5,f5] ~@3 [f5,a#5] ~@3 [a#5,d6] ~@3 [d6,f6] ~ [f6,a#6] ~",
  U: "[e5,g5] ~@3 [g5,c6] ~@3 [c6,e6] ~@3 [d6,g6] ~ [g6,c7] ~", V: "d3@2 d4 ~ d3@2 d4 ~ d3@2 d4 ~ d3@2 d4 ~",
  W: "d3@2 d4 ~ d3@2 d4 ~ d3@2 d4 ~ d3 ~ d4 ~", X: "b2@2 b3 ~ b2@2 b3 ~ b2@2 b3 ~ b2@2 b3 ~",
  Y: "~@2 c4 ~@3 c4 ~@3 c4 ~@3 c4 ~", Z: "~@2 a3 ~@3 a3 ~@3 a3 ~@3 a3 ~", AA: "~@2 a3 ~@3 a3 ~@3 a3 ~@3 e4 ~",
})).s("gm_electric_guitar_muted").gain(0.52)

// chords · piano
const piano = note("<A B C@2 D E@2 F A G ~@55 H@4 I J I J K L M ~@7 N O ~@28 H@4 I J I J P>".pickRestart({
  A: "~@14 d6 [a5,b5]", B: "d6, f#5 ~@15", C: "[~@6 f#4@6 ~@2 b5 [f#5,a5] b4@13 ~@3, ~@12 a4@3 d5@2 ~@15]/2",
  D: "~@14 g5 [d5,e5]", E: "[g4@21 ~ c5@5 ~ b4@2 g5 [c5,d5,e5], c5 ~@31]/2", F: "a4", G: "d6@13 ~@3, f#5 ~@15",
  H: "[~@8 [a#3,d4,f4]@11 ~@5 [c4,e4,g4]@12 ~@4 [a#3,d4,f4]@10 ~@6 [g4,c5,e5,g5]@8]/4", // A# C A# C
  I: "d4 ~@3 f4 ~@3 a#4 d5 [d5,f5] ~ f5!2 a#5 ~, ~@6 d5 ~", // Dm
  J: "[c4,e4] ~ [e4,g4] ~ [g4,c5] ~ [c5,e5] ~ [e5,g5] ~ [g5,c6] ~@4 c7, ~@6 c6 g6, ~@13 e6@3", // C Em C5 C Em C5
  K: "[d4,f#4,a4,d5]@5 ~@3", L: "~@2 f#4 d5@3 c#5@2", M: "b4@13 ~@3",
  N: "b5 [f#5,a5] e5 [c#5,d5] b4 [c#5,d5] ~ [f#5,a5] e5 [c#5,d5] b4 [c#5,d5] b5 [f#5,a5] [e4,e5] [c#5,d5], ~@3 b5 b3 c#4 d4 ~", // F#m Dmaj7 F#m Dmaj7 F#m E Dmaj7
  O: "b5 [f#5,a5] e5 [c#5,d5] b4 [c#5,d5] [c#5,b5] [f#5,a5] [d5,e5] [c#5,d5] b4 [c#5,d5] [f#5,b5] [f#5,a5] [e5,a5] [b4,d5], f#4@2 a4@3 ~@5 e5@4 ~@2", // F#m Dmaj7 C#7 F#m Dsus2 Dmaj7 B5 F#m …
  P: "[a3,d4,f#4]@5 ~@11", // D
})).s("gm_piano").gain(0.48)

// other · marimba
const marimba = note("<~ A@2 B@2 C@2 D@2 ~@56 E F E F ~@53>".pickRestart({
  A: "[[d5,f#5,a5]@15 ~]/2", B: "[[d5,f#5,b5]@7 ~]/2", C: "[[g5,c6,d6,e6]@3 ~]/2", D: "[[a5,c6,e6,g6]@3 ~]/2",
  E: "~@3 a#4 f5 ~ f5 ~ a#4 d5 f5 ~ a#4 d5 f5 ~", F: "~@3 c5 [c5,g5] ~ g5 ~ c5 e5 g5 ~ c5 e5 f5 g5",
})).s("gm_marimba").gain(0.64)

// bass · acoustic guitar nylon
const bass = note(`<
  ~@9 A B C D E F G H A I J D K L M N A I J D K L M N A B C D E F G H A I J D K L M N A I J D K L M N A I J D K L M N O
  P O P Q P Q P ~ R S T U V M N A I J D K L M N A I J D K L M N A I J D K L M N A I J D K L M N Q P Q P Q P Q P W
>`.pickRestart({
  A: "d2@2 ~@2 d2@2 ~@2 d2@3 ~@5", B: "~@2 f#1@2 ~@2 a1@2 ~@6 b1 b2", C: "b1 ~ b1 ~ b1 ~@3", D: "~@7 b1",
  E: "c2@2 ~@2 c2@2 ~@2 c2@3 ~@5", F: "~@2 d1@2 ~@2 g1@3 ~@5 f#1 g1", G: "a1 ~ a1 ~ a1 ~@3",
  H: "~@2 a1 ~ a1@4 ~@2 a1 ~ a1@4", I: "~@2 f#1@2 ~@2 a1@2 ~@6 f#1 a1", J: "b1@2 ~@2 b1@2 ~@2 b1@3 ~@5",
  K: "c2@3 ~ c2@2 ~@2 c2@3 ~@5", L: "~@2 d1@2 ~@2 g1@2 ~@6 f#1 g1", M: "a1@2 ~@2 a1@2 ~@2 a1@3 ~@5",
  N: "~@2 a1 ~ a1@4 ~@2 a1 ~ a1@3 ~", O: "a#1", P: "c2@15 ~", Q: "a#1@15 ~", R: "~@14 b1 ~", S: "~@2 b1 ~@11 b1@2",
  T: "a2@2 b1 b2@2 b1 a2@2", U: "c2 ~ c2 ~ c2 ~@3", V: "~@2 e1@2 ~@2 g1@2 ~@6 e1 g1", W: "d2@3 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.72)

// chords · kalimba
const kalimba = note(`<
  ~@9 A B C B D E F ~ G H I J K E L M N O P Q R@4 A B C B D E F ~ G H I J K E L M N O P Q R@4 N O P Q R@4 S T U V W X W
  X Y Z C AA E@2 L AB Y Z C AA E@2 L AB N O P Q R@4 N O P Q R@4 N O P Q R@4 S T U V W X W X ~
>`.pickRestart({
  A: "~@2 d4 ~ d4 ~ d4 ~ d4 ~ f#4 ~@3 d4 ~", B: "~@2 d4 ~ d4 ~ d4 ~ d4 ~ d4 ~@5",
  C: "~@2 b3 ~ b3 ~ b3 ~ b3 ~ f#4 ~@3 b3 ~", D: "c4 ~ c4 ~ c4 ~@2 c4", E: "~@2 c4 ~ c4 ~ c4 ~ c4 ~ c4 ~@3 c4 ~",
  F: "~@2 a3 ~ a3 ~ a3 ~ a3 ~ e4 ~@3 a3@2",
  G: "~@2 [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [f#4,a4,f#5] ~@3 [d4,a4,d5] ~", // D5 F#m D5
  H: "~@2 [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4,d5] ~ [d4,a4] ~@3 [d4,a4] ~", // D5
  I: "~@2 [b3,f#4,b4] ~ [b3,f#4,b4,f#5] ~ [b3,f#4,b4] ~ [b3,f#4,b4,f#5] ~ [f#4,b4] ~ [f#4,a4] ~ [b3,f#4,b4] ~", // B5 F#m B5
  J: "[f#4,a4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [b3,f#4,b4] ~ [f#4,b4] ~ b3 ~", // F#m B5
  K: "[c5,d5,g5] ~ [c4,c5,f#5] ~ [c4,d5] ~ c4 ~ c4 ~ c4 ~@3 c4 ~", L: "~@2 a3 ~ a3 ~ a3 ~ a3 ~ e4 ~@3 a3 ~",
  M: "~@2 a3 ~ a3 ~ a3 ~ a3 ~ e4 ~@5",
  N: "[d4,f#4] ~ [d4,f#4,a4] ~ [d4,f#4] ~ [d4,f#4,a4] ~ [d4,f#4] ~ [d4,f#4,a4] ~ [d4,f#4,b4] ~ [d4,f#4,a4,d5] ~", // D Bm D
  O: "[a3,d4] ~ [d4,f#4,a4] ~ [d4,f#4,b4] ~ [d4,f#4,d5] ~ d4 ~ [d4,f#4,a4,d5] ~ [d4,f#4,a4,d5] ~ [d4,f#4,c#5] ~", // D5 D Bm D Dmaj7
  P: "[b3,d4]@2 f#4 ~ [b3,d4]@2 f#4 ~ [b3,d4]@2 f#3@2 [b3,d4]@2 [f#4,d5] ~, f#4 ~@3 f#4 ~@3 f#4 ~ f#4 ~ f#4 ~@3", // Bm D
  Q: "[b3,d4]@2 f#4 ~ [b3,d4]@2 [f#4,d5] ~ [b3,d4]@2 f#4 ~ f#4 ~@3, ~@4 f#4 ~@3 f#3 ~@7", // Bm D Bm
  R: "[c4 ~ c4 ~ [c4,g4] ~ c4 ~ c4 ~ [g3,c4]@2 ~@2 g4@4 ~@2 [g3,d4]@2 [a3,f#4]@3 ~ g4 ~@3 e4@6 ~@6 b4@2 e4@2 a4@4 b4@2 e4@2 a4@2 ~@2 a4@2 e4@2 a4 ~, ~@6 [a3,d4]@2 ~ [e3,b3]@2 ~@21]/4", // C5 G5 D D5 E5
  S: "a#3@2 ~ a#3 [d4,f4] ~ [d4,f4] ~@3 a#4 ~@5, ~@8 d4@3 ~@5, ~@9 f4@2 ~@5", // Dm
  T: "c4 ~@3 [e4,g4] ~ [e4,g4] ~ a4@5 ~@3, ~@3 c4@2 ~@11", U: "a#3@2 ~ a#3 [d4,f4] ~ [d4,f4] ~ [d4,f4,g4]@4 ~@4",
  V: "g3@2 ~@2 c4 ~ [g3,c4] ~@2 e4 g4 ~@5, ~@3 g3@2 ~@3 c4@2 ~@6", // C5
  W: "[a#3,d4] ~@3 [d4,f4] ~@3 [f4,a#4] ~ [a#4,d5] ~ [d5,f5] ~ [f5,a#5] ~", // A# Dm A#5 A# Dm A#5
  X: "[c4,e4] ~@3 [e4,g4] ~ [e4,g4] ~ [g4,c5,e5] ~ [e5,g5] ~ [g5,c6] ~ [c6,e6] ~", // C Em C Em C5 C
  Y: "d4 ~ d4 ~ d4 ~ d4 ~ d4 ~ f#4 ~@3 d4 ~", Z: "~@2 d4 ~ d4 ~ d4 ~ d4 ~ d4 ~@3 d4 ~",
  AA: "~@2 b3 ~ b3 ~ b3 ~ b3 ~ b3 ~@3 b3 ~", AB: "~@2 a3 ~ a3 ~ a3 ~ a3 ~ e4 ~@3 e4 ~",
})).s("gm_kalimba").gain(0.48)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@20 A@2 ~ B C D ~ E ~ F G H I J K@2 ~ L@5 M@6 ~ D ~ E ~ F G H I D ~ E ~ F G H I N@6 O@3 P Q@2 R@8 S@5 ~ E ~ F G H I D
  ~ E ~ F G H I D ~ E ~ F G H I T@8 U
>`.pickRestart({
  A: "[~@14 e4@2 g4@11 ~@5, ~@10 c4@19 ~@3, ~@3 d4@4 ~]/2", B: "[c4,e4,g4,a4]@3 ~", C: "~@3 [g4,a4,c5,e5]@5",
  D: "[a3,d4,f#4,a4]@7 ~", E: "[b3,d4,f#4,b4]@3 ~", F: "[c4,d4,g4]@9 ~@7, c5", G: "~@2 c4 d4@5, ~ b3@2 ~@5",
  H: "[c4,e4,g4,a4]@13 ~@3", I: "~@6 [g4,a4,c5,e5]@7 ~@3", J: "[d4,f#4,a4] ~",
  K: "[~@16 [f#3,c#4]@15 ~, ~@14 d4@17 ~, ~@16 f#4@13 ~@3]/2", // F#5
  L: "[~@40 f#4@2 g4@2 f#4 ~ d4@8 [g4,c5,d5,e5]@9 ~ [d4,f#4,a4]@11 ~@5, c4@9 ~, g3@11 ~@9, d4@24 d4@8 e4@11 ~@37, e4@2 g4@2 f#4@3 ~ a3@7 ~@5]/5", // C D
  M: "[~@14 d4@2 ~@16 c#4@2 d4@2 ~@12 d4@8 d4@8 [c4,g4]@7 ~@9 [a3,g4]@15 ~, ~@14 [f#3,f#4]@45 ~@37, ~@16 c#4@8 ~@12 c#4@4 ~@8 e4@25 ~@7 a4@9 ~@7, ~@22 b4@14 ~@6 b4@6 a4@11 ~@13 b4@11 ~@13, ~@22 d4@12 ~@4 b3@10 [c4,g4]@16 d4@3 ~@12 [c4,e4]@16 ~]/6", // C5 A7 F# C5 C
  N: "[~@13 d5 f5 ~@13 c5 e5 f5 g5 ~@13 d5 f5 ~@13 c5 e5 f5 g5 ~@13 d5 f5 ~@13 c5 e5 f5 g5, [a#3,d4,f4]@21 ~@11 [a#3,d4,f4]@21 ~@11 [a#3,d4,f4]@21 ~@11, ~@12 a#4@2 ~@2 [c4,e4,g4]@19 ~@9 a#4@2 ~@2 [c4,e4,g4]@19 ~@9 a#4@2 ~@2 [c4,e4,g4]@16]/6", // A# C
  O: "[~@13 d5 f5 ~@13 c5 e5 f5 g5 [d4,f#4,a4,d5]@13 ~@3, [a#3,d4,f4]@7 ~@9, ~@12 a#4@2 ~@2 [c4,e4,g4]@19 ~@13]/3", // D A# C
  P: "~@2 f#4 ~@3 c#5@2, ~@6 d5@9 ~", Q: "[b4@9 ~@7]/2",
  R: "[~@40 f#4@2 g4@2 f#4@2 ~@2 d4@2 a3@2 a4@2 ~@10 [f#4,a4]@14 [e4,f#4]@4 f#4@4 d5@4 c#5@4 b4@2 b4@21 ~@11, c4@7 ~ d4@2 ~@6, g3@45 ~@83, d4@24 d4@8 e4@8 d4@8 ~@6 d5@12 ~@12 a4@25 ~@25, e4@8 g4@8 f#4@11 ~@5 a3@14 a3@4 ~@28 d5@8 ~@42]/8", // F#m Esus2
  S: "[~@27 [g4,a4,c5,e5]@5 [a3,d4,f#4,a4]@7 ~, c4@73 ~@7, d4@4 d4@3 ~ a3@7 ~@5, [e4,g4]@11 ~@13 e4@40 ~@16, ~@8 f#4@11 ~@61]/5", // Am7 D Em
  T: "[~@13 d5 f5 ~@13 c5 e5 f5 g5 ~@13 d5 f5 ~@13 c5 e5 f5 g5 ~@13 d5 f5 ~@13 c5 e5 f5 g5 ~@13 d5 f5 ~@13 c5 e5 f5 g5, [a#3,d4,f4]@21 ~@11 [a#3,d4,f4]@21 ~@11 [a#3,d4,f4]@21 ~@11 [a#3,d4,f4]@21 ~@11, ~@12 a#4@2 ~@2 [c4,e4,g4]@19 ~@9 a#4@2 ~@2 [c4,e4,g4]@19 ~@9 a#4@2 ~@2 [c4,e4,g4]@19 ~@9 a#4@2 ~@2 [c4,e4,g4]@16]/8", // A# C
  U: "[a3,d4,f#4]@7 ~@9", // D
})).s("gm_string_ensemble_1").gain(0.42)

// other · string ensemble 1
const string_ensemble_1_2 = note("<~ A@2 B@2 C@2 D@2 ~@56 E F E F ~@53>".pickRestart({
  A: "[[d4,f#4,a4]@15 ~]/2", B: "[[d4,f#4,b4]@7 ~]/2", C: "[[g4,c5,d5,e5]@3 ~]/2", D: "[[a4,c5,e5,g5]@3 ~]/2",
  E: "~@3 a#3 f4 ~ f4 ~ a#3 d4 f4 ~ a#3 d4 f4 ~", F: "~@3 c4 [c4,g4] ~ g4 ~ c4 e4 g4 ~ c4 e4 f4 g4",
})).s("gm_string_ensemble_1").gain(0.64)

// drums · kick
const kick = s("bd").struct("<~@9 A@15 B A@23 B A@16 C@3 D C@3 D A@15 B A@24 C@3 D C@3 D E>".pickRestart({
  A: "x!2", B: "x ~@3 x!2 ~ x", C: "x!4", D: "x ~ x ~ x!4", E: "x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A@15 B A@7 C A@15 B A@7 C A@7 C ~@3 D A@3 E A@15 B A@7 C A@7 C A@7 C ~@3 D A@3 E ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x ~@2 x ~@3", C: "~@2 x ~@2 x!3", D: "~@9 x ~@3 x ~@2", E: "~@4 x ~@4 x ~@3 x ~@2",
})).gain(0.8)

// drums · clap
const clap = s("cp").struct("<~@65 A B A B A B A B ~@40 A B A B A B A B ~>".pickRestart({
  A: "~@3 x ~@3 x", B: "~@7 x",
})).gain(0.72)

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

// drums · open hat
const open_hat = s("oh").struct("<~@68 A ~@3 A ~@43 A ~@3 A ~>".pickRestart({
  A: "~@7 x",
})).gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~@9 A ~@15 A ~ A ~ A ~ A ~@17 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@5 ~@15 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A@5
>`.pickRestart({
  A: "x",
})).gain(0.8)

// drums · congas
const congas = s("conga:13").struct(`<
  ~@16 A ~@7 A ~@7 A ~@15 A ~@7 A ~@7 A ~@15 A ~@7 A ~@7 A ~@7 A ~@7 A ~@9
>`.pickRestart({
  A: "~ x ~@3 x ~@2",
})).gain(2.3)

// drums · congas
const congas_2 = s("conga:33").struct("<~@65 [~@2 x ~@2 x ~@2]!8 ~@40 [~@2 x ~@2 x ~@2]!8 ~>").gain(2.3)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A ~@8 B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A ~@9
>`.pickRestart({
  A: "~@7 x", B: "~@3 x ~@3 x",
})).gain(3.65)

// drums · claves
const claves = s("clave:2").struct(`<
  ~ A B@2 A B@11 C B@7 C B@7 C A B@2 A B@11 C B@7 C B@7 C ~@8 B@7 C B@7 C B@7 C B@7 C B@7 C ~@9
>`.pickRestart({
  A: "~ x ~@2", B: "~@2 x ~@2 x ~@2", C: "~@5 x ~@2",
})).gain(2.74)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct(`<
  ~ A@9 B A@3 B A@3 B A@3 B A@3 B A@3 B A@11 B A@3 B A@3 B A@3 B A@3 B A@3 B A@2 ~@8 A B A@3 B A@3 B A@3 B A@3 B A@3 B
  A@3 B A@3 B A@3 B A@3 B A@2 ~@9
>`.pickRestart({
  A: "~ x ~ x", B: "~@3 x",
})).gain(0.81)

// drums · triangle
const triangle = s("triangles:35").struct(`<
  ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@9 A ~ A ~ A ~ A ~@3 A ~ A ~ A ~@27 A ~ A ~ A ~@3 A ~ A ~ A ~@34
>`.pickRestart({
  A: "x",
})).gain(4.88)

stack(
  electric_guitar_muted, piano, marimba, bass, kalimba, string_ensemble_1, string_ensemble_1_2, kick, snare, clap,
  hihat, open_hat, crash, congas, congas_2, cabasa, claves, woodblocks, triangle
// … 1 more lines

More by Thompson Twins