Strudelify

Der Berg Ruft

K2

KeyC minorTempo138 bpm
0:00/0:00
// Der Berg Ruft — K2
// 138 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 9 "MUTED GTR" named as a guitar, played on electric guitar muted (its muted trumpet patch is not one)
// note: duplicate parts dropped: ch 9 "MUTED GTR" electric guitar muted (copy of ch 10 "DRUMS" piano)
// note: Full arrangement: all 148 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(138/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 · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  A@5 B@3 C@3 D@4 ~@4 E F E F E F E ~ E F E F E F E G ~@3 H I J K L I J K L I J K L I J K L I J K L I J K M N O N P E F
  E F E F E ~ E F E F E F E ~@10 F E F E F E F E ~ E F E F E F E ~@5 E F E F E F E ~ E F E F E F E Q I J K L I J K L I J
  K L I J K L I J ~
>`.pickRestart({
  A: "c1/5", B: "ab0/3", C: "[bb0@47 ~]/3", D: "c1/4", E: "c2 ~ c3!2 c2@2 c3!2 c2@2 c3!2 c2@2 c3!2",
  F: "ab1@2 ab2!2 ab1@2 ab2!2 bb1@2 bb2!2 bb1@2 bb2!2", G: "ab1@2 ab2!2 ~@6 e1@2 gb1@2 ab1 ~",
  H: "~@10 e1@2 gb1@2 ab1 ~", I: "a1 ~@3 e1@2 ~@2 a1 ~ e1 ~ gb1 ~ a1 ~", J: "ab1@2 ~@2 e1@2 ~@2 ab1 ~@3 e1@2 ~@2",
  K: "ab1@2 ~@2 e1@2 ~@2 ab1 ~ e1 ~ gb1 ~ ab1 ~", L: "a1 ~@3 e1@2 ~@2 a1 ~ e1 ~ gb1 ~ ab1 ~", M: "c1@15 ~", N: "c1",
  O: "ab0 bb0", P: "ab0@8 bb0@7 ~", Q: "c3@2 ~@8 e1@2 gb1@2 ab1 ~",
})).s("gm_synth_bass_1").gain(0.44)

// chords · bandoneon · "BANDNEON"
const bandoneon = note(`<
  ~@35 A B C D E F G H A B C D E F G H I J K L M N O P I J K Q@2 R S R ~@62 I J K L M N O P I J K L M N O P I T ~
