Strudelify

Moeder het is weer mis

De Deurzakkers

KeyA♭ majorTempo121 bpm
0:00/0:00
// Moeder het is weer mis — De Deurzakkers
// 121 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 104 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(121/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · tuba
const bass = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T@2 U V W X Y Z AA AB AC AD AE AF AG AH D E F G H I J K L M N O P Q R S T@2 U
  V W X Y Z AA AB AC AD AE AF AG AH D E F G H I J K L M N O P Q R S D E F G H I J K L M N O P Q R S T@2 U AI
>`.pickRestart({
  A: "eb2 ~@3 eb2@2 ~@2 eb2@2 ~@6", B: "eb2 ~@7 bb2@2 ab2 ~ g2 ~ f2 ~", C: "eb2 ~@3 eb2!2 ~ eb2!2 ~@7",
  D: "ab2 ~ eb2 ~ ab2 ~ eb2 ~", E: "ab2 ~@3 g2@2 ~@2 f2 ~@3 eb2@2 ~@2", F: "ab2 ~ eb2 ~ c3 ~ b2 ~",
  G: "bb2 ~@3 eb2@2 ~@2 bb2 ~@3 eb2@2 ~@2", H: "bb2 ~ eb2 ~ bb2 ~ eb2 ~", I: "bb2 ~@3 g2@2 ~@2 f2 ~@3 eb2@2 ~@2",
  J: "bb2 ~ eb2 ~ f2 ~ g2 ~", K: "ab2 ~@3 eb2@2 ~@2 ab2 ~@3 eb2@2 ~@2", L: "ab2 ~ eb2 ~ c2 ~ ab1 ~",
  M: "db2 ~@3 ab1@2 ~@2 db2 ~ ab2@2 g2@2 ab2 ~", N: "bb2 ~ f2 ~ d2 ~ bb1 ~", O: "eb2 ~ eb2@2 f2@2 gb2 ~ g2 ~@7",
  P: "ab2 ~ eb2 ~ ab2 ~ gb2 ~", Q: "f2 ~@3 c2@2 ~@2 f2 ~@3 a2@2 ~@2", R: "bb2@2 ~@2 bb2@2 ~@2 eb2@2 ~@2 eb2@2 g2 ~",
  S: "ab2 ~ f2@2 eb2 ~ c2 ~ ab1 ~@3 ab1@2 ~@2", T: "eb2 ~ bb1 ~ eb2 ~ bb1 ~", U: "eb2 ~ bb1 ~ eb2 ~ g2 ~",
  V: "ab2 ~ f2@2 eb2 ~ c2 ~ ab1@2 ~@6", W: "ab1 ~ eb2 ~ c2 ~ b1 ~", X: "bb1 ~@3 eb2@2 ~@2 bb2@2 ~@2 eb2@2 ~@2",
  Y: "bb1 ~ eb2 ~ bb2 ~ eb2 ~", Z: "ab2 ~ g2 ~ f2 ~ eb2 ~", AA: "ab2 ~ eb2 ~ c2 ~ b1 ~",
  AB: "bb1 ~@3 eb2@2 ~@2 bb1@2 ~@2 eb2@2 ~@2", AC: "bb1 ~ f2 ~ bb1 ~ bb1 ~", AD: "eb2@2 ~@2 bb2@2 g2@2 eb2 ~@7",
  AE: "eb2 ~ eb2 ~ bb1 ~ bb1 ~", AF: "eb2 ~ bb1 ~ eb2 ~@3", AG: "eb2 ~ eb2 ~ gb2 ~ gb2 ~",
  AH: "g2@2 ~@2 eb2!2 ~ eb2!2 ~@7", AI: "ab2 ~ f2@2 eb2 ~ c2 ~ ab1@2 ~@2 ab1@2 ~@2",
})).s("gm_tuba").gain(0.35)

// chords · trombone
const trombone = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ E F G H I J K L M N O P Q R S T U V
  W X Y Z AA AB AC AD AE AF AG AH AI AJ E F G H I J K L M N O P Q R S T E F G H I J K L M N O P Q R S T U V W AK
>`.pickRestart({
  A: "eb3@2 ~ f3 g3 ~ ab3 ~ bb3 ~@7", B: "[eb3,g3]@2 ~ [f3,ab3] [g3,bb3] ~ [ab3,c4] ~ [bb3,db4] ~@7",
  C: "[db4,f4]@2 ~ [c4,eb4] [bb3,db4] ~ [ab3,c4] ~ [g3,bb3]@2 [f3,ab3] ~ [eb3,g3] ~ [db3,f3] ~", // Db Cm Bbm Ab Gm Fm Eb Db
  D: "[eb3,g3] ~@3 [eb3,a3]!2 a3 eb3 [eb3,bb3] ~@7", E: "[eb3,c4] ~ [eb3,c4]@3 ~ [eb3,c4] ~ [f3,db4]@3 ~ [eb3,c4]@3 ~",
  F: "[ab3,c4]@4 [ab3,c4] ~ [ab3,c4] ~ [ab3,c4]@3 ~ [ab3,c4]@3 ~", // Ab
  G: "[ab3,c4]@3 ~ [ab3,c4]@3 ~ [ab3,c4]@3 ~ [ab3,d4]@3 ~", H: "[bb3,db4]@5 ~ [bb3,db4] ~ [bb3,db4]@2 db4@2 bb3 ~ g3 ~",
  I: "[eb3,db4] ~ [eb3,db4]@3 ~ [eb3,db4] ~ [f3,db4]@3 ~ [eb3,db4]@3 ~", // Eb7 Db Eb7
  J: "[bb3,db4]@2 bb3@2 [bb3,db4] ~ [bb3,db4] ~ [g3,db4]@2 ~@2 [g3,bb3]@3 ~", // Bbm Gdim Gm
  K: "[ab3,db4]@3 ~ [g3,bb3]@2 ~@2 [g3,db4]@3 ~ [g3,b3]@3 ~", // Db5 Gm Gdim G
  L: "ab3 ~ ab3@3 ~ [ab3,c4] ~ [ab3,c4]@2 f4@2 eb4 ~ [ab3,c4] ~, db4@4 ~@6 ab3 ~@5", // Ab
  M: "[ab3,c4]@2 ~@2 [ab3,c4]@2 ~@2 [gb3,c4]@2 ~@2 [gb3,c4]@3 ~", // Ab Gbdim
  N: "[f3,db4]@2 ~@2 [f3,db4]@2 ~@2 [f3,f4]@2 ~@4 [a3,db4] ~", // Db F A
  O: "[bb3,d4]@3 ~ [bb3,d4]@2 ~@2 [ab3,d4]@2 ~@2 [ab3,d4]@2 ~@2", // Bb Abdim
  P: "[g3,eb4]@3 ~ [ab3,eb4] ~ [a3,eb4] ~ [bb3,eb4] ~@7", // Cm Ab5 Adim Eb5
  Q: "[ab3,c4] ~ c4@2 gb3@4 ~@2 c4 ~ gb3@2 c4 ~, ~@2 ab3 ~@9 c4 ~@3", // Ab
  R: "f3@2 f3 ~ c4@2 [bb3,c4] ~ [a3,eb4]@4 ~@2 [a3,c4] ~, c4 ~@3", // Bbsus2 Adim Am
  S: "[bb3,db4]@2 ~@2 [ab3,db4]@2 ~@2 [g3,bb3]@2 ~@2 [g3,db4]@3 ~", // Bbm Db5 Gm Gdim
  T: "[ab3,c4]@3 ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~@3 [ab3,c4] ~@3", U: "~ [eb3,eb4]@2 ~",
  V: "~@2 eb3!2 g3 ~ [g3,bb3] ~@3 [g3,bb3]!3 ~@3, ~ bb2@2 ~@13", W: "~@4 [eb3,eb4]@8 ~@2 [g3,db4] ~",
  X: "[ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,eb4] ~@7", Y: "[ab3,c4]@2 [c4,eb4] [b3,d4]",
  Z: "[bb3,db4]@13 ~ [bb3,db4] ~", AA: "[bb3,db4]@2 [bb3,eb4] [bb3,db4]", AB: "[ab3,c4]@12 ~@2 [bb3,db4] ~",
  AC: "[ab3,c4]@7 ~ [c4,eb4]@4 [b3,d4]@4", AD: "[bb3,db4]@4 [g3,eb4]@8 ~@2 [g3,eb4] ~", AE: "[ab3,d4]",
  AF: "[g3,eb4] ~ [g3,db4] db4 [bb3,db4] ~ [g3,db4] ~ [eb3,db4] ~@3 eb3 ~@2 f3", AG: "g3@2 ~@2 g3@3 ~ f3@3 ~ f3@3 ~",
  AH: "eb3@8 eb3 ~@3 eb3 ~@2 f3", AI: "[g3,eb4]@3 ~ [g3,eb4]@3 ~ [a3,eb4]@3 ~ [a3,eb4]@3 ~",
  AJ: "[bb3,eb4]@4 [eb3,eb4]!3 ~ [eb3,eb4] ~@7", // Eb5 Eb
  AK: "[ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,c4] ~ [ab3,eb4] ~@3 [ab3,c4] ~@3", // Ab Ab5 Ab
})).s("gm_trombone").gain(0.48).pan(0.7)

