Strudelify

Wij vieren feest

De Deurzakkers

KeyC majorTempo120 bpm
0:00/0:00
// Wij vieren feest — De Deurzakkers
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 12 "TUBA" tuba (copy of ch 2 "SYN BASS 1" synth bass 1)
// note: Full arrangement: all 109 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · synth bass 1 · "SYN BASS 1"
const bass = note(`<
  ~ A B C D A B C E F B G B H I C@2 J A B K L B M N O P Q K@2 R B S T U V W B G B H I C@2 J A B K L B M N O P Q K@2 R B
  S T U V W B G B H I C@2 J A B K L B M N X Y B C D Y B C E F B G B H I C@2 J A B K L B M Z AA Z AA Z AB
>`.pickRestart({
  A: "a#2 ~@2 f2 ~@2 a#2 ~@2 f2 ~@2", B: "f2 ~@2 c2 ~@2 f2 ~@2 c2 ~@2", C: "g2 ~@2 c2 ~@2 g2 ~@2 c2 ~@2",
  D: "f2 ~@2 c2 ~@2 f2 ~@2 f2 g2 a2", E: "g2 ~@2 c2 d2 e2 f2 ~@5", F: "c2 ~@2 c2 ~@2 d2 ~@2 e2 ~@2",
  G: "f2 ~@2 c2 ~@2 f2 ~@2 c2 d2 e2", H: "g2 ~@2 c2 ~@2 g2 ~@5", I: "~@3 c2 ~@2 g2 ~@2 c2 ~@2",
  J: "f2@2 ~@4 c2@2 ~@4 f2@2 ~@5 g2@2 a2@2 ~, ~@9 f2 ~@2", K: "g2 ~@2 d2 ~@2 g2 ~@2 d2 ~@2",
  L: "c2 ~@2 g2 ~@2 c2 ~@2 c2 d2 e2", M: "f2 ~@2 d#2 ~@2 d2 ~@2 a2 ~@2", N: "g2 ~@2 d2 ~@2 c2 ~@2 e2 ~@2",
  O: "f2 ~@5 f2 ~@2 f2 ~ f#2", P: "g2 ~@2 d2 ~@2 g2 ~@2 g2 a2 b2", Q: "c3 ~@2 g2 ~@2 c3 ~@2 g2 ~@2",
  R: "c3 ~@2 g2 ~@2 c3 ~@2 c2 d2 e2", S: "f2 ~@2 c2 ~@2 c3 ~@2 g2 ~@2", T: "g2@2 ~@3 d2@2 ~@5 g2@2 ~@4 d2@2 ~@4",
  U: "g2 ~@2 d2 ~@2 c2 ~@2 g2 ~@2", V: "c3 ~@2 g2 ~@2 c3 ~@2 c3 ~@2", W: "c3 ~@2 g2 ~@2 c2 ~@3 d2 e2",
  X: "f2 ~@2 c2 ~@2 f2 ~@5", Y: "~@3 f2 ~@2 a#2 ~@2 f2 ~@2", Z: "~@3 d2 ~@2 c2 ~@2 e2 ~@2",
  AA: "f2 ~@2 e2 ~@2 d2 ~@2 c2 ~@2", AB: "f2 ~@2 c2 ~@2 f2 ~@2 f2 ~@2",
})).s("gm_synth_bass_1").gain(0.24)

