Strudelify

Het is koud zonder jou

Andre Hazes

KeyD majorTempo72 bpm
0:00/0:00
// Het is koud zonder jou — Andre Hazes
// 72 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 73 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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 · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  A@2 B@2 C D E F G H I J K L M N O P Q R S T U V@2 W X Y Z AA AB AC AD AE AF N AG AH AI AJ K L AK N O P Q R S T U V@2 W
  X AL AM AN AO AP S T U V@2 W X AQ Y AR@4
>`.pickRestart({
  A: "[[d3,a3,d4,f#4,f#5]@15 ~ e5@4 f#5@4 a5@4 d5 ~ [g2,d5]@14 e5@2 f#5@2 d4@8 c#4@7 ~, ~@16 [f#2,f#3,a#3,d4,e4]@14 [g3,b3,d4,f#4]@17 ~ [a2,a3,e4,g4,e5]@15 ~]/2", // D G5 F#aug Gmaj7 A7
  B: "[[a4,d5,f#5]@8 [a4,d5,f#5]@4 [b4,d5,g5]@11 ~ [b4,d5,g5]@4 [c#5,e5,a5]@11 ~ [c#5,e5,a5]@3 ~ [b4,d5,g5]@19 ~, d3@27 ~ a2@35 ~]/2", // D G A G
  C: "~@2 d4@2 ~@3 d4, d3@15 ~@9 c#4@8, ~ a3@3 [f#3,a4]@4", // F#m
  D: "~@5 b4@3, b2@31 ~, ~@4 b3@27 ~, ~@8 d4@23 ~, ~@12 f#4@19 ~",
  E: "~@5 b4@3, e3@15 ~ d3@15 ~, ~ f#4@7, ~ g4@3, ~@12 b4@7 ~@13",
  F: "[c#3,a3,e4]@8 [b2,f#3,d4]@8 a2@7 ~ g2@7 ~, a4@31 ~, ~ [e3,c#4]", // A Bm C#m
  G: "~@12 d5@4 e5@8 d5@7 ~, f#2@15 ~@17, ~ d4@3 [f#3,f#4,a#4,c#5]@4, ~ a4 ~@2", // F#
  H: "[g3,f#4,b4,d5]@4 ~@3 a4, ~@16 f#3@15 ~, ~@16 a4@11 ~@5, ~@5 a3@3, ~@3 e4", // Gmaj7
  I: "~@3 g4 ~@3 g4, e3@15 ~ d3@15 ~, g4 d4 ~ e4, ~ b3@3 ~ b3@3",
  J: "~ c#4 [b2,g3,d4] [c#3,a3,e4], c#3@15 ~@17, ~ e4@3 ~@4", // G A
  K: "[d3,a3,d4,f#4]@15 ~ f#4@8 e4@7 ~, ~@16 [a2,g3,c#4]@15 ~", L: "[b2,f#3,b3,d4]@15 ~ [f#2,f#3,a3,e4]@15 ~",
  M: "[e2,b3,e4,g4]@15 ~ [d2,b3,d4,g4]@15 ~", N: "[c#3,a3,e4]@8 [b2,f#3,d4]@8 a2@7 ~ g2@7 ~, ~ [e3,c#4]",
  O: "e4@8 d4@7 ~ [f#3,d4,e4,f#4,a#4]@15 ~, [f#2,a3,a4]@15 ~@17", // F#aug F#m
  P: "[g3,d4,f#4,b4]@15 ~ [c#3,g4,b4]@8 [f#3,f#4,a#4]@8, ~@16 [c#4,e4]@15 ~", // Gmaj7 C#m7b5 F# C#m
  Q: "b4 c#5 d5 f#5 ~@2 g#4@2, [b2,a3,b3,d4,f#4]@15 ~ [e3,g#3,b3,d4,f#4]@16", // Bm7 E7
  R: "[a2,a3,d4,e4,a4]@16 b2@7 ~ c#3@7 ~, ~@16 [g3,c#4,e4,a4]@15 ~", S: "[d3,a3,d4,f#4]@15 ~ [c#3,a3,c#4,e4]@15 ~",
  T: "[b2,b3,d4,f#4]@15 ~ [f#2,f#3,a3,e4]@15 ~", // Bm F#m7
  U: "[g2,a3,b3,d4]@15 ~ d4@7 ~@5 g4@3 ~, ~@16 [e2,g3,b3]@15 ~, ~@16 g4@11 ~@5, ~@24 d4@7 ~", // G Em
  V: "[[a2,b3,d4,g4]@15 ~ [g2,b3,f#4]@3 ~ [f#2,a3,e4]@3 ~ [e2,g3,d4]@4 [c#2,a3,e4]@2 [d2,a3,d4,f#4]@17 ~ [f#2,a3,d4,e4]@15 ~]/2", // G Gmaj7 F#m7 Em7 A D
  W: "[b2,a3,d4,f#4,b4]@15 ~ [f#4,b4]@7 ~ [f#4,b4]@8, ~@16 [a2,a3,d4]@15 ~", // Bm7 B5 D5
  X: "[g2,b4,d5,f#5]@7 ~ [f#2,c#5,e5]@2 ~@2 [g4,b4,d5]@2 [e2,g4,b4,d5]@17 ~, ~@8 a4 ~@3 e2 ~@19", // Gmaj7 F#7 G Em7
  Y: "~@3 [a4,f#5] ~@3 [a4,e5], d3 c#3, [a4,f#5]@11 ~@5 [a4,e5]@11 ~@5, ~ d4@3 ~ c#4@3, ~ f#4 ~ e4", // D A5 D A5
  Z: "~@12 [a4,d5]@4 c#5@3 ~ [a3,d5]@4 ~@6 d4@2, b2 [a2,f#3], [f#4,d5]@13 ~@15 [f#4,a4]@4, ~@4 b3@12 ~@10 a3@5 ~, ~@8 d4@8 ~@8 [d4,c#5]@5 ~@3", // D5 D F#m Dmaj7
  AA: "~@12 g4@4 ~@8 d5@3 ~ [g4,c#5]@4, b4@3 ~, [g2,g3] [a2,g3], d4@7 ~ d4@8 ~@8 d4@8, ~ b3@3 ~ b3@3", // Gdim G A7
  AB: "[a3,d4,f#4]@3 [a3,d4,f#4] [b3,d4,g4]@4, d3@31 ~, d5@3 ~", // D G
  AC: "[c#4,e4,a4]@11 ~ [c#4,e4,a4]@3 ~ [b3,d4,g4]@15 ~, a2@31 ~", // A G
  AD: "~@12 a3@4 ~@4 e4@3 ~@5 d4@4, [d3,e4,f#4]@15 ~@17, a3@3 ~ [f#3,f#4,a4]@4, ~@4 d4@11 ~@9 e4@8", // D F#m
  AE: "~@5 a4@3, [b2,f#3]@31 ~, d4@7 ~ d4@23 ~, ~@4 b3@27 ~, ~@12 f#4@19 ~", // B5
  AF: "~@28 e4@3 ~, e3@15 ~ d3@15 ~, ~ b3@3 ~ g3@3, ~@8 e4@7 ~@9 b3@7 ~, ~@3 g4@2 ~@3",
  AG: "~@12 d4@4 e4@8 d4@7 ~, f#2@15 ~ [f#2,f#3,a#3]@16, ~@4 f#3@11 ~@17, ~ a3 ~@2", // F#
  AH: "~@8 b3@4 [b3,d4,f#4]@3 ~ a3@11 ~ a3@4, g2@15 ~ [f#2,c#4,e4]@16, [a3,d4,f#4]@11 ~@21, b3 ~@3, ~@4 g3@7 ~@21", // Bm F#7 D
  AI: "~@3 d4 ~@3 g4, [e3,g3]@15 ~ d3@15 ~, ~ b3@3 ~ b3@3, ~@8 g4@8 g4@11 ~@5, ~@24 e4@7 ~", // Em
  AJ: "e4@3 ~@9 e4@4 [b2,g3,d4]@8 [c#3,a3,e4]@8, [c#3,b3,a4] ~, c#4!2 ~@2, ~ e4@2 ~@5", // G A F#m
  AK: "[e2,b3,e4,g4]@15 ~ [d2,g3,b3,d4]@15 ~", // Em G
  AL: "~@4 [a3,a4]@4 [d4,d5]@4 [e4,e5]@4 [b4,g5]@3 ~ [a4,f#5]@3 ~ [g4,e5]@4 [f#4,d5]@4, d2@31 ~", // A D E Em D C D
  AM: "[g2,d4,f4,a#4] [a#2,e4,g4,c5]", // Gm7 C7
  AN: "c4@2 ~@6 c5@3 ~ c5@3 ~ [d2,d4,f4,a4,c5]@16, a2 ~, g4@3 e4@5 ~@8, ~ g3@3 g4@4 ~@8, ~ c4@3 ~@4", // Dm7
  AO: "[b2,f#4,a4] [e2,d4,e4,g#4,b4], [b4,d5]@13 ~@19", // B7 E7 Bm
  AP: "[a2,e4,g4,b4,d5]@7 ~ [f#3,f#4,a4,c#5,e5]@7 ~ [e3,g4,b4,d5,f#5]@7 ~ [a2,a4,c#5,e5,g5]@8", // Em7 F#m7 Em7 A7
  AQ: "~@3 g4@27 ~@2, a2@31 ~, ~ g3@30 ~, ~@2 [b3,d4]@29 ~", // Bm
  AR: "[~@12 [f#4,d5]@4 c#5@3 ~ [d4,d5]@4 [f#4,c#5]@4 [f#3,a4]@2 ~@10 b3@8 ~@16 d5@7 ~ c#5@7 ~@2 [a4,d5]@47, b2 a2 g2 [a2,g3,b3,d4]@2 [d3,e4,f#4]@3, [f#4,d5]@11 ~@19 b4@17 ~@2 g4@30 ~@49, ~@4 b3@12 f#3@11 ~@9 g3@11 ~@81, ~ d4 ~@14]/4", // D F#5 F#m D5 G D
})).s("gm_epiano2").gain(0.4)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~ A B@2 C D E F G H E I J K L F M N O P Q R S T@2 U V W K X Y@2 C Z E F AA AB AC I AD AE AC F M N AF AG AH AI AJ AK@2
  U V AL AM AN AO AP AQ AR AS AT@2 AU V AV W AW AX@3
>`.pickRestart({
  A: "~@24 a2@7 ~", B: "[d2@27 ~ a1@16 g2 a2@19]/2", C: "d2@15 ~ f#2@15 ~", D: "b1@20 ~@4 b1@3 ~ b1@3 ~",
  E: "e2@15 ~ d2@15 ~", F: "c#2@7 ~ b1@7 ~ a1@7 ~ g1@7 ~", G: "f#1@15 ~ f#2@15 ~", H: "g2@15 ~ f#2@15 ~",
  I: "c#2@15 ~ b1@7 ~ c#2@7 ~", J: "d2@15 ~ a1@15 ~", K: "b1@14 ~ g1 f#1@15 ~", L: "e1@15 ~ d2@15 ~",
  M: "f#1@11 ~ f#2@3 ~ f#2@11 ~ f#2@3 ~", N: "g2@15 ~ c#2@7 ~ f#2@7 ~", O: "b1@11 ~ b2@3 ~ e2@14 ~@2",
  P: "a2@12 d2@3 ~ a1@3 ~ a1@3 ~ a1@4 a1@3 ~", Q: "d2@11 ~ d2@3 ~ c#2@11 ~ c#2@3 ~",
  R: "b1@11 ~ a1@3 ~ f#1@11 ~ f#1@3 ~", S: "g1@11 ~ g1@3 ~ e1@11 ~ [e1,f1] g1@3, ~@29 f#1 ~@2",
  T: "[a1@9 ~ e2@2 a2@3 ~ g2@3 ~ f#2@2 ~@2 e2@2 ~@2 c#2@2 d2@11 ~ a1@2 d2@3 ~ f#2@11 ~ f#1@3 ~]/2",
  U: "b1@11 ~ b1@3 ~ a1@15 ~", V: "g2@6 ~@2 f#2@2 ~@2 e2 ~ e2@16 ~@2", W: "d2@15 ~ c#2@15 ~", X: "g1@15 ~ a2@15 ~",
  Y: "[~@48 g3 a3@14 ~, d2@63 ~]/2", Z: "b1@8 b2 f#2 b1@4 b2@2", AA: "f#1@11 ~ f#1@3 ~ f#2@15 ~",
  AB: "g2@11 ~ g2@3 ~ f#2@15 ~", AC: "e2@11 ~ e2@3 ~ d2@15 ~", AD: "d2@11 ~ a1@3 ~ a1@15 ~",
  AE: "b1@11 ~ b1@2 f#1 ~ f#1@7 ~ f#2@7 ~", AF: "b1@11 ~ b1@3 ~ e2@13 f2 ~@2",
  AG: "a2@12 d2@3 ~ a1@3 ~ a1@3 ~ a1@4 c#2@3 ~", AH: "d2@9 ~ a1 ~ d2@3 ~ c#2@11 ~ c#2@2 c#2@2",
  AI: "b1@11 ~ f#1@3 ~ f#1@7 ~ f#2@7 ~", AJ: "g1@11 ~ g1@3 ~ e1@15 ~",
  AK: "[a1@7 ~ a2@7 ~ g2@3 ~ f#2@3 ~ e2@2 ~@2 c#2 ~ d2@17 ~ f#2@11 ~ f#1@3 ~]/2",
  AL: "d2@12 a2@2 ~@2 e3@3 ~ d3@11 ~, ~@16 d3 ~@15", AM: "g2@15 ~ a#1@13 ~ a#1@2",
  AN: "a1@12 a1@4 d2@2 e2 ~ f2 ~ a2@2 d3@5 ~@3", AO: "b1@10 ~@2 b1@3 ~ e2@14 ~@2", AP: "a2@7 g2 f#2@7 ~ e2@7 a#1 a1@8",
  AQ: "d2@10 d2 ~ d2@3 ~ c#2@8 c#2 ~ c#3@5 ~", AR: "b1@9 ~ b1 ~ b1@2 f#1@2 f#1@7 ~ f#2@7 ~",
  AS: "g2@10 f#2 ~ g2@3 ~ e2@7 ~ e2@4 e1@4",
  AT: "[a1@11 ~ a2@3 ~ g2@3 ~ f#2@3 ~ e2@2 ~@2 c#2@2 d2@13 ~ d2@3 ~ f#2@11 ~ f#1@3 ~]/2",
  AU: "b1@10 b1 ~ b1@3 ~ a1@7 ~ a1@7 ~", AV: "a2@31 ~", AW: "b1@15 ~ a1@15 ~", AX: "[g1@15 ~ a1@31 ~ d1@47 ~]/3",
})).s("gm_electric_bass_finger").gain(0.5)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note("<~@13 A ~@4 B ~@9 A C ~@16 D ~@10 E ~ F ~@6 G ~@6>".pickRestart({
  A: "~@14 g#1 ~@17", B: "~@29 f2 g2 g#2, ~@15 f#2", C: "~@15 [g2,g#2] ~@16", D: "~@30 [f#2,g2] g#2",
  E: "~@29 [b2,c3] [g2,a2] f2", F: "~@7 g#2 ~@15 b1 ~@8", G: "~@30 [f2,f#2] [g2,g#2]",
})).s("gm_electric_bass_finger").gain(0.29)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~ A@3 ~@7 B@4 C@6 D@6 ~ E@4 ~@7 B@4 C@6 D@6 F@6 G@7 ~@3 H@2>".pickRestart({
  A: "[~@15 g4@16 f#4@12 g4@16 a4@16 g4@20 ~]/3", B: "[~@31 f#4@24 e4@8 d4@8 e4@4 f#4@4 a4@16 a4@8 g4@24 a4]/4",
  C: "[~@7 b4@8 c#5@16 e5@8 d5@8 e5@8 d5@8 f#5@16 g5@8 f#5@8 b5@25 d6@7 d6@16 c#6@16 [a5,a6]@32 [d5,d6]]/6", // A D
  D: "[~@3 [c#5,c#6]@4 [d5,d6]@4 [f#5,f#6]@4 [a4,a5]@16 [b4,b5]@8 [c#5,c#6]@4 d6@4 [d4,d5]@32 [f#4,d5]@4 [e4,c#5]@4 [d4,b4]@4 ~@4 a6@32 [d5,d6]@4 [c#5,c#6]@4 [d5,d6]@4 f#6@3 ~ f#6@16 [b4,b5]@9 ~@3 [d5,d6]@2 [d5,d6]@18 ~, ~@43 d5@3 ~@45 [e4,c#5]@4 ~@97, ~@93 a5@35 ~@11 f#5@21 ~@32]/6", // C# D F# A B C# D C#m …
  E: "[~@15 a4@24 g4@24 f#4@16 g4@16 a4@16 g4@17]/4",
  F: "[~@3 [a4,a5]@4 [d5,d6]@4 [e5,e6]@4 ~@5 f#5@3 ~@4 [a4,d5,d6]@4 [a#4,a#5]@16 [c5,c6]@32 [d5,d6]@24 [f#5,f#6]@4 [d5,d6]@4 [e5,e6]@16 [g4,b4]@8 [a4,c#5]@8 [b4,d5]@8 [c#5,e5]@8 [a5,a6]@32 [d5,d6], ~@15 [b4,g6]@4 [a4,f#6]@5 e5@5 ~@163, ~@16 g5@5 ~@2 [g4,e6]@5 ~@164]/6", // A D E D5 A# C D F# …
  G: "[~@3 [c#5,c#6]@4 [d5,d6]@4 [f#5,f#6]@4 [a4,a5]@16 [b4,b5]@8 [c#5,c#6]@4 d6@4 [d4,d5]@32 [f#4,d5]@4 [e4,c#5]@4 [d4,b4]@4 ~@4 a6@32 [d5,d6]@4 [c#5,c#6]@4 [d5,d6]@4 f#6@3 ~ f#6@16 [a4,a5]@9 ~@2 [b4,c5] [c#5,d5,b5,c6,c#6] ~ [d4,d5]@18 d4@30 ~@3, ~@43 d5@3 ~@45 [e4,c#5]@4 ~@129, ~@93 a5@35 ~@11 f#5@21 ~@12 d6@2 ~@50]/7", // C# D F# A B C# D C#m …
  H: "[~@15 [d2,a3,d4,e4,a4]@49]/2", // Dsus2
})).s("gm_string_ensemble_2").gain(0.48)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  ~@2 A@2 ~@7 B@2 C@2 D@5 E@7 F G@3 H ~@4 I J K L@2 C@2 D@5 M@8 N@2 O@2 P@7 Q ~@3 R@2
>`.pickRestart({
  A: "[a3@12 b3@15 [e3,c#4]@16 ~ d3@20, d3@28 ~@15 b3@20 ~]/2", B: "[~@2 a3 [g3,c#4], ~@31 d4@17 ~@16]/2",
  C: "[b3@8 c#4@4 d4@4 e4@8 d4@7 ~ e4@15 d4@16 ~, f#3@31 b3@32 ~]/2",
  D: "[e4@7 d4@9 c#4@8 [g3,a3]@7 ~ e4@8 ~@7 a#3@16 ~ g3@16 c#3@7 [f#3,a#3]@8 ~@24 e4@8 ~@25 d4@4 e4@4, a3@24 ~@7 f#3@33 ~@31 a3@16 ~ g#3@16 a4@31 ~, ~@32 a3@16 ~@16 b3@24 ~@7 f#4@24 ~@8 a3@12 ~ b3@5 ~@15, ~@40 d4@23 d4@17 c#4@16 d4@32 e4@25 ~@7, ~@143 a3@16 ~]/5", // Gsus2 F#
  E: "[[d4,f#4]@15 [c#4,e4]@16 ~ [d4,f#4,b4]@16 e4@8 ~@16 g4@16 e4@4 g4@4 g4@16 [b3,d4,f#4,b4]@3 ~ [c#4,e4,a4]@4 [b3,d4,g4,b4]@3 ~ g3@2 [d4,f#4]@17 [c#4,e4]@16 ~ b4@16 a4@15 [b3,d4,f#4]@8 e4 [a3,c#4] ~@3 [g3,b3,d4]@2 ~@10 e4@8, a3@64 b3@47 ~@4 a3@3 ~@8 a3@65 ~@15 [g3,b3,d4]@18, a4@16 ~@8 a4@12 ~@27 a4@17 ~@32, ~@56 d4@55 ~@12 [e4,a4,c#5]@2 ~@35 [d4,f#4]@31 ~@33]/7", // D C#m Bm A G D C#m Bm …
  F: "a3", G: "[~@16 a3@16 [g3,b3]@31 ~ a3@16 [g3,b3]@16, f#3@32 ~@31 f#3@17 ~@16, ~@16 d4@79 ~]/3",
  H: "[a3,c#4,e4]@15 ~ b3@16, ~@15 [g3,d4]@16 ~", I: "f#3 a#3", J: "b3 a3", K: "g3",
  L: "[a3@15 ~ g3@8 [a3,c#4]@7 ~ a3@16 [g3,c#4]@16, ~@15 b3@8 ~@8 d4@17 ~@16]/2", // A Gdim
  M: "[[d4,f#4]@15 [c#4,e4]@16 ~ [d4,f#4,b4]@16 e4@8 ~@16 g4@16 e4@4 g4@4 g4@16 [b3,d4,f#4,b4]@3 ~ [c#4,e4,a4]@4 [b3,d4,g4,b4]@3 ~ g3@2 [d4,f#4]@17 [c#4,e4]@16 ~ b4@16 a4@15 [b3,d4,f#4]@8 e4 [a3,c#4] ~@3 [g3,b3,d4]@2 ~@10 e4@7 ~ f#3@32, a3@64 b3@47 ~@4 a3@3 ~@8 a3@65 ~@15 [g3,b3,d4]@18 ~@32, a4@16 ~@8 a4@12 ~@27 a4@17 ~@48, ~@56 d4@55 ~@12 [e4,a4,c#5]@2 ~@35 [d4,f#4]@31 ~@32 [a3,d4]@32 ~]/8", // D C#m Bm A G D C#m Bm …
  N: "[[d4,f4] ~ a3 [d4,f4,a4], a#3 ~, ~ c4@3, ~ [e4,g4]@2 ~]/2", // Dm Em
  O: "[[a3,b3,d4,f#4]@15 [b3,d4,e4,g#4]@15 ~@2 g3@7 ~ e4@7 ~ [b3,d4]@7 ~ [c#4,g4]@8, ~@31 [b3,d4]@8 [a3,c#4]@8 f#4@8 e4@8 ~]/2", // Bm7 E7 Bm C#dim Bm A
  P: "[[d4,f#4]@15 [c#4,e4]@16 ~ [d4,f#4,b4]@16 e4@8 ~@16 g4@16 e4@4 g4@4 g4@16 [b3,d4,f#4,b4]@3 ~ [c#4,e4,a4]@4 [b3,d4,g4,b4]@3 ~ g3@2 [d4,f#4]@17 [c#4,e4]@16 ~ b4@16 a4@15 [b3,d4,f#4]@8 e4 [a3,c#4] ~@3 [g3,b3,d4]@2 [g3,b3,d4]@18, a3@64 b3@47 ~@4 a3@3 ~@8 a3@65 ~@33, a4@16 ~@8 a4@12 ~@27 a4@17 ~@32, ~@56 d4@55 ~@12 [e4,a4,c#5]@2 ~@35 [d4,f#4]@31 ~@33]/7", // D C#m Bm A G D C#m Bm …
  Q: "[e3,g3,b3]", R: "[~@16 d2@45 ~@3]/2",
})).s("gm_synth_strings_1").gain(0.32)

// chords · electric guitar jazz · "+HAWAI GTR"
const electric_guitar_jazz = note(`<
  ~@3 A B ~@6 C D ~@6 E F G ~ H@2 I J K ~@11 C D ~@6 E F G ~ H@2 I J L M ~ N O F G ~ H@2 I P ~@4 Q@2