// chords · trumpet
const trumpet = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X ~ Y ~ Z ~ AA ~ AB ~ AC ~ AC E F G H I J K L M N O P Q R S T U V W X ~
  Y ~ Z ~ AA ~ AB ~ AC ~ AC E F G H I J K L M N O P Q R S T E F G H I J K L M N O P Q R S T U V W AD
>`.pickRestart({
  A: "eb4@2 ~ f4 g4 ~ ab4 ~ bb4 ~@7", B: "[eb4,g4]@2 ~ [f4,ab4] [g4,bb4] ~ [ab4,c5] ~ [bb4,db5] ~@7",
  C: "[db5,f5]@2 ~ [c5,eb5] [bb4,db5] ~ [ab4,c5] ~ [g4,bb4]@2 [f4,ab4] ~ [eb4,g4] ~ [db4,f4] ~", // Db Cm Bbm Ab Gm Fm Eb Db
  D: "[bb3,eb4] ~@3 [eb4,eb5]!3 ~ [eb4,eb5] ~@7", // Eb5 Eb
  E: "[eb4,c5] ~ [eb4,c5]@2 ~@2 [eb4,c5] ~ [f4,db5]@2 ~@2 [eb4,c5]@2 ~@2", // Cm Db Cm
  F: "[eb4,c5] ~ [c4,eb4] ~ [eb4,ab4] ~ [ab4,c5] ~ [c5,eb5] ~@3 [g4,c5]@2 ~@2", // Cm Ab5 Ab Cm C5
  G: "[bb4,c5]@2 ~@2 [ab4,c5]@2 ~@2 [eb4,eb5]@3 ~ [ab4,d5]@3 ~", // Bbsus2 Ab Eb Abdim
  H: "[ab4,db5]@5 ~ [g4,db5] ~ [g4,db5] ~ db5@2 bb4 ~ g4 ~", // Db5 Gdim
  I: "[eb4,db5] ~ [eb4,db5]@2 ~@2 [eb4,db5] ~ [f4,db5]@2 ~@2 [eb4,db5]@3 ~", // Eb7 Db Eb7
  J: "[g4,db5] ~ eb4 ~ g4 ~ [bb4,db5] ~ [bb4,db5] ~@3 [ab4,f5]@3 ~", // Gdim Bbm Db
  K: "[ab4,f5]@3 ~ [g4,eb5]@2 ~@2 [bb4,g5]@2 ~@2 [g4,eb5]@2 ~@2", L: "[f4,db5]@6 [eb4,c5] ~ [eb4,c5] ~ f5@2 eb5 ~ c5 ~",
  M: "~@2 [ab4,c5] ~@3 [ab4,c5] ~@3 [ab4,c5] ~@3 [c5,eb5] ~", N: "~@2 [ab4,db5] ~@3 [ab4,db5] ~@3 [db5,f5]!3 ~@3",
  O: "~@2 [bb4,d5] ~@3 [bb4,d5] ~@3 [ab4,d5] ~@3 [ab4,d5] ~", P: "g4 ~ [g4,eb5] eb5 [ab4,f5] ~ [a4,gb5] ~ [bb4,g5] ~@7",
  Q: "[eb4,c5] ~ [eb4,c5]@6 ~@2 [eb4,c5]@2 [f4,db5]@2 [eb4,c5]@2", R: "[eb4,eb5]@8 ~@2 [a4,f5]!3 ~@3",
  S: "~@2 ab4@2 [ab4,db5]@4 [g4,eb5]@3 ~ [bb4,db5]@4, ~@2 db5 ~@13", // Db5 Cm Bbm
  T: "[ab4,c5]@2 [c4,ab4]@2 [eb4,c5] ~ [ab4,eb5] ~ [c5,ab5] ~@3 [c5,ab5] ~@3", // Ab Fm Cm Ab5 Fm
  U: "[g4,eb5]@3 ~ [g4,eb5]@5 ~ [g4,eb5]@2 db5@2 [eb4,c5]@2, ~@12 f4 ~@3", // Cm
  V: "[db4,bb4]@2 eb4@2 g4 ~ bb4 ~@3 [g4,eb5]!3 ~@3", W: "[f4,db5]@3 ~ [f4,db5]@5 ~ [f4,db5]@2 [eb4,c5]@2 [db4,bb4]@2",
  X: "[c4,ab4]@2 ab4@2 [eb4,c5] ~ [eb4,eb5] ~ [ab4,ab5] ~@7, ~@2 eb4 ~@13", Y: "~@2 db5@2 bb4 ~ g4 ~ eb4 ~@7",
  Z: "~@2 c5@2 ab4 ~ f4 ~ eb4 ~@7", AA: "~@2 bb4@2 g4 ~ [eb4,bb4] ~ [g4,eb5] ~@7",
  AB: "~@2 [g3,eb4]!2 [bb3,g4] ~ [eb4,bb4] ~ [g4,eb5] ~@7", AC: "~@4 [g3,eb4] [bb3,g4] [eb4,bb4] ~ [g4,eb5] ~@7",
  AD: "[c4,ab4]@2 ab4@2 [eb4,c5] ~ [eb4,eb5] ~ [ab4,ab5] ~@3 [ab4,ab5] ~@3, ~@2 eb4 ~@13", // Fm Cm Eb Ab
})).s("gm_trumpet").gain(0.48).pan(0.4)

// other · tinkle bell · "TINKLEBELL"
const tinkle_bell = note(`<
  A B C D E F G H E I J K ~@3 L M N O P ~ Q ~ R ~@9 S ~ S E F G H E I J K ~@3 L M N O P ~ Q ~ R ~@9 S ~ S E F G H E I J
  K ~@3 L M N O P E F G H E I J K ~@3 L M N O P ~ Q ~ T
