Strudelify
Where Do You Go cover art

1996 · My Promise

Where Do You Go

No Mercy

KeyD♭ majorTempo127 bpm
0:00/0:00
// Where Do You Go — No Mercy
// 127 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 144 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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.

// chords · pad warm
const pad_warm = note(`<
  A@5 B@5 ~@7 C@3 ~@26 D@5 ~@4 E@5 ~@7 C@3 ~@9 F@7 G@2 ~@13 H@2 ~@6 I@6 J@6 F@7 K@6 ~@5 H@2 ~@3
>`.pickRestart({
  A: "[~@15 [db2,db4,ab4]@32 [bb2,bb3]@16 [gb2,bb3,gb4]@16 [ab2,ab3,db4,eb4], ~@15 f4@48 ~@17, ~@47 db4@32 ~]/5", // Db5 Bb Gb Absus4
  B: "[~@7 c4@8 [db2,db4,ab4]@16 [bb2,bb3]@16 [gb2,bb3,gb4]@16 [ab2,ab3,db4,eb4]@16 ~, ~@15 f4@32 ~@33, ~@31 db4@31 ~@18]/5", // Db5 Bb Gb Absus4
  C: "[~@15 [bb3,f4]@31 ~@2]/3", D: "[~@15 [bb3,f4]@24 [c4,ab4]@8 [bb3,gb4]@22 [c4,ab4]@10 ~]/5",
  E: "[~@15 [db4,ab4]@16 bb3@16 [bb3,gb4]@16 [ab3,db4,eb4]@16 ~, ~@15 f4@32 ~@33, ~@31 db4@31 ~@18]/5", // Db5 Ebm Absus4
  F: "[~@15 [db4,ab4]@16 bb3@16 [bb3,gb4]@16 [ab3,db4,eb4]@16 [db4,ab4]@16 [bb3,db4]@16 [bb3,gb4], ~@15 f4@32 ~@32 f4@32 ~, ~@31 db4@31 ~@50]/7", // Db5 Ebm Absus4 Db5 Bbm Ebm
  G: "[~@15 [ab3,db4,eb4]@16 ~]/2", H: "[~@15 db4@16 ~]/2",
  I: "[~@15 [bb1,bb2,f3,bb3,db4,f4]@32 [ab1,ab2,eb3,ab3,c4,eb4]@32 [bb1,bb2,f3,bb3,db4,f4]@17]/6", // Bbm Ab Bbm
  J: "[~@15 [db2,ab2,f3,ab3,db4,f4]@32 c4@16 db4@16 c4@17, ~@47 [ab1,ab2,eb3,ab3,eb4]@48 ~]/6", // Db Ab5
  K: "[~@15 [ab3,db4,eb4]@16 [db4,ab4]@16 bb3@16 [bb3,gb4]@16 [ab3,db4,eb4]@16 ~, ~@31 f4@32 ~@33, ~@47 db4@31 ~@18]/6", // Absus4 Db5 Ebm Absus4
})).s("gm_pad_warm").gain(0.16)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@99 A@5 ~@33 A@5 ~@2>".pickRestart({
  A: "[~@15 [db4,f4]@16 [eb4,gb4]@16 f4@16 [c4,eb4]@16 ~, ~@15 bb3@32 ab4@32 ~]/5", // Db Ebm Cm
})).s("gm_pad_warm").gain(0.12)