>`.pickRestart({
  A: "[gb5,a5] ~ [gb5,a5]@2 [gb5,a5] ~ [gb5,a5]@2 [gb5,a5] ~ [gb5,a5]@2 ab5 gb5 e5 gb5", // Gbm
  B: "[e5,ab5] ~ [e5,ab5] ~ [e5,ab5] ~ [e5,ab5]@2 [d5,gb5]@6 d5 [e5,gb5]", // E D Esus2
  C: "ab5 ~ ab5@2 [e5,ab5] ~ [e5,ab5] ~ [e5,ab5] ~ ab5@2 gb5 e5 d5 e5, ~@2 e5 ~@7 e5 ~@5", // E
  D: "[d5,gb5] ~ [d5,gb5]@2 [d5,gb5] ~ [d5,gb5]@2 [db5,e5]@3 ~ gb5 e5 gb5 ab5", // D Dbm
  E: "[gb5,a5] ~ [gb5,a5] ~ [gb5,a5] ~ a5@2 [gb5,a5] ~ [gb5,a5]@2 ab5 gb5 e5 gb5, ~@6 gb5 ~@9", // Gbm
  F: "[e5,ab5] ~ [e5,ab5] ~ [e5,ab5] ~ [e5,ab5]@2 [d5,gb5]@6 d5 [e5,f5]", // E D Fmaj7
  G: "[e5,ab5] ~ ab5@2 [e5,ab5] ~ [e5,ab5]@2 [e5,ab5] ~ ab5@2 gb5 e5 d5 e5, ~@2 e5 ~@7 e5 ~@5", // E
  H: "[d5,gb5] ~ [d5,gb5] ~ [d5,gb5] ~ [d5,gb5]@2 [db5,e5]@3 ~ gb5 e5 gb5 ab5", // D Dbm
  I: "[gb5,a5] ~ [gb5,a5]@2 [gb5,a5] ~ [gb5,a5]@2 [gb5,a5] ~ [a2,a3,gb5,a5]@2 ab5 gb5 [a2,a3,e5] gb5, ~@2 [a2,a3] ~@3 [a2,a3] ~@5 [ab2,ab3]@2 ~@2", // Gbm D A5 A Ab
  J: "[e5,ab5] ~ [ab2,ab3,e5,ab5] ~ [e5,ab5] ~ [e5,ab5]@2 ~@2 [ab2,ab3]@2 [gb2,gb3]@2 [ab2,ab3,d5] [e5,gb5], ~@6 [ab2,ab3] ~ [d5,gb5]@6 ~@2", // E Dbm E Ab Gb Abdim Esus2 Ab …
  K: "ab5 ~ [ab2,ab3,e5] ~ [e5,ab5] ~ [ab2,ab3,e5,ab5] ~ [e5,ab5] ~ [ab2,ab3,ab5]@2 gb5 e5 [ab2,ab3,d5] e5, ~@2 ab5@2 ~@6 e5 ~ [gb2,gb3]@2 ~@2", // Dbm E Dbm E Ab Abdim Gb
  L: "[d5,gb5] ~ [d5,gb5]@2 [d5,gb5] ~ [d5,gb5]@2 [db5,e5]@2 [a2,a3]@2 gb5 e5 [a2,a3,gb5] ab5, ~@2 [a2,a3] ~@3 [a2,a3] ~@5 [ab2,ab3]@2 ~@2", // D Dbm A D A Ab
  M: "[gb5,a5] ~ [a2,a3,gb5,a5] ~ [gb5,a5] ~ [a2,a3,gb5] ~ [gb5,a5] ~ [a2,a3,gb5,a5]@2 ab5 gb5 [a2,a3,e5] gb5, ~@3 a5 ~@2 [ab2,ab3] ~", // Gbm D Gbm D Gbm D A5 Ab
  N: "[e5,ab5] ~ [ab2,ab3,e5,ab5] ~ [e5,ab5] ~ [e5,ab5]@2 ~@2 [ab2,ab3]@2 [gb2,gb3]@2 [ab2,ab3,d5] [e5,f5], ~@6 [ab2,ab3] ~ [d5,gb5]@6 ~@2", // E Dbm E Ab Gb Abdim Fmaj7 Ab …
  O: "[e5,ab5] ~ [ab2,ab3,e5] ~ [e5,ab5] ~ [e5,ab5]@2 [e5,ab5] ~ [ab2,ab3,ab5]@2 gb5 e5 [ab2,ab3,d5] e5, ~@2 ab5@2 ~@2 [ab2,ab3] ~@3 e5 ~ [gb2,gb3]@2 ~@2", // E Dbm E Ab Abdim Ab Gb
  P: "[d5,gb5] ~ [a2,a3,d5,gb5] ~ [d5,gb5] ~ [d5,gb5]@2 [db5,e5]@2 [a2,a3]@2 gb5 e5 [a2,a3,gb5] ab5, ~@6 [a2,a3] ~@5 [ab2,ab3]@2 ~@2", // D Dbm A D A Ab
  Q: "[[c4,c6], [d5,gb5] ~@31]/2", R: "[ab3,ab5] [bb3,bb5]", S: "[c4,c6]",
  T: "[e5,ab5] ~ [ab2,ab3,e5,ab5] ~ [e5,ab5] ~ [e5,ab5]@2 ~@2 [ab2,ab3]@2 [gb2,gb3]@2 [ab2,ab3,d5] ~, ~@6 [ab2,ab3] ~ [d5,gb5]@6 ~@2", // E Dbm E Ab Gb Abdim Ab D
})).s("gm_bandoneon").gain(0.4).pan(1)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@19 A B A C A B A C ~@40 A B A C A B A C ~@38 A B A C A B A C A B A C A B A C ~@19
>`.pickRestart({
  A: "c4@3 ~ d4@3 ~ eb4@3 ~ f4 ~ g4@2", B: "~@2 g4 ~ f4 ~ f4 ~ eb4@3 ~ f4@3 ~", C: "~@2 f4@5 ~@9",
})).s("gm_distortion_guitar").gain(0.72)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<A@8 B@3 C@4 ~@133>".pickRestart({
  A: "[~@32 g3@47 ~@4 ab3@44 ~, c7@5 [ab4,ab6]@3, ~ [c4,eb4]@3]/8", B: "[f3,bb3,d4,bb6]/3", C: "c6/4",
})).s("gm_string_ensemble_2").gain(0.09)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@35 A B C A@2 D E F A B C A@2 D E F A B C A@2 D E F A B C ~@67 A B C A@2 D E F A B C A@2 D E F A B ~
>`.pickRestart({
  A: "~@2 [a3,db4,e4] ~@3 [a3,db4,e4] ~@3 [a3,db4,e4] ~@3 [a3,db4,e4] ~", // A
  B: "~@2 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~@3 [ab3,b3] ~", // Abdim Abm
  C: "~@2 [ab3,b3] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~", // Abm Abdim
  D: "~@2 [ab3,b3,d4] ~@3 [ab3,b3] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~", // Abdim Abm Abdim
  E: "~@2 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~@3 [ab3,b3,d4] ~", // Abdim
  F: "~@2 [a3,db4,e4] ~@3 [a3,db4,e4] ~@3 [a3,db4] ~@3 [a3,db4,e4] ~", // A
})).s("gm_acoustic_guitar_nylon").gain(0.21).pan(0)

// chords · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@35 A B C A D E F G A B C A D E F G A B C A D E F G A B C ~@67 A B C A D E F G A B C A D E F G A B ~
>`.pickRestart({
  A: "a2 ~@7", B: "e3@3 ~@11 d4 ~", C: "e3@2 d4 ~@13", D: "a2 ~@15", E: "e3@2 ~@4 d4 ~@9", F: "e3 ~@7",
  G: "a2@2 ~@8 e4 ~@5",
})).s("gm_acoustic_guitar_nylon").gain(0.08).pan(0)

