Strudelify

Ik Ga Dood Aan Jou

Bart Herman

KeyG minorTempo114 bpm
0:00/0:00
// Ik Ga Dood Aan Jou — Bart Herman
// 114 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(114/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.

// chords · piano
const piano = note(`<
  A@2 B@2 C@2 D E F@2 G H I@2 J K L@2 M N O P Q R S T U V W@2 X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW@2
>`.pickRestart({
  A: "[~@4 d3@4 g3@4 a3@8 [d4,g4]@3 ~@13 d3@4 g3@4 a3@8 bb3@12, g2@27 ~ [d4,g4,bb4]@26 ~@10, [bb3,d4,g4]@18 ~@2 bb3@12 g2@31 ~]/2", // G5 Gm
  B: "[[eb3,eb5,c6]@9 ~@3 [eb3,d5,bb5]@9 ~@3 [c5,a5]@9 ~@3 [bb4,g5]@8 ~@4 [a4,f5]@4 ~@4 [g4,eb5]@4 ~@4, ~@3 eb3@4 ~]/2", // Cm Ebmaj7 F Eb Dm Cm
  C: "[[g2,g3,g4,a4,bb4,d5]@7 ~]/2", D: "[bb3,d4]@16 bb3 ~@3 [bb3,d4,g4]@10 ~@2, g3@15 ~, g2@13 ~@3",
  E: "a3@12 a3@8 [a3,c4,f4]@9 ~@3, a2@27 ~@5, [c4,f4]@19 ~@13", // F F5
  F: "[[d4,f4]@21 ~ f3@3 ~ [f3,bb3,d4]@4 ~@2, [bb2,bb3]@13 ~@3]/2", // Dm Bb
  G: "[eb3,g3,bb3,d4]@10 [eb3,g3,d4]@5 ~, eb2@29 ~@3, ~@20 bb3@7 ~@5", // Ebmaj7
  H: "[a3,c4]@16 gb3 ~@3 [a3,c4,gb4]@11 ~, gb2@27 ~@5, [d3,gb3]@13 ~@19", // Am Gbdim D
  I: "[[bb3,d4,g4]@40 ~@4 g3@4 a3@4 bb3@9 ~@3, g2@11 ~@5]/2", // Gm
  J: "[bb3,d4]@11 ~ bb3@6 ~@2 [bb3,d4,g4]@7 ~@5, [g2,g3]@7 ~", // Bb Gm G
  K: "[c4,f4]@8 ~@4 [f3,c4]@5 ~@3 [a3,c4,f4]@8 ~@4, a2@25 ~@7, a3@3 a3@2 ~@3", // F5 F
  L: "[[bb2,bb3]@44 f3@5 ~@3 [f3,bb3,d4]@7 ~@5, [f3,d4]@39 ~@25]/2", // Bb Dm
  M: "[g3,bb3,d4]@15 ~@5 [bb3,d4,g4]@7 ~@5, [eb2,eb3]@29 ~@3", // Gm Eb
  N: "[a3,c4,d4,gb4]@5 ~ [a3,c4,d4,gb4]@3 ~ [c4,d4,gb4,a4]@4 ~@2, [gb2,gb3]@13 ~@3", // D7 Gb
  O: "[bb3,d4]@10 ~@2 [bb3,d4,g4]@7 ~ [g3,bb3,d4]@10 ~@2, g2@27 ~@5, g3@5 ~@3", // Bb Gm
  P: "[g3,bb3,d4]@12 [bb3,d4,g4]@7 ~ [g3,bb3,d4]@10 ~@2, [f2,f3]@29 ~@3", // Gm F
  Q: "[bb3,d4,g4]@16 g3 ~@3 [bb3,d4,g4]@7 ~@5, [eb2,eb3]@7 ~, g3@13 ~@19", // Gm Eb
  R: "[bb3,c4,eb4,g4]@4 ~ [bb3,c4,eb4,g4]@2 ~, [f2,f3]@5 ~@3", S: "[bb2,bb3,d4,f4]@7 ~",
  T: "[bb3,d4,f4]@23 ~@9, bb2@13 ~@3", U: "[a3,c4,eb4,g4]@12 a3 ~@7 [c4,eb4,g4,a4]@10 ~@2, a2@29 ~@3",
  V: "[c4,d4,gb4,a4]@19 ~ [c4,d4,gb4,a4]@6 ~@6, d3@15 ~", // D7
  W: "[[bb3,d4,a4]@10 ~@2 [bb3,d4,g4]@7 ~@25 [bb3,d4,g4]@7 ~ [g3,bb3,d4]@9 ~@3, g2@24 [g3,bb3,d4]@19 ~@21, ~@16 f2@11 ~@5]/2", // Bbmaj7 Gm
  X: "[eb3,bb3,d4,g4]@18 ~@2 [eb3,bb3,d4,g4]@7 ~@5, eb2@13 ~@3", // Ebmaj7
  Y: "[f3,bb3,c4,g4]@17 ~@3 [f3,c4,g4]@11 ~, f2@5 ~@3, eb4@7 ~@3 [bb3,eb4]@4 ~@2", Z: "[bb2,bb3,d4,f4]@29 ~@3",
  AA: "[bb2,bb3,f4]@25 ~@7, d4@11 ~@5", AB: "[a3,c4,eb4,g4]@14 ~@6 [c4,eb4,g4,a4]@9 ~@3, a2@5 ~@3",
  AC: "[c4,d4,gb4,a4]@5 ~ [c4,d4,gb4]@4 [c4,d4,gb4,a4]@3 ~@3, d3@23 ~@9, ~@12 a4 ~@19", // D7
  AD: "[[bb3,d4,a4]@5 ~ [bb3,g4]@4 ~@6 f2@10 [bb3,d4,g4]@4 ~@2, g2@13 ~@19, ~@12 d4@5 ~@7 [g3,bb3,d4]@24 ~@16]/2", // Bbmaj7 Eb Gm
  AE: "[bb3,d4,g4]@4 ~ [eb3,g3,bb3,d4,g4]@2 ~, [eb2,eb3]@5 ~@3", // Gm Ebmaj7 Eb
  AF: "[bb3,c4,eb4,g4]@15 ~@5 [f3,bb3,c4,eb4,g4]@10 ~@2, f2@13 ~@3, f3@5 ~@3", // Cm7
  AG: "[bb3,d4]@9 ~@3 bb3@6 ~@2 [g3,bb3,d4]@8 ~@4, g2@13 ~@3, g3@5 ~@3", // Bb Gm
  AH: "[c4,f4]@8 ~@4 [f3,c4]@5 ~@3 [a3,c4,f4]@7 ~@5, a2@3 ~, a3@3 a3@2 ~@3", // F5 F
  AI: "[f3,d4]@9 ~@3 f3@5 ~@3 bb3@6 ~@2 f3@2 ~@2, bb2@13 ~@3, bb3@5 ~@3", // Dm
  AJ: "f3@4 d4@3 ~ [f3,c4] ~@3 [f3,bb3,d4]@8 c4@4 bb3@2 ~@6, bb2 ~, bb3@3 ~@5, eb4@3 ~@29", // F5 Bb
  AK: "[eb3,bb3]@12 [eb3,bb3]@8 [eb3,g3,bb3,d4]@7 ~@5, eb2@3 ~, [g3,d4]@9 ~@3 g3@5 ~@15", // Eb5 Ebmaj7 G5
  AL: "[d3,a3,c4]@9 ~@11 a3@4 eb4@4 d4@2 ~@2, gb2@24 gb2 ~@7, gb3@2 gb3 ~", // D7
  AM: "[bb3,d4]@6 ~@2 bb3@3 ~@5 bb3 ~@3 [bb3,d4,g4]@8 ~@4, g2@3 ~, g3@12 g3@11 ~@9", // Bb Gm
  AN: "[bb3,d4,g4]@7 ~@5 g3@2 ~@2 f3@4 d4@3 ~ bb3@3 ~ f3@2 ~@2, f2@3 ~, f3 ~", // Gm
  AO: "[bb3,d4,g4]@8 ~@4 [g3,bb3,d4]@5 ~@3 [bb3,d4,g4]@4 ~@8, [eb2,eb3]@19 ~@13", // Gm Eb
  AP: "[bb3,c4,eb4,g4]@4 ~@4 [bb3,c4,eb4,g4]@5 ~@3 f4@4 g4@4 f4@3 ~ g4@3 ~, [f2,f3]@17 ~@15", // Cm7 F
  AQ: "[d4,f4]@16 ~@4 [bb3,d4,f4]@7 ~@5, bb2@13 ~@3, bb3@5 ~@3", // Dm Bb
  AR: "[d4,f4]@16 ~@4 [bb3,d4,f4]@7 ~@5, bb2@23 ~@9, bb3@5 ~@3", // Dm Bb
  AS: "[c4,eb4,g4]@13 ~@7 [c4,eb4,g4,a4]@9 ~@3, [a2,a3]@9 ~@7", // Cm Am7b5 A
  AT: "[c4,d4,gb4,a4]@17 ~@3 [c4,d4,gb4,a4]@6 ~@6, [d2,d3]@25 ~@7", // D7 D
  AU: "[bb3,d4,a4]@9 ~@3 [bb3,d4,g4]@7 ~@5 [g3,bb3,d4]@6 ~@2, [g2,g3]@25 ~@7", // Bbmaj7 Gm G
  AV: "[bb3,d4,g4]@4 ~@2 bb3@2 g3 ~ [bb3,d4,g4]@4 ~@2, f2@25 ~@7, f3@11 ~@5", // Gm
  AW: "[bb3,d4,g4]@17 ~@3 [bb3,d4,g4]@5 ~@7, [eb2,eb3]@5 ~@3", // Gm Eb
  AX: "[bb3,c4,eb4,g4]@8 ~@4 bb3 ~@3 f3@2 ~@2 [c4,eb4,g4]@10 ~@2, [f2,f3]@17 ~@15", // Cm7 Cm F
  AY: "[d4,f4]@15 ~@5 [bb3,d4,f4]@9 ~@3, bb2@25 ~@7, bb3@5 ~@3", AZ: "[bb2,bb3]@5 [bb3,d4,f4]@2 ~, [d4,f4]@7 ~@9",
  BA: "[c4,eb4,g4]@13 ~@7 [c4,eb4,g4,a4]@9 ~@3, [a2,a3]@5 ~@3", // Cm Am7b5 A
  BB: "~ [c4,d4,gb4,a4]@16 ~@4 [c4,d4,gb4,a4]@7 ~@4, ~ [d2,d3]@26 ~@5", // D7 D
  BC: "~ [bb3,d4,a4]@10 ~@2 [bb3,d4,g4]@6 ~@6 [g3,bb3,d4]@6 ~, ~ [g2,g3]@24 ~@7", // Bbmaj7 Gm G
  BD: "~ [bb3,d4,g4]@8 ~@4 bb3@4 ~@4 [bb3,d4,g4]@6 ~@5, ~ f2@24 ~@7, ~ f3@16 f3@7 ~@8", // Gm
  BE: "~ [bb3,d4,g4]@16 ~@4 [bb3,d4,g4]@6 ~@5, ~ [eb2,eb3]@20 ~@11", // Gm Eb
  BF: "~ [bb3,c4,eb4,g4]@7 ~ [bb3,c4,eb4,g4]@6 ~@2 [bb3,c4,f4]@3 ~ [bb3,c4,g4]@3 ~ [bb3,c4,f4]@3 ~ [bb3,c4,g4]@3, ~ [f2,f3]@22 ~@9", // Cm7 Bbsus2 C7 Bbsus2 C7 F
  BG: "~ [bb2,bb3,d4,f4]@28 ~@3, ~ db4 ~@30", BH: "~ [bb3,d4,f4]@26 ~@5, ~ bb2@23 ~@8",
  BI: "~ [c4,eb4,g4]@14 ~@10 [c4,eb4,g4,a4]@6 ~, ~ [a2,a3]@21 ~@10", // Cm Am7b5 A
  BJ: "~ [c4,d4,gb4,a4]@18 ~@2 [c4,d4,gb4,a4]@7 ~@4, ~ [d2,d3]@26 ~@5", // D7 D
  BK: "~ [bb3,d4,a4]@10 ~@2 [bb3,g4]@10 ~@2 [g3,bb3,d4]@7, ~ g2@27 ~@4, ~ g3@24 ~@7, ~@13 d4@5 ~@14", // Bbmaj7 Eb Gm
  BL: "~ [bb3,d4,g4]@8 ~@4 bb3@3 ~@5 [bb3,d4,g4]@9 ~@2, ~ f2@26 ~@5, ~ f3@16 f3@7 ~@8", // Gm
  BM: "~ [bb3,d4,g4]@17 ~@3 [bb3,d4,g4]@6 ~@5, ~ [eb2,eb3]@20 ~@11", // Gm Eb
  BN: "~ [bb3,c4,eb4,g4]@9 ~@3 [a3,c4,f4]@3 ~ [gb2,bb3,db4,gb4]@5 [gb2,bb3,db4,gb4]@5 [gb2,bb3,db4,gb4]@5, ~ [f2,f3]@16 ~@15", // Cm7 F Gb F
  BO: "~ [b2,b3,eb4,gb4]@26 ~@5", BP: "~ [b2,b3]@24 ~@7, ~ [eb4,gb4]@19 ~@12",
  BQ: "~ [db4,e4,ab4]@12 ab4 ~@7 [db4,e4,ab4,bb4]@6 ~@5, ~ [bb2,bb3]@19 ~@12", // Dbm Bbm7b5 Bb
  BR: "~ [db4,g4,bb4]@15 ~@16, ~ [eb2,eb3]@21 ~@10", // Gdim Eb
  BS: "~ [ab3,b3,eb4,ab4]@16 b3@4 [b3,ab4]@8 ~@3, ~ ab2@23 ~@8, ~@17 eb4@13 ~@2, ~@17 ab3@7 ~@8", // Abm E
  BT: "~ [ab3,b3,eb4]@13 ~@3 [ab3,b3,eb4]@3 ~ [b3,eb4,ab4]@9 ~@2, ~ [gb2,gb3]@26 ~@5", // Abm Gb
  BU: "~ [b3,eb4,ab4]@10 ~@2 b3@3 ~ ab3@2 ~@2 [b3,eb4,ab4]@5 ~@6, ~ [e2,e3]@25 ~@6", // Abm E
  BV: "~ [b3,db4,e4,gb4]@10 ~@6 gb3@15, ~ gb2@23 ~@8, ~ gb3@16 ~@15, ~@13 [b3,db4,e4,ab4]@18 ~", // Bsus4 Dbm7
  BW: "[~ [b3,eb4,ab4]@54 ~@9, ~ [ab2,ab3]@48 ~@15]/2", // Abm Ab
})).s("gm_piano").gain(0.35)