>`.pickRestart({
  A: "~@2 [c#5,a5] [b4,g5]@5, ~@8 c5 ~@23", B: "[a4,f#5] ~", C: "~@2 [b4,g5] [c#5,a5]", D: "[b4,g#5] ~",
  E: "~@5 [a4,e5] [b4,g5] [c#5,a5]", F: "[d5,a5] [c#5,a5]", G: "[b4,f#5] [a4,e5]",
  H: "[~@8 [f#4,b4,d5]@2 [e4,a4,c#5]@2 [b4,d5,f#5]@2 [c#5,g5] [d5,a5]@9 [c#5,a5]@8]/2", I: "[b4,f#5] [a4,f#5]",
  J: "[b4,d5,f#5]@8 [a4,c#5,e5] ~@3 [g4,b4,d5]@2 [g4,b4,d5]@17 ~", K: "[d4,a4] ~",
  L: "[a4,f#5]@3 ~ [b4,g5] [a4,f#5] [g4,e5] [f#4,d5]", M: "[f4,d5] ~", N: "[f#4,a4,d5]@15 ~ [e4,g#4,b4]@15 ~",
  O: "[g4,b4,d5]@7 ~ [a4,c#5,e5]@7 ~ [b4,d5,f#5]@8 [c#5,e5,g5]@7 ~", // G A Bm C#dim
  P: "[b3,d4,f#4]@8 [a3,c#4,e4] ~@3 [g3,b3,d4]@2 [g3,b3,d4]@17 ~", // Bm A G
  Q: "[[g4,b4,d5]@8 [e4,a4,c#5]@7 ~ [f#4,a4,d5]@46 ~@2]/2", // G A D
})).s("gm_electric_guitar_jazz").gain(0.48).pan(0.7)

// chords · electric guitar clean · "+CHORUSGTR"
const electric_guitar_clean = note(`<
  ~@4 A B C D E F G H I J K L ~@2 M ~@11 N O A B C D E F G H I J K L ~@2 M ~@10 P Q ~@12 R@2