// chords · clarinet
const clarinet = note(`<
  ~ A B C ~ 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 ~@2 E F G H I J K L M N ~ O P Q R S T ~ U ~ V ~
  W X Y ~@2 E F G H I J K L M N ~ O P Q R Z A B C ~ A B C ~ D E F G H I J K L M N ~ O P Q R AA R AA R AB
>`.pickRestart({
  A: "~@6 a#5 ~ f5 ~ a#5 ~ d6 ~ a#5 ~ d6 ~ [d6,f6] [f6,g6] [d6,f6,g6] [d6,f6] [f6,g6] [d6,f6,g6]", // Dm Fsus2 G7 Dm Fsus2 G7
  B: "[d6,f6] [f6,g6] ~@4 a5 ~ f5 ~ a5 ~ c6 ~ a5 ~ c6 ~ [c6,f6] [f6,g6] [c6,f6,g6] [c6,f6] [f6,g6] [c6,f6,g6]", // Dm Fsus2 F5 Fsus2 Csus4 F5 Fsus2 Csus4
  C: "[c6,f6] [f6,g6] ~@22", // F5 Fsus2
  D: "[c6,d6] [d6,f6] [c6,d6,f6] [c6,d6] [d6,f6] [c6,d6,f6] [c6,d6] [d6,f6] [c6,d6,f6] [c6,d6] [d6,f6] [c6,d6,f6] [c6,d6] [d6,f6] [c6,d6,f6] [c6,d6] [d6,f6] [c6,d6,f6] [c6,d6] [d6,f6] [c6,d6,f6] ~@3", // Csus2 Dm Dm7 Csus2 Dm Dm7 Csus2 Dm …
  E: "[a5,c6] ~@3 [a5,c6] ~ [a5,c6] ~@3 [g5,a#5] ~ [f5,a5] ~@3 [f5,a5] ~ [f5,a5] ~@3 [e5,g#5] ~", // Am Gm F E
  F: "[f5,a5] ~@3 [e5,g#5] ~ [f5,a5] ~@3 [g5,a#5] ~ a5 ~@3 c6 ~ [f5,a5] [a5,c6] [f5,a5,c6] [f5,a5] [a5,c6] [f5,a5,c6]", // F E F Gm F Am F Am …
  G: "~@6 a5 ~@3 a5 ~ c6 ~@3 c6 ~ [a5,c6] [c6,f6] [a5,c6,f6] [a5,c6] [c6,f6] [a5,c6,f6]", // Am F5 F Am F5 F
  H: "~@6 g5 ~@3 g5 ~ c6 ~ g5 ~ c6 ~ [g5,c6] [c6,e6] [g5,c6,e6] [g5,c6] [c6,e6] [g5,c6,e6]", // C5 C C5 C
  I: "a#5 ~@3 a#5 ~ a#5 ~@3 a5 ~ g5 ~@3 g5 ~ g5 ~@3 f#5 ~",
  J: "g5 ~@3 f#5 ~ g5 ~@3 a5 ~ a#5 ~@3 a#5 ~ [a#5,d6] [d6,e6] [a#5,d6,e6] [a#5,d6] [d6,e6] [a#5,d6,e6]", // A# Dsus2 Em7b5 A# Dsus2 Em7b5
  K: "~@6 g5 ~ f#5 ~ g5 ~ c6 ~@5 [a#5,c6] [c6,e6] [a#5,c6,e6] [a#5,c6] [c6,e6] [a#5,c6,e6]", // A#sus2 C C7 A#sus2 C C7
  L: "~@6 a5 ~ f5 ~ a5 ~ c6 ~ a5 ~ c6 ~ [c6,e6] [e6,f6] [c6,e6,f6] [c6,e6] [e6,f6] [c6,e6,f6]", // C Fmaj7 C Fmaj7
  M: "~@17 [a5,a#5,c#6,d6] [a#5,d6] ~@5", N: "~@17 [g#5,a5,b5,c6] [a5,c6] ~@5",
  O: "~@18 [c6,d6] [d6,e6] [c6,d6,e6] [c6,d6] [d6,e6] [c6,d6,e6]", // Csus2 Dsus2 C Csus2 Dsus2 C
  P: "c6 ~@3 c6 ~ c6 ~@3 a#5 ~ a5 ~@3 a5 ~ a5 ~@3 g5 ~", Q: "a5 ~@3 a5 ~ a5 ~@3 a#5 ~ c6 ~@3 c6 ~ c6 ~@5",
  R: "~@6 g5 ~ f#5 ~ g5 ~ c6 ~ b5 ~ c6 ~ e6 ~ d#6 ~ e6 ~", S: "f6 ~@5 f6 ~ f6 ~ f6 ~ f6 ~ f6 ~ f6 ~ f6 ~@3 f#6 ~",
  T: "g6 ~@5 g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~ g6 ~@5", U: "~@16 [b5,d6] ~ [b5,d6] ~@5", V: "~@16 [c6,e6] ~ [c6,e6] ~@5",
  W: "~@16 [e6,g6] ~ [e6,g6] ~@5", X: "~@12 g5 ~ d5 ~ g5 ~ b5 ~@5", Y: "~@12 g5 ~ e5 ~ g5 ~ c6 ~@5",
  Z: "f6 ~@5 f4 ~ a4 ~ c5 ~ f5 ~@11", AA: "f6 ~@5 a5 ~ f5 ~ a5 ~ c6 ~ a5 ~ c6 ~ f6 ~@5",
  AB: "f6 ~@5 f5 ~ a5 ~ c6 ~ f6 ~@3 f5 [a5,c6] f6 ~@5", // Am
})).s("gm_clarinet").gain(0.24).pan(0.9)

