Strudelify

Ik weet het niet

Andre van Duin

KeyG majorTempo198 bpm
0:00/0:00
// Ik weet het niet — Andre van Duin
// 198 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 4/4 at bar 13, 5/4 at bar 45, 3/4 at bar 51) are rendered on a constant 3/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 2 tuba (copy of ch 3 acoustic bass)
// note: Full arrangement: all 171 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(198/3)

// 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.

// chords · piano · "Ik Weet H"
const piano = note("<~ A B C D E F G ~@2 H@7 I@2 J@5 K@7 L@8 M@8 ~@124>".pickRestart({
  A: "~@11 [a4,c5]@2 ~@3, ~@11 e5 ~@4", B: "[c5,e5] ~@9 [c5,e5] ~@5, a4 ~@4 a4 ~@2",
  C: "[a4,e5]@2 ~@9 [g4,b4,d5]@2 ~@3, c5 ~@15", D: "[g4,d5]@2 ~@9 [b4,d5] ~@4, b4 ~@10 g4@2 ~@3",
  E: "[b4,d5] ~@10 [e5,g5] ~@4, g4@2 ~@9 c5@2 ~@3", F: "[e5,g5] ~@10 [a4,c5,e5]@2 ~@3, c5 ~@7", G: "[a4,c5,e5] ~@7",
  H: "[~@13 e5@7 ~@11 b4@8 ~@20 g3@14 ~@13 g5@8 ~@10 f5@8, ~@2 c4@18 ~ c4@14 ~@4 f4@27 ~@11 [g4,b4]@15 ~@2 f4@16 ~@2, ~@3 [e4,g4]@19 [d#4,f#4]@14 ~@3 [d4,g4]@32 ~@24 [d4,b4]@16 ~, ~@5 c5@16 ~@20 b4@31 ~@5 d5@13 ~@22, ~@25 b3@6 ~@25]/7", // G Em D#m G5 G
  I: "[~@2 c5@15 ~@3 g5@12, ~ [e4,g4]@26 ~@5, ~ e5@16 ~ c5@13 ~, ~@19 e5@13]/2", // Em
  J: "[~@15 e4@8 ~@2 d4@7 ~ d4@8 ~@27 g5@9 ~@3, ~@6 a2@18 f#2@19 g2@30 ~@7, ~@7 [e3,a3,c4]@15 ~ a3@15 ~@17 b4@23 ~@2, ~@24 f#3@15 ~@3 [g3,b3,d4]@30 ~@8, ~@24 f#4@10 ~@8 g4@16 ~@2 [g4,e5]@17 ~@3]/5", // Am G C
  K: "[[e5,g5]@9 ~ a4@9 ~ f#5@9 a5@8 ~@11 b6@9 g6@9 ~@20 e5@7 ~@11 b4@8, a2@19 d3@19 g5@24 ~@14 g4 c5@14 ~@21, ~@19 d5@9 ~@9 g4@21 ~@17 c4@17 ~ c4@14 ~@5, ~@38 b4@21 ~@16 e4@15 ~@22, ~@39 [g2,d5]@20 ~@17 e3@16 ~@2 [d#3,d#4,f#4]@14 ~@4]/7", // Em G5 D#m
  L: "[~@33 g4@5 ~@8 g5@9 ~@10 f5@9 ~ c5@8 ~@10 g5@12 ~@15 e4@8, [d3,f4,g4]@29 ~@45 c3@28 ~@9 a2@17, d4@24 b3@13 ~@18 [f4,b4]@16 ~@3 [e4,g4]@26 ~@11 [a3,c4]@15 ~@2, ~@2 b4@27 d4@9 d5@13 ~@5 d5@15 ~@3 e5@16 ~@38, ~@11 b3@9 g3@14 ~@4 [g3,g4,b4]@15 ~@3 g3@18 ~@9 c5@13 ~@15 e3@13 ~@4]/8", // G7 Fdim Em Am G
  M: "[~@10 a4@8 ~@19 [g4,b4,e5]@16 ~@12 g5@8 ~@10 a5@9 [g4,b4,d5]@21 ~@15, [f#3,a3]@15 ~@3 [g3,b3,d4,g4]@19 ~@37 d3@19 ~@35, f#4@10 ~@46 [g4,c5,e5]@15 ~@2 f#5@10 ~@9 g5@23 ~@13, ~ f#2@19 ~@72 g2@18 ~@18, ~ d4@16 ~@2 g2@30 ~@7 a2@18 [f#4,a4,c5,d5]@15 ~@39]/8", // Em G F#m G C D7
})).s("gm_piano").gain(0.3)

