Strudelify
Beth cover art

1997 · Destroyer

Beth

Kiss

KeyC majorTempo54 bpm
0:00/0:00
// Beth — Kiss
// 54 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "guitar" overdriven guitar (copy of ch 3 "solo" lead 1 square)
// note: Full arrangement: all 42 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(54/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.

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N@2 O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL@2 ~@2
>`.pickRestart({
  A: "~@14 e5 f5",
  B: "[c4,d4,e4,g4,g5]@3 c4@3 ~ c5 f5 e5@2 [c4,d5]@2 c4 ~ c3, c3@5 ~ c3@8 c4@2, ~@3 [e4,g4,g5]@4 c4@4 c5 ~ c5@2 ~, ~@8 [d4,g4,c5]@3 [e4,g4]@4 ~", // C Csus2 Em Csus2 Em
  C: "g4 c5 a4 [c4,d4]@2 ~ d4 ~ [g4,b4] ~ c5 c4 d5 [c4,g4] [f4,g4] [f3,g4], f3@6 f3 ~, [c4,d4,f4,a4]@3 [f4,a4,c5]@5 [c4,d4,f4]@3 [d4,f4,g4]@3 [c4,d4,f5]@2, ~@5 c4@3 f2@7 ~, ~@9 g4@2 ~@5", // Csus2 G C5 Fsus2 Dm7 F Dm7 G7 …
  D: "[c4,d4,e4,g4,c5,g5]@3 d4@3 ~ [c3,c5] f5 e5@2 [c4,d4,e4,g4,d5]@2 ~ g4 c3, c3@7 ~ c3@6 ~@2, e5 ~@2 [c4,e4,g4,g5]@5 [c4,d4,e4,g4,c5]@3 ~@3 c4@2, ~@3 c5 ~@2 d4@2 ~@5 [d4,c5]@2 ~", // C D7
  E: "b4 c5 a4 [c4,d4,a4,c5]@2 ~ c5 [c4,a4] g2@4 g2@4, [g3,c4,d4,f4,g4,a4]@3 [f3,f4]@5 [g3,c4,f4,a4,d5]@8, ~@5 [d4,a4]@3 c5 ~@7, ~@3 f2 ~@4", // D7 F Dm7 F Dm7 D5
  F: "[c4,d4,e4,g4]@4 c4@2 ~ c3 [c4,d4,f4]@4 c4@2 ~ c3, c3@3 c4 c3@3 c4, ~@4 [d4,e4,g4]@4 e4 ~@3 [d4,f4]@4", // C Dm7 Em7 Dm
  G: "c4@2 c4 g4 [d4,g4]@2 ~ g4 [a2,e4]@3 ~@4 g4, [c3,e4,g4]@4 [b2,b3]@4 ~@3 e4@2 c4@2 ~, ~@3 d4 [c4,g4]@3 e4, ~@3 a2", // G5 A5 C B C5
  H: "c4@2 ~@4 f4 f3 d4@2 ~@3 b3 [b3,d4,g4] g3, f2@8 g2@7 ~, [a3,f4]@5 a3@2 ~ [g3,b3,g4]@5 ~@3, ~@3 c4@3 ~@5 d4@3 ~@2, ~@4 f3@3 ~@5 g3@2 ~@2", // G Dm G
  I: "a4@3 ~@2 e4 a4 a3 e4@2 ~ e3 [e3,e4,g#4,b4]@2 ~ e3, a2 ~, [e4,c5]@3 [e4,c5] ~ e4 ~ e4, ~@3 a4@3 ~@10, ~@2 a3 ~ [e3,a4,b4]@2 ~@2", // E C Esus4
  J: "a4@3 ~@3 a4 c5 [g3,g4]@3 ~@3 g4 b4, [a3,c5]@7 ~@4 g4@2 d4@2 ~, e4 a2 g2@2, ~@3 a4@2 e4@2 ~ [d4,b4]@6 ~@2, ~@12 g3@3 ~", // G Am G
  K: "[f3,c4,f4]@3 ~@2 c4 f4 f3 [e3,b3,e4]@3 ~@2 b3 [b3,g4] e2, f2@8 [e2,g4]@7 ~, a4@3 ~@5, ~@3 f4@3 [c4,a4]@2 ~@3 e4@3 ~@2, ~@4 f3@2 ~@6 e3@3 ~", // F5 E5 Em F
  L: "[d3,f#4,a4,c5]@3 ~@2 f#4 c5 d3 a4@3 ~@3 [a4,c5] f3, d2@7 ~ f2@8, ~@3 [f#4,a4,c5]@3 ~@2 [f4,c5]@5 f4@2 ~, ~@4 d3@2 ~@5 a4@3 ~@2, ~@6 f3 ~", // D7 Am F#dim F5
  M: "a4@4 ~@6 c5 a3 [a3,a4,c5,e5] ~ [g3,g4,b4,d5] ~, c5@9 e4@2 ~@5, [a2,e4]@7 a4@3 ~@6, ~@4 a4@2 e4@2 a2@3 ~@5, ~@5 a3@5 ~@6", // Am G A5
  N: "[[f3,f4,a4,c5]@3 [g3,f4,g4,a4,c5]@3 g4@4 ~@4 a4 c5 [c4,d4,e4,g4]@4 [c4,e4]@2 ~ c3 [c4,d4,f4]@4 c4@2 ~ c3, g4 ~@5 c3@16 ~@2 c3@6 ~@2, ~@6 [e4,c5]@7 g4@2 ~@7 c4@2 ~@6 c4@2, ~@10 g4@2 e4@3 ~@5 [d4,g4]@4 ~@4 [d4,f4]@4, ~@11 c2@5 b2 ~@15]/2", // F C Dm7 C G5 Dm
  O: "[c3,c4]@2 c4 c3 d4@2 ~ b2 [a2,c4,e4]@3 ~@2 c4 [c4,e4,g4] a2, [e4,g4]@4 [b2,b3,g4]@4 ~@3 e4@3 ~@2, ~@3 d4 g4@3 ~, ~@12 a2@3 ~", // C Am C Em
  P: "[a3,c4]@3 ~@2 a3 [c4,f4] f3 [g3,b3,d4]@3 ~@2 b3 [b3,d4,g4] d3, [f2,f4]@7 ~ [g2,g4]@7 ~, ~@3 c4@3 a3@2 ~@3 d4@3 ~@2, ~@2 f3 ~@3 g3@2", // Am F5 G F G
  Q: "a4@3 ~@3 c5 a3 a4@2 ~ e3 [d3,e4]@2 e4 d3, a2 ~, [e4,c5]@5 e4@3 e4 ~ e4@2 ~@4, ~@3 a4@3 a4@2 ~@4 [g#4,b4]@4, ~@4 a3@3 ~ [e3,b4]@4 ~@4", // Dsus2 C G#m E5
  R: "g2 f4 e4@2 ~ e4 [e4,c5] ~ [g3,d4,g4]@3 ~@2 d4 [g4,b4] g2, f2@4 a2@4 [g2,b4]@7 ~, ~@2 [a4,c5]@4 a4@2 ~@3 g4@3 d4@2, ~@12 g3@3 ~", // C G5 G Am
  S: "[f3,e4,a4,c5]@3 ~@2 e4 ~ f3 [e3,d4]@3 ~@2 d4 [d4,g4,b4] e3, f2 e2, ~@3 [e4,a4,c5]@3 [e4,a4,c5]@2 b4@6 ~@2, ~@4 f3@2 ~@2 g4@2 ~ g4@3 ~@2, ~@6 e3 ~", // Fmaj7 E7 G Am
  T: "[d3,f#4,a4,c5]@3 f#4 ~ f#4 [f#4,a4] d3 a4@3 ~@2 f4 [f4,a4,c5] f3, d2 f2, ~@3 [a4,c5]@3 c5@2 [f4,c5]@4 f3@2 ~@2, ~@4 d3@2 ~@5 a4@3 ~@2", // D7 F#m F Am F5
  U: "[a4,c5,e5]@4 [a4,c5,e5]@4 [a4,c5,e5]@4 [a3,a4,c5,e5] ~ [g3,g4,b4,d5] ~, a2@3 ~", // Am G
  V: "[f3,f4,a4,c5]@3 [g3,f4,g4,a4,c5]@3 [e4,g4]@3 ~@4 a4 [e4,c5,e5] [g3,f5], ~@6 c3@9 ~, ~@3 c5@3 g4 ~, ~@9 g4@2 e4@3 ~@2, ~@5 c4@2 ~", // F Em C G7
  W: "[c4,d4,e4,g4,g5]@3 d4@3 ~ [c3,c5] [c5,f5] e5@2 d5@2 c4 ~ [c4,g4], c3@6 d4@2 [c4,d4,e4,g4]@3 [d4,e4,g4]@4 ~, ~@3 [c4,e4,g4,g5]@5 c3@5 ~ c3@2, ~@11 c4 ~ c5@3", // C F5 C5 C Em7 C
  X: "g4 c5 a4 [a4,c5]@2 [c4,a4] ~ c4 [g4,b4] ~ c5 c4 d5 g4 f4 g4, f3@3 [f3,a4,c5] [g3,c4,d4,f4]@2 g3@2, [c4,d4,f4,a4]@3 [d4,f4]@5 ~ g4@2 g4@2 c4@3, ~@3 c4 ~@7 [d4,f4]@3 f5@2", // Am F G F Gsus4 Dm7 Dm
  Y: "[c4,d4,e4,g4,c5,g5]@3 [c4,c5]@2 g3 ~ [c3,d5] [c5,g5] [c5,f5]@2 e5 d5 c4 d5 [c4,e5], c3@6 [c4,c5]@2 c3@5 ~ c3@2, ~@3 [d4,e4,g4,g5]@5 [c4,d4,e4,g4]@3 [d4,e4,g4]@4 ~, ~@11 c4@2 c5@2 ~", // C Csus2 C5 F5 C Em7 C Em7
  Z: "~ g4 ~@3 [c4,a4] [c4,f4,a4,c5] [f3,a4] [b2,f4,d5]@4 a4@2 b4@2, [f3,c4,f4,a4]@3 [f4,a4,c5]@3 ~@2 b4@2 ~@2 [g#2,f4,g#4,c5]@4, ~@4 f3@3 ~ c5 ~@7", // F Bdim F Fm
  AA: "[e4,a4]@3 ~@3 a4 c5 [d4,g4]@3 ~@3 g4 b4, a2 g2, c5@5 e4@3 ~@3 g4@2 d4@2 ~, ~@3 a4@3 ~@2 b4@6 ~@2, ~@4 a3@3 ~@5 g3@3 ~", // A5 G5
  AB: "[f3,c4,f4]@3 ~@2 c4 [c4,f4,a4] f3 [b2,f4]@2 ~ b2 [g#2,f4,g#4,b4,d5]@2 ~ g#2, f2 ~, a4@3 ~ [b4,d5]@2 ~@2, ~@3 f4@3 ~@4 f4@2 ~@2 f4@2, ~@2 f3 ~@5", // F5 F Bdim G#dim Bm
  AC: "[a4,c5]@3 ~@2 f4 [f4,a4] d3 [f2,f#4,a4,c5]@4 [f2,f4,a4,c5]@4, d2@7 ~@9, f4@2 d3 ~@5, ~@3 [a4,c5]@3 c5@2 ~@4 g4 ~@3", // Am F Am
  AD: "[a4,c5,e5]@4 [a4,c5,e5]@4 [a4,c5,e5]@4 [a2,a3,a4,c5,e5] ~ [g2,g3,g4,b4,d5] ~, a2@3 ~", // Am G
  AE: "[f2,f3,f4,a4,c5]@3 [g2,f4,a4,c5]@3 g4@3 ~@4 a4 c5 g3, ~@6 c3@9 ~, ~@3 [e4,c5]@3 g4 ~, ~@9 g4@2 e4@4 ~, ~@5 c4@2 ~", // F C
  AF: "[c4,d4,e4,g4]@4 [c4,e4]@2 ~ c3 [c4,d4,f4]@4 c4@2 ~ c3, c3@3 c4 c3@3 c4, ~ [d4,g4] ~ [d4,f4]", // C Dm7 G5 Dm
  AG: "c4@2 c4 c3 d4@2 ~ g4 e4@3 ~@3 [e4,g4] a2, [c3,e4,g4]@4 [b2,b3,g4]@4 [a2,g4]@7 ~, ~@6 d4@2 c4@4 a3@3 ~, ~@11 e4@2 c4@3", // Em C Em A7
  AH: "[c4,f4]@3 ~@2 c4 a4 f3 b3@4 b3@2 g3@2, f2 [g2,g4], a4@3 ~@5, ~@3 f4@3 [c4,f4]@2 ~@8, ~@2 f3 ~ [g3,d4]@3 ~", // F5 G F5 G5
  AI: "[c5,e5,g5]@3 ~ c4 ~@2 [c4,e4,g4] f5 e5@2 d5@2 ~ d4 c3, c3@4 c3@3 c4, ~@3 e5@3 d4@2 ~@5 c5@3, ~@5 c4@2 ~ [c4,d4,e4,g4]@3 [c4,d4,e4,g4]@4 ~", // C
  AJ: "~ c5 a4 [c4,d4,a4,c5]@2 ~ [c4,c5] [f3,a4] b4 g4 c5 g4 d5 ~@2 [c4,a4], f3@5 [d4,a4]@2 ~ [g3,f4,a4]@8, [c4,d4,f4,a4]@3 f4@4 ~ c4@4 g2@4, ~@8 d4@2 ~ d4@2 [c4,g4]@2 ~, ~@7 [d4,f5]", // D7 C F D5 Dm Dm7 C5 Dm
  AK: "[c3,c4,d4,e4,g4]@3 c4 ~@3 [c3,e4,g5] f5 [c5,e5]@2 [c4,d4,e4,d5]@2 c4 [e4,g4] c3, [c5,g5]@2 ~ [e4,g4,g5]@5 [c4,d4,e4]@3 ~@3 [c4,d4]@2, ~@3 [d4,c5]@2 c4@3 [c3,g4]@7 ~, ~@4 c3@2 [d4,c5]@3 ~@4 c5@3", // C Em C5 Em C Csus2 D7 C5 …
  AL: "[~ c5 a4 c4 ~ [c4,a4] [c4,d4,f4,a4,c5] [f3,a4] [g3,c4,d4,f4,a4]@4 [g3,c4,f4,a4]@4 ~@16, [d3,c4,d4,f4]@4 f3@2 ~@2 c5 ~@23, a4@2 ~ [d4,f4,a4,c5]@3 ~@2 d5@15 ~@9]/2", // F Dm7 F Dm7 F Dm7
})).s("gm_piano").gain(0.36)

// bass · electric bass finger · "bass"
const bass = note("<~@12 A B C D E F G H I J B C K C L M N O P Q C R S T K T K U@2 V>".pickRestart({
  A: "~@12 a1 ~ g1 ~", B: "f1@3 g1@3 c2@7 c3 ~ g2", C: "c2@6 c2 ~ c2@6 c2 ~", D: "c2@4 b1@4 a1@6 a1 ~, d2 ~@15",
  E: "f1@6 f2 f1 g1@6 g1 ~", F: "a1@3 a1 e2@2 d2@2", G: "f2@4 a1@2 a1@2 g1@5 g2 d2 g1", H: "f1@5 ~ f1 ~ e2@6 e2 ~",
  I: "d2@6 d2@2 f2@3 c2 f1@4", J: "a1@12 a1 ~ g1 ~", K: "c2@6 c2 ~ c2@4 g2@4, ~@12 f2 ~@3", L: "c2@6 c2 ~ b1@4 g#1@4",
  M: "a1@3 a1 g1@3 g1, ~@8 a1 ~@7", N: "f1@3 f1 b1@2 g#1@2", O: "d2@3 d2 f2@4", P: "a2@5 e2 a1@5 ~ a1 ~ g1 ~",
  Q: "f1@3 g1@3 c2@7 g2@3", R: "c2 b1 a1@2", S: "f1@3 ~ g1@4", T: "c2@6 c2 ~ c2@8", U: "[~@7 g2, ~@4 c2@27 ~]/2",
  V: "c2@5 ~@3",
})).s("gm_electric_bass_finger").gain(0.41)

// other · string ensemble 2 · "strings"
const string_ensemble_2 = note(`<
  A B C@3 D@2 E F G H I@5 J K L H M N@3 O@2 P H Q R@2 S D@2 H B T U V@2 ~@2