// chords · accordion
const accordion = note(`<
  A B C D E B 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 J K AK M N O P AL AM S AN U AO W X
  Y Z AP AQ AR AS AT AF AG AH AI AJ J K AK M N O P AL AM AU T AV AW AX X AY B C D E B F G H I AZ K AK M N O P Q R AU T
  BA V W X Y X Y X BB
>`.pickRestart({
  A: "~@8 [f4,a4]!2 [g4,a#4] [a4,c5]", // F Gm Am
  B: "[a#4,d5]@2 ~@4 [a#4,d5]@2 ~@4 [a#4,d5]@3 ~ [a#4,d5]@2 [a#4,d5]@2 [a4,c5]@2 [g4,a#4]@2", // A# Am Gm
  C: "[a4,c5]@2 ~@4 [a4,c5]@2 ~@4 [a4,c5]@7 ~@3 [a4,c5]@2", // Am
  D: "[g4,a#4]@2 ~@2 [g4,a#4]@2 [g4,a#4]@2 ~@2 [g4,a#4]@2 [g4,a#4]@5 ~ [f4,a4]@4 [e4,g4]@2", // Gm F Em
  E: "[f4,a4]@4 [e4,g4]@2 [f4,a4]@4 [g4,a#4]@2 [a4,c5]@3 ~ [f4,a4]@2 [f4,a4]@2 [g4,a#4]@2 [a4,c5]@2", // F Em F Gm Am F Gm Am
  F: "[a4,c5] ~@2 [a4,c5] ~@2 [a4,c5]@4 ~ [a4,c5]", G: "[c5,e5] ~ [c5,e5]!2 ~ [c5,e5] [c5,e5]@3 [g4,a#4]@2 [a4,c5]",
  H: "[c5,e5]@2 [a#4,d5] [a4,c5]@2 [g4,a#4] [f4,a4] ~@5", I: "[c5,e5]",
  J: "[a4,c5] ~ [a4,c5] [a4,c5]@2 [g4,a#4] [f4,a4] ~ [f4,a4] [f4,a4]@2 [e4,g#4]", // Am Gm F E
  K: "[f4,a4]@2 [e4,g#4] [f4,a4]@2 [g4,a#4] [a4,c5] ~ [a4,c5] [a4,c5]@2 ~", L: "[c5,f5]@11 ~ [a#4,f5]@5 ~ [a4,f5]@6",
  M: "~@2 c3!2 ~ c3!2 ~@4 [a#4,d5], [g4,e5]@19 ~@5", // A# C
  N: "[g4,a#4]@2 ~@2 [g4,a#4]@2 [g4,a#4]@4 [f4,a4]@2 [e4,g4]@2 ~@2 [e4,g4]@2 [e4,g4]@3 ~ [d#4,f#4]@2", // Gm F Em D#m
  O: "[e4,g4]@3 ~ [d#4,f#4]@2 [e4,g4]@3 ~ [f4,a4]@2 [g4,a#4]@2 ~@2 [g4,a#4]@2 [g4,a#4]@4 ~@2", // Em D#m Em F Gm
  P: "[e4,c5]@11 ~ [e4,c5]@6 [d4,a#4]@6", Q: "[c4,a4]@4 c3@2 c3@2 ~@2 c3@2 c3@3 ~@3 [f4,a4]@3 ~ [f4,a4]@2",
  R: "[a#4,d5]@2 ~@2 [a#4,d5]@2 [a#4,d5]@3 ~ [a#4,d5]@2 [a#4,d5]@5 ~ [a#4,d5]@3 ~ [c5,e5]@2", // A# C
  S: "[a#4,d5]@3 ~ [a4,c5]@2 [a4,c5]@2 ~@2 [g#4,b4]@2 [a4,c5]@4 ~@6 [a#4,c#5]@2", // A# Am G#m Am A#m
  T: "[b4,d5] ~ [b4,d5]!2 ~ [b4,d5] [b4,d5]@3 [a4,c5]@2 [b4,d5]", // Bm Am Bm
  U: "[d5,f5]@4 [c5,e5]@2 [c5,e5]@4 [b4,d#5]@2 [c5,e5]@3 ~@3 [c5,e5]@6", // Dm C B C
  V: "[a4,c5]@2 ~@2 [a4,c5]@2 [a4,c5]@4 [g4,a#4]@2 [f4,a4]@2 ~@2 [f4,a4]@2 [f4,a4]@3 ~ [g4,a#4]@2", // Am Gm F Gm
  W: "[a4,c5]@4 [g#4,b4]@2 [a4,c5]@3 ~ [a#4,d5]@2 [c5,d#5]@2 ~@2 [c5,d#5]@2 [c5,d#5]@3 ~@3", // Am G#m Am A# Cm
  X: "[d5,f5]@2 [c5,e5] [a4,c5]", Y: "[f4,a4] ~@3", Z: "~@11 [e4,g4]",
  AA: "[c4,e4]@2 ~@2 [c4,e4]@2 [c4,e4]@3 ~ [d4,f4]@2 [e4,g4]@5 ~ [e4,g4]@3 ~ [f4,a4]@2", // C Dm Em F
  AB: "[e4,g4]@3 ~ [d4,f4]@2 [d4,f4]@3 ~ [c#4,e4]@2 [d4,f4]@4 ~@6 [f4,a4]@2", // Em Dm C#m Dm F
  AC: "[d4,f4]@2 ~@2 [d4,f4]@2 [d4,f4]@3 ~ [e4,g4]@2 [f4,a4]@5 ~ [f4,a4]@3 ~ [g4,b4]@2", // Dm Em F G
  AD: "[f4,a4]@4 [e4,g4]@2 [e4,g4]@3 ~ [d#4,f#4]@2 [e4,g4]@3 ~@7 c4@2", // F Em D#m Em
  AE: "[f4,a4]@2 ~@2 [f4,a4]@2 [f4,a4]@3 ~ [g4,b4]@2 [a4,c5]@5 ~ [a4,c5]@3 ~ [a4,c5]@2", // F G Am
  AF: "[a4,c5]@3 ~ [a4,c5]@2 [g4,b4]@4 [f4,a4]@2 [e4,g4]@5 ~@5 [b3,g4]@2", // Am G F Em
  AG: "[d4,b4]@2 ~@2 [d4,b4]@2 [d4,b4]@3 ~ [c4,a4]@2 [c4,a4]@6 [b3,g4]@3 ~ [b3,g4]@2", // G F Em
  AH: "[d4,b4]@4 [b3,g4]@2 [c4,a4]@4 [d4,b4]@2 [e4,c5]@5 ~@7", AI: "c5 b4 c5 d5 c5 b4 c5@2 ~@3 c5",
  AJ: "e5 ~ d#5 d5 ~ c#5 c5 ~@5", AK: "[c5,f5]@11 ~ [a#4,f5]@6 [a4,f5]@6",
  AL: "[c4,a4]@4 c3@2 c3@2 ~@2 c3@2 c3@3 ~@3 [f4,a4]@2 ~@2 [f4,a4]@2", // F
  AM: "[a#4,d5]@2 ~@2 [a#4,d5]@2 [a#4,d5]@2 ~@2 [a#4,d5]@2 [a#4,d5]@4 ~@2 [a#4,d5]@3 ~ [c5,e5]@2", // A# C
  AN: "[b4,d5]@2 ~@2 [b4,d5]@2 [b4,d5]@2 ~@2 [b4,d5]@2 d5@6 [a4,c5]@3 ~ [b4,d5]@2, ~@3 b4 ~@2", // Bm Am Bm
  AO: "[a4,c5]@2 ~@2 [a4,c5]@2 [a4,c5]@3 ~ [g4,a#4]@2 [f4,a4]@2 ~@2 [f4,a4]@2 [f4,a4]@2 ~@2 [g4,a#4]@2", // Am Gm F Gm
  AP: "[c4,e4]@2 ~@2 [c4,e4]@2 [c4,e4]@3 ~ [d4,f4]@2 [e4,g4]@5 ~ [e4,g4]@2 ~@2 [f4,a4]@2", // C Dm Em F
  AQ: "[e4,g4]@3 ~ [d4,f4]@2 [d4,f4]@3 ~ [c#4,e4]@2 [d4,f4]@3 ~@7 [f4,a4]@2", // Em Dm C#m Dm F
  AR: "[d4,f4]@2 ~@2 [d4,f4]@2 [d4,f4]@3 ~ [e4,g4]@2 [f4,a4]@4 ~@2 [f4,a4]@3 ~ [g4,b4]@2", // Dm Em F G
  AS: "[f4,a4]@4 [e4,g4]@2 [e4,g4]@3 ~ [d#4,f#4]@2 [e4,g4]@4 ~@6 c4@2", // F Em D#m Em
  AT: "[f4,a4]@3 ~ [f4,a4]@2 [f4,a4]@3 ~ [g4,b4]@2 [a4,c5]@5 ~ [a4,c5]@3 ~ [a4,c5]@2", // F G Am
  AU: "[a#4,d5]@4 [a4,c5]@2 [a4,c5]@3 ~ [g#4,b4]@2 [a4,c5]@4 ~@6 [a#4,c#5]@2", // A# Am G#m Am A#m
  AV: "[d5,f5]@4 [c5,e5]@2 [c5,e5]@3 ~ [b4,d#5]@2 [c5,e5]@3 ~@3 [c5,e5]@6", // Dm C B C
  AW: "[a4,c5] ~ [a4,c5] [a4,c5]@2 [g4,a#4] [f4,a4] ~ [f4,a4]!2 ~ [g4,a#4]", // Am Gm F Gm
  AX: "[a4,c5]@4 [g#4,b4]@2 [a4,c5]@3 ~ [a#4,d5]@2 [c5,d#5]@2 ~@2 [c5,d#5]@2 [c5,d#5]@2 ~@4", // Am G#m Am A# Cm
  AY: "[f4,a4]@3 ~@5 [f4,a4]!2 [g4,a#4] [a4,c5]", // F Gm Am
  AZ: "[a4,c5]@2 ~@2 [a4,c5]@2 [a4,c5]@3 ~ [g4,a#4]@2 [f4,a4]@2 ~@2 [f4,a4]@2 [f4,a4]@4 [e4,g#4]@2", // Am Gm F E
  BA: "[d5,f5]@2 [c5,e5] [c5,e5]@2 [b4,d#5] [c5,e5]@2 ~ [c5,e5]@3", BB: "[f4,a4]@3 ~@6 [f4,a4,c5,f5] ~@2",
})).s("gm_accordion").gain(0.59)

