Strudelify

Friedenspanzer

Die Arzte

KeyF majorTempo220 bpm
0:00/0:00
// Friedenspanzer — Die Arzte
// 220 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 189 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): DISTORTION, GTHARMONIC.
setcpm(220/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(`<
  ~@7 A B C D E F G H E F G H E F G H E F G H I J K L I J K L I J K L M N O P Q R S T Q R S T Q R S T Q R S T U V W U X
  Y Z AA AB AC AD AE E F G H E F G H E F G H E F G H I J K L I J K L I J K L M N O P Q R S T Q R S T Q R S T Q R S T U V
  W U X Y Z AA AB AC AD AF AG@2 AH AI AJ@2 AH AK AL@2 AH AK AJ@2 AH AM AN AO AP AQ AR AQ AP AQ AR AQ AP AS M N O P Q R S
  T Q R S T Q R S T Q R S T Q R S T Q R S T Q AT
>`.pickRestart({
  A: "~@2 d2 ~@3 d2 ~", B: "~@4 d2@2 ~@6 d2@3 ~", C: "~@4 f1@3 ~@5 f1@2 ~@2", D: "~@4 c2@11 ~",
  E: "d2@5 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~", F: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2", G: "f1@6 ~@2 f1 ~ f1@2 ~@2 f1 ~",
  H: "c2@6 ~@2 c2 ~ c2@2 ~@2 c2 ~", I: "a1@4 ~@2 a1 ~ a1@5 ~ a1 ~", J: "a1@5 ~ a1 ~ c2@6 f1 ~",
  K: "f1@5 ~ f1 ~ f1@5 ~ f1 ~", L: "f1@5 ~ f1 ~ bb1@5 ~ a1 ~", M: "a1@5 ~ a1 ~ a1@5 ~ a1 ~", N: "c2@5 ~ c2 ~ c2@7 ~",
  O: "d2@5 ~ d2 ~ d2@3 ~ d2@4", P: "f1@3 ~ g1@5 ~ g1 ~ g1 ~ g1 ~", Q: "f1@2 ~@2 f1 ~@3 c2 ~ c2 ~ c2@2 db2 ~",
  R: "db2@2 ~@2 db2@2 db2 ~ db2 ~ db2 ~ db2@2 db2 ~", S: "ab1@2 ~@2 ab1 ~@3 ab1 ~ ab1 ~ ab1 ~ ab1 ~",
  T: "bb1@2 ~@2 bb1 ~@3 bb1 ~ bb1 ~ bb1 ~ bb1 ~", U: "db2@2 ~@2 db2@2 ~@2 db2 ~ db2 ~ db2 ~ db2 ~",
  V: "db2 ~@3 db2@2 ~@2 db2 ~ db2 ~ db2 ~ db2 ~", W: "db2@2 ~@2 db2@2 ~@2 db2@2 db2 ~ db2 ~ db2 ~",
  X: "d2@2 ~@2 d2@2 ~@2 d2 ~ d2 ~ d2 ~ d2 ~", Y: "d2@2 ~@2 d2@2 ~@2 c2@2 c2 ~ c2@2 c2 ~",
  Z: "f1@2 ~@2 f1@2 ~@2 f1@2 f1 ~ f1@2 f1 ~", AA: "f1@2 ~@2 f1 ~@3 c2@2 c2 ~ c2 ~ c2 ~",
  AB: "d2@2 ~@2 d2@2 ~@2 d2@2 d2 ~ d2 ~ d2 ~", AC: "d2@2 ~@2 d2@2 ~@2 c2 ~ c2 ~ c2@2 c2 ~",
  AD: "f1@2 ~@2 f1@2 ~@2 f1 ~ f1 ~ f1 ~ f1 ~", AE: "f1 ~@3 f1 ~@3 c2 ~ c2 ~ c2 ~ c2 ~",
  AF: "f1@2 ~ f1@2 f1@2 ~ c2 ~@2 c2 ~ c2@2 ~", AG: "[~ d1@31]/2", AH: "f1@15 ~", AI: "c2@3 ~ c2@12", AJ: "[d1@31 ~]/2",
  AK: "c2 ~ c2@6", AL: "d1/2", AM: "c2@2 ~@2 c2@11 ~", AN: "a1@2 ~ a1@5", AO: "g1@5 ~ g1@9 ~", AP: "gb1@4 ~@2 gb1@9 ~",
  AQ: "g1@4 ~@2 g1@9 ~", AR: "a1@4 ~@2 a1@9 ~", AS: "g1@2 ~ g1@4 ~", AT: "db2 ~@7",
})).s("gm_electric_bass_finger").gain(0.54)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@11 A ~ B@2 ~@2 B@2 ~@11 C ~@3 D ~@24 E ~@11 A ~ B@2 ~@2 B@2 ~@11 F ~@3 D ~@24 E ~@68 G
>`.pickRestart({
  A: "~@2 [a2,d3] ~@13", B: "[~@14 g2@17 ~]/2", C: "~@8 bb2@5 ~@3, ~@7 f5@5 ~@4", D: "~@7 f5@5 ~@4",
  E: "~@3 db3 ~@3 db3 ~@3 db3 ~@4", F: "~@8 bb2@5 ~ f2@2, ~@7 f5@5 ~@4", G: "~@4 [db3,ab3] ~@11",
})).s("gm_distortion_guitar").gain(0.2).pan(0)

// other · distortion guitar · "+FEEDBCKGT"
const distortion_guitar_2 = note(`<
  ~@3 A B C D E F G D H@8 ~@24 I J K L I M N L I J K L I M N L O P Q R A B C D E F G D H@8 ~@24 I J K L I M N L I J K L
  I M N L O P Q R S T@2 U V W X Y Z@6 ~@26 I J K AA I M N AB I J K AA I M N AC I J K AA I M N AB I AD
>`.pickRestart({
  A: "c4 d4 f4 d4 c4!4", B: "c4@2 d4@2 f4@2 d4@2 c4@2 c4@2 c4 ~ c4@2", C: "c4@2 d4@2 f4@2 d4@2 c4@2 c4 ~ c4@2 c4@2",
  D: "f4 e4 c4 e4@2 c4 e4 c4", E: "c4@2 d4@2 f4@2 d4@2 c4@2 c4 ~ c4 ~ c4@2",
  F: "c4 ~ d4@2 f4@2 d4@2 c4@2 c4@2 c4 ~ c4@2", G: "c4 ~ d4@2 f4@2 d4@2 c4@2 c4 ~ c4 ~ c4@2", H: "d4/8",
  I: "eb4@2 f4@2 ab4@2 f4@2 eb4@4 eb4@2 eb4 ~", J: "eb4 ~ f4@2 ab4@2 f4@2 eb4@4 eb4 ~@3",
  K: "eb4 ~ f4@2 ab4@2 f4@2 eb4@4 eb4 ~ eb4 ~", L: "ab4 g4 eb4 g4@2 eb4 g4 eb4", M: "eb4 ~ f4@2 ab4@2 f4@2 eb4@4 eb4@4",
  N: "eb4 ~ f4@2 ab4@2 f4@2 eb4@4 eb4@2 eb4 ~", O: "~@2 f4@2 ab4@2 f4@2 eb4@2 eb4 ~ eb4 ~ eb4 ~, eb4 ~@3",
  P: "eb4 ~ f4@2 ab4@2 f4@2 eb4@2 eb4 ~ eb4 ~ eb4@2", Q: "~@2 f4@2 ab4@2 f4@2 eb4@2 eb4 ~ eb4 ~ eb4@2, eb4 ~@3",
  R: "eb4 f4 ab4 f4 eb4!2 f4 eb4", S: "a4@2 d5 a4@2 d5 a4@2", T: "[d5 a4@2 d5 a4@2 d5 a4@2 d5 a4@2 d5 a4@2 d5]/2",
  U: "g4@7 ~", V: "d3 c3 ~ d3 f3 d3 f3 ~ g3 f3 g3 ~ a3 g3 a3 ~",
  W: "c4 a3 c4 ~ d4 ~ d4 f4 ~@2 f4 g4 ~@2 g4 ~, ~@5 c4@2 ~@2 d4@2 ~@2 f4@2 ~",
  X: "a4 ~ a4 ~ c5 a4 c5 ~ d5 c5 d5 ~@2 d5 f5@2, ~ g4@2 ~@9 f5@2 ~@2", Y: "g5@2 ~ g5 ~ f5 ~@2 c5@2 ~ c5@2 f4@2 ~",
  Z: "[a3,d4]/6", AA: "ab4@2 ~ eb4@2 g4@5 eb4@2 g4@2 eb4@2, ~ g4 ~@6", AB: "ab4@2 g4@2 eb4@2 g4@4 eb4@2 eb4 ~ eb4 ~",
  AC: "ab4@2 g4@2 eb4@2 g4@3 eb4@2 eb4 ~ g4@2 ~", AD: "eb4 ~@15",
})).s("gm_distortion_guitar").gain(0.32).pan(1)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@30 A ~@3 B ~@3 B ~@51 A ~@3 C ~@3 B ~@90>".pickRestart({
  A: "~@4 [bb3,f4]@3 ~", B: "~@4 f4@3 ~", C: "~@8 f4@5 ~@3",
})).s("gm_guitar_harmonics").gain(0.25).pan(0.6)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@3 A B C D B@2 E D F@8 ~@104 G H@2 I J K L M N@6 O ~@21 P Q R S ~@26>".pickRestart({
  A: "c4 d4 f4 d4 c4!4", B: "c4@2 d4@2 f4@2 d4@2 c4@2 c4@2 c4 ~ c4@2", C: "c4@2 d4@2 f4@2 d4@2 c4@2 c4 ~ c4@2 c4@2",
  D: "f4 e4 c4 e4@2 c4 e4 c4", E: "c4 ~ d4@2 f4@2 d4@2 c4@2 c4 ~ c4@2 c4@2", F: "d4/8", G: "a4@2 d5 a4@2 d5 a4@2",
  H: "[d5 a4@2 d5 a4@2 d5 a4@2 d5 a4@2 d5 a4@2 d5]/2", I: "g4@7 ~", J: "d3 c3 ~ d3 f3 d3 f3 ~ g3 f3 g3 ~ a3 g3 a3 ~",
  K: "c4 a3 c4 ~ d4 ~ d4 f4 ~@2 f4 g4 ~@2 g4 ~, ~@5 c4@2 ~@2 d4@2 ~@2 f4@2 ~",
  L: "a4 ~ a4 ~ c5 a4 c5 ~ d5 c5 d5 ~@2 d5 f5@2, ~ g4@2 ~@9 f5@2 ~@2", M: "g5@2 ~ g5 ~ f5 ~@2 c5@2 ~ c5@2 f4@2 ~",
  N: "[~@89 f5 d5 f5 d5 f5 d5 f5, [a3,d4]]/6", O: "d5 f5 d5 f5 d5 f5 d5 ~@9", P: "a2@2 ~@2 e3@2 g3@4 e3 ~ a2 ~ d3 ~",
  Q: "c3@2 ~@2 e3@2 g3@3 ~ e3 ~ c3 ~ e3 ~", R: "d3@2 ~@2 gb3@2 g3@3 ~ gb3 ~ d3 ~ gb3 ~",
  S: "e3@2 ~@2 gb3@2 g3@3 ~ gb3 ~ g3 ~ gb3 ~",
})).s("gm_overdriven_guitar").gain(0.22)

// other · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@136 A B C@6 ~@45>".pickRestart({
  A: "~ f5@2 d5 ~ f5 d5 [d5,f5] ~@8, d5@3 ~@13", B: "~@7 f5 ~ f5 ~ f5 d5 f5 d5 f5, ~@2 d5 ~",
  C: "[d5 f5 d5 f5 d5 f5 d5 ~ [d5,f5]@2 [d5,f5]@2 ~@84, ~ d6@44 ~@3]/6", // Dm
})).s("gm_overdriven_guitar").gain(0.08)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@133 A@2 B@8 C@4 D E F G H I J K L I F M ~@30>".pickRestart({
  A: "[~@6 [d3,d4]@16 [g3,c4,d4,e4]@5 b3 ~@4, ~@6 [c4,e4]@13 ~@13]/2", // D C
  B: "[a3@30 ~@8 [c4,e4]@13 ~@4 d4@7 ~@2 d4!2 ~@36 [c4,e4]@11 ~@6 c4@7 ~@2, d3@54 g3@5 ~@4 d3@52 ~@3 [g3,d4,e4]@5 ~@5, d4 ~@37 d4@16 [c4,e4]@7 ~@3 a3@28 ~@10 d4@16 ~@10]/8", // C Em7 C
  C: "[d4!2 ~@36 d4@16 [g3,c4,d4,e4]@10, [d3,a3]@36 ~ c4@15 ~@12, ~@37 e4@13 ~@14]/4", // C D5
  D: "~@6 g3@9 ~, a2@7 ~, ~@4 e3@11 ~", E: "~@3 d3@5, g2@7 ~, ~ a2@3", F: "~@6 d3@9 ~, gb2@7 ~, ~ a2@3",
  G: "~@3 d3@5, g2@13 ~@3, ~@4 a2@11 ~", H: "~@6 g3@9 ~, a2@13 ~@3, ~ e3@3", I: "~@6 d3@9 ~, g2@13 ~@3, ~ a2@3",
  J: "~@3 d3@5, gb2@13 ~@3, ~ a2@3", K: "~@6 d3@9 ~, g2@3 ~, ~@4 a2@11 ~", L: "~@6 g3@9 ~, a2@3 ~, ~ e3@3",
  M: "~@3 d3@5, g2, ~ a2@3",
})).s("gm_acoustic_guitar_steel").gain(0.45)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar_3 = note(`<
  ~@11 A B C@3 B D@3 B E@3 B F@2 G@2 H@2 G@2 I@2 G@2 J@2 K L M N O P Q R O S T U O P Q R O S T U V W X Y Z AA AB AC AD
  AA AE AF A B C@3 B D@3 B E@3 B F@2 G@2 AG@2 G@2 I@2 G@2 J@2 K L M N O P Q R O S T U O P Q R O S T U V W X Y Z AA AB AC
  AD AA AE AF ~@28 AH AI AJ AK O P Q R O S T U AL P Q R O S T U AM AN AO AP AM AN AQ AR AM AS
>`.pickRestart({
  A: "[a3,d4]@2 ~@2 [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~", // D5
  B: "[a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~", // D5
  C: "[[c4,f4]@14 ~ g3@15 [a3,d4]@5 ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~, ~@14 c4@17 ~@17]/3", // F5 D5
  D: "[[c4,f4]@14 ~ g3@15 [a3,d4]@5 ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~, ~@7 c4@8 ~@9]/3", // F5 D5
  E: "[[c4,f4]@14 [g3,c4]@16 [a3,d4]@5 ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~ [a3,d4] ~]/3", // F5 C5 D5
  F: "[[c4,f4]@7 g3@9, ~@14 c4 ~@17]/2", G: "[a2,e3]/2",
  H: "[[f2,c3]@19 ~ [f2,c3] ~ [f2,c3] ~@5 [f2,c3] ~ [f2,c3] ~]/2", // F5
  I: "[[f2,c3]@19 ~ [f2,c3] ~ [f2,c3] ~ [bb2,f3]@3 ~ [f2,c3] ~ [f2,c3] ~]/2", // F5 Bb5 F5
  J: "[[f2,c3]@20 [f2,c3] ~ [f2,c3] ~ [bb2,f3]@4 [f2,c3] ~ [f2,c3] ~]/2", K: "[a2,e3]", L: "[c3,g3]", M: "[d3,a3]",
  N: "[f2,c3]@2 [g2,d3] [g2,d3]@2 [g2,d3]!3", O: "[f2,c3] g3, ~@8 c3 ~@7",
  P: "[db3,ab3]@6 [db3,ab3]@2 ~@2 [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  Q: "eb3@3 ~ eb3@4 ab2@4 [ab2,eb3]@2 [ab2,eb3] ~, ab2@7 ~ eb3@2 ~@6", // Ab5
  R: "[bb2,f3]@6 f3@4 [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~, ~@3 bb2 ~@4", // Bb5
  S: "[db3,ab3]@6 [db3,ab3] ~@3 [db3,ab3] ~ [db3,ab3] ~ [db3,ab3] ~", // Db5
  T: "[ab2,eb3]@8 [ab2,eb3] ~ [ab2,eb3]@2 [ab2,eb3]@2 [ab2,eb3]@2", // Ab5
  U: "[bb2,f3]@8 [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  V: "[ab2,db3]@2 [ab2,db3] ~ [ab2,db3]@2 [ab2,db3]@2 [ab2,db3]@2 [ab2,db3] ~ [ab2,db3]@2 [ab2,db3]@2", // Db5
  W: "[ab2,db3] ~ [ab2,db3] ~ [ab2,db3]@2 [ab2,db3] ~ [ab2,db3]@2 [ab2,db3]@2 [ab2,db3]@2 [ab2,db3]@2", // Db5
  X: "[ab2,db3] ~ [ab2,db3] ~ [ab2,db3]@2 [ab2,db3] ~ [ab2,db3] ~ [ab2,db3] ~ [ab2,db3]@2 [ab2,db3]@2", // Db5
  Y: "[ab2,db3]@2 [ab2,db3] ~ [ab2,db3]@2 [ab2,db3]@2 [ab2,db3] ~ [ab2,db3]@2 [ab2,db3]@2 [ab2,db3] ~", // Db5
  Z: "[d3,a3]@2 [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3]@2", AA: "[d3,a3]!4 [c3,g3]!4",
  AB: "[f2,c3]@2 [f2,c3]@2 [f2,c3] ~ [f2,c3]@2 [f2,c3]@2 [f2,c3] ~ [f2,c3]@2 [f2,c3]@2", // F5
  AC: "[f2,c3] ~ [f2,c3]@2 [f2,c3]@2 [f2,c3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3]@2 [c3,g3] ~", // F5 C5
  AD: "[d3,a3]@2 [d3,a3]@2 [d3,a3] ~ [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2 [d3,a3]@2", AE: "[f2,c3]!8",
  AF: "[f2,c3]@2 [f2,c3]@2 [f2,c3]@2 [f2,c3] ~ [c3,g3]@2 [c3,g3] ~ [c3,g3]@2 [c3,g3]@2", // F5 C5
  AG: "[[f2,c3]@19 ~ [f2,c3] ~ [f2,c3] ~@5 [f2,c3] f2 c3 ~]/2", AH: "a2@2 ~@2 e3@2 g3@4 e3 ~ a2 ~ d3 ~",
  AI: "c3@2 ~@2 e3@3 g3@3 e3 ~ c3 ~ e3 ~", AJ: "d3@2 ~@2 gb3@3 g3@3 gb3 ~ d3 ~ gb3 ~",
  AK: "e3@2 ~@2 gb3@2 g3@3 ~ gb3 ~ g3 ~ gb3 ~", AL: "[f2,c3] [c3,g3]", AM: "[f2,c3]@3 ~ [c3,g3]@3 ~",
  AN: "[db3,ab3]@4 [db3,ab3]!2 ~ [db3,ab3]!3 ~ [db3,ab3]!3 ~ [db3,ab3]", // Db5
  AO: "[ab2,eb3]@4 [eb3,bb3]!2 ~ [eb3,bb3]!3 ~ [eb3,bb3]!3 ~ [eb3,bb3]", // Ab5 Eb5
  AP: "[bb2,f3]@4 [f3,c4]!2 ~ [f3,c4]!3 ~ [f3,c4]!3 ~ [f3,c4]", // Bb5 F5
  AQ: "[ab2,eb3]@4 [eb3,bb3]!2 ~ [eb3,bb3]!3 ~ [eb3,bb3]!3 ~@2", AR: "[bb2,f3]@4 [f3,c4]!2 ~ [f3,c4]!3 ~ [f3,c4]!3 ~@2",
  AS: "[db3,ab3] ~@3", // Db5
})).s("gm_distortion_guitar").gain(0.2).pan(0.9)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A@3 ~@186>".pickRestart({
  A: "[~ [a3,f4]@34 ~ e5@9 c5@3, ~ c4@47, ~ f5@35 [g3,e4]@11 ~]/3", // Dm C
})).s("gm_string_ensemble_1").gain(0.06)

// drums · kick
const kick = s("bd").struct("<~@7 A@3 B C@111 D C@7 ~ D ~ D E D ~ D E D ~ D E D ~ D E F@16 C@25 D>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x ~@3 x!2 ~@2", D: "x", E: "x!2 ~@2", F: "x ~@2 x ~@4",
})).gain(0.42)

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

// drums · hihat
const hihat = s("hh").struct("<~@43 A@20 ~@40 A@20 ~@8 B@28 C D@2 E A@25 F>".pickRestart({
  A: "x!4", B: "~@2 x!2 ~@2 x!2", C: "x!4 ~ x!2 ~", D: "~ x!3 ~ x!2 ~", E: "~ x!2 ~ x ~ x ~", F: "x",
})).gain(0.42)

// drums · mid tom
const mid_tom = s("mt").struct("<~@122 [~@12 x!2 ~ x] ~@7 [~@8 x ~@2 x ~ x ~@2] ~@58>").gain(0.6)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@10 A B C@15 D E@12 D F G ~@20 B C@7 B C@15 D E@12 D F G ~@20 B C@6 ~ H I@27 J@3 K ~@26
>`.pickRestart({
  A: "~@3 x", B: "~ x!3", C: "x!4", D: "~@3 x!2 ~@2 x", E: "x ~@2 x!2 ~@2 x", F: "x!8", G: "~ x!7", H: "~ x", I: "x!2",
  J: "~@7 x", K: "~@3 x ~@4",
})).gain(0.42)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@27 [~@5 x ~@2] [~ x ~@3 x ~@2]!13 ~@46 [~@5 x ~@2] [~ x ~@3 x ~@2]!13 ~@88>")
  .gain(0.24)