// bass · synth bass 1
const bass = note(`<
  ~@6 A B C D E D E D F@3 G F@2 H I H I H I H I J K L M N K L M N K L M O M N K P Q R K P Q S T A B C U A B C D E D E D
  F@3 G F ~ K L M N K L M O M T A B C U A B C D E@3 D E@3 D E V W D E V W D H I H X H X ~@11 Y A B C U A B C U A B C D E
  V W D E V W D Z ~
>`.pickRestart({
  A: "db2@2 ~ db2 ~@2 db2@3 ~ db2 ~ db2 db2@2 ~", B: "bb1@2 ~ bb1 ~@2 bb1@3 ~ bb1@2 bb1 ~ ab1 ~",
  C: "gb1@2 ~ gb1 ~@2 gb1@3 ~ gb1 ~ gb1 gb1@2 ~", D: "ab1@2 ~ ab1 ~@2 ab1@3 ~ ab1@2 ab1 ~ f1 ~",
  E: "bb1@2 ~ bb1 ~@2 bb1@3 ~ bb1 ~ bb1 bb1@2 ~", F: "bb1@2 ~ bb1 ~@2 bb1 ~@3 bb1 ~ bb1 bb1@2 ~",
  G: "ab1@2 ~ ab1 ~@2 ab1 ~@3 ab1@2 ab1 ~ f1 ~", H: "db2@2 ~ db2 ~@2 db2 ~@3 db2 ~ db2 db2@2 ~",
  I: "gb1@2 ~ gb1 ~@2 b1 ~@3 b1@2 ab1 ~ b1 ~", J: "bb1@2 ~ bb1 ~@2 bb1 ~@3 bb1@2 f1 ~ ab1 ~",
  K: "bb1 ~@2 bb1@3 f1 ~@3 bb1 ~@5", L: "bb1 ~@2 bb1@3 f1 ~@3 bb1 f1 ab1@4", M: "ab1 ~@2 ab1@3 eb1 ~@3 ab1 ~@5",
  N: "ab1 ~@2 ab1@3 eb1 ~@3 ab1 eb1 ab1@4", O: "ab1 ~@2 ab1@3 eb1 ~@3 db1 eb1 f1@4",
  P: "bb1 ~@2 bb1@3 f1 ~@3 f1 ~ f1@4", Q: "gb1 ~@2 gb1@3 db1 ~@3 gb1 ~@5", R: "ab1 ~@2 ab1@3 eb1 ~@3 ab1 ~ ab1@4",
  S: "gb1 ~@2 gb1@3 ab1 ~@3 ab1 ~ ab1@4", T: "bb1 ~ bb1 ~ bb1 ~@11", U: "ab1@2 ~ ab1 ~@2 ab1@3 ~ ab1@2 ab1 ~ bb1 ~",
  V: "eb1@2 ~ eb1 ~@2 eb1@3 ~ eb1@2 eb1 ~ db1 ~", W: "db1@2 ~ db1 ~@2 db1@3 ~ db1 ~ db1 db1@2 ~",
  X: "db2@2 ~ db2 ~@2 db2 ~@3 db2@2 ab1 ~ b1 ~", Y: "ab1 ~ ab1 ~ ab1 ~@11", Z: "db2 ~@7",
})).s("gm_synth_bass_1").gain(0.48)