>`.pickRestart({
  A: "eb6 ~@2 f6 g6 ~ ab6 ~ bb6 ~@7", B: "g6 ~@2 ab6 bb6 ~ c7 ~ db7 ~@7",
  C: "f7 ~@2 eb7 db7 ~ c7 ~ bb6 ~ ab6 ~ g6 ~ f6 ~", D: "eb6 ~@3 eb7!2 ~ eb7!2 ~@7",
  E: "eb7 ~ eb7 ~@3 eb7 ~ f7 ~@3 eb7 ~@3", F: "c8 ~@11 g7 ~@3", G: "bb7 ~@3 ab7 ~@3 eb7 ~@3 ab7 ~@3",
  H: "ab7 ~@5 g7 ~ g7 ~@7", I: "bb7 ~@11 ab7 ~@3", J: "ab7 ~@3 g7 ~@3 bb7 ~@3 g7 ~@3", K: "ab7 ~@5 ab7 ~ ab7 ~@7",
  L: "~@12 eb7 ~@3", M: "ab7 ~ ab7 ~@7 gb7@2 gb7@2 gb7 ~", N: "c8 ~@9 f7 ~ a7 ~ c8 ~",
  O: "db8 ~ f7 ~ f7 ~ ab7 ~ g7 ~ g7 ~ ab7 ~ bb7 ~", P: "ab7 ~@15", Q: "~@2 eb6 ~ g6 ~ bb6 ~@3 eb7!3 ~@3",
  R: "~@2 ab6 ~ c7 ~ eb7 ~ ab7 ~@7", S: "~@4 eb6 g6 ~ bb6 eb7 ~@7", T: "~@2 ab6 ~ c7 ~ eb7 ~ ab7 ~@3 ab7 ~@3",
})).s("gm_tinkle_bell").gain(0.4)

// chords · clarinet
const clarinet = note(`<
  ~@4 A@2 B C@4 D E F G H A I J K L M N O P C Q A B R S T R T U V A@2 B C@4 D E F G H A I J K L M N O P C Q A B R S T R
  T U V A@2 B C@4 D E F G H A I J K A@2 B C@4 D E F G H A I J K L M N W