// other · piano
const piano_2 = note(`<
  ~@2 A@2 B@2 ~@18 C@2 D E F@2 G H C@2 I J K@2 G L M ~@9 N@2 O P Q@2 R S T@2 U V W@2 X Y Z@2 X AA AB@2 AC@3 AD AE AF
  AG@3 AH AI@2
>`.pickRestart({
  A: "[~@12 bb4@11 ~ a4@12 g4@9 ~@3 f4@4 g4@2 ~ eb4@5 ~@2 eb4@2, ~@54 f4@2 ~@5 f4@2 ~]/2", B: "[d4@57 ~@7]/2",
  C: "[f4@24 d5@6 c5 bb4]/2", D: "~ a4@15", E: "gb4@15 ~", F: "[a4@6 g4@5 ~ d4@20]/2", G: "g4@31 ~", H: "f4@15 ~",
  I: "a4", J: "gb4", K: "[a4@12 g4@11 ~ d4@39 ~]/2", L: "f4@31 ~", M: "g4@25 ~@7", N: "[~ f4@23 d5@6 c5 bb4]/2",
  O: "a4@29 ~@3", P: "gb4@15 ~ gb4@5 ~ g4@5 a4@5", Q: "[a4@11 ~ g4@10 ~@2 d4@39 ~]/2", R: "g4@15 ~",
  S: "f4@14 ~@2 f4@4 g4@4 f4@3 ~ g4@4", T: "[f4@47 ~ d5@12 c5@2 bb4@2]/2", U: "a4@31 ~", V: "~ gb4@30 ~",
  W: "[~ a4@12 g4@11 ~ d4@38 ~]/2", X: "~ g4@31", Y: "~ f4@29 ~@2", Z: "[~ f4@62 ~]/2", AA: "~ a4@16 gb4@5 g4@5 a4@5",
  AB: "[~ a4@12 g4@11 ~ d4@37 ~@2]/2", AC: "[~ g4@42 ~@2 f4@2 ~@2 gb4@47]/3", AD: "~ b4@31", AE: "~ bb4@31",
  AF: "~ g4@15 ~ g4@5 ab4@5 bb4@5", AG: "[~ b4@64 ab4@31]/3", AH: "~ gb4@31", AI: "[~ ab3@49 ~@14]/2",
})).s("gm_piano").gain(0.36)

