Strudelify
Ich Glaub' Dir Jede Luge cover art

Schlager & Stars

Ich Glaub' Dir Jede Luge

Bernhard Brink

KeyC majorTempo105 bpm
0:00/0:00
// Ich Glaub' Dir Jede Luge — Bernhard Brink
// 105 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 94 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(105/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(`<
  A@3 B C D E F@2 G H B F G@2 I J B@2 K F H L M N O H F@2 P L M Q R S D K T U V@2 U G B V G@2 I K V F W X P Y M Q O H
  F@2 P Y Z@2 G AA F K P AB AC@2 P G B@2 P Y AC@2 P AD AE J AF AA F K AG G P AH ~
>`.pickRestart({
  A: "[g1@23 ~]/3", B: "g1@4 ~@2 g1 ~ g1@5 ~@3", C: "g1@4 ~@2 g1 ~ g1@4 d1@2 e1@2", D: "g1@5 ~ g1 ~ g1@6 ~@2",
  E: "g1@4 ~@2 g1 ~ g1@4 d1@4", F: "g1@4 ~@2 g1 ~ g1@6 ~@2", G: "c2@4 ~@2 c2 ~ c2@5 ~@3", H: "c2@4 ~@2 c2 ~ c2@6 ~@2",
  I: "e1@4 ~@2 e1 ~ e1@5 ~@3", J: "f1@4 ~@2 f1 ~ f1@6 ~@2", K: "f1@4 ~@2 f1 ~ f1@5 ~@3", L: "c2@2 ~ c2 d2@2 e2@2",
  M: "f2@4 ~@2 f2 ~ f2@4 c2@2 d2@2", N: "f2@4 ~@2 f2 ~ f2@7 ~", O: "c2@5 ~ c2 ~ c2@4 g1@2 a1 ~",
  P: "c2@4 ~@2 c2 ~ c2@4 g1@2 a1@2", Q: "f2@4 ~@2 f2 ~ f2@6 ~@2", R: "c2@4 ~@2 c2 ~ c2@4 g1 ~ a1 ~",
  S: "c2@5 ~ b1@6 a1@3 ~", T: "c2@5 ~ c2 ~ c2@4 ~@4", U: "c2@4 ~@2 c2 ~ c2@4 ~@4", V: "g1@4 ~@2 g1 ~ g1@4 ~@4",
  W: "f1@4 ~@2 f1 ~ f1@4 ~@4", X: "g1@5 ~ g1 ~ g1@5 ~@3", Y: "c2@5 ~ c2@2 d2@4 e2@4", Z: "f2@4 ~@2 f2 ~ f2@4 ~@4",
  AA: "c2@3 b1@3 a1@2", AB: "c2@5 ~ c2@2 d2@4 e2@3 ~", AC: "f2@4 ~@2 f2 ~ f2@5 ~@3", AD: "c2@5 ~ b1@6 a1@4",
  AE: "g1@4 ~@2 g1 ~ g1@7 ~", AF: "c2@5 ~ c2 ~ c2@5 ~@3", AG: "c2@4 ~@2 c2 ~ c2@4 g1@2 a1 ~", AH: "c2",
})).s("gm_electric_bass_finger").gain(0.51)

// bass · synth bass 1 · "SYNTH BASS"
const bass_2 = note(`<
  ~@3 A@6 B@2 A@2 B@2 C D A@2 D A B E F@2 B@2 A@2 B E F@2 B G A D B@2 A@2 B@2 A@2 B@2 C D A@2 D A B E F@2 B@2 A@2 B E
  F@2 B G A D B E F@2 B@2 A@2 B E F@2 B G A D B G A D B@3 H ~