>`.pickRestart({
  A: "~@3 e4", B: "g5", C: "[f5@2 ~ d5 e5@4 d5@2 e5@2, ~ g5@5]/3", D: "[c5@5 b4 a4@2]/2", E: "d5", F: "e5",
  G: "a4@2 c5 d5", H: "c5 b4", I: "[c5@34 b4@2 a4@3 g4, ~@78 f4 ~]/5", J: "a4 b4", K: "c5@3 d5", L: "e5 d5",
  M: "c5@2 b4 c5", N: "[e5 g5]/3", O: "[f5@4 ~@3 d5 e5@8, ~ g5@3]/2", P: "[d5,f5]@2 e5 b4", Q: "a4@2 g4 b4",
  R: "[c5 a4@3]/2", S: "e5@3 d5@3 g5@10, ~@6 a5 ~@9", T: "f5 g5", U: "[e5,g5]",
  V: "[[d5,f5]@8 ~@4 f4@5 e4@15, ~ e5@3]/2", // Dm
})).s("gm_string_ensemble_2").gain(0.36)

// chords · synth strings 1 · "strings"
const synth_strings_1 = note(`<
  ~ A B C D E@2 F G H I J K L M N@2 O P Q R S T U D V W X Y Z AA AB@3 AC AD AE AF AG@4
