Strudelify
Waarom nou jij cover art

1994 · Marco

Waarom nou jij

Marco Borsato

KeyE majorTempo70 bpm
0:00/0:00
// Waarom nou jij — Marco Borsato
// 70 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 87 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A@2 B C D E B C D E B C D E F G H I J K L M N O P Q R S T U R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AG AH AI
  AJ AG AH AK AL AM AN AO AL AP AN AQ AR AS AT AU AR AV AT AW AR AX AT AY AR AV AT AW AR AX AT AY AR AX ~
>`.pickRestart({
  A: "[a#1@63 ~]/2", B: "~@2 d3@2 ~@4 c4@7 ~, a#2@31 ~, a#3@15 ~@17, ~@4 f3@11 ~, ~@6 d3@9 ~",
  C: "~@2 d3@2 ~@4 c4@7 ~, g2@15 ~, a#3@15 ~@17, ~@4 g3@11 ~, ~@6 d3@9 ~",
  D: "~@2 d#3@2 ~@4 c4@7 ~, d#2@31 ~, a#3 ~, ~@4 g3@11 ~, ~@6 d#3@9 ~",
  E: "~@4 d#3@4 ~@8 c4@15 ~, f2@15 ~, a#3 ~, ~@4 g3@11 ~, ~@12 d#3@19 ~",
  F: "~@2 f3@2 ~@4 d#4@7 ~, c#2@31 ~, c#4@15 ~@17, ~@4 g#3@11 ~, ~@6 f3@9 ~",
  G: "~@2 f3@2 ~@4 d#4@7 ~, a#1@15 ~, c#4@15 ~@17, ~@4 a#3@11 ~, ~@6 f3@9 ~",
  H: "~@2 f#3@2 ~@4 d#4@7 ~, f#1@31 ~, c#4 ~, ~@4 a#3@11 ~, ~@6 f#3@9 ~",
  I: "~@4 f#3@4 ~@8 d#4@15 ~, g#1@15 ~, c#4 ~, ~@4 a#3@11 ~, ~@12 f#3@19 ~",
  J: "~ g#3 ~@2 f#4@4, e2@31 ~, e4@15 ~@17, ~@4 b3@11 ~, ~@6 g#3@9 ~",
  K: "~@4 g#3@4 ~@8 f#4@15 ~, c#2@15 ~, e4@15 ~@17, ~@4 c#4@11 ~, ~@6 g#3@9 ~",
  L: "~@2 a3@2 ~@4 f#4@7 ~, a1@31 ~, e4 ~, ~@4 c#4@11 ~, ~@6 a3@9 ~",
  M: "~@4 a3@4 ~@8 f#4@15 ~, b1@15 ~, e4 ~, ~@4 c#4@11 ~, ~@12 a3@19 ~",
  N: "~@4 b3@4 ~@4 b3@4 ~@4 b3@4 ~@4 b3@3 ~, [g2,g3]@31 ~, [d4,g4]@7 ~ [d4,g4]@8 [d4,a4]@7 ~ [d4,a4]@7 ~", // G G5 D5
  O: "~ b3 ~ b3 ~ b3 ~ b3, [e2,e3]@15 ~, [e4,g4]@7 ~ [e4,g4]@8 [e4,a4]@8 [e4,a4]@8", // E Em A5
  P: "~ c4 ~ c4 ~ c4 ~ c4, [c2,c3]@31 ~, [e4,g4]@7 ~ [d4,g4]@7 ~ [e4,a4]@7 ~ [e4,a4]@7 ~", // C Em G5 A5
  Q: "~@4 c4@4 ~@4 d4@4 ~@4 d4@3 ~@5 e4@4, [d2,d3]@15 ~ [e2,e3]@16, [e4,g4]@7 ~ [f#4,a4]@7 ~ [f#4,a4]@7 ~ [g#4,b4]@8", // D E Em F#m G#m
  R: "~@4 c#4@4 ~@4 c#4@4 ~@4 c#4@4 ~@4 c#4@3 ~, [a2,a3]@31 ~, [e4,a4]@7 ~ [e4,a4]@8 [e4,b4]@7 ~ [e4,b4]@7 ~", // A A5 E5
  S: "~ c#4 ~ c#4 ~ c#4 ~ c#4, [f#2,f#3]@15 ~, [e4,a4]@7 ~ [e4,a4]@8 [e4,b4]@8 [e4,b4]@8", // F# A5 E5
  T: "~ d4 ~ d4 ~ d4 ~ d4, [d2,d3]@31 ~, [e4,a4]@7 ~ [e4,a4]@7 ~ [e4,b4]@7 ~ [e4,b4]@7 ~", // D A5 E5
  U: "~@4 d4@4 ~@4 d4@4 ~@4 e4@3 ~@5 e4@4, [e2,e3]@31 ~, [f#4,a4]@7 ~ [f#4,a4]@7 ~ [g#4,b4]@7 ~ [g#4,b4]@8", // E F#m G#m
  V: "~@4 e4@4 ~@4 e4@4 ~@4 e4@4 ~@4 e4@3 ~, [c2,c3]@31 ~, [g4,c5]@7 ~ [g4,c5]@7 ~ [g4,d5]@7 ~ [g4,d5]@7 ~", // C C5 G5
  W: "~ e4 ~ e4 ~ e4 ~ e4, [a1,a2]@15 ~, [g4,c5]@7 ~ [g4,c5]@8 [g4,d5]@8 [g4,d5]@8", // A C5 G5
  X: "~ f4 ~ f4 ~ f4 ~ f4, [f1,f2]@31 ~, [g4,c5]@7 ~ [g4,c5]@7 ~ [g4,d5]@7 ~ [g4,d5]@7 ~", // F C5 G5
  Y: "~@4 f4@4 ~@4 f4@4 ~@4 g4@3 ~@5 g4@4, [g1,g2]@31 ~, [a4,c5]@7 ~ [a4,c5]@7 ~ [b4,d5]@7 ~ [b4,d5]@8", // G Am Bm
  Z: "~@4 c#5@4 ~@4 c#5@3 ~@5 b4@3 ~@5 c#5@4, [a1,a2]@31 ~, [e4,g4,d5]@7 ~ [d4,g4,b4]@7 ~ [e4,a4,c#5]@7 ~ [d4,g4,b4]@8", // A Em7 G A G
  AA: "~@4 d4@4 ~@4 d4@4 ~@4 d4@4 ~@4 d4@3 ~, [d2,d3]@31 ~, [e4,f#4,a4]@7 ~ [e4,f#4,a4]@7 ~ [e4,f#4,a4]@7 ~ [e4,f#4,a4]@7 ~", // D F#m7
  AB: "e4@4 f#4@4 e4@4 f#4@4 f#4@3 ~ f#4@4 ~@4 f#4@4, [b1,b2]@15 ~, [a4,c#5]@7 ~ [a4,c#5]@8 [a4,d5]@8 [a4,d5]@8", // B A D5
  AC: "~@4 g4@4 ~@4 g4@4 ~@4 g4@4 ~@4 g4@3 ~, [g1,g2]@31 ~, [d4,a4,b4]@7 ~ [d4,a4,b4]@7 ~ [d4,a4,b4]@7 ~ [d4,a4,b4]@7 ~", // G Bm7
  AD: "~@4 e4@4 ~@4 e4@3 ~ [e4,g4,a4,e5]@10 ~@6, a1@31 ~, a2@27 ~@5, [g4,a4,d5]@7 ~ [g4,a4,d5]@7 ~@17", // A7 Gsus2
  AE: "~@2 f#3@2 ~@4 e4@7 ~, [d2,d3]@31 ~, d4@15 ~@17, ~@4 a3@11 ~, ~@6 f#3@9 ~", // D
  AF: "~@2 f#3@2 ~@4 e4@7 ~, [b1,b2]@15 ~, d4@15 ~@17, ~@4 b3@11 ~, ~@6 f#3@9 ~", // B
  AG: "~@2 g3@2 ~@4 e4@7 ~, [g1,g2]@31 ~, d4 ~, ~@4 b3@11 ~, ~@6 g3@9 ~", // G
  AH: "~@4 g3@4 ~@8 e4@15 ~, [a1,a2]@15 ~, d4 ~, ~@4 b3@11 ~, ~@12 g3@19 ~", // A
  AI: "~ f#3 ~@2 e4@4, [d2,d3]@31 ~, d4@15 ~@17, ~@4 a3@11 ~, ~@6 f#3@9 ~", // D
  AJ: "~@4 f#3@4 ~@8 e4@15 ~, [b1,b2]@15 ~, d4@15 ~@17, ~@4 b3@11 ~, ~@6 f#3@9 ~", // B
  AK: "~@4 a3@4 ~@4 a3@4 ~@4 b3@4 ~@4 b3@3 ~, [b1,b2]@15 ~ [b1,b2]@15 ~, [b3,c#4,f#4]@7 ~ [b3,c#4,f#4]@8 [d#4,f#4]@7 ~ [d#4,f#4]@8", // B Bsus2 D#m
  AL: "~@4 g#3@4 ~@4 g#3@4 ~@4 g#3@4 ~@4 g#3@3 ~, [e2,e3]@31 ~, [b3,e4]@7 ~ [b3,e4]@8 [b3,f#4]@7 ~ [b3,f#4]@7 ~", // E E5 B5
  AM: "~ g#3 ~ g#3 ~ g#3 ~ g#3, [c#2,c#3]@15 ~, [c#4,e4]@7 ~ [c#4,e4]@8 [c#4,f#4]@8 [c#4,f#4]@8", // C# C#m F#5
  AN: "~ a3 ~ a3 ~ a3 ~ a3, [a1,a2]@31 ~, [c#4,e4]@7 ~ [c#4,e4]@7 ~ [c#4,f#4]@7 ~ [c#4,f#4]@7 ~", // A C#m F#5
  AO: "~@4 a3@4 ~@4 a3@4 ~@4 b3@3 ~@5 b3@4, [b1,b2]@31 ~, [c#4,e4]@7 ~ [c#4,e4]@7 ~ [d#4,f#4]@7 ~ [d#4,f#4]@8", // B C#m D#m
  AP: "~@2 g#3@2 ~@2 g#3@2 ~@2 g#3@2 ~ c#4 g#3@2, [c#2,c#3]@15 ~, [c#4,e4]@7 ~ [c#4,e4]@8 [c#4,f#4]@8 f#4@8", // C# C#m F#5
  AQ: "~@2 a3@2 ~@2 a3@2 [d#4,f#4]@2 b3 [f#4,b4] ~@2 [f#4,b4]@2, [b1,b2]@31 ~, [c#4,e4]@7 ~ [c#4,e4]@7 ~@9 b3@8", // D#m B5 B C#m
  AR: "~@4 b3@4 ~@4 b3@4 ~@4 b3@4 ~@4 b3@3 ~, [e2,e3]@31 ~, [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~", // E Esus2
  AS: "~ b3 ~ b3 ~ b3 ~ b3, [c#2,c#3]@15 ~, [d#4,f#4,b4]@7 ~ [d#4,f#4,b4]@8 [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~", // C# B Esus2
  AT: "~@4 a3@4 ~@4 a3@4 ~@4 b3@4 ~@4 b3@3 ~, [a1,a2]@31 ~, [c#4,e4,b4]@7 ~ [c#4,e4,b4]@7 ~ [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~", // A C#m7 Esus2
  AU: "~@4 b3@4 ~@4 b3@3 ~ [b3,f#4]@3 ~ [f#4,b4]@4 b3 ~ f#4@2 b3@4, [b1,b2]@31 ~, [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~@5 b3 ~@5 b4@5 ~", // B5 B Esus2
  AV: "~@2 b3@2 ~@2 b3@2 [e4,f#4,b4]@2 b3 ~ b3@2 [e4,f#4,b4]@2, [c#2,c#3]@15 ~, [d#4,f#4,b4]@7 ~ [d#4,f#4,b4]@8 ~@6 [e4,f#4,b4]@5 ~@5", // Esus2 C# B Esus2
  AW: "~@4 b3@4 b4@3 ~ [b4,b5]@2 ~@2 [b4,b5]@4 ~@6 f#4 ~ [f#4,b4,f#5]@3 ~, b1@31 ~, b2@12 ~@2 b2@7 ~ b2@8 ~@2, [e4,f#4,b4]@7 ~ [e4,f#4]@7 ~@5 [f#4,b4,f#5]@4 b3@4 ~@4", // B B5 Esus2 B5
  AX: "~@4 b3@4 ~@4 b3@4 ~@4 b3@3 ~@5 b3@4, [c#2,c#3]@15 ~, [d#4,f#4,b4]@7 ~ [d#4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~", // C# B Esus2
  AY: "~@2 b3@2 ~@2 b3 ~ [f#4,b4] b3@2 ~@3 [f#4,b4]@2, b1@31 ~, b2@12 ~@2 b2@7 ~ b2@8 ~@2, [e4,f#4,b4]@7 ~ [e4,f#4,b4]@7 ~@7 [f#4,b4]@5 ~@5, ~@3 b3", // B5 Esus2 B5
})).s("gm_piano").gain(0.33)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@14 A B C D E A F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC G AD AE ~@4 AF AG AH AE AI AJ AK AL AM AN AO AP AQ
  AR AS AT AU AR AV AW AX AR AY AZ BA BB BC BD BE BF BG BH BI AR AY ~
>`.pickRestart({
  A: "c#2@31 ~", B: "a#1@31 ~", C: "f#1@31 ~", D: "g#1@3 ~", E: "e2@14 g#1 b1", F: "a1@31 ~", G: "b1@31 ~",
  H: "g2@14 d2 g2", I: "e2@23 ~ e2@6 ~@2", J: "c2@11 ~ c2@3 ~ c2@12 c2@2 c#2@2",
  K: "d2@3 ~ d2@3 ~ d2@3 ~ d2@4 e2@4 e1@3 ~ e1@3 ~ g#1@4, ~@28 g1 ~@3", L: "a1@11 ~ a1@3 ~ a1@7 ~ a2@6 ~@2",
  M: "f#2@11 ~ f#2@3 ~ f#2@10 ~@2 a1@2 b1@2", N: "d2@11 ~ d2@3 ~ d2@11 ~ d2@2 d#2@2", O: "e2@11 ~ e2@3 ~ e2@15 ~",
  P: "a1@11 ~ a1@3 ~ a1@5 ~ f#1@2 a1@3 ~ a2@2 g#2@2", Q: "f#2@11 ~ f#2@3 ~ f#2@10 ~@2 f#2@2 b1@2",
  R: "d2@11 ~ d2@3 ~ d2@11 ~ b1@2 d2@2", S: "e2@13 ~ e2@2 e1@15 ~", T: "c2@11 ~ c2@3 ~ c2@7 ~@3 e1@2 g1@2 a1@2",
  U: "a1@11 ~ a1@3 ~ a1@4 b2@2 c3 ~ b2@2 g2@2 d2@2 c2@2", V: "f1@11 ~ f1@3 ~ f1@10 c2@2 c2@2 f2@2",
  W: "g1@8 g2@4 g1 ~ g1@2 g1@5 ~ g1@2 g1@4 g2@4", X: "a1@3 ~ a2@2 a1@2 a1 ~@3 a1@3 ~ a1@3 ~ a1@3 ~ a1@3 ~ a1@2 c#2@2",
  Y: "d2@11 ~ d2@3 ~ d2@10 ~@2 f#1@2 a1@2", Z: "b1@11 ~ b1@3 ~ b1@4 c#3@2 d3@2 b2@2 a2@2 d2@2 b1@2",
  AA: "g1@11 ~ g1@3 ~ g1@11 ~ g1@2 a1@2", AB: "a1@11 ~ a1@3 ~ a1@4 d3@3 ~ c#3@2 a2 ~@3 e2@2, ~@20 c#3 ~@11",
  AC: "d2@31 b1", AD: "g2@31 ~", AE: "a2@31 ~", AF: "~@2 d2 ~@13", AG: "~@10 b1 ~@5", AH: "~@14 g1 ~",
  AI: "b2@15 ~ b2@3 a1 b1@3 ~ d#2@4 b1@3 ~", AJ: "e1@28 b1@3 ~", AK: "c#2@10 d#3 e3 d#3 b2 e2 b1",
  AL: "a1@27 ~ a1@2 a#1@2", AM: "b1@23 ~ b1@4 d2@2 d#2@2", AN: "e2@11 ~ e2@3 ~ e2@11 ~ b1@2 c2@2",
  AO: "c#2@11 ~ c#2@3 ~ c#2@7 ~ c#2@6 ~@2", AP: "a1@11 ~ a1@3 ~ a1@11 ~ a1@2 a1 ~",
  AQ: "b1@11 ~ b1@3 ~ b1@7 ~ b1@5 [g#1,a1,a#1] [f#1,g1] c1", AR: "e1@11 ~ e1@3 ~ e1@11 ~ b1@2 c2@2",
  AS: "c#2@11 ~ c#2@3 ~ c#2@10 ~@2 c#2@2 c#2@2", AT: "a1@11 ~ a1@3 ~ a1@5 ~@3 a1@2 e1@2 a1@2 a#1@2",
  AU: "b1@5 ~ b1@2 b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ b1@3 ~ d2@2 d#2@2",
  AV: "c#2@11 ~ c#2@3 ~ c#2@4 d#3@2 e3@2 d#3@2 b2@2 c#2@2 b1@2", AW: "a1@11 ~ a2@2 a1@2 a1@5 ~@3 a1@3 ~ a1@2 a#1@2",
  AX: "b2 ~ b1@3 ~ b1 ~ b1@3 ~ b1 ~ b1@2 b1@3 ~ b1@3 ~ b1@3 ~ e2@2 d#1@2", AY: "c#2@11 ~ c#2@3 ~ d#2@7 ~ e2@6 ~@2",
  AZ: "a1@11 ~ a1 ~ a1@2 a1@5 ~ a1 ~ a1@3 ~ a1@3 ~, c2 ~@31",
  BA: "a1@2 b1@3 ~ b1 ~ b1@4 b2 ~ b1@2 b1@3 ~ b1@3 ~ b1@2 a1@2 g#1 ~ f#1@2",
  BB: "~ e2@10 ~@2 e2@3 e1@10 e1@2 b1 ~ c2@2, e1@11 ~ e1@3 ~@17",
  BC: "c#2@11 ~ c#3@2 c#2@2 c#2@4 d#3@2 e3@2 d#3@2 b2@2 e2@2 b1@2",
  BD: "a1@11 ~ a1@2 e2@2 a2@4 a1 ~ a1@2 a1@2 e1@2 a1@2 a#1@2",
  BE: "b1@4 b1 ~ b1@2 b1@3 ~ b1 ~ b1@2 b1@3 ~ b1@3 ~ b1@3 ~ e2@2 d#1@2", BF: "e1@11 ~ e1@3 ~ e1@3 ~ e1@3 ~ g#1@4 b1@4",
  BG: "c#2@4 c#3@2 c#2@2 d#2@7 ~ e2@6 f#2@5 ~ d#2@4", BH: "a1@11 ~ a1 ~ a1@2 a2 ~ a2@2 a1@3 ~ a1@3 ~ a1@3 ~",
  BI: "b1 ~ b1@9 ~ b1 ~ b1@2 b1@3 ~ b1@3 ~ b1@2 a1 ~ g#1 ~ f#1@2",
})).s("gm_electric_bass_finger").gain(0.4)