>`.pickRestart({
  A: "~@8 d4@9 ~@15, d3@17 ~@15, ~@4 f#4@13 ~@15", B: "~ d4@2 ~, b3@3 ~, ~ f#4@5 ~@2",
  C: "~@3 g3 ~ e4 d4@2, e3@16 d3@15 ~, ~@4 e4@13 ~@15, ~@8 b3@9 ~@15",
  D: "[c#4,e4]@7 ~ b3@7 ~ [e4,a4]@14 ~@2, ~@7 g3@7 ~ c#4@14 ~@3", E: "~@8 a3@7 ~@9 d3@8, f#2 ~, ~@4 d3@12 a3@15 ~",
  F: "[b3,d4]@7 ~@3 d4@6, ~ [a3,e4]", G: "~@3 g3 ~ e4 ~ e4, e3 ~, ~ e4@3 ~@4, ~ b3 ~ b3",
  H: "c#3@15 ~ [b3,d4,g4]@7 ~ [e4,a4]@8, ~@23 c#4@9", I: "~ f#4 a4 f#4 ~ f#4 e4@2, d3 a3, ~@5 a4@3",
  J: "~@7 a3, ~@4 f#4@7 ~ f#4@7 ~ f#4@12, ~@8 b4@7 ~ a4@16, ~@3 d4", K: "~@12 g3@4 d3@15 ~, ~@4 e4@13 ~@15, ~ b3 ~@2",
  L: "~@4 [a3,c#4,e4]@3 ~", M: "b4@4 c#5@3 ~ d5@4 f#5@12 ~@8", N: "~@5 d4 ~ d4, ~@3 g4",
  O: "~@3 e4 ~@3 d4, ~ c#5@3 ~ b4@3, ~ a4 d4 g4", P: "~@18 a4@2 f5 ~ e5 ~ d5@2 a4@2 f4@2 d4@2",
  Q: "[f#4,a4,d5]@12 ~@5 b4@14 ~, ~@16 [d4,g#4]@15 ~", R: "[~@32 d4@31 ~, ~@21 f#4@42 ~, ~@24 e4@39 ~, ~@29 a3@34 ~]/2",
})).s("gm_electric_guitar_clean").gain(0.32).pan(0.3)

// chords · electric guitar clean · "+CHORUSGTR" · soft notes
const electric_guitar_clean_2 = note("<~@7 A ~ B C ~@24 A ~ B C ~@32 D E>".pickRestart({
  A: "a3@7 ~ d4@7 a3@14 ~@3", B: "f#3@14 ~ f#3@17", C: "~ d3", D: "~@26 d4@3 ~@3", E: "~@6 d3@25 ~",
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@20 A@6 B ~@5 A@22 B A@11 B C ~@5>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@5 x!2 ~@8", C: "x",
})).gain(0.48)

// drums · rim
const rim = s("rim").struct("<~@12 [~ x ~@2]!8 ~@12 [~@3 x]!8 [~ x ~ x]!8 ~@25>").gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@20 A@6 B ~@21 A@6 B@2 A@3 C A@6 B ~@6>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x",
})).gain(0.56)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~@12 A@8 B C@2 D@2 C E ~@5 F@8 G H A H A H A H B C@2 D@2 C E D B D@2 I B C@2 D@2 C E ~@6
>`.pickRestart({
  A: "x!4", B: "~ x!7", C: "x!7 ~", D: "x!8", E: "x!4 ~@4", F: "~ x ~ x", G: "~ x!3", H: "x!3 ~", I: "x!2 ~ x ~ x ~ x",
})).gain(0.56)