// chords · percussive organ
const percussive_organ = note(`<
  ~@10 A B A B A@3 B C@2 D E D E D E D E F@3 G@2 F@2 G@2 F@2 H@2 G@2 F I J G F I J K ~ D A L M D A L M A B A B A@3 B C N
  F@2 G@2 F@2 H@2 G ~ D A L M D A L M O@3 ~ O@3 ~ A P Q B A P Q B D E D@4 ~@16 D A L M D A L M A P Q B A P Q B ~@2
>`.pickRestart({
  A: "[bb3,f4,bb4,db5,f5] ~@2 [bb3,f4,bb4,db5,f5] ~@2 [bb3,f4,bb4,db5,f5] ~@3 [bb3,f4,bb4,db5,f5] ~@5", // Bbm
  B: "[ab3,eb4,ab4,c5,eb5] ~@2 [ab3,eb4,ab4,c5,eb5] ~@2 [ab3,eb4,ab4,c5,eb5] ~@3 [ab3,eb4,ab4,c5,eb5] ~@5", // Ab
  C: "[bb3,f4,bb4,d5,f5] ~@2 [bb3,f4,bb4,d5,f5] ~@2 [bb3,f4,bb4,d5,f5] ~@3 [bb3,f4,bb4,d5,f5] ~@5", // Bb
  D: "[db4,ab4,db5,f5,ab5] ~@2 [db4,ab4,db5,f5,ab5] ~@2 [db4,ab4,db5,f5,ab5] ~@3 [db4,ab4,db5,f5,ab5] ~@5", // Db
  E: "[gb3,db4,gb4,bb4,db5] ~@2 [gb3,db4,gb4,bb4,db5] ~@2 [b3,gb4,b4,eb5,gb5] ~@3 [b3,gb4,b4,eb5,gb5] ~@5", // Gb B
  F: "[bb3,f4,bb4,db5,f5,bb5] ~@2 [bb3,f4,bb4,db5,f5,bb5] ~@2 [bb3,f4,bb4,db5,f5,bb5] ~@3 [bb3,f4,bb4,db5,f5,bb5] ~@5", // Bbm
  G: "[ab3,eb4,ab4,c5,eb5,ab5] ~@2 [ab3,eb4,ab4,c5,eb5,ab5] ~@2 [ab3,eb4,ab4,c5,eb5,ab5] ~@3 [ab3,eb4,ab4,c5,eb5,ab5] ~@5", // Ab
  H: "[ab3,eb4,f4,eb5,f5,ab5] ~@2 [ab3,eb4,f4,eb5,f5,ab5] ~@2 [ab3,eb4,f4,eb5,f5,ab5] ~@3 [ab3,eb4,f4,eb5,f5,ab5] ~@5", // Fm7
  I: "[bb3,f4,bb4,db5,f5,bb5] ~@2 [bb3,f4,bb4,db5,f5,bb5] ~@2 [bb3,f4,bb4,db5,f5,bb5] ~@3 [ab3,eb4,ab4,c5,eb5,ab5] ~@5", // Bbm Ab
  J: "[gb3,db4,gb4,bb4,db5,gb5] ~@2 [gb3,db4,gb4,bb4,db5,gb5] ~@2 [gb3,db4,gb4,bb4,db5,gb5] ~@3 [gb3,db4,gb4,bb4,db5,gb5] ~@5", // Gb
  K: "[gb3,db4,gb4,bb4,db5,gb5] ~@2 [gb3,db4,gb4,bb4,db5,gb5] ~@2 [ab3,eb4,ab4,c5,eb5,ab5] ~@3 [ab3,eb4,ab4,c5,eb5,ab5] ~@5", // Gb Ab
  L: "[gb3,db4,gb4,bb4,db5] ~@2 [gb3,db4,gb4,bb4,db5] ~@2 [gb3,db4,gb4,bb4,db5] ~@3 [gb3,db4,gb4,bb4,db5] ~@5", // Gb
  M: "[ab3,eb4,ab4,db5,eb5] ~@2 [ab3,eb4,ab4,db5,eb5] ~@2 [ab3,eb4,ab4,db5,eb5] ~@3 [ab3,eb4,ab4,db5,eb5] ~@5", // Absus4
  N: "[bb3,f4,bb4,d5,f5,bb5] ~@2 [bb3,f4,bb4,d5,f5,bb5] ~@2 [bb3,f4,bb4,d5,f5,bb5] ~@3 [bb3,f4,bb4,d5,f5,bb5] ~@5", // Bb
  O: "~@10 [bb3,f4,bb4,f5] ~@5", // Bb5
  P: "[bb3,eb4,bb4,eb5,gb5] ~@2 [bb3,eb4,bb4,eb5,gb5] ~@2 [bb3,eb4,bb4,eb5,gb5] ~@3 [bb3,eb4,bb4,eb5,gb5] ~@5", // Ebm
  Q: "[ab3,db4,ab4,db5,f5] ~@2 [ab3,db4,ab4,db5,f5] ~@2 [ab3,db4,ab4,db5,f5] ~@3 [ab3,db4,ab4,db5,f5] ~@5", // Db
})).s("gm_percussive_organ").gain(0.25).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@6 A B C D B E B E B@3 E F@2 A G A G A G A G ~@3 H@2 ~@2 H@2 ~@4 H@2 ~@9 A B C D A B C D B E B E B@3 E F ~@3 H@2 ~@4
  H ~ A B C D A B C D ~@8 B I J E B I J E A G A@4 ~@12 A B C D A B C D A B C D B I J E B I J E ~@2