// bass · electric bass finger · "FINGERDBAS" · soft notes
const bass_soft = note("<~@23 A ~@2 B ~@16 C ~@11 D E ~@4 F ~@4 G ~@3 G ~@2 A ~@13>".pickRestart({
  A: "~@29 d#2 d2 c#2", B: "~@30 g2 f#2, ~@15 g#2", C: "~@30 c#2 c2", D: "~@19 g#1 a#1 ~@11", E: "~@30 c#2 d2, ~@15 c2",
  F: "~@30 c2 [a#1,b1]", G: "~@22 a1 ~@9",
})).s("gm_electric_bass_finger").gain(0.2)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@13 A@2 B@8 C@2 D@8 E@4 F@6 ~@13 G@4 H@4 I@7 J@8 K@7 ~>".pickRestart({
  A: "[~@31 f4@24 [g#4,g#5]@9]/2", // G#
  B: "[c4@15 ~ c#5@15 g#4@63 ~ g#5@16 [b4,b5]@8 [e5,e6]@8 ~ d#6@15 c#5@16 b5@80 ~ [d4,d5,f#5]@3 [g4,g5]@4 ~ d4@3 ~ [b3,g6]@4, ~@15 c#4@17 ~@95 d#5@17 ~@95 f#4@4 ~@4 [d5,d6]@4 g5@4 ~]/8", // B E D G Em D
  C: "[[f#4,f#5,f#6]@7 ~ [e4,e6]@7 ~ d4@11 [e4,e5,e6]@4 d6@28 ~ b4@2 [c5,c6]@2, ~@7 e5@8 [d5,d6]@12 ~@32 b5@3 ~@2]/2", // F# E C D
  D: "[[d4,d5,d6]@19 [e4,e5,e6]@8 [b3,b4,b5]@4 ~ c#5@24 [b4,b5]@4 [a4,a5]@19 [g#4,g#5]@12 [a4,a5]@16 [e4,e5]@37 ~@15 e6@80 g#5@5 ~@4 e4@4 a5@4, ~@31 c#6@25 ~@200]/8", // D E B A G# A E
  E: "[[a4,a5]@4 [b4,b5]@15 [e5,e6]@12 ~ g4@4 [c5,c6]@4 d5@8 d5@3 ~@4 [b4,b5]@5 c5@3 c5@4 ~ d5@12 d5@3 [g5,g6]@4 [b4,b5]@4 ~ c5@7 [d5,d6]@8 ~ g6@7 [b4,b5]@8 ~ c5@4, ~@31 g5@5 ~@4 d6@11 g5@5 ~@4 c6@8 ~@23 c6@9 ~@7 g5@9 ~@12, ~@52 g6@5 ~@10 d6@17 ~@39 c6@5]/4", // A B E C B G B D …
  F: "[c5@3 ~ d5@11 d5@4 ~ [e5,e6]@11 [d5,d6]@5 e5@11 ~ e5@4 [f#5,f#6]@11 [d4,a4,f#5,d6]@32 ~ [c#5,e6]@15 ~ d5@15 [g3,a4,d6]@32 ~ g4@16 a4@10 ~@6, ~@3 d6@17 ~@16 e6@16 ~@43 [b3,a5]@32 ~@32 [a3,d5]@27 ~@6, ~@111 f#6@17 ~@32 e4@26 ~@6]/6", // E D F# D C#m Gsus2 B7 D5
  G: "[~@7 e5@40 [d#4,d#5]@8 c#5@8 ~@33 f#4@32, ~@63 b4@65]/4", // D#
  H: "[~@7 [e4,e5]@8 [b4,b5]@8 [e5,e6]@8 [d#5,d#6]@16 ~ c#5@15 [b4,b5]@51 ~@13 b5, ~@47 c#6@17 ~@64]/4", // E B E D# B
  I: "[b4@4 ~@3 b4@8 ~ e5@7 ~ e6@7 [d#5,f#5,d#6]@16 ~@45 g#4@2 ~@2 b4@4 [g#4,g#5]@2 [a4,a5]@2 [b4,b5]@4 ~@4 [b4,b5]@15 [e4,b4,e5]@16 ~ e5@7 ~ e6@7 [d#5,f#5,d#6]@16 ~@45 g#4@2 ~ [e5,b5], ~@4 [e4,e5]@11 [b4,b5]@8 [e5,g#5]@8 ~@16 [c#5,c#6]@16 [b4,b5]@28 g#5@3 [a4,a5]@2 ~@12 [g#4,g#5]@2 a5@2 ~@79 [b4,b5]@29 ~@2 [a4,a5]@2, ~@48 e5@32 f#5@15 e5@16 f#5@16 ~@24 [e5,g#5]@8 ~@17 e5@32 f#5@16, ~@95 b5@5 ~@9 a4@2 ~@32 [b4,b5]@9 ~@23 [c#5,c#6]@17 ~@27 g#5@3 ~@2]/7", // D#m G# A B E5 D#m E5 E …
  J: "[b4@4 [g#4,g#5]@2 [a4,a5]@2 [b4,b5]@4 ~@4 [b4,b5]@15 [e4,b4,e5,b5]@16 ~ e5@7 ~ [e6,g#6]@7 ~ f#6@15 ~ e6@15 ~@29 g#4@2 ~@2 b4@4 [g#4,g#5]@2 [a4,a5]@2 [b4,b5]@4 ~@4 [b4,b5]@15 [e4,b4,e5,b5]@16 ~ e5@7 ~ [b5,e6]@7 ~ f#6@15 ~ e6@15 ~@29 g#4@2 ~ [e5,b5], ~@12 [g#4,g#5]@2 a5@2 ~@39 [e5,g#5]@8 [d#5,f#5,d#6]@16 [c#5,c#6]@16 [b4,b5]@28 g#5@3 [a4,a5]@2 ~@12 [g#4,g#5]@2 a5@2 ~@64 e5@32 f#5@16, ~@13 a4@2 f#5@16 ~@16 [b4,b5,e6]@9 ~@24 e5@32 f#5@15 e5@16 f#5@16 ~@24 [e5,g#5]@8 [d#5,f#5,d#6]@16 [c#5,c#6]@17 ~@27 g#5@3 ~@2, ~@127 b5@5 ~@9 a4@2 ~@32 [b4,b5,g#6]@8 ~@40 [b4,b5]@29 ~@2 [a4,a5]@2]/8", // G# A B E5 E G# A B …
  K: "[b4@4 [g#4,g#5]@2 [a4,a5]@2 [b4,b5]@4 ~@4 [b4,b5]@15 [e4,b4,e5,b5]@16 ~ e5@7 ~ [b5,e6]@7 ~ f#6@15 ~ e6@15 ~@29 g#4@2 ~@2 b4@4 [g#4,g#5]@2 [a4,a5]@2 [b4,b5]@4 ~@4 [b4,b5]@15 [e4,b4,e5,b5]@16 ~ e5@7 ~ [b5,e6]@7 ~ f#6@15 ~ [e5,e6]@16, ~@12 [g#4,g#5]@2 a5@2 ~@39 [e5,g#5]@8 [d#5,f#5,d#6]@16 [c#5,c#6]@16 [b4,b5]@28 g#5@3 [a4,a5]@2 ~@12 [g#4,g#5]@2 a5@2 ~@80, ~@13 a4@2 f#5@16 ~@16 [b4,b5,g#6]@8 ~@25 e5@32 f#5@15 e5@16 f#5@16 ~@24 [e5,g#5]@8 [d#5,f#5,d#6]@16 [c#5,c#6]@17, ~@127 b5@5 ~@9 a4@2 ~@32 [b4,b5,g#6]@8 ~@41]/7", // G# A B E5 G# A B E5 …
})).s("gm_string_ensemble_2").gain(0.15)