// bass · acoustic bass
const bass = note(`<
  ~ A@7 B@2 ~@41 C D C E F E F E D F D F C D C G C D C E F E H I D F D F C J K L F I F E M ~@2 N F E H O P Q R G C D C E
  F E H I D F D F C J K L F I F E M ~@2 N F E H O P Q R G C D C E F E F E D F D F C D C G C D C E F E H I D F D F C J K
  S T J K S T J U V
>`.pickRestart({
  A: "[~@5 d2@15 ~ a1@16 ~ g1@16 d2@16 c2@16 a1@14 ~@2 g2@5 ~@2 d2@3]/7", B: "[~@3 b1@5 ~@2 g1@16 ~@6]/2", C: "c2",
  D: "g1", E: "a1", F: "d2", G: "g1@5 a1@5 ~ b1@5", H: "d2@15 ~", I: "a1@15 ~", J: "f2", K: "c2@13 ~@3",
  L: "c2@4 ~ c2@5 ~ c#2@5", M: "g1@13 ~@3", N: "g#1", O: "d2@5 e2@5 ~ f#2@5", P: "g2", Q: "d2@7 ~", R: "g1@5 ~@3",
  S: "g2@4 ~ d2@4 ~@2 g1@5", T: "c2@15 ~", U: "c2@7 ~@4 g1@3 ~@2", V: "c2@3 ~@13",
})).s("gm_acoustic_bass").gain(0.3)

// other · brass section
const brass_section = note(`<
  A B@3 C D@2 E@3 ~@41 F G H I J K@2 L M N@2 O P Q@2 R S G T U V W@2 X Y N@2 Z AA@2 ~ AB AC AD AE AF AG ~@2 AB AC AH AI
  AJ AK AL AM AN F AO T AP V AQ@2 X Y AR@2 AS AT@2 ~ AB AC AD AE AF AU ~@2 AB AC AH AI AV AW AL AM R F AO AX I J K@2 AY
  AZ BA@2 BB P BC@2 R BD G H AP J BE@2 BF Y AR@2 AS BG@3 BH BG@3 AS BF BI BJ BK
>`.pickRestart({
  A: "~@11 g#4@5", B: "[a4@5 e5@36 ~@2 d5@5]/3", C: "e5@6 f5@5 d5@5", D: "[~ e5@5 c5@24 ~@2]/2",
  E: "[~@6 g4@5 ~@2 a4@6 a#4@7 b4@13 ~@9]/3", F: "g4@9 ~@2 g4@5", G: "f#4@11 g4@5", H: "c5@10 ~ g4@5",
  I: "f4@9 ~@2 e4@3 ~@2", J: "e4", K: "[d4@5 ~@3]/2", L: "c5@7 ~", M: "c5@10 ~ b4@4 ~", N: "[b4@29 ~@3]/2", O: "a4@7 ~",
  P: "a4@10 ~ g4@4 ~", Q: "[g4@25 ~@7]/2", R: "e4@11 f4@5", S: "g4@10 ~ g4@5", T: "c5@11 g4@4 ~", U: "f4@10 ~ e4@3 ~@2",
  V: "e4@15 ~", W: "[d4@31 ~]/2", X: "c5@15 ~", Y: "c5@11 b4@5", Z: "d5@7 ~", AA: "c5/2", AB: "e4@9 ~@2 e4@4 ~",
  AC: "e4@11 d4@5", AD: "c#4@11 d4@5", AE: "c5@9 ~@2 c5@5", AF: "b4@11 a4@5", AG: "g4 ~", AH: "c#4@9 ~@2 d4@5",
  AI: "e5@9 ~@2 e5@5", AJ: "d5@11 c5@5", AK: "b4@15 ~", AL: "g4@15 ~", AM: "[d5,g5]", AN: "e4@9 ~@2 f4@5",
  AO: "f#4@9 ~@2 g4@5", AP: "f4@11 e4@4 ~", AQ: "[d4@3 ~]/2", AR: "[b4@27 ~@5]/2", AS: "d5", AT: "[c5@19 ~@13]/2",
  AU: "g4@9 ~@7", AV: "d5@11 c5@4 ~", AW: "b4", AX: "c5@11 g4@5", AY: "c5@8 ~@3 c5@3 ~@2", AZ: "c5@8 ~@3 b4@4 ~",
  BA: "[b4@31 ~]/2", BB: "a4@15 ~", BC: "g4/2", BD: "g4@8 ~@3 g4@5", BE: "[d4@23 ~@9]/2", BF: "c5@3 ~",
  BG: "[c5@41 ~@7]/3", BH: "d5@15 ~", BI: "[a4,f5]", BJ: "[g4,e5]@9 ~@2 [g4,g5]@3 ~@2", BK: "[c5,c6]@3 ~@13",
})).s("gm_brass_section").gain(0.43).pan(0.4)