// other · trumpet
const trumpet = note(`<
  A B C D E B F G H I J K L M N O P Q ~@2 R S T U V W X ~ Y ~ Z ~ Z ~@2 AA AB J K L M N O P Q ~@2 R S T U V W X ~ Y ~ Z
  ~ Z ~@2 AA AB J K L M N O P Q ~@2 R S T U V AC B C D E B F G H I J K L M N O P Q ~@2 R S T U V AD V AD AE AF
>`.pickRestart({
  A: "~@16 a4 ~ a4@2 a#4@2 c5@2", B: "d5@2 ~@4 d5@2 ~@4 d5@3 ~ d5 ~ d5@2 c5@2 a#4@2", C: "c5 ~@2 c5 ~@2 c5@3 ~@2 c5",
  D: "a#4@2 ~@2 a#4 ~ a#4@2 ~@2 a#4 ~ a#4@5 ~ a4@4 g4@2", E: "a4@4 g4@2 a4@3 ~ a#4@2 c5@4 a4 ~ a4@2 a#4@2 c5@2",
  F: "c5 ~@2 c5 ~@2 c5@2 ~@3 c5", G: "e5@2 ~@2 e5 ~ e5@2 ~@2 e5 ~ e5@5 ~ a#4@3 ~ c5@2",
  H: "e5@4 d5@2 c5@3 ~ a#4@2 a4@2 ~@10", I: "e4 ~@2 c5@9", J: "a4 ~@3 a4 ~ a4@3 ~ g4@2 f4@8 ~@2 e4@2",
  K: "f4@4 e4@2 f4@4 g4@2 a4@3 ~@3 c5 ~ d5@2 e5 ~", L: "f5@11 ~ f5@5 ~ f5@6", M: "e5@10 ~@2 e5 ~ e5 ~ e5 ~ e5@2 ~@4",
  N: "d5@2 ~@2 d5 ~ d5@2 ~@2 c5 ~ a#4@8 ~@4", O: "a#4@4 a4@2 a#4@3 ~ c5@2 d5@2 ~@4 a#4 ~ c5 ~ d5@2",
  P: "e5@10 ~@2 e5@5 ~ d5@6", Q: "c5@2 ~@4 a4@2 f4@2 a4@2 c5@2 a4@2 c5@2 f5 ~@5", R: "~@6 d5@5 ~ d5@5 ~ c5@3 ~ d5@2",
  S: "f5@2 e5 e5@2 d#5 e5@2 ~@4", T: "a4 ~@3 a4 ~ a4@2 ~@2 g4@2 f4@6 ~@4 g4@2",
  U: "a4@4 ~@2 a4@4 ~@2 c5@2 ~@2 c5 ~ c5@2 ~@4", V: "d5@11 ~ c5@6 a4@5 ~",
  W: "f4@6 f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5 ~ f5@2 ~@2 f#5@2", X: "g5@2 ~@4 g5 ~ g5 ~ g5 ~ g5 ~ g5 ~ g5 ~ g5 ~@5",
  Y: "~@16 [d5,f5] ~ [d5,f5] ~@5", Z: "~@16 [e5,g5] ~ [e5,g5] ~@5", AA: "c5 b4 c5 d5 c5 b4 c5 ~@4 c5",
  AB: "e5 ~ d#5 d5 ~ c#5 c5 ~@5", AC: "f4@6 f4@2 a4@2 c5@2 f5 ~@3 a4 ~ a4@2 a#4@2 c5@2",
  AD: "f4@6 a4@2 f4 ~ a4@2 c5@2 a4@2 c5@2 f5@2 ~@4", AE: "d5@11 ~ e5@5 ~ e5@5 ~",
  AF: "f5@5 ~ c5@2 d5@2 e5@2 f5@2 ~@4 f5@2 ~@4, ~@18 f4 ~@5",
})).s("gm_trumpet").gain(0.35).pan(0.4)