// other · synth brass 1 · "SYNBRASS 1"
const synth_brass_1 = note(`<
  ~@11 A@8 B C B D B C E F G H G H G H I F ~@28 J K J K J K J K J K J K J K J K J K J ~@10 H G H G H G H G ~ G H G H G H
  G ~ L@7 M@8 N@5 ~@19
>`.pickRestart({
  A: "[c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~ d4@2 ~ c4@2 ~@2 c4@2 ~@2 c4@2 ~@4, ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~@18, ~@11 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~ d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2 ~@16]/8", // Ebmaj7 Ebsus2 Ebmaj7 Ebsus2 Ebmaj7 Ebsus2 Ebmaj7
  B: "c3 ~ c4@2 d4@2 c4@2 eb4@2 ~@2 d4 ~ c4@2", C: "c3 ~ c4@2 eb4@2 c4@2 f4@2 ~ eb4@3 c4@2",
  D: "c3 ~ c4@2 eb4@2 c4@2 f4@2 ~ eb4@3 c4 ~", E: "c3 ~ c4@2 d4@2 c4@2 eb4@2 ~@2 d4 ~@3", F: "c4",
  G: "c4@2 c5 ~ c5@2 c4 c5 ~ c5 c4!2 c5@2 c4@2", H: "ab3@2 ab4 ~ ab4@2 ab3 bb3@2 bb4 bb3!2 bb4@2 bb3@2",
  I: "c4@2 c5 ~ c5@2 c4 c5 ~ c5 c4!2 c5@2 ~@2", J: "c3@2 c4@2 d4@2 c4@2 eb4@2 c3 d4@2 ~ c4@2",
  K: "c3@2 c4@2 eb4@2 c4@2 f4@3 eb4@3 c4@2",
  L: "[c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~ d4, ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~@2, ~@11 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~ d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2]/7", // Ebmaj7 Ebsus2 Ebmaj7 Ebsus2 Ebmaj7 Ebsus2 Ebmaj7
  M: "[c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~ d4, ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~ d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2, ~@11 eb4@3 c4@2 ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~@2]/8", // Ebsus2 Ebmaj7 Ebsus2 Ebmaj7 Ebsus2 Ebmaj7 Ebsus2 Ebmaj7
  N: "[c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~ eb4@2 ~@2 c3@2 c4@2 eb4@2 c4@2 [eb4,f4]@2 c3 ~@2 c3 ~@2 c3@2 c4@2 d4@2 c4@2 [d4,eb4]@2 c3 ~@2 c3 ~ d4@2 ~@15, ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~@2 d4@2 ~@10 eb4@3 c4@2 ~@10 c4@2 eb4@2 ~@18, ~@11 eb4@3 c4@2 ~@10 c4@2 ~@2 c4@2 ~@10 c4@2 f4@2 ~ eb4@3 ~@9 d4@2 ~ c4@2 ~@16]/5", // Ebsus2 Ebmaj7 Ebsus2 Ebmaj7
})).s("gm_synth_brass_1").gain(0.35)