// chords · piano
const piano_3 = note(`<
  ~@24 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I J@8 K E@2 L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@4 V@2 W@4 X Y@3
>`.pickRestart({
  A: "[[bb3,f4], d4@61 ~@3]/2", B: "[g4@8 [d4,gb4]@7 ~, [a3,c4]@15 ~, eb4@29 ~@35]/2",
  C: "[[bb3,a4]@12 [bb3,g4]@12 [g3,bb3,d4]@39 ~, d4@17 ~@47]/2", // Bbmaj7 Eb Gm
  D: "[d4@29 ~@3 [c4,eb4]@30 ~@2, [bb3,g4]@63 ~, g3 ~@63]/2", E: "[[bb3,f4], d4@15 ~]/2",
  F: "[g4@32 [d4,gb4]@29 ~@3, a3, c4@61 ~@3, eb4@29 ~@35]/2", G: "[[bb3,d4,g4]@31 ~]/2",
  H: "[d4@14 ~@2 d4@14 ~@2 [c4,eb4]@29 ~@3, [bb3,g4]@61 ~@3]/2", I: "[g3,bb3,d4]",
  J: "[c4@32 bb3@63 ~ [bb3,g4]@31 ~ [c4,gb4,a4]@32 ~@32 f3@32 eb3@32, f4@3 ~@2 [bb3,g4]@3, a3@30 ~@2 d4@221 ~@3]/8", // Eb Gbdim Eb
  K: "[f3,c4], eb4@29 ~@3", L: "[g4@32 [d4,gb4]@31 ~, c4, a3@61 ~@3, eb4@15 ~@17]/2", M: "[[bb3,d4,g4]@63 ~]/2",
  N: "[[d4,g4]@31 ~ [c4,g4]@32, bb3@31 ~, ~@32 eb4@29 ~@3]/2", O: "[[bb3,d4,f4]@63 ~]/2",
  P: "[g4@32 ~ [d4,gb4]@29 ~@2, [a3,c4]@31 ~, eb4@29 ~@35]/2", Q: "[~ [bb3,d4,g4]@63]/2",
  R: "[~ eb3@32 [f3,c4,eb4]@31, ~ [bb3,g4]@62 ~, ~ d4@29 ~@34]/2", S: "[~ [bb3,f4]@63, ~ d4@60 ~@3]/2",
  T: "[~ [a3,g4]@31 ~ [a3,d4,gb4]@31, ~ c4@63, ~ eb4@28 ~@35]/2", // A7 D
  U: "[~ [bb3,d4,g4]@106 ~@2 [a3,f4]@2 ~@2 [bb3,db4,gb4]@15, ~@109 c4 ~@18]/4", V: "[~ [b3,eb4,gb4]@61 ~@2]/2",
  W: "[~ [e4,ab4]@29 ~@3 g4@27 ~@5 [b3,ab4]@61 ~@2, ~ [bb3,db4]@62 ~@65, ~@33 eb4@93 ~@2]/4", X: "~ [e3,b3,e4,ab4]@31",
  Y: "[~ [db4,e4]@30 ~@2 [ab2,eb4]@49 ~@14, ~ [b3,ab4]@82 ~@13, ~ gb3@24 ~@71]/3", // Dbm Ab5 E
})).s("gm_piano").gain(0.36)