>`.pickRestart({
  A: "[db3,ab3,db4,f4,ab4,db5] ~@2 [db3,ab3,db4,f4,ab4,db5] ~@2 [db3,ab3,db4,f4,ab4,db5] ~@3 [db3,ab3,db4,f4,ab4,db5] ~@5", // Db
  B: "[bb2,f3,bb3,db4,f4,bb4] ~@2 [bb2,f3,bb3,db4,f4,bb4] ~@2 [bb2,f3,bb3,db4,f4,bb4] ~@3 [bb2,f3,bb3,db4,f4,bb4] ~@5", // Bbm
  C: "[gb2,db3,gb3,bb3,db4,gb4] ~@2 [gb2,db3,gb3,bb3,db4,gb4] ~@2 [gb2,db3,gb3,bb3,db4,gb4] ~@3 [gb2,db3,gb3,bb3,db4,gb4] ~@5", // Gb
  D: "[ab2,eb3,ab3,eb4,ab4,db5] ~@2 [ab2,eb3,ab3,eb4,ab4,db5] ~@2 [ab2,eb3,ab3,eb4,ab4,db5] ~@3 [ab2,eb3,ab3,eb4,ab4,db5] ~@5", // Absus4
  E: "[ab2,eb3,ab3,c4,eb4,ab4] ~@2 [ab2,eb3,ab3,c4,eb4,ab4] ~@2 [ab2,eb3,ab3,c4,eb4,ab4] ~@3 [ab2,eb3,ab3,c4,eb4,ab4] ~@5", // Ab
  F: "[bb2,f3,bb3,d4,f4,bb4] ~@2 [bb2,f3,bb3,d4,f4,bb4] ~@2 [bb2,f3,bb3,d4,f4,bb4] ~@3 [bb2,f3,bb3,d4,f4,bb4] ~@5", // Bb
  G: "[gb2,db3,gb3,bb3,db4,gb4] ~@2 [gb2,db3,gb3,bb3,db4,gb4] ~@2 [b2,gb3,b3,eb4,gb4,b4] ~@3 [b2,gb3,b3,eb4,gb4,b4] ~@5", // Gb B
  H: "[ab2,eb3,ab3,c4,eb4,ab4] ~@2 [ab2,eb3,ab3,c4,eb4,ab4]!2 ~ [ab2,eb3,ab3,c4,eb4,ab4] ~@3 [ab2,eb3,ab3,c4,eb4,ab4] ~@5", // Ab
  I: "[bb2,eb3,bb3,eb4,gb4,bb4] ~@2 [bb2,eb3,bb3,eb4,gb4,bb4] ~@2 [bb2,eb3,bb3,eb4,gb4,bb4] ~@3 [bb2,eb3,bb3,eb4,gb4,bb4] ~@5", // Ebm
  J: "[ab2,db3,ab3,db4,f4,ab4] ~@2 [ab2,db3,ab3,db4,f4,ab4] ~@2 [ab2,db3,ab3,db4,f4,ab4] ~@3 [ab2,db3,ab3,db4,f4,ab4] ~@5", // Db
})).s("gm_acoustic_guitar_steel").gain(0.28).pan(0.4)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@28 A ~@22 B ~@27 B ~@30 A ~@10 C ~@20 D ~>".pickRestart({
  A: "[bb1,f2,bb2] ~@15", B: "[bb1,f2,bb2] ~ [bb1,f2,bb2] ~ [bb1,f2,bb2] ~@11",
  C: "[ab1,eb2,ab2] ~ [ab1,eb2,ab2] ~ [ab1,eb2,ab2] ~@11", D: "[db2,ab2,db3] ~@15",
})).s("gm_electric_guitar_muted").gain(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@5 B@5 ~@7 C@3 ~@16 D@6 ~@4 E@5 ~@4 B@5 ~@7 C@3 ~@3 F@6 G@8 ~@11 H@6 ~@9 I@8 G@8 B@5 ~@2 H@6 ~@2
>`.pickRestart({
  A: "[~@15 [db5,ab5]@32 ~@16 gb5@16 [db5,eb5,ab5], ~@15 f5@48 ~@17, ~@47 [db5,bb5]@32 ~]/5", // Db5 Dbsus2 Gb
  B: "[~@15 [db5,ab5]@16 ~@16 gb5@16 [eb5,ab5]@16 ~, ~@15 f5@32 ~@33, ~@31 db5@48 ~, ~@31 bb5@32 ~@17]/5", // Db5 Ab5
  C: "[~@15 [f4,bb4,d5]@31 ~@2]/3", D: "[~@15 bb4@32 [ab4,f5]@32 [eb4,ab4,c5,eb5]@9 ~@8, ~@15 [f4,db5]@64 ~@17]/6",
  E: "[~@15 [bb4,db5,f5]@23 [c5,eb5,ab5]@9 ~@20 [eb5,ab5,c6]@12 ~, ~@47 [db5,gb5,bb5]@22 ~@11]/5", // Bbm Ab Gb
  F: "[~@15 bb4@31 ~ [ab4,f5]@32 [eb4,ab4,c5,eb5]@7 ~@10, ~@15 [f4,db5]@64 ~@17]/6", // Db Ab Db
  G: "[~@15 [db5,ab5]@16 ~@16 gb5@16 [eb5,ab5]@16 [db5,ab5]@16 ~@16 gb5@16 [eb5,ab5], ~@15 f5@32 ~@32 f5@32 ~@17, ~@31 db5@48 ~@16 [db5,bb5]@33, ~@31 bb5@32 ~@65]/8", // Db5 Ab5 Db5 Ab5 Gb
  H: "[~@15 [eb5,eb6]@16 [f4,f5]@16 [bb4,bb5]@16 [ab4,ab5]@16 [eb5,eb6]@16 ~]/6", // Eb F Bb Ab Eb
  I: "[~@15 [db5,bb5]@32 db6@32 c6@16 db6@16 c6@17, ~@15 f5@64 eb5@48 ~, ~@47 ab5@80 ~]/8", // Gb
})).s("gm_string_ensemble_2").gain(0.2)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@3 A B ~@2 C D ~@44 A B ~@2 C D ~@22 E F G H I J K ~@4 L@3 M ~@10 N@4 ~@2 O P@2 Q@2 R@2 S@2 ~@2 A B ~@2 T U ~@2 A B
  ~@11