>`.pickRestart({
  A: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", B: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~",
  C: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", D: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~",
  E: "c3 ~ c3 ~ c3 ~ c3 ~ d3 ~ d3 ~ e3 ~ e3 ~", F: "f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~ f3 ~",
  G: "c3 ~ c3 ~ c3 ~ b2 ~ b2 ~ b2 ~ a2 ~ a2 ~", H: "c3 ~@15",
})).s("gm_synth_bass_1").gain(0.36)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  A B@2 C@2 B@2 D@2 E@2 D@2 F@2 G H I@2 J K L@2 M@2 N@6 O@2 P@3 Q E@2 D@2 E@2 D@2 R@2 G Q S@2 J K T U M@2 V@2 D@2 W U
  O@2 P@3 Q X@2 O@2 Y@6 O@2 Z@3 Q AA@3 AB W AC@2 AD@2
>`.pickRestart({
  A: "[g2,g3]", B: "[[b3,d4,g4]@31 ~]/2", C: "[[d4,g4,b4]@27 ~ [c4,g4,a4]@3 ~]/2", D: "[[g3,b3,d4]@31 ~]/2",
  E: "[[g3,c4,e4]@31 ~]/2", F: "[f4@2 e4@2 d4@2 e4@25 ~, [g3,c4]@31 ~]/2", G: "[b3,e4,g4]@15 ~",
  H: "~@8 f#4 ~@7, [a3,c4,f4]@15 ~", I: "[[c4,a4]@6 [b3,g4]@25 ~, d4@31 ~]/2", J: "[a3,c4,f4]", K: "[b3,d4,g4]@15 ~",
  L: "[[d4,f4]@6 [c4,e4]@18 [d4,f4]@4 [e4,g4]@3 ~, g3@7 ~, a3 ~@31]/2", M: "[[a3,c4,f4]@15 ~]/2",
  N: "[f4@2 e4@30 [b3,d4]@31 ~ [c4,e4]@17 ~ [c4,e4]@6 [d4,f4]@3 ~ [e4,g4]@3 ~, g3@81 ~ g3@13 ~, c4@31 ~@65]/6", // Bm C Dm Em
  O: "[[a3,c4,f4]@31 ~]/2", P: "[f4@2 e4@13 ~ [e4,g4]@6 [d4,f4]@6 [c4,e4]@4 [b3,d4]@16, g3@23 ~, c4@5 ~@11]/3",
  Q: "[a3,c4,f4]@15 ~", R: "[f4@2 e4@2 d4@2 e4@25 ~, [g3,c4]@15 ~]/2",
  S: "[[c4,a4]@6 [b3,g4]@25 ~, d4@15 ~, e4 ~@31]/2", T: "f4@3 e4@5, [g3,c4]",
  U: "~@2 [c4,e4]@6 [d4,f4]@3 ~ [e4,g4]@3 ~, ~@2 g3@13 ~", V: "[f4@2 e4@29 ~, [g3,c4]@31 ~]/2", W: "[g3,c4,e4]",
  X: "[[c4,e4]@17 ~ [c4,e4]@6 [d4,f4]@3 ~ [e4,g4]@4, g3@31 ~]/2", // C Dm Em
  Y: "[e4@32 d4@32 [c4,e4]@17 ~ [c4,e4]@6 [d4,f4]@3 ~ [e4,g4]@3 ~, g3@95 ~, c4@15 ~ b3@15 ~@17]/6", // C Dm Em
  Z: "[f4@2 ~@14 g4@5 ~ [d4,f4]@6 [c4,e4]@4 [b3,d4]@16, g3@47 ~, c4@3 ~@5, ~ e4@10 ~@13]/3", // Dm C Bm
  AA: "[[c4,e4]@8 [e4,g4]@3 [d4,f4]@3 [c4,e4]@3 [b3,d4]@7, g3@47 ~]/3", AB: "[a3,c4,f4]@7 ~",
  AC: "[~ [g3,c4,e4]@5 [g3,c4,e4]@12 e4@6 f4@2 e4@2 d4@4, ~@18 [g3,c4]@13 ~]/2", // C C5
  AD: "[[g3,c4]@3 ~@2 c2@18 ~@9, e4@3 ~]/2", // C5
})).s("gm_pad_warm").gain(0.41)