// other · trombone
const trombone = note(`<
  ~ A B C D A B E F G H I J K L M N O P Q R S H T U V W X Y Z AA AB AC AD AE AF AG H I J K L M N O P Q R S H T U V W X Y
  Z AA AB AC AD AE AF AG H I J K L M N O P Q R S H T U AH A B C D A B E F G H I J K L M N O P Q R S H T U AI U AI U AJ
>`.pickRestart({
  A: "a#3 f3 d4 a#3", B: "f4@7 ~", C: "c4@12 e4@6 c4@5 ~", D: "f4@4 e4@2 f4@4 g4@2 a4@3 ~@9", E: "c4@12 g4@6 e4@5 ~",
  F: "c4@2 a#3 a3@2 g3 f3@2 ~@4", G: "c4 ~@2 c3@3 d3@3 e3@3, g4 ~@5 g4@18", H: "f3@2 a3 c4", I: "f4@12 c4@11 ~",
  J: "~ a3 c4 a3", K: "g3@3 c4@7 ~@2", L: "c3@2 e3 g3", M: "c4@12 g3@11 ~", N: "~ e3 g3 a#3", O: "a3@6 c4@6 f4@11 ~",
  P: "~@6 d4@6 c4@11 ~", Q: "~@6 c4@6 b3@11 ~", R: "~@6 d4@5 ~ d4@5 ~ c4@4 d4@2", S: "f4@4 e4@2 e4@4 d#4@2 e4@5 ~@7",
  T: "f4@3 g4@3 a4@4 ~@2", U: "~ b3 c4 e4", V: "f4@5 ~ f4 ~@5 f4 ~ f4 ~ f4 ~ f4@2 ~@2 f#4@2",
  W: "g4@2 ~@4 g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4 ~ g4@2 ~@4", X: "~ g3 c4 e4", Y: "g4@6 b4@5 ~ b4@10 ~@2", Z: "~ g3 b3 d4",
  AA: "c4@6 g4@5 ~ g4@8 ~@4", AB: "c4@6 f4@5 ~ f4@6 c4@6", AC: "f4@6 c5@5 ~ c5@6 ~@6", AD: "b3@6 d4@6 f4@6 b3@5 ~",
  AE: "g4 f4 e4 ~", AF: "c4@2 b3@2 c4@2 d4@2 c4@2 b3@2 c4@3 ~@7 c4@2", AG: "e4 ~ d#4 d4 ~ c#4 c4 ~@5",
  AH: "f4@5 ~ c4@2 ~@2 c4@2 f4@2 ~@10", AI: "f4@5 ~ a4@2 ~@4 c5@2 ~@4 f4@2 ~@4, ~@6 f4 ~@17",
  AJ: "f4@5 ~ c4@6 d#4@2 ~@10",
})).s("gm_trombone").gain(0.31).pan(0.3)