>`.pickRestart({
  A: "~@8 f4@3 gb4@2 ab4@2 ~, ~@3 bb3@3 ~@2, ~@7 db4@5 ~@4", B: "ab4 bb4@11 ~@4, ~ a4 ~@14",
  C: "~@6 bb4 c5 db5@2 ~ c5@2 bb4@2 ~", D: "gb4@7 ~@9", E: "~@6 bb3 db4 f4@2 ~ gb4@2 ab4@2 ~",
  F: "ab4 bb4@4 ~ gb4!2 gb4@2 ~ ab4@2 ab4 bb4 ~, ~ a4 ~@14", G: "ab4 ~@3",
  H: "gb4 f4 eb4 f4 ~ gb4 ab4 bb4 c5 ~ db5@3 ~ db5!2", I: "db5 c5!4 bb4!2 bb4@4 ~@2 bb4 c5 db5",
  J: "eb5@2 db5 ~ eb5@8 ~ gb4 ab4 bb4", K: "[bb4,b4] c5 bb4 ~ ab4@4 ~@8",
  L: "[bb2,f3,bb3,db4,f4,bb4] [f3,bb3,db4,f4] [bb2,bb3,db4,f4,bb4] [bb2,f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4] [bb2,bb3,db4,f4,bb4] [bb2,f3,bb3,db4,f4,bb4]!2 [f3,bb3,db4,f4] [bb2,bb3,db4,f4,bb4] [bb2,f3,bb3,db4,f4,bb4] ~ [f3,bb3,db4,f4] [bb2,bb3,db4,f4,bb4] [bb2,f3,bb3,db4,f4,bb4]", // Bbm
  M: "[ab2,eb3,ab3,c4,eb4,ab4] [eb3,ab3,c4,eb4] [ab2,ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4] [ab2,ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4]!2 [eb3,ab3,c4,eb4] [ab2,ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4] ~ [eb3,ab3,c4,eb4] [ab2,ab3,c4,eb4,ab4] [ab2,eb3,ab3,c4,eb4,ab4]", // Ab
  N: "ab4 ~ ab4!2 ab4@2 ab4@3 ~ bb4@2 b4@2 bb4@2", O: "~@6 c4 db4 eb4@2 ~ f4@3 eb4 db4",
  P: "[eb4@14 ~@2 bb4@15 ~, ~@14 bb2@15 ~@3, ~@15 [f3,bb3,db4,f4]@15 ~@2]/2", // Bbm
  Q: "[~ ab4, ~@14 db3@17 ~, ~@15 [ab3,db4,f4]@16 ~]/2", // Db
  R: "[~@4 [eb4,ab4]@3 ~, ~@14 ab2@13 ~@5, ~@15 [eb3,ab3,c4]@13 ~@4]/2", // Ab5 Ab
  S: "[db4@7 ~ [eb4,ab4]@6 ~@2, ~@14 ab2@13 ~@5, ~@15 [eb3,ab3,c4]@13 ~@4]/2", T: "~@6 db5!2 db5@2 ~ c5@2 bb4@2 ~",
  U: "bb4@7 ~@9",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// chords · lead 1 square
const lead_1_square = note(`<
  ~@20 A B A B A B A B ~ C@2 D@2 C@2 D@2 C@2 E@2 D@2 C F G D C F G H ~@19 C@2 D@2 C@2 E@2 D ~@65