// other · trombone
const trombone = note("<A B@6 ~@164>".pickRestart({
  A: "~@11 g#3@5", B: "[~@5 c4@33 b3@32 c4@18 ~@8, a3@7 ~@89]/6",
})).s("gm_trombone").gain(0.17)

// chords · accordion
const accordion = note(`<
  ~ A B@2 C@2 D E ~@43 F@2 G H I@4 J@3 K L F@2 M L F N O P Q R S K T J U F V F@2 Q W R X ~@4 Y X Z X AA ~ AB M L F N O P
  Q R S K T J U F V F@2 Q AC R I ~@4 AD I Z AE AA ~ AB ~ F@2 G H I@3 ~ J@3 K L F@2 M L F N O P Q R S K T J U F V AF AG
  AF V AF AG AF V AH AI
>`.pickRestart({
  A: "~@11 [c4,e4] ~@4, ~@11 a3@2 ~@3", // C
  B: "[[c4,e4] ~@9 [c4,e4] ~@5 [c4,e4] ~@9 [g3,b3,d4] ~@5, a3@2 ~@8 a3@2 ~@3 a3@2 ~@15]/2", // C G
  C: "[[g3,b3,d4] ~@9 [g3,b3,d4] ~@5 [b3,d4] ~@9 [e4,g4] ~@5, ~@15 g3@2 ~@9 c4@2 ~@4]/2", // G Bm Em
  D: "[e4,g4] ~@10 [c4,e4] ~@4, c4@2 ~@9 a3@2 ~@3", E: "[c4,e4] ~@15, a3 ~@7",
  F: "~@5 [c4,e4,g4]@2 ~@4 [c4,e4,g4]@2 ~@3", G: "~@5 [c4,e4,g4]@2 ~@4 [e4,g4]@2 ~@3, ~@11 c4 ~@4",
  H: "~@5 [c#4,f4,a4]@3 ~@3 [c#4,f4,a4]@4 ~", I: "~@5 [d4,f#4,a4]@2 ~@4 [d4,f#4,a4]@2 ~@3",
  J: "~@5 [f4,b4,d5]@2 ~@4 [f4,b4,d5]@2 ~@3", K: "~@5 [f4,b4,d5]@2 ~@4 [f4,b4]@2 ~@3, ~@11 d5 ~@4",
  L: "~@5 [c4,e4]@2 ~@4 [c4,e4,g4]@2 ~@3, ~@5 g4 ~@10", M: "~@5 [c4,e4,g4]@2 ~@4 [c4,e4]@2 ~@3, ~@11 g4 ~@4",
  N: "~@5 [e4,g4]@2 ~@4 [c4,e4]@2 ~@3, ~@5 c4 ~@5 g4 ~@4", O: "~@5 [c#4,f4,a4] ~@5 [c#4,f4,a4] ~@4",
  P: "~@5 [d4,f#4,a4] ~@5 [d4,a4] ~@4, ~@11 f#4@2 ~@3", Q: "~@5 [d4,f#4,a4]@2 ~@4 [f#4,a4]@2 ~@3, ~@11 d4 ~@4",
  R: "~@5 [d4,a4] ~@5 [d4,f#4,a4]@2 ~@3, ~@5 f#4@2 ~@9", S: "[a4,c5]", T: "~@5 [f4,b4,d5]@3 ~@3 [f4,b4,d5]@2 ~@3",
  U: "~@5 [f4,b4]@2 ~@4 [f4,b4]@2 ~@3, ~@5 d5 ~@5 d5 ~@4", V: "~@5 [c4,f4,a4]@2 ~@4 [c4,f4,a4]@3 ~@2",
  W: "~@5 [d4,f#4]@2 ~ [d4,f#4,a4] ~@2 [d4,f#4]@2 ~@3, ~@5 a4 ~@5 a4 ~@4", // D
  X: "~@5 [d4,f#4,a4]@2 ~ [d4,f#4,a4] ~@2 [d4,f#4,a4]@2 ~@3", Y: "~@5 [d4,f#4,a4] ~@5 [d4,a4]@2 ~@3, ~@11 f#4 ~@4",
  Z: "~@5 [f#4,a4]@2 ~@4 [d4,f#4,a4]@2 ~@3, ~@5 d4 ~@10", AA: "[d4,g4,b4]@3 ~@13", AB: "[d4,g4,b4] ~@7",
  AC: "~@5 [d4,f#4]@2 ~@4 [d4,f#4]@2 ~@3, ~@5 a4 ~@5 a4 ~@4", AD: "~@11 [d4,a4]@2 ~@3, ~@11 f4 ~@4",
  AE: "~@4 [d4,f#4,a4]@2 ~@5 [d4,f#4,a4]@2 ~@3", AF: "~@5 [c4,e4,g4]@2 ~@4 [c4,e4,g4]@3 ~@2",
  AG: "~@5 [b3,d4,g4]@3 ~@3 [b3,d4,g4]@3 ~@2", AH: "~@5 [c4,e4,g4]@2 ~@4 [b3,d4,g4]@3 ~@2", AI: "[c4,e4,g4]@3 ~@13",
})).s("gm_accordion").gain(0.2)