// other · alto sax
const alto_sax = note("<~@70 A@5 B@4 ~@15>".pickRestart({
  A: "[~@2 c4 ~ c4@2 d4 ~ e4@2 g4 ~ a4 ~ c5@6 a4 ~@9 c5@6 a4 ~@5 c5@2 d5@2 c5@6 a4@2 g4@2 ~@2 g4@2 e4 d4 c4@6 ~@2 g4@2 a4@2 c5 ~ c5@2 a4@2, ~@62 d4 ~@17]/5",
  B: "[d5@4 b4 a4 g4@6 ~@2 g5@10 e5@2 d5@2 c5 ~ c5@12 d5@2 c5 ~ e5@10 d5 [c5,d5] a4@2 g4 e4 d4 c4]/4", // Csus2
})).s("gm_alto_sax").gain(0.46)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@3 ~@10 B ~@3 C ~@3 D E F G H ~@3 I@2 J K L M N O P@2 ~@6 Q ~@3 R ~@3 S T U V W@2 ~@2 X@2 Y Z AA AB AC O AD AE ~@6 AF
  AG AH AI AJ@2 AK O AL AM AN AO AP ~ AQ AR ~
>`.pickRestart({
  A: "[g2@11 ~]/3", B: "f5 e5 d5 e5@5, c5", C: "[c5,d5,a5]@5 ~ [b4,d5,g5]@9 ~", D: "[d5,f5]@3 [c5,e5]@5, g4",
  E: "~ [e4,c5]@3 [f4,d5]@2 [g4,e5]@2", F: "a4@15 ~, f5@11 ~@5", G: "[a4,f5]@9 ~ [g4,e5] ~ d5@2 ~@2, ~@12 f4 ~@3",
  H: "[a4,f5] ~ [g4,e5]@2 ~@2 [e4,g4]@10", // Dm C Em
  I: "[~@4 [e4,c5,c6]@4 [f4,d5]@4 [e5,e6]@4 ~@2 f4 ~ c5@4 d5@4 [g4,e5]@3 ~, ~@8 d6@2 ~@2 g4@15 ~@5, ~@8 g5@3 ~@5, ~@9 e4@4 ~@3]/2", // C Dm E C
  J: "f5@4 f6@3 ~ e6@2 ~@2 d6@2 ~@2, a4@15 ~, ~ f4@3", K: "[a4,f5]@5 e5 [f4,d5]@2, a5@5 ~@5 g4 ~@5",
  L: "[a4,f5]@2 [g4,e5]@3 ~ [e4,g4]@9 ~", M: "e5@5 ~ d5@6 c5@4, g4, e4@5 ~@3", N: "~ [g4,b4]@7", O: "[f4,a4]@13 ~@3",
  P: "[c5@8 d5@4 e5@4 c5@13 ~@3, e4@29 ~@3]/2", Q: "f5 e5 d5 e5@3 ~@2, c5@3 ~", R: "[c5,d5,a5]@2 ~ [b4,d5,g5]@4 ~",
  S: "f5@3 e5@4 ~, [g4,c5]@7 ~", T: "~ [e4,c5]@3 [f4,d5]@2 e5@2, ~@6 g4 ~", U: "f5@3 ~ f4@11 ~, a4@13 ~@3",
  V: "[a4,f5]@10 e5 ~ d5@2 ~@2", W: "[[a4,f5] ~ [g4,e5]@2 ~@2 [e4,g4]@12 ~@14]/2",
  X: "[~@2 [c5,c6]@2 [d5,d6]@2 [e5,e6]@2 ~@2 c5@2 d5@2 e5 ~, ~ e4@5 ~@2, ~@8 g4@7 ~, ~@2 g5 ~]/2", // C D E
  Y: "f5@3 ~ f6@2 ~@2 e6 ~@3 d6@2 ~@2, a4@13 ~@3, ~@4 f4@9 ~@3", Z: "[a4,f5]@9 ~ [g4,e5] ~ d5@2 ~@2, a5@5 ~@7 f4 ~@3",
  AA: "[a4,f5] ~ g4@2 ~@2 [e4,g4]@9 ~, ~@2 e5 ~@13", AB: "[c5,e5]@5 ~ [b4,d5]@4 ~@2 [a4,c5]@2 ~@2", AC: "[g4,b4]@3 ~",
  AD: "~ [e4,c5] [f4,d5] e5, ~@6 g4 ~", AE: "[c4,e4,g4]@3 ~", AF: "~ c5 d5 e5",
  AG: "g4 [e4,c5]@3 [f4,d5]@2 [g4,e5] ~, e4 ~@15", AH: "f5@4 f6@2 ~@2 e6 ~@3 d6 ~@3, a4@7 ~, ~@4 f4@9 ~@3",
  AI: "[a4,f5]@9 ~ [g4,e5] ~ [f4,d5]@3 ~, a5@3 ~@5", AJ: "[f5@2 [g4,e5] ~@3 [e4,g4]@16 ~@10, a4 ~@31]/2",
  AK: "[d4,g4]@15 ~, b3 ~", AL: "[e4,c5]@7 ~", AM: "[c5,e5]@5 ~ [b4,d5]@6 [a4,c5]@3 ~", AN: "[g4,b4]@15 ~",
  AO: "[f4,a4]@3 ~", AP: "[c4,c5]@7 ~", AQ: "c5@8 d5@5 ~@3, c4@13 ~@3", AR: "[e4,g4,e5] ~",
})).s("gm_string_ensemble_1").gain(0.31)

// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@17 A B C ~ D@2 ~@4 E@4 ~@4 F@4 ~@2 G@2 ~@2 H@2 ~@3 I J ~ K@2 ~@6 L@2 ~@4 M N O@2 ~@6 P@2 ~@4 Q R S@2 T@2 U V@2 W ~
>`.pickRestart({
  A: "~@3 [e4,a4]", B: "[d4,g4] e4 ~ g3, ~@4 b3@11 ~, ~ d4", C: "[a3,c4,f4]@9 ~@7",
  D: "[~@8 f4@2 ~@6 e3@7 ~@9, ~@10 e4@13 ~@9, ~@12 c4@11 ~@9, ~@14 g3@9 ~@9]/2",
  E: "[~@4 g4@23 ~@5 [c4,e4]@15 ~ [d4,g4]@4 [c4,e4]@7 ~@5, g3@27 ~@4 e3@21 ~@12, ~@2 b3@25 ~@5 g3@26 ~@6, ~@3 d4@24 ~@37]/4", // C G5 C
  F: "[[g3,b3,d4,g4]@12 ~@4 [a3,c4,f4]@11 ~@5 g3@16 ~@6 e4@7 ~@3, ~@15 f3@11 ~@5 e3@17 e3@12 ~@4, ~@16 [c4,e4]@9 g3@5 ~@2, ~@52 c4@9 ~@3]/4", // G F C
  G: "[~@12 [c4,f4]@2 [c4,e4]@13 ~@5, ~@12 g3@15 ~@5]/2", // F5 C
  H: "[~@8 g4@7 ~, ~@7 [g3,c4]@8 ~, ~@15 [d4,e4]@15 ~@2, ~@16 f4 ~@15]/2", I: "~@2 [e4,a4]@2 [d4,g4]@2 e4 d4, ~@3 b3",
  J: "[a3,c4]@3 ~, g3 ~@15", K: "[~@10 f4@2 ~@6 e3@11 ~@3, ~@12 e4@17 ~@3, ~@14 c4@15 ~@3, ~@16 g3@13 ~@3]/2",
  L: "[~@3 e3, ~@14 g4@8 g3@9 ~, ~@4 e4@3 ~, ~@9 d4@5 ~@2, ~@20 c4@9 ~@3]/2", M: "~ [b3,d4,g4]@12 ~@3",
  N: "[a3,c4,f4]@13 ~@3", O: "[[g3,c4]@7 ~@4 e4@3 ~@2, e4@4 c4@3 ~, ~@14 g3@13 ~@5, ~@9 d4@5 ~@2, ~@20 g4@7 ~@5]/2",
  P: "[~@9 e4@4 ~@3, ~@4 g3@9 ~@3, ~@10 c4@15 ~@7, ~@6 g4@7 ~@3, ~@7 d4@6 ~@3]/2", Q: "[b3,d4,g4]@13 ~@3",
  R: "[a3,c4,f4]@11 ~@5", S: "[[g3,c4]@8 ~@6 g4@9 ~@9, e4@10 c4@13 ~@9, ~ g3@2 ~, ~@12 d4@11 ~@9]/2",
  T: "[[g3,b3,d4,g4]@12 ~@4 [a3,c4,f4]@13 ~@3, ~@15 f3@14 ~@3]/2", U: "[g3,c4,e4]@15 ~, e3@3 ~@5",
  V: "[~@14 e4@10 d4@4 e4@3 ~, ~@4 c4@11 ~, ~@5 d4@2 ~@9, ~@12 g4@19 ~]/2", W: "[c4,g4]@5 ~@3, g3@7 ~@9",
})).s("gm_electric_guitar_muted").gain(0.41)