// drums · high tom
const high_tom = s("ht").struct("<~@122 [~@8 x!2 ~ x ~@4] ~@7 [x ~@2 x ~ x ~@10] ~@58>").gain(0.6)

// drums · crash
const crash = s("cr").struct(`<
  ~@7 A@3 B C ~@15 D ~@12 C ~ C@2 ~@5 E@2 ~@6 E@3 ~ E ~ C ~@7 C ~@15 D ~@12 C ~ C@2 ~@5 E@3 ~@5 E@4 ~@2 C ~@7 C ~@31 C
  ~@5 E@2 ~@6 E@2 A@9 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~", C: "x", D: "x!2 ~@2", E: "~ x ~@2",
})).gain(0.48)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@43 A B C B C B D E F G C H C B D E D B D I J ~@39 A B C B C B D E K G C H C B D E D E C L ~@40 A B C B C B D E C B D
  E K G D M N@9 J
>`.pickRestart({
  A: "~@2 x ~ x!3 ~", B: "x ~ x ~ x!4", C: "x ~ x ~ x!3 ~", D: "x ~@3 x!3 ~", E: "x ~@3 x!4", F: "x ~ x ~ x!2 ~ x",
  G: "~@2 x ~ x!4", H: "x ~ x!6", I: "x!4", J: "x", K: "x ~@3 x!2 ~ x", L: "x!2 ~@2", M: "x ~@2 x!5", N: "x!2",
})).gain(0.48)

stack(
  bass, distortion_guitar, distortion_guitar_2, guitar_harmonics, overdriven_guitar, overdriven_guitar_soft,
  acoustic_guitar_steel, distortion_guitar_3, string_ensemble_1, kick, snare, hihat, mid_tom, open_hat, open_hat_soft,
  high_tom, crash, ride_bell
)

More by Die Arzte