// chords · string ensemble 2 · "SLOWSTRING" · soft notes
const string_ensemble_2_soft = note("<~@13 A@2 B@4 C@4 D@2 ~@16 E F@5 ~@3 G@6 H@4 ~@15 I ~@11>".pickRestart({
  A: "[~@31 f5@24 ~@9]/2", B: "[c5@16 ~@15 g#5@64 [g#4,e5]@17 ~@16]/4",
  C: "[~@15 c#6@16 b4@80 ~@5 [b3,b4]@4 ~@8, b4@31 ~@97]/4", D: "[~@16 d5@14 b3 c4, ~@31 d4@28 ~@5]/2", E: "b5",
  F: "[~@31 [a4,a5]@128 ~]/5", G: "[~@30 a4@33 c#5@16 b4@16 a4@63 ~ f#4@33, ~@79 b4@17]/6",
  H: "[b3@8 e4@40 ~@8 c#4@7 b3@65]/4", I: "~@15 b6",
})).s("gm_string_ensemble_2").gain(0.1)

// chords · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@25 A B C D E F G H I J K L M N O P Q R ~@11 K P S T U V W T U X@2 T Y@3 Z AA@3 AB AC@3 AB AC@3 AB AC@3 AB ~
>`.pickRestart({
  A: "~@28 e2@2 g2 g#2", B: "a2@30 g#2 g2", C: "f#2", D: "d3@14 d3 d#3", E: "e3@24 e3@5 d#3 d3 [c3,c#3]",
  F: "a2@27 ~ a2@2 g#2@2", G: "f#2@14 a2 c#3", H: "d3@14 a2 d3", I: "e3@29 ~ [d#3,e3] [c#3,d3]", J: "c3@30 g2 g#2",
  K: "a2", L: "f2", M: "g2!2", N: "a2@16 a2@15 [c3,c#3]", O: "d3@30 c#3 c3", P: "b2", Q: "g2", R: "a2@13 ~@3",
  S: "e3@30 d#3 d3", T: "c#3", U: "a2@14 a2 a#2", V: "b2@30 c#3 [d3,d#3]", W: "e3@14 b2 c3",
  X: "[b2@19 [a2,a#2] ~ [a2,a#2] g#2 g2 ~ [g2,g#2] ~@2 c3 ~ d3 ~ e3@30 b2 c3, ~@10 b2 ~ f#2 [a2,a#2] ~@18, ~@27 b2@2 c#3@2 d#3@2 ~@31]/2", // A#maj7 G#maj7 A#maj7
  Y: "[a2@30 g#2 ~ b2@16 b2@8 ~ [g2,g#2] ~@2 c3 c#3 d3 ~ [e3,b3,e4]@30 b2 c3, ~@31 [a2,a#2]@2 ~@23 f#2@2 [a2,a#2]@2 ~@36, ~@59 b2@2 ~@2 d#3@2 ~@31]/3", // G#maj7 E5 A#maj7
  Z: "~ c#4@30 ~, [c#3,g#3]", // C#5
  AA: "[~ a3@29 g#2 ~@17 b2@8 ~ [g2,g#2] ~@2 c3 c#3 d3 ~ [e3,b3,e4]@30 b2 c3, [a2,e3]@31 [a2,a#2]@2 c#4@30 ~@33, ~@32 f#3@31 d#3@2 ~@31, ~@16 b2@8 ~@4 f#2 [a2,a#2] ~@18, ~@59 b2@2 ~@35]/3", // G#maj7 E5 A5 A#maj7
  AB: "[c#3,g#3,c#4]", // C#5
  AC: "[[a2,e3,a3]@30 g#2 ~ b2@16 b2@8 ~ [g2,g#2] ~@2 c3 c#3 d3 ~ [e3,b3,e4]@30 b2 c3, ~@31 [a2,a#2]@2 ~@23 f#2@2 [a2,a#2]@2 ~@36, ~ [f#3,c#4] ~, ~@59 b2@2 ~@2 d#3@2 ~@31]/3", // A5 G#maj7 E5 A#maj7 F#5
})).s("gm_distortion_guitar").gain(0.4).pan(0.8)

// other · string ensemble 1 · "STRINGS" · A B C# D E F# G# A …
const string_ensemble_1 = note(`<
  ~@29
  [~@8 [a3,a4] [b3,b4] [c#4,c#5] [d4,d5] [e4,e5] [f#4,f#5] [g#4,g#5] [a4,a5]]
  [[a4,a5]@2 [e4,e5]@4 ~ b5 [c#5,c#6]@2 [e5,e6]@2 [b4,b5]@2 [c#5,c#6]@2, ~@6 [a4,a5] ~@9, ~@13 b4@2 ~@17]
  [[a4,a5]@2 [e4,e5]@4 [a4,a5] [b4,b5] [c#5,c#6]@2 [e5,e6]@2 [b4,b5]@2 [c#5,c#6]@2]
  [[c#5,c#6]@2 [a4,a5]@4 [a4,a5] [b4,b5] [c#5,c#6]@2 [a4,a5]@2 e5@2 a4@2]
  ~@30
  [~@8 [b3,b4] [c#4,c#5] [d#4,d#5] [e4,e5] [f#4,f#5] [g#4,g#5] [a4,a5] [b4,b5]]
  ~@23
>`).s("gm_string_ensemble_1").gain(0.39)

// other · distortion guitar · "DISTORTION"
const distortion_guitar_2 = note("<A@2 ~@45 B@2 C@2 ~@21 D@2 E F G H ~@2 I J@2 ~@4>".pickRestart({
  A: "[~@3 f4@5]/2", B: "[~@22 [b3,d4] a4@32 ~ c#5@6 b4 c#5, ~@23 f#4 ~@40]/2", C: "[d5@24 e5@14 d5 e5@25]/2",
  D: "[~@14 e4 g#4 [b4,e5]@2 f#5@2 e5@2 f#5@35 f5 [d#5,e5] d5 ~@4]/2", E: "~@14 e4 g#4 [b4,e5]@2 f#5@2 e5@2 f#5@10",
  F: "f#5@4 f#5@4 f#5@4 f#5@4 f#5@4 f#5 ~@3 f#5@2 f#5@4 b4@2", G: "b5@12 g#5 b5@7 b5@3 b2 [c3,d3,e3,f3] g3 c6@6",
  H: "~@2 c6@8 [b2,c3,d3] e3 c#5 g#5 g5 e5 c#5@10 [g4,a4,b4,c5] [d4,d#4,e4,f4] c#4 ~@3", // Bm Cmaj7
  I: "e3@12 c#4@2 g#3@2 b3@9 a#3 [g3,a3] [d3,e3,f3] c3 ~@3", // Gsus2 Dm
  J: "[d#5@12 e5@2 c#5@11 c5 [a4,b4] [c4,d4,e4,f4,g4] g#5@36]/2", // Asus2 C
})).s("gm_distortion_guitar").gain(0.44).pan(0.3)

// chords · pad sweep · "SWEEP PAD"
const pad_sweep = note("<A@3 ~@7 B C D E F@6 G@2 C H I ~@22 J K@6 L@2 ~@31>".pickRestart({
  A: "[[a#2,f3,a#3]@11 ~@5]/3", B: "~ a#3@3", C: "g3@31 ~", D: "~ d4, ~@8 d#3@23 ~", E: "~@11 c5@5, f3",
  F: "[[c#3,c#4]@31 ~ a#2@31 ~ f#2@31 ~ g#2@30 ~@2 e3@32 ~@15 f#4@16 ~, ~@31 g#4@32 f4@32 d#4@31 e4@65 ~, ~@5 c#3]/6", // C#
  G: "[[a2,a3]@31 ~ b2@32, ~@31 b3@33]/2", H: "e3", I: "c3", J: "d3",
  K: "[~@32 g2@31 ~@33 d3@32 ~@32 g2@32, b2@32 ~@31 g3@25 d4@48 e4@56, ~@3 a4@5 a2@4 ~@4 b2@4 ~@4]/6",
  L: "[b3@3 a4@5, a2@63 ~]/2",
})).s("gm_pad_sweep").gain(0.33)

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

// drums · rim
const rim = s("rim").struct("<~@26 [~ x ~ x]!3 [~ x ~@2] ~@26 [~@3 x]!4 [~ x ~ x]!3 ~@24>").gain(0.64)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@42 [~@11 x ~@4] [~@4 x!4 ~@24] ~@43>").gain(0.24)

// … 56 more lines

More by Marco Borsato