// other · trombone
const trombone_2 = 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 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 K L M N O P Q R S T U V W X Y AK B C D E F G H I J K L M N O P Q R S T U V W X AL AM AL
  AM AL AN
>`.pickRestart({
  A: "~@16 f3 ~ f3@2 g3@2 a3@2", B: "~@6 g3@6 a#3@2 ~@2 a#3 ~ a#3@2 a3@2 g3@2", C: "a3@6 c3@6 a3@9 ~ a3@2",
  D: "g3@2 ~@2 g3@2 g3@2 ~@2 g3 ~ g3@5 ~ f3@4 e3@2", E: "f3@4 e3@2 f3@4 g3@2 a3@2 ~@2 f3 ~ f3@2 g3 ~ a3@2",
  F: "a#3@6 g3@6 a#3@3 ~ a#3 ~ a#3@2 a3@2 g3@2", G: "a3@3 c3@3 a3@4 ~ a3",
  H: "c4@2 ~@2 c4 ~ c4@2 ~@2 c4 ~ c4@6 g3@4 a3@2", I: "c4@2 a#3 a3@2 g3 f3 ~@5", J: "c4@2 ~@4 c3@6 d3@5 ~ e3@6",
  K: "f3@2 ~@2 f3 ~ f3@2 ~@2 f3 ~ f3@2 ~@2 f3 ~ f3@2 ~@2 f3 ~", L: "f3@3 d3@3 f3@2 ~@4",
  M: "f3@5 ~ f3 ~ f3 ~ f3@2 f3@5 ~ f3@6", N: "e3@11 ~ e3 ~ e3 ~ e3 ~ e3@2 ~@4",
  O: "g3@2 ~@2 g3 ~ g3@2 ~@2 a3@2 a#3@5 ~ g3@5 ~", P: "c4@6 g3@5 ~ g3@9 ~@3", Q: "c4@5 ~ g3@2 g3 ~ g3 ~ g3@5 ~ a#3@6",
  R: "f3@2 d3@2 f3 ~@3", S: "~ f3 e3@2", T: "~@3 f3@3 d3@5 ~", U: "~@6 g3@5 ~ g3@5 ~ c4@4 d4@2",
  V: "f4@4 e4 ~ e4@4 d#4@2 e4@5 ~@7", W: "a3@12 f3@11 ~", X: "a3@6 g3@5 ~ f#3@10 ~@2", Y: "g3 e3",
  Z: "f3@5 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4@2 ~@2 a#4 ~", AA: "b4@2 ~@4 b4 ~ b4 ~ b4 ~ b4 ~ b4 ~ b4 ~ b4 ~@3 e3@2",
  AB: "c3@11 ~ e3@5 ~ e3@5 ~, ~@11 d3@2 ~@11", AC: "~@11 f3", AD: "d3@10 e3@2 f3@9 ~@3", AE: "c3@6 f3@6 a3@11 ~",
  AF: "~@11 b2", AG: "d3@10 c3@2 c3@6 b2@3 ~ b2@2", AH: "d3@2 b2 c3@2 d3 e3 ~@5", AI: "c4@6 a3@6 c4@3 ~@7 c3@2",
  AJ: "e3 ~ d#3 d3 ~ c#3 c3 ~@5", AK: "f3@6 d3@6 f3@3 ~ f3 ~ f3@2 g3@2 a3@2", AL: "~ b3 e3@2, g3@12 c4@7 ~@5",
  AM: "f3@5 ~ e3@3 ~@3 d3@2 ~@4 c3@2 ~@4", AN: "f3@5 ~ c3@6 d#3@3 ~@3 f4@2 ~@4",
})).s("gm_trombone").gain(0.24).pan(0.7)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!8 ~ [x!4]!78 ~ [x!4]!20>").gain(0.5)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@10 A@2 ~@2 A@5 B A@12 B A@6 ~@2 A@5 B A@12 B A@6 ~@2 A@5 B A@6 ~@9 A@2 ~@2 A@5 B A@9 B
>`.pickRestart({
  A: "~@8 x!4", B: "~@8 x!2 ~@2",
})).gain(0.25)

// drums · open hat
const open_hat = s("oh").struct("<~ A@7 B ~ B@2 A@2 B@25 A@2 B@25 A@2 B@12 A@7 B ~ B@2 A@2 B@16>".pickRestart({
  A: "x!4", B: "x!3 ~",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct("<~@8 [~@3 x] [~@10 x!14] ~@77 [~@3 x] [~@10 x!14] ~@20>").gain(0.1)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@9 [~@6 x!4 ~@14] ~@78 [~@6 x!4 ~@14] ~@20>").gain(0.05)

// drums · ride
const ride = s("rd").struct("<~ A@2 ~@2 A@2 ~@3 B ~@24 C ~ B ~@24 C ~ B ~@15 A@2 ~@2 A@2 ~@3 B ~@18 C>".pickRestart({
// … 4 more lines

More by De Deurzakkers