// chords · accordion
const accordion_2 = note(`<
  ~ A@5 B@4 ~@41 C D E F G H@2 I J K@2 L M N@2 O P D Q F R S@2 T U V@2 W X Y Z AA AB AC AD@2 AE ~@2 AF AB AC AG AH AI@2
  ~ O AJ AK AL AM AN AO@2 AP AQ AR@2 AS AT AU AV AF AB AC AW@2 AX ~@2 AF AB AC AY AH AZ@3 O AJ BA BB AM AN BC@2 BD BE
  BF@2 BG AM BH@2 O BI BJ BK BL BM BN@2 BO BP BF@2 AS X AU BQ AS X AU BR AS X AU BS ~
>`.pickRestart({
  A: "[~@5 [a3,c4,e4]@31 ~@2 [g3,b3,d4]@15 ~ [b3,d4,e4,g4]@14 ~@2 [c4,e4,g4]@10]/5", // Am G Em7 C
  B: "[~@6 [a3,c4,e4]@15 ~@2 [g3,b3,d4]@32 ~@9, ~@23 f4@30 ~@11]/4", C: "[e4,g4]@9 ~@2 [c4,e4,g4]@5, c4@7 ~@9",
  D: "[c4,d#4,f#4]@9 ~@2 [c4,e4,g4]@4 ~", E: "[c4,g4]@9 ~@2 [c4,e4,g4]@5, c5@11 ~@5",
  F: "[f4,a4]@11 [c#4,e4,g4]@4 ~, c#4@9 ~@7", G: "[c4,e4,f#4]@15 ~", H: "[[c4,d4,f#4]@3 ~]/2", I: "[f#4,c5], a4@13 ~@3",
  J: "[f4,a4]@9 ~@2 [f4,g4,b4]@4 ~, c5@11 ~@5", K: "[[f4,g4,b4]@21 ~@11]/2", L: "[d4,f4,a4]@13 ~@3",
  M: "[d4,f4]@9 ~@2 [c4,e4,g4]@4 ~, a4@11 ~@5", N: "[[e4,g4]@5 ~@3, c4@3 ~@5]/2", O: "[c4,e4]@11 [d4,f4]@5",
  P: "[c4,e4,g4]@9 ~@2 [c4,e4,g4]@5", Q: "[c4,g4]@8 ~@3 [c4,e4,g4]@5, c5@11 ~@5", R: "[c4,f#4]@13 ~@3, e4@15 ~",
  S: "[[c4,d4,f#4]@5 ~@3]/2", T: "[a4,c5]@13 ~@3, f#4@15 ~", U: "[f4,a4,c5]@9 ~@2 [f4,g4,b4]@4 ~",
  V: "[[f4,g4,b4]@3 ~]/2", W: "[f4,d5]@13 ~@3", X: "[e4,c5]", Y: "a4@15 ~, f4@13 ~@3", Z: "[e4,g4]",
  AA: "e4@9 ~@2 e4@4 ~", AB: "e4@11 d4@5", AC: "c#4@11 d4@5", AD: "[c5@9 ~@7 b4@11 a4@5, ~@11 c5@7 ~@14]/2",
  AE: "g4@11 ~@5", AF: "e4@8 ~@3 e4@4 ~", AG: "c5@9 ~@2 c5@5", AH: "b4@11 a4@5", AI: "g4/2",
  AJ: "[e4,g4]@9 ~@2 [e4,g4]@5", AK: "f#4@9 ~@2 [e4,g4]@5, d#4@7 ~@9", AL: "c5@11 [e4,g4]@5, g4@9 ~@7",
  AM: "[f4,a4]@11 [e4,g4]@4 ~", AN: "[e4,f#4]@15 ~", AO: "[d4@23 ~@9, f#4@21 ~@11]/2", AP: "f#4@15 ~, c5@13 ~@3",
  AQ: "[f4,c5]@11 [f4,b4]@4 ~", AR: "[b4@27 ~@5, f4@25 ~@7]/2", AS: "[f4,d5]", AT: "[e4,c5]@13 ~@3", AU: "[f4,a4]",
  AV: "g4@15 ~, e4@13 ~@3", AW: "[c5@8 ~@8 b4@11 a4@5, ~@11 c5@7 ~@14]/2", AX: "g4@9 ~@7", AY: "c5@8 ~@3 c5@5",
  AZ: "[g4@35 ~@13]/3", BA: "[d#4,f#4]@11 [e4,g4]@5", BB: "[g4,c5]@9 ~@2 [e4,g4]@5", BC: "[d4,f#4]/2",
  BD: "[f#4,c5]@15 ~", BE: "c5@11 [f4,b4]@5, f4@9 ~@7", BF: "[[f4,b4]@25 ~@7]/2", BG: "[f4,a4]@15 ~",
  BH: "[[e4,g4]@25 ~@7]/2", BI: "[e4,g4]@11 [e4,g4]@4 ~", BJ: "[d#4,f#4]@11 [e4,g4]@4 ~", BK: "c5@11 [e4,g4]@5, g4 ~",
  BL: "[f4,a4]@9 ~@2 [e4,g4]@4 ~", BM: "[e4,f#4]@13 ~@3", BN: "[[d4,f#4]@25 ~@7]/2", BO: "[f#4,c5]@13 ~@3",
  BP: "c5@11 [f4,b4]@4 ~, f4 ~", BQ: "[e4,c5]@11 ~@5", BR: "[e4,c5]@3 ~", BS: "[e4,c5] ~@3",
})).s("gm_accordion").gain(0.25).pan(0.6)