// bass · fretless bass
const bass = note(`<
  ~@6 A B C@2 D E F@2 G H I@2 J K L M N O P Q R S T O U V W X Y Z AA O AB AC AD AE W AF AG AH AI AJ AK AL AM AN AO AP AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR@3
>`.pickRestart({
  A: "g3@7 ~", B: "a3@27 ~@5", C: "[bb3@49 ~@7 f3@6 ~@2]/2", D: "eb3@7 ~", E: "gb3@12 ~@2 d3 ~",
  F: "[g3@43 ~@5 d3@12 ~@4]/2", G: "g2@29 ~@3", H: "a2@27 ~@5", I: "[bb2@57 ~@7]/2", J: "eb2@19 ~@5 eb2@3 ~@5",
  K: "gb2@7 ~", L: "g2@27 ~@5", M: "f2@7 ~", N: "eb2@13 ~@3", O: "f2@25 ~@7", P: "bb2@12 ~@2 f2 g2",
  Q: "bb2@24 ~@4 bb2 ~@3", R: "a2@13 ~@3 a3@12 ~@4", S: "d3@21 ~@3 a2@7 ~", T: "g2@3 ~", U: "eb2@24 ~@4 eb2 ~@3",
  V: "f2@8 f3@7 ~ f2@2 ~@2 f2@3 ~@5 f2 ~@3", W: "bb2@25 ~@3 f2@2 ~@2", X: "bb2 ~@7 bb2@17 ~@3 bb2 ~@3",
  Y: "a2@17 ~@3 a3@4 ~@4 eb3@3 ~", Z: "d3@15 ~@5 d3@11 ~", AA: "g2@23 ~@5 g2 ~@3", AB: "eb2@25 ~@7",
  AC: "f2@2 ~@6 f2@8 ~@4 f2@3 ~@5 f2@2 ~@2", AD: "g2@25 ~@3 g2@2 ~@2", AE: "a2@21 ~@3 f2@2 ~@2 a2@2 ~@2",
  AF: "bb2@2 ~@2 f2@2 ~@2 bb2@13 ~@3 c3@3 ~ bb2@2 ~@2", AG: "eb2@20 eb2@5 ~@3 gb2 ~@3", AH: "gb2@13 ~@3 d3@11 ~ d2@3 ~",
  AI: "g2@9 ~@3 g2@2 ~@2 g3@2 ~@2 g2@3 ~@5 g2@2 ~@2", AJ: "f2@24 ~@4 f2 ~@3", AK: "eb2@12 ~@2 eb2 ~",
  AL: "f2@4 ~@4 f2@4 ~@4 f2@3 ~ f2@2 ~@2 f2@3 ~ f2@2 ~@2", AM: "bb2@12 ~@2 f2 ~",
  AN: "bb2@2 ~@6 bb2@11 ~@5 c3@3 ~ bb2@2 ~@2", AO: "a2@13 ~@3 a3@9 ~@3 eb3@2 ~@2",
  AP: "d3@12 ~@4 d3@2 ~@2 d3@5 ~@3 d3 ~@3", AQ: "g2@12 ~@2 g2 ~", AR: "f2@7 ~ f3 ~ f3 ~@3 f2 ~",
  AS: "eb2@25 ~@3 eb2 ~@3", AT: "f2@2 ~@2 f2@3 ~@5 f2@2 ~@2 f2@2 ~@2 f2@2 ~@2 g2@2 ~@2 f2@2 ~@2",
  AU: "bb2@23 ~@5 f2@2 ~@2", AV: "bb2@2 ~@6 bb2@13 ~@3 c3@3 ~ bb2@2 ~@2", AW: "a2@16 ~@4 a3@5 ~@4 a3@2 ~",
  AX: "~ d3@12 ~@4 d3@6 ~@2 a2@2 ~@2 a2 ~@2", AY: "~ g2@9 ~@3 g2@13 ~@3 g2 ~@2", AZ: "~ f2@24 ~@4 f2@2 ~",
  BA: "~ eb2@13 ~@3 eb2@9 ~@3 eb2@2 ~", BB: "~ f2@3 ~@5 f2@5 ~@3 f2@2 ~@2 f2@2 ~@2 g2@2 ~@2 f2@2 ~",
  BC: "~ bb2@8 ~@4 bb2 ~@2 bb2@8 ~@5 f2@2 ~", BD: "~ bb2 ~@6 bb2@11 ~@5 c3@3 ~ bb2@2 ~@2",
  BE: "~ a2@14 ~@2 a3@7 ~ eb3@4 a3@3", BF: "~ d3@11 d3@3 ~@2 d4@7 ~ d3@3 ~ a3 ~@2",
  BG: "~ g2@10 ~@2 g2@2 ~@2 g3@6 ~@2 g2@2 ~@2 g2@2 ~", BH: "~ f2@2 ~@2 f2@4 ~@4 f2@13 ~@3 d2@2 ~",
  BI: "~ eb2 ~@3 eb2 ~@3 eb2 ~@3 eb2@9 ~@3 eb2@2 ~@2 eb2 ~@2",
  BJ: "~ f2@2 ~@2 f2@2 ~@2 f2 ~@3 f2@2 ~@2 gb2@5 gb3@5 gb2@5", BK: "~ b2@24 ~@4 gb2@3",
  BL: "~ b2@2 ~@6 b2@12 ~@4 db3@3 ~ b2@2 ~", BM: "~ bb2@15 ~ bb2@3 ~ bb2@3 ~ db3@3 ~ d3@3",
  BN: "~ eb3@15 ~ eb3@3 ~ eb3@3 ~ g3@3 ~ eb3@3", BO: "~ ab2@15 ~ ab3@11 ~ ab2@2 ~",
  BP: "~ gb2@13 ~@3 gb3@3 ~ eb3@2 ~@2 gb3@2 ~@2 f3@2 ~", BQ: "~ e3@15 ~ e2@6 ~@2 e2@3 ~ f2@3",
  BR: "[~ gb2@17 ~@3 gb2@4 ~@4 gb2@53 ~@14]/3",
})).s("gm_fretless_bass").gain(0.56)