// drums · mid tom
const mid_tom = s("mt").struct("<~@19 A ~@19 B ~@7 A ~@7 C ~@3 D ~@13>".pickRestart({
  A: "~@4 x!2 ~ x", B: "~@9 x ~@3 x ~@2", C: "~@11 x ~@2 x ~", D: "~@3 x!3 ~@2",
})).gain(0.56)

// drums · open hat
const open_hat = s("oh").struct("<~@21 A@2 ~@2 A ~@15 B ~ B ~ B ~ B ~ A@2 ~@2 A ~@7 A@2 ~@2 A ~@7>".pickRestart({
  A: "~@7 x", B: "~@3 x",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@19 A ~@19 B ~@7 A ~@7 C ~@3 A ~@13>".pickRestart({
  A: "~@2 x ~@2 x ~@10", B: "~@3 x ~@2 x ~", C: "~@3 x ~@6 x ~@5",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~@20 A ~@2 B ~@2 C ~@5 A ~@7 A ~@7 A ~@2 B ~@2 C ~ A ~@2 D A ~@2 B ~@2 C A ~@5
>`.pickRestart({
  A: "x", B: "~@15 x", C: "~@7 x ~@8", D: "~ x!3",
})).gain(0.48)
// … 21 more lines

More by Andre Hazes