>`.pickRestart({
  A: "~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~", B: "~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [b4,d5] ~",
  C: "~@2 [bb4,db5] ~@3 [bb4,db5] ~@3 [bb4,db5] ~@3 [bb4,db5] ~", // Bbm
  D: "~@2 [ab4,db5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~@3 [c5,eb5] ~", // Db5 Cm
  E: "~@2 [c5,eb5] ~@3 [c5,eb5] ~@3 [gb4,c5] ~@3 [gb4,c5] ~", // Cm Gbdim
  F: "~@2 [ab4,db5] ~ [bb4,db5] ~ [ab4,db5] ~@3 [ab4,db5] ~@3 [ab4,db5] ~", // Db5 Bbm Db5
  G: "~@2 [bb4,d5] ~@3 [bb4,d5] ~@3 [ab4,d5] ~@3 [ab4,d5] ~", // Bb Abdim
  H: "[g4,eb5] ~ [g4,eb5] ~ [ab4,eb5] ~ [a4,d5] ~ [bb4,db5] ~@7", // Cm Ab5 D5 Bbm
  I: "~@2 [a4,eb5] ~@3 [a4,eb5] ~@3 [a4,eb5] ~@3 [c5,eb5] ~", // Adim Cm
  J: "~@2 [f4,db5] ~@3 [f4,db5] ~@3 [g4,eb5] ~@3 [bb4,db5] ~", K: "~@2 [ab4,c5] ~@3 [ab4,c5] ~ [ab4,c5] ~@7",
  L: "[eb5,g5]@3 ~ [eb5,g5]@5 ~ [eb5,g5]@2 [db5,f5]@2 [c5,eb5]@2", M: "[bb4,db5] ~",
  N: "[db5,f5]@3 ~ [db5,f5]@5 ~ [db5,f5]@2 [c5,eb5]@2 [bb4,db5]@2", O: "[ab4,c5] ~",
  P: "~@2 [ab4,c5] ~@3 [ab4,c5] ~@3 [c5,eb5] ~@3 [b4,d5] ~", // Ab Cm Bm
  Q: "~@2 [bb4,db5] ~@3 [bb4,db5] ~@3 [g4,db5] ~@3 [g4,db5] ~", // Bbm Gdim
  R: "~@2 [bb4,eb5] ~@3 [bb4,eb5] ~@3 [bb4,eb5] ~@3 [bb4,eb5] ~", // Eb5
  S: "~@2 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~@3 [bb4,d5] ~", T: "~@2 [bb4,eb5] ~@3 [bb4,eb5] ~ [bb4,eb5] ~@7",
  U: "~@2 [bb4,eb5] ~@3 [bb4,eb5] ~@3 [a4,eb5] ~@3 [a4,eb5] ~", V: "[bb4,eb5] ~@3 [bb4,eb5]!2 ~ [bb4,eb5]!2 ~@7",
  W: "[ab4,c5]@8 ~@4 [ab4,c5] ~@3", // Ab
})).s("gm_clarinet").gain(0.32)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A@2 B A C@2 D E@2 F E C@2 G H I J K L M E@2 F N D F@2 C D F H I O I P Q C@2 D E@2 F E C@2 G H I J K L M E@2 F N D F@2
  C D F H I O I P Q C@2 D E@2 F E C@2 G H I J K L M C@2 D E@2 F E C@2 G H I J K L M E@2 F M
>`.pickRestart({
  A: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@7", B: "[bb3,eb4,g4] ~@7 [bb3,eb4,g4] ~@7",
  C: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~", // Ab
  D: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [b3,d4,f4] ~", // Ab Bdim
  E: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~", // Eb
  F: "~@2 [bb3,db4,g4] ~@3 [bb3,db4,g4] ~@3 [bb3,db4,g4] ~@3 [bb3,db4,g4] ~", // Gdim
  G: "~@2 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~@3 [db4,f4,ab4] ~", // Db
  H: "~@2 [d4,f4,ab4] ~@3 [d4,f4,ab4] ~@3 [d4,f4,ab4] ~@3 [d4,f4,ab4] ~", // Ddim
  I: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~ [bb3,eb4,g4] ~@7", // Eb
  J: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3 [c4,eb4,gb4] ~@3 [c4,eb4,gb4] ~", // Ab Cdim
  K: "~@2 [a3,eb4,f4] ~@3 [a3,eb4,f4] ~@3 [c4,eb4,a4] ~@3 [c4,eb4,a4] ~", // F7 Adim
  L: "~@2 [db4,f4,bb4] ~@3 [db4,f4,ab4] ~@3 [bb3,db4,g4] ~@3 [bb3,db4,g4] ~", // Bbm Db Gdim
  M: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~@3", // Ab
  N: "~@2 [c4,eb4,ab4] ~@3 [c4,eb4,ab4] ~ [c4,eb4,ab4] ~@7", // Ab
  O: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [ab3,d4,f4] ~@3 [ab3,d4,f4] ~", // Eb Ddim
  P: "~@2 [bb3,eb4,g4] ~@3 [bb3,eb4,g4] ~@3 [c4,eb4,a4] ~@3 [c4,eb4,a4] ~", // Eb Adim
  Q: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~@7", // Eb
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.3)

// drums · kick
const kick = s("bd").struct("<A@2 B C@20 A C@7 A C A C@21 A C@7 A C A C@38>".pickRestart({
  A: "x!3 ~", B: "x!2", C: "x!4",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct(`<
  A@2 B C D E F G D H F G F E F I D H F J K L M N D H E G F E O P Q R S C D E F G D H F G F E F I D H F J K L M N D H E
  G F E O P Q R S C D E F G D H F G F E F I D H F J D E F G D H F G F E F I D H F J K L M T
>`.pickRestart({
  A: "x!9 ~@7", B: "x!2", C: "x ~@3 x!2 ~ x!2 ~@7", D: "~@2 x ~@3 x ~@3 x ~@3 x!2", E: "x ~ x ~@3 x ~@3 x!3 ~ x!2",
  F: "x ~ x ~@3 x ~@3 x ~@3 x!2", G: "x ~ x ~@3 x ~@3 x!6", H: "x ~ x ~@3 x ~@3 x ~ x!4", I: "x ~ x!2 ~@2 x!3 ~@7",
  J: "x!5 ~@3", K: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~ x!2 ~", L: "x ~ x!2 ~@2 x!2 ~@2 x!6",
  M: "x ~ x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2", N: "x!3 ~ x ~ x ~ x ~@7", O: "x!2 ~ x ~ x ~ x", P: "x ~ x!3 ~ x ~ x ~@7",
  Q: "~ x ~ x ~ x ~ x", R: "~@2 x!3 ~ x ~ x ~@7", S: "~@2 x ~@3 x ~@3 x!3 ~ x ~", T: "x!3 ~ x ~ x ~ x ~@3 x ~@3",
})).gain(0.24)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A@2 B A C@11 D C@3 D C@3 D C@7 D C D C E C@11 D C@3 D C@3 D C@7 D C D C A C@11 D C@3 D C@11 D C@3 D C@3 F
>`.pickRestart({
  A: "x!3 ~", B: "x!2", C: "~ x ~ x ~ x ~ x", D: "~ x ~ x ~@4", E: "~ x!2 ~", F: "~ x ~ x!2 ~ x ~",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct(`<
  A@2 ~ B ~@8 C ~ C A ~@3 A ~@3 D ~@7 D ~ D ~ A ~@8 C ~ C A ~@3 A ~@3 D ~@7 D ~ D ~ A ~@8 C ~ C A ~@3 A ~@8 C ~ C A ~@3
  A ~@3 E
>`.pickRestart({
  A: "~@3 x", B: "~ x!3", C: "x", D: "~ x", E: "~@2 x!2",
})).gain(0.48)

// drums · congas
const congas = s("conga:13").struct("<~@35 x ~@68>").gain(1.28)

stack(bass, trombone, trumpet, tinkle_bell, clarinet, electric_guitar_clean, kick, snare, tambourine, ride, congas)

More by De Deurzakkers