// other · overdriven guitar · "Track-2"
const overdriven_guitar = note("<~@65 A B C@2 D E@2 F@6 G@2 ~@4>".pickRestart({
  A: "~@21 eb5@11", B: "eb5 eb5@8 d5@3 ~ d5@19",
  C: "[~@5 eb5@6 ~@2 d5@4 d5@18 ~@2 c5@3 c5@4 ~ d5@2 ~ eb5@7 ~ eb5@7 ~]/2", D: "eb5@11 ~@2 d5@6 ~ d5@8 c5@2 ~@2",
  E: "[~ c5@11 ~ c5@2 d5@2 bb4@18 ~@2 f4 ~ g4 bb4@3 ~@2 bb4@7 ~@2 f4@2 d4@4 ~ c4 ~@2, ~@53 g4@2 ~@9]/2",
  F: "[~ bb3@12 g3@2 ~ bb3@4 c4@2 ~@2 d4@22 ~@3 gb4@2 ab4@2 bb4@2 b4@2 db5@2 eb5@2 e5@2 f5@2 gb5@42 ~@2 eb5@14 ~ db5@2 ~ b4@2 db5@40 ~@4 eb5@15 db5@3 ~]/6",
  G: "b4/2",
})).s("gm_overdriven_guitar").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  ~@32 A B A C A D A E F D A G A D C A D@2 H I H J K@3 H K I L I K@3 F M I N M K I@2 O H I K F H L J@2 ~@2
>`.pickRestart({
  A: "x ~@6 x", B: "x ~ x ~@4 x", C: "x ~@4 x ~ x", D: "x", E: "x ~@2 x ~ x!2 ~", F: "~ x ~@26 x ~@3", G: "x ~@5 x!2",
  H: "x ~@28 x ~@2", I: "~ x ~@7 x ~@19 x ~@2", J: "~ x ~@30", K: "~ x ~@27 x ~@2", L: "~ x ~@19 x ~@7 x ~@2",
  M: "~ x ~@11 x ~@15 x ~@2", N: "~ x ~@23 x ~@3 x ~@2", O: "~ x ~@11 x ~@13 x ~@4",
})).gain(0.56)

// drums · rim
const rim = s("rim").struct("<~@40 [~ x]!9 ~@35>").gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@32 A@8 ~@9 B C@7 D C A C@5 E C@11 A C@3 ~@3>".pickRestart({
  A: "~ x", B: "~@9 x ~@6 x ~@15", C: "~@17 x ~@14", D: "~@5 x ~@3 x ~@7 x ~@14", E: "~@5 x ~@3 x ~@22",
})).gain(0.56)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@6 A@14 B A@10 C D E@3 F G H I J@3 K J L J@2 K M@2 N M@7 O M@3 P Q M@5 N@2 Q R S N@2 T U N V C W ~
>`.pickRestart({
  A: "~ x", B: "~@2 x!2", C: "~@17 x ~@14", D: "~ x ~@6 x ~@7 x ~@7 x ~@3 x ~@3", E: "x ~ x ~ x ~ x!2",
  F: "x ~ x ~ x!3 ~", G: "x ~ x ~ x!4", H: "x!4", I: "x ~@7 x ~@8 x ~@7 x ~@6", J: "~ x ~@6 x ~@8 x ~@6 x ~@7",
  K: "~ x ~@6 x ~@8 x ~@7 x ~@6", L: "x ~@7 x ~@8 x ~@6 x ~@7", M: "~ x ~@7 x ~@7 x ~@7 x ~@6",
  N: "~ x ~@7 x ~@7 x ~@7 x ~@3 x ~@2", O: "~ x ~@7 x ~@6 x ~@8 x ~@3 x ~@2",
  P: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@3 x ~@2", Q: "~ x ~@7 x ~@7 x ~@3 x ~@3 x ~@3 x ~@2",
  R: "~ x ~@3 x ~@3 x ~@3 x ~@8 x ~@9", S: "x ~@8 x ~@7 x ~@7 x ~@3 x ~@2", T: "~ x ~@7 x ~@6 x ~@7 x ~@3 x ~@3",
  U: "x ~@7 x ~@8 x ~@7 x ~@3 x ~@2", V: "~ x ~@7 x ~@3 x ~@3 x ~@7 x ~@6", W: "~ x ~@30",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@31 A ~@7 B ~@9 A ~@7 C ~@7 D ~@14 B ~@3>".pickRestart({
  A: "~@6 x!2", B: "~@25 x ~@6", C: "~@13 x ~@11 x ~@3 x ~@2", D: "~@7 x",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@73 [~@17 x ~@9 x ~@4] ~@10>").gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@31 A ~@17 B ~@7 C ~@7 D ~@7 E ~@10>".pickRestart({
// … 20 more lines