// other · music box
const music_box = note(`<
  ~ A B A C D E ~@16 F G H@2 ~@4 G@2 H@2 ~@20 I J H@2 ~@4 K L M N ~@4 F@2 O N ~@4 P F N O ~@6 Q R Q S ~
>`.pickRestart({
  A: "d5 ~ g5 ~ b5 ~ d5 ~ a5 ~ d5 ~ g5 ~ a5 ~", B: "d5 ~ g5 ~ b5@2 d5 ~ a5 ~ d5 ~ g5 ~ a5 ~",
  C: "d5 ~ g5 ~ b5@2 d5 ~ a5@2 d5 ~ g5 ~ a5 ~", D: "d5 ~ g5 ~ b5@2 d5 ~ a5@2 d5 ~ g5 ~ a5@2",
  E: "d5@2 g5@2 b5@2 d5 ~ a5@2 d5 ~ g5@2 a5 ~", F: "~@2 a5 ~ f6@2 a5 ~ e6@2 a5 ~ c6 ~ d6 ~",
  G: "~@2 a5 ~ f6 ~ a5 ~ e6 ~ a5 ~ c6 ~ d6 ~", H: "~@2 g5 ~ e6 ~ g5 ~ d6 ~ g5 ~ c6 ~ d6 ~",
  I: "~@2 a5@2 f6@2 a5@2 e6@2 a5@2 c6 ~ d6 ~", J: "~@2 a5 ~ f6@2 a5 ~ e6 ~ a5 ~ c6 ~ d6 ~",
  K: "~@2 a5@2 f6@2 a5@2 e6@2 a5 ~ c6 ~ d6 ~", L: "~@2 a5 ~ f6@2 a5 ~ e6@2 a5@2 c6@2 d6 ~",
  M: "~@2 g5 ~ e6@2 g5@2 d6@2 g5@2 c6@2 d6 ~", N: "~@2 g5 ~ e6@2 g5 ~ d6@2 g5 ~ c6 ~ d6 ~",
  O: "~@2 g5 ~ e6@2 g5 ~ d6 ~ g5 ~ c6 ~ d6 ~", P: "~@2 a5@2 f6@2 a5@2 e6@2 a5@2 d6@2 a5 ~", Q: "c6 ~@7 d6 ~@7",
  R: "e6 ~@7 d6 ~@7", S: "e6 ~@15",
})).s("gm_music_box").gain(0.28).pan(0.3)