// other · clavinet
const clavinet = note(`<
  ~@46 A B C D E F G D H I J K L M N O P ~@20 Q R Q S Q T Q U ~@10 V W X@2 Y@3 Z ~@39
>`.pickRestart({
  A: "~@14 gb3 ~", B: "e3 ~ gb3 ~ gb3 ~ gb3 ~ e3 ~ gb3 ~ gb3 ~ gb3@2", C: "e3@2 d3 ~ d3 ~ d3 ~ d3@3 ~@5",
  D: "d3 ~ e3 ~ e3 ~ e3 ~ d3 ~ e3 ~ e3 ~ e3 ~", E: "d3 ~ db3 ~ db3 ~@3 db3@4 gb3 ~ gb3 ~",
  F: "e3 ~ gb3 ~ gb3 ~ gb3 ~ e3 ~ gb3 ~ gb3 ~ gb3 ~", G: "e3@2 d3 ~@3 d3 ~ d3@3 ~@5",
  H: "d3 ~ db3 ~ db3 ~ db3 ~ db3@3 ~ db4 ~ gb3@2", I: "e3 ~ gb3 ~ gb3@3 ~ e3 ~ gb3 ~ gb3 ~ gb3@2",
  J: "e3 ~ d3@3 ~ d3@3 ~@5 gb3 ~", K: "e3 ~ gb3 ~ e3@3 ~ e3 ~ e3 ~ e3 ~ e3 ~",
  L: "d3 ~ db3 ~ db3 ~ db3@3 ~ gb3 ~ gb3 ~ gb3 ~", M: "e3@3 ~ gb3 ~ gb3 ~ e3 ~ gb3 ~ gb3 ~ gb3 ~",
  N: "e3 ~ d3 ~ d3 ~ d3@3 ~@7", O: "d3@3 ~ e3 ~ e3 ~ d3 ~ e3 ~ e3 ~ e3 ~", P: "d3 ~ c3 ~ c3 ~ c3@3 ~@7",
  Q: "f3@3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~", R: "f3 ~ d3@2 ~@2 d3 ~ d3@3 ~@5",
  S: "f3 ~ d3 ~ d3@2 ~@2 d3 ~ ab3 ~ f3 ~ ab2 ~", T: "~@2 d3 ~ d3 ~ d3 ~ d3@4 c3 ~@3",
  U: "f3 ~ d3 ~ d3 ~ d3 ~ d3@4 c3@2 ~@2", V: "g3!3 f3 bb3 ~ eb3!3 d3!2 c3!2 ~ bb2 ~",
  W: "g3!3 f3 bb3 ~ eb3!3 d3 c3 ~ c3 ~ bb2 ~", X: "eb3!9 d3 c3 ~ c3 ~ bb2 ~", Y: "eb3!16", Z: "eb3 ~@15",
})).s("gm_clavinet").gain(0.56)

// other · clavinet
const clavinet_2 = note(`<
  ~@15 A B A ~ A B A B A B A ~@41 A B A B A B A ~ A B A B A B A ~ A B A B A B A B ~@57
>`.pickRestart({
  A: "~@2 c3 ~@3 c3 ~@3 c3 ~@3 c3 ~", B: "~@2 ab2 ~@3 ab2 ~@3 bb2 ~@3 bb2 ~",
})).s("gm_clavinet").gain(0.23)