// other · tubular bells
const tubular_bells = note("<~@88 [d5@5 ~@11] [b4 ~@7] ~@30 [d5@3 ~@13] [b4@3 ~@13] ~@49>")
  .s("gm_tubular_bells").gain(0.45)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B C D E F G H ~@42 I@3 J K@4 L@4 I@7 J K@4 L@4 I M I N O@4 P ~@3 O@4 L@4 I@3 J K@4 L@4 I M I N O@4 P ~@3 O@4 L@4
  I@3 J K@4 L@4 I@7 J K@4 L@4 I M I L I M I L I M Q R
>`.pickRestart({
  A: "~@5 [a3,c4,e4]@5 ~ [a3,c4,e4]@2 [a3,c4,e4]@3", // Am
  B: "[a3,c4,e4]@3 [a3,c4,e4]@2 [a3,c4,e4]@5 ~ [a3,c4,e4]@3 [a3,c4,e4]@2", // Am
  C: "[a3,c4,e4]@3 [a3,c4,e4]@3 [g3,b3,d4]@5 [g3,b3,d4]@3 [g3,b3,d4]@2", // Am G
  D: "~ [g3,b3,d4]@2 [g3,b3,d4]@3 [g3,b3,d4]@5 [g3,b3,d4]@3 [g3,b3,d4]@2", // G
  E: "~ [g3,b3,d4]@2 [g3,b3,d4]@3 [c4,e4,g4]@5 [c4,e4,g4]@3 [c4,e4,g4]@2", // G C
  F: "~ [c4,e4,g4]@2 [c4,e4,g4]@3 [a3,c4,e4]@5 [a3,c4,e4]@3 [a3,c4,e4]@2", // C Am
  G: "~ [a3,c4,e4]@3 [a3,c4,e4]@2 [g3,b3,d4]@6 ~ [g3,b3,d4]@3", // Am G
  H: "[g3,b3,d4]@3 [g3,b3,d4]@3 ~ [g3,b3,d4]@3 [g3,b3,d4]@6", // G
  I: "[c4,e4,g4]@5 [c4,e4,g4]@3 [c4,e4,g4]@3 [c4,e4,g4]@2 [c4,e4,g4]@3", // C
  J: "[c#4,f4,a4]@5 [c#4,f4,a4]@3 [c#4,f4,a4]@3 [c#4,f4,a4]@2 [c#4,f4,a4]@3", // C#aug
  K: "[a3,d4,f#4]@5 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@2 [a3,d4,f#4]@3", // D
  L: "[b3,d4,g4]@5 [b3,d4,g4]@3 [b3,d4,g4]@3 [b3,d4,g4]@2 [b3,d4,g4]@3", // G
  M: "[c4,f4,a4]@5 [c4,f4,a4]@3 [c4,f4,a4]@3 [c4,f4,a4]@2 [c4,f4,a4]@3", // F
  N: "[c4,e4,g4]@5 [c4,e4,g4]@3 [c4,e4,g4]@3 [c#4,e4,g4]@2 [c#4,e4,g4]@3", // C C#dim
  O: "[c4,f#4,a4]@5 [c4,f#4,a4]@3 [c4,f#4,a4]@3 [c4,f#4,a4]@2 [c4,f#4,a4]@3", P: "[b3,d4]@9 ~@7, g4@11 ~@5",
  Q: "[c4,e4,g4]@5 [c4,e4,g4]@3 [c4,e4,g4]@3 [b3,d4,g4]@3 ~@2", R: "[c4,e4,g4]@3 ~@13",
})).s("gm_acoustic_guitar_steel").gain(0.07).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~ A@2 B@5 C ~@42 D@37 ~@3 D@29 ~@3 D@47 ~>".pickRestart({
  A: "~@5 x ~@10", B: "~@3 x ~@4", C: "~@3 x ~@6 x ~@5", D: "x",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct(`<
  ~@51 A@3 B A@3 C D A E A@4 F D A B A@4 G D B A@2 E@2 A H A E A E ~@3 G D E A E D B D I A E A@3 J A G D B A E A@2 B K L
  E A E M ~@2 G D E A N A B D I A E A@2 E A@4 B A E A@3 G D A@2 E A G D B A E A@2 B A@2 B A@3 G D A@2 M