// chords · pizzicato strings · "PIZZICATO"
const pizzicato_strings = note(`<
  ~@7 A@2 B@2 A@2 B@2 C D E F D F G H D@2 I B A@2 B H D@2 I J A D B@2 A@2 B@2 A@2 K B C D E F D F L H D@2 I B A@2 B H
  D@2 I J A D B H D@2 I B A@2 B H D@2 I J A M B J A D B@2 N O ~
>`.pickRestart({
  A: "[g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~ [g4,b4,d5] ~", // G
  B: "[g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // C
  C: "[g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~ [g4,b4,e5] ~", // Em
  D: "[a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~ [a4,c5,f5] ~", // F
  E: "[c5,d5,a5] ~ [c5,d5,a5] ~ [c5,d5,a5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // D7 G
  F: "[b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~ [b4,d5,g5] ~", // G
  G: "[g4,d5,f5] ~ [g4,d5,f5] ~ [g4,d5,f5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // G7 C
  H: "[g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,d5,f5] ~ [g4,d5,f5] ~ [g4,e5,g5] ~ [g4,e5,g5] ~", // C G7 C
  I: "[g4,c5,f5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // Csus4 C
  J: "[g4,e5,g5] ~ [g4,e5,g5] ~ [g4,e5,g5] ~ [g4,d5,f5] ~ [g4,d5,f5] ~ [g4,d5,f5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // C G7 C
  K: "[g4,c5,f5] ~ [g4,c5,e5] ~ [g4,c5,d5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // Csus4 C Gsus4 C
  L: "[g4,c5,f5] ~ [g4,c5,f5] ~ [g4,c5,f5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~", // Csus4 C
  M: "[f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~", // F
  N: "[g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,e5] ~ [g4,c5,f5] ~ [g4,c5,e5] ~ [g4,c5,d5] ~ [g4,c5,d5] ~", // C Csus4 C Gsus4
  O: "[c5,e5]@2 g4 ~@13, g4 ~@15", // C
})).s("gm_pizzicato_strings").gain(0.26).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~@3 [x ~@2 x!2 ~@3]!89 x ~>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~@3 A@19 B C@7 B C@8 A@15 B C@7 B C@7 B C@7 B C@7 B C@5 ~@2>".pickRestart({
  A: "~@3 x", B: "~ x ~@2 x ~ x ~", C: "~ x ~ x",
})).gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@6 A ~@15 A ~@7 B ~@23 A ~@7 C ~@3 D ~@3 E ~@7 A ~@3 D ~@8 A ~@2>".pickRestart({
  A: "~@14 x!2", B: "~@12 x ~ x!2", C: "~@7 x", D: "~@6 x!2", E: "~@15 x",
})).gain(0.41)