>`.pickRestart({
  A: "g4@15 ~", B: "[f4,a4] g4", C: "~@3 [c4,e4,g4]", D: "[c4,f4,a4] [c4,g4]", E: "[c4@5 b3 a3 g3]/2", F: "f3 g3",
  G: "c4@2 b3 d4", H: "c4@8 b3@3 c4 d4@2 c4 b3", I: "a3@8 g3@4 c4@3 d4", J: "c4@2 b3 a3", K: "e4",
  L: "d4@3 c4@3 c3@6 c3@4, ~@6 d3 ~@9", M: "g3@3 a3", N: "[g3@6 d4@2 c4@12 b3@2 a3 g3 a3@8]/2", O: "e4!2 c4 b3",
  P: "c4@10 b3 c4 d4@2 c4 b3", Q: "a3@8 g3@2 a3 b3 d4@2 c4 b3", R: "c4@15 ~", S: "~@2 a3@2 g3@2 a3 g3, e4@3 ~",
  T: "f3@3 g3@3 c3@10, ~@6 b2 ~@9", U: "g3@2 c4@4 d4 c4", V: "[e4,g4]", W: "a4@2 g4 b3, f4@3 ~",
  X: "c4@4 d4@2 c4 b3 a3@4 [a3,c4] ~ c4 d4, ~@6 b3 ~", Y: "c4@4 ~ [c4,d4] d4 c4 b3@4 a3@4",
  Z: "~ b3 c4 d4 c4@2 b3 g3 a3@5 g3 a3 b3", AA: "d4@4 e4@6 ~@2 [c4,e4,a4] ~ [b3,d4,g4] ~, ~@4 d4 ~@11",
  AB: "[c4@3 c4@2 ~@7 g3@4 c3@8 g3@12 e4@2 d4 c4 d4@8, [a3,f4]@6 c4@13 ~@29]/3", AC: "c4@7 g3 a3@8",
  AD: "[c4,e4]@3 d4, g4@15 ~", AE: "[c4,f4,a4] [c4,f4,g4]", AF: "[c4,e4]@6 d4 c4, g4@7 ~",
  AG: "[[f4,a4]@4 [g4,a4]@5 ~@11 g2@2 f2@2 g2@4 ~@4, c4@7 ~, ~@19 e4@37 ~@8, ~@5 g4@9 ~@2, ~@4 [c2,c3]@3 ~]/4", // F Gsus2 C
})).s("gm_synth_strings_1").gain(0.41)

// chords · synth strings 1 · "strings" · soft notes
const synth_strings_1_soft = note("<~ A B C D ~@16 E ~ F D B G ~@2 H ~ I ~@10>".pickRestart({
  A: "[c4,e4]@15 ~", B: "c4", C: "[c4,e4,g4]@3 ~", D: "~@8 f4@7 ~", E: "~@14 a3 ~", F: "~@2 g4@5 ~, ~ e4@2 ~",
  G: "c4@3 ~", H: "~@4 d4 ~@11", I: "~@6 c#4 ~@9",
})).s("gm_synth_strings_1").gain(0.26)

// other · synth strings 1 · "strings" · Am Cmaj7 Dsus2
const synth_strings_1_2 = note(`<
  ~@27
  [~ e6 d6 e6 c6 e6 b5 e6 g5 d6 c6 d6 b5 d6 a5 d6]
  [f5 c6 b5 c6 a5 c6 g5 c6 e5 b5 a5 b5 g#5 b5 a5 b5]
  [a5 b5 a5 g5 f5 g5 a5 b5 d6@2 c6@2 b5@2 a5 [a5,c6]]
  [[b5,c6] ~@2 [d6,e6] c6@7 ~ e6 ~ d6 ~, d6@3 ~@13]
  [c6@3 g5@3 c5@10]
  ~@10
>`).s("gm_synth_strings_1").gain(0.41)

// chords · french horn
const french_horn = note("<~@12 A B C@2 D E@2 F@2 G H I@4 J K L M N O P Q R S T@5>".pickRestart({
  A: "~@12 [a4,c5,e5] ~ [g4,b4,d5] ~", B: "[f4,a4]@3 a4@3 [e4,g4]@10, c5@3 ~@5, ~@3 g4 ~@12",
  C: "[a4@4 g4@16 c5@2 d5@2 c5@5 [d5,e5] d5 c5, g4 ~@19 b4 ~ c5 ~@9]/2", D: "d5@5 g5@2 a5, ~@10 f5 ~@3 g5 ~",
  E: "[g5@8 a5@4 b5@2 c6@9 b5@2 a5 g5@3 e6@2 [c6,d6], ~@8 g5 ~@3 a5 ~ b5 ~@14 d6 ~@2]/2", // Csus2
  F: "[d6@4 c6@3 b5@5 g5@9 f5 e5 d5 e5@2 d5@2 c5@2 d5@2, ~@12 f5 ~@11 d5 ~@5 c5 ~]/2",
  G: "c5@12 [a4,c5,e5] ~ [g4,b4,d5] ~", H: "[f4,a4,c5]@3 [g4,c5]@3 [e4,g4,c5]@10",
  I: "[g4@14 b4 c5@13 b4@2 g#4@2, ~@28 a4 ~ a4 ~@33]/4", J: "a4 g4", K: "f4@4 g#4@2 a4 b4, ~@14 a4 ~", L: "a4 f4",
  M: "g4@4 b4@4 c5@3 ~ [a4,c5,e5] ~ [g4,b4,d5] ~, ~@4 a4 ~@11", N: "[f4,a4]@3 a4 ~@2 e4@10, c5, ~@3 g4@13", O: "e4 g4",
  P: "a4@6 e5@2 d5@4 [d5,e5] d5 ~ d5, ~@6 d5 ~@7 c5@2", Q: "c5@3 a5 g5@3 b5, ~@6 g5 ~@9",
  R: "[a5,b5] ~@11 b5@2 a5 g5, c6@12 a5 ~@3", S: "a5@5 g5 f5 e5 f5 e5 d5 c5 e5@3 [c5,d5], g5 ~@11 d5 ~@3",
  T: "[d5@12 d5@2 [d5,e5] c5@6 g4!2 ~ g4@4 f4@7 d4@2 e4@28 ~@15, ~@21 a4@3 ~@56]/5", // Dsus2
})).s("gm_french_horn").gain(0.36)

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

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@26 [~@3 x] ~@3 [~@7 x] ~@11>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 [~@3 x] ~@11>").gain(0.41)

// drums · open hat
const open_hat = s("oh").struct("<~@23 [~@5 x ~@10] [~@11 x ~@4]!2 ~@16>").gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@12 [~@6 x!2] ~@8 [~@6 x!2] ~@20>").gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@13 [x ~@2 x ~@2 x ~@9] ~@8 [x ~@2 x ~@2 x ~@9] ~@8 [x ~@2 x ~@2 x ~@9] ~@10>")
  .gain(0.31)

// drums · ride
const ride = s("rd").struct("<~@27 [x!4]!3 [x ~ x ~ x ~ x!2] [x ~ x!2] [x!4]!7 ~@3>").gain(0.36)

// drums · bongos
const bongos = s("bongo:4").struct("<~@18 A@2 B C ~@2 A D ~@6 E@3 F@4 ~@3>".pickRestart({
  A: "~@13 x ~@2", B: "~@5 x ~@7 x ~@2", C: "~@6 x!2 ~@8", D: "~@5 x ~@10", E: "~ x ~@14", F: "~@9 x ~@6",
})).gain(0.67)

// drums · bongos · soft notes
const bongos_soft = s("bongo:4").struct("<~@19 [~@5 x ~@10] ~@6 [~@9 x ~@6] ~@5 [~@9 x ~@6]!2 ~@8>").gain(0.27)

// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@14 A B@3 C B@2 D ~ B E F G ~@4 H G@2 I J I J I ~@3>".pickRestart({
  A: "~@2 x ~@7 x ~@2 x ~@2", B: "~ x ~@3 x ~@2", C: "~@2 x ~@2 x ~@4 x ~@5", D: "~ x ~@6", E: "~@5 x ~@2",
  F: "~@2 x ~@6 x ~@6", G: "~@3 x ~@3 x", H: "~@7 x", I: "~@3 x ~@4", J: "~@6 x ~@6 x ~@2",
})).gain(0.67)

// drums · bongos · soft notes
const bongos_soft_2 = s("bongo:18").struct("<~@15 [~@13 x ~@2] ~@20 [~@13 x ~@2] ~@5>").gain(0.27)

// drums · congas
const congas = s("conga:18").struct("<~@14 A@7 ~ B C D E F ~@4 G F@2 H F@4 ~@3>".pickRestart({
  A: "~@6 x!2 ~@6 x!2", B: "~@14 x!2", C: "~@6 x!2 ~@8", D: "~@2 x ~@4 x ~@6 x!2", E: "~@6 x!2 ~@6 x ~",
  F: "~@2 x!2 ~@6 x!2 ~@4", G: "~@10 x!2 ~@4", H: "~@2 x!2 ~@12",
})).gain(0.98)

// drums · shaker
const shaker = s("sh").struct("<~@27 [~@2 x ~@2 x!5 ~ x ~@4] [x ~ x ~@5 x ~@2 x!2 ~ x ~] [~ x ~@5 x ~@8] ~@12>")
  .gain(0.26)

// drums · claves
const claves = s("clave:2").struct("<~@27 [~@14 x!2] [~@9 x!2 ~@5] [~@8 x!2 ~@6] ~@12>").gain(1.25)

// drums · triangle
const triangle = s("triangles:30").struct("<~@23 A ~ B ~ C@2 B ~@7 D ~ E ~@2>".pickRestart({
  A: "~@13 x ~@2", B: "~@10 x!2 ~@4", C: "~@3 x ~@12", D: "~@7 x", E: "~@15 x",
})).gain(2.23)

// drums · triangle
const triangle_2 = s("triangles:35").struct("<~@23 A ~ B ~@2 C B ~@5 A@2 ~@3 D ~>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~ x ~@2", D: "x",
})).gain(2.23)

stack(
  piano, bass, string_ensemble_2, synth_strings_1, synth_strings_1_soft, synth_strings_1_2, french_horn, kick, rim,
// … 3 more lines

More by Kiss