>`.pickRestart({
  A: "~@5 x ~@5 x ~@4", B: "~@5 x ~@2 x ~@2 x ~ x ~@2", C: "~@5 x ~ x!3 ~ x!3 ~ x", D: "x ~@4 x ~@5 x ~@4",
  E: "~@5 x ~@2 x ~@2 x ~@4", F: "~@11 x!3 ~ x", G: "x ~@4 x ~ x!3 ~ x!3 ~ x", H: "x ~@2 x ~ x ~@2 x ~@2 x!3 ~ x",
  I: "x ~@4 x ~@5 x!3 ~ x", J: "~@5 x ~@5 x ~ x ~@2", K: "x ~@4 x ~@6 x!2 ~ x", L: "~@11 x ~@4", M: "x",
  N: "~@5 x ~ x!3 ~ x ~@4",
})).gain(0.26)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@58 A ~@7 B ~@7 C ~@15 C ~@15 C ~@7 D B ~@6 C ~@23 C ~@5 C ~@13 C ~@4
>`.pickRestart({
  A: "x!2 ~ x!2 ~@11", B: "~@5 x ~@10", C: "~ x ~ x!2 ~@11", D: "~@11 x ~@4",
})).gain(0.2)

// drums · ride
const ride = s("rd").struct("<~ A@4 B A C ~@43 D@37 ~@3 D@29 ~@3 D@47 ~>".pickRestart({
  A: "~@5 x ~@10", B: "~@3 x ~@4", C: "~@7 x ~@8", D: "x",
})).gain(0.39)

stack(
  piano, bass, brass_section, trombone, accordion, accordion_2, tubular_bells, acoustic_guitar_steel, kick, snare,
  snare_soft, ride
)

More by Andre van Duin