// drums · hihat
const hihat = s("hh").struct("<~@3 [x!8]!89 ~@2>").gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<~@6 A ~@15 B ~@7 C ~@23 C ~@7 B ~@3 D ~@3 B ~@7 A ~@3 D ~@8 A ~@2>".pickRestart({
  A: "~@3 x ~@2 x ~", B: "~@5 x!2 ~", C: "~@4 x!2 ~@2", D: "~@5 x ~@2",
})).gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@6 A ~@15 B ~@7 C ~@23 C ~@7 C ~@3 D ~@3 E ~@7 F ~@3 G ~@8 F ~@2>".pickRestart({
  A: "~ x ~@3 x ~@2", B: "~ x ~ x!2 ~@3", C: "~ x!3 ~@4", D: "~@3 x ~@4", E: "~@2 x!3 ~ x ~ x ~@5 x ~",
  F: "~ x ~@2 x!2 ~@2", G: "~ x ~ x ~@4",
})).gain(0.46)

// drums · crash
const crash = s("cr").struct("<~@3 A ~@3 A ~@15 A ~@7 A ~@23 A ~@7 A ~@7 A ~@7 A ~@3 A ~@3 A ~@4 A ~>".pickRestart({
  A: "x",
})).gain(0.26)

// drums · claves
const claves = s("clave:2").struct(`<
  ~@7 A B A B A B A B A B A B A B A B ~@16 A B A B A B A B A B A B A B A B ~@39
>`.pickRestart({
  A: "~@3 x ~@4", B: "~ x ~@6",
})).gain(2.01)

stack(
  bass, bass_2, pad_warm, alto_sax, string_ensemble_1, electric_guitar_muted, music_box, pizzicato_strings, kick, snare,
  low_tom, hihat, mid_tom, high_tom, crash, claves
)

More by Bernhard Brink