>`.pickRestart({
  A: "~@2 [f3,ab3,db4] ~@2 [f3,ab3,db4] ~@2 [f3,ab3,db4] ~@3 [f3,ab3,db4] ~@3", // Db
  B: "~@2 [gb3,bb3,db4] ~@2 [gb3,bb3,db4] ~@2 [gb3,b3,eb4] ~@3 [gb3,b3,eb4] ~@3", // Gb B
  C: "~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3", // Bbm
  D: "~@2 [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3", // Ab
  E: "~@2 [ab3,eb4,f4] ~@2 [ab3,eb4,f4] ~@2 [ab3,eb4,f4] ~@3 [ab3,eb4,f4] ~@3", // Fm7
  F: "~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~@2 [bb3,db4,f4] ~@3 [ab3,c4,eb4] ~@3", // Bbm Ab
  G: "~@2 [gb3,bb3,db4] ~@2 [gb3,bb3,db4] ~@2 [gb3,bb3,db4] ~@3 [gb3,bb3,db4] ~@3", // Gb
  H: "~@2 [gb3,bb3,db4] ~@2 [gb3,bb3,db4] ~@2 [ab3,c4,eb4] ~@3 [ab3,c4,eb4] ~@3", // Gb Ab
})).s("gm_lead_1_square").gain(0.11)

// other · melodic tom
const melodic_tom = note("<~@28 A ~@22 B ~@27 B ~@8 C@8 ~@14 A ~@10 B ~@20 A ~>".pickRestart({
  A: "f2 ~@15", B: "f2 ~ f2 ~ f2 ~@11", C: "~@3 d3 ~ d3 ~@2 d3 ~@2 d3 ~@2 d3 ~",
})).s("gm_melodic_tom").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@10 A@18 B A@22 B A@17 B A@9 B A@8 C@8 A@14 ~@16 A@16 B ~>".pickRestart({
  A: "x!4", B: "x", C: "x ~ x!3 ~ x ~",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@10 A@18 ~ A@22 ~ A@17 ~ A@9 ~ A@30 ~@16 A@16 ~@2>".pickRestart({
  A: "~ x ~ x",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@18 A@2 ~@7 A ~@14 B ~@25 A ~@36 B ~@3 A ~@31 A ~@2>".pickRestart({
  A: "x!16", B: "~@8 x!8",
})).gain(0.4)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@10 A@18 B A@22 B A@17 B A@9 B A@8 B ~@7 A@14 B ~@15 A@16 B ~>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@10 A@18 ~ A@22 ~ A@17 ~ A@9 ~ A@8 ~@8 A@14 ~@16 A@16 ~@2>".pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  ~@10 A ~@9 A ~@3 A ~@2 B@2 A ~@7 A ~@5 A ~@3 A ~@12 A ~@8 C A ~@2 B A ~@13 A ~@7 A ~@7 A ~ A ~@2 B ~@3 B A ~@10 B ~@8
  A ~@6 B A ~
>`.pickRestart({
  A: "x", B: "~ x", C: "x!2",
})).gain(0.4)

// drums · mt
const mt = s("mt").struct("<~@10 A@18 ~ A@22 ~ A@17 ~ A@9 ~ A@8 ~@8 A@14 ~@16 A@16 ~@2>".pickRestart({
  A: "~@11 x ~@4",
})).gain(0.24)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@10 A@18 ~ A@22 ~ A@17 ~ A@9 ~ A@8 ~@8 A@14 ~@16 A@16 ~@2>".pickRestart({
  A: "~ x ~@4 x!2 ~ x ~@4 x!2",
})).gain(1.62)

// drums · shaker
const shaker = s("sh").struct("<~@10 A@18 ~ A@22 ~ A@17 ~ A@9 ~ A@8 ~@8 A@14 ~@16 A@16 ~@2>".pickRestart({
  A: "x!4 ~ x!7 ~ x!3",
})).gain(0.32)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@10 A@18 ~ A@22 ~ A@17 ~ A@9 ~ A@8 ~@8 A@14 ~@16 A@16 ~@2>".pickRestart({
  A: "~ x ~ x",
})).gain(0.24)
// … 11 more lines

More by No Mercy