// other · trombone
const trombone = note(`<
  ~@35 A B C D A B C D A B C D A B C D A B C D A B C D A B C ~@67 A B C D A B C D A B C D A B C D A B ~
>`.pickRestart({
  A: "a2 ~@3 e2 ~@3 a2 ~@3 e2 ~@3", B: "b2 ~@3 e2 ~@3 b2 ~@3 e2 ~@3", C: "b2 ~@3 e2 ~@3 b2 ~@3 e2 ~ ab2 ~",
  D: "a2 ~@3 e2 ~@3 a2 ~ e2 ~ gb2 ~ ab2 ~",
})).s("gm_trombone").gain(0.22).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@18 A B@15 A B@27 A@2 C A C B@15 ~ B@8 A ~ B@15 A@2 ~ B@9 A B@7 A B@18 ~>".pickRestart({
  A: "x", B: "x!4", C: "x!2",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct(`<
  ~@19 A@7 B A@7 C ~@8 A@3 D A@7 D A@7 ~@4 B A@7 B A@3 E A@3 F A@8 ~@2 A@7 G A@7 ~@4 B A@3 H A@3 F A@3 H A@3 B A@7 D A@7
  D A@2 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@14 x!2", C: "~@4 x ~@9 x!2", D: "x!9 ~ x ~ x!3 ~", E: "~@4 x ~@3 x!5 ~ x ~",
  F: "~@4 x ~@3 x ~@2 x ~@2 x ~", G: "~@12 x!4", H: "x!16",
})).gain(0.64)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@26 A ~@7 B ~@31 A ~@7 A ~@37 A ~@15 A ~@19>".pickRestart({
  A: "x!14 ~@2", B: "~@4 x!10 ~@2",
})).gain(0.32)

// drums · clap
const clap = s("cp").struct("<~@19 A@7 ~ A@7 B ~@8 A@19 ~@5 A@7 ~ A@7 ~ A@8 ~@2 A@7 ~ A@7 ~@21 A@18 ~>".pickRestart({
  A: "~@4 x ~@2 x ~@2 x ~ x ~@3", B: "~ x ~@2",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@82 [~@3 x] ~@37 [~@3 x] ~@27>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@19 A@15 B ~@4 A@23 ~@5 A@15 ~ A@8 ~@2 A@7 B A@7 B ~@4 A@34 ~>".pickRestart({
  A: "x!4", B: "x",
})).gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@82 [~@5 x ~@2] ~@37 [~@5 x ~@2] ~@27>").gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@19 A@15 B ~@4 A@23 ~@5 A@15 ~ A@8 ~@2 A@7 ~ A@7 ~@5 A@34 ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~@6",
})).gain(0.4)

// drums · high tom
const high_tom = s("ht").struct("<~@82 [x ~@8 x ~@6] ~@37 [x ~@8 x ~@6] ~@27>").gain(0.64)

// drums · ride
const ride = s("rd").struct("<~@83 [x ~ x ~ x ~@2 x ~ x!2 ~ x ~@3]!8 ~@57>").gain(0.48)

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

// drums · shaker
const shaker = s("sh").struct(`<
  ~@19 A@7 ~ A@7 B ~@12 A@15 ~@5 A@7 ~ A@7 ~@5 A@4 ~@2 A@7 ~ A@7 C ~@4 A@15 ~ A@17 D ~
>`.pickRestart({
  A: "x!16", B: "x!4 ~@12", C: "x", D: "x!15 ~",
})).gain(0.48)

// drums · rim
const rim = s("rim").struct("<~@38 [~@6 x!10] ~@3 [~@6 x!10] ~@105>").gain(0.24)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@38 [~@4 x!2 ~@10] ~@3 [~@4 x!2 ~@10] ~@105>").gain(0.16)

stack(
  bass, bandoneon, distortion_guitar, string_ensemble_2, acoustic_guitar_nylon, acoustic_guitar_nylon_2, synth_brass_1,
  clavinet, clavinet_2, trombone, kick, snare, snare_soft, clap, low_tom, hihat, mid_tom, open_hat, high_tom, ride,
  crash, shaker, rim, rim_soft
// … 1 more lines

More by K2