Strudelify
Se vuoi se puoi cover art

1998 · In due

Se vuoi se puoi

Nek

KeyG minorTempo89 bpm
0:00/0:00
// Se vuoi se puoi — Nek
// 89 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 90 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(89/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.

// bass · electric bass finger
const bass = note(`<
  ~@8 A B C D E F G H I J K L M@3 N O P Q R O P S T U V W X Y Z AA AB AC AD AE AF AG AH AA AI M AJ M AK M AL AM AN U V W
  X Y Z AA AO U V W X Y Z AA AO U V W X Y Z AA AP U V W X Y Z AA AQ AR@2
>`.pickRestart({
  A: "g1", B: "c2@27 ~ d2@2 ~@2", C: "eb2@27 ~ eb2@3 ~", D: "f2@7 f1", E: "bb1", F: "c1@12 ~@2 d1 ~",
  G: "eb1@13 ~ eb2 ~", H: "bb1@8 a1@6 d2 ~", I: "g1@27 ~ g1 ~@3", J: "c1@27 ~ d1 ~@3", K: "eb1@27 ~ eb1 ~@3",
  L: "f1 ~@3 f1@27 ~", M: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@5 g1 g1@3 f1 g1@2 ~@6",
  N: "f1@2 g1 ~ g1@2 ~ f1 g1@2 ~@4 f1@4 g2@2 ~@2 g2@2 f2@2 d2 ~ c2@2 bb1@2", O: "g1@2 g1@3 ~@9 f1 ~ f1@3 ~ g1@4 ~@8",
  P: "c2@2 ~@2 c2@4 ~@6 bb1 ~ bb1@4 c2@5 ~@3 bb1@2 c2@2", Q: "eb1@3 ~ eb1@3 ~@7 d1@2 eb1@2 d1@2 eb1@4 ~@8",
  R: "bb1@2 ~@2 bb1@4 ~@7 bb1 a1@3 ~ a1@4 ~@4 a1@3 ~", S: "eb1@3 ~ eb1@3 ~@7 d1@2 eb1@2 d1@2 eb1@4 ~@4 eb1@2 e1 ~",
  T: "f1@2 ~@2 f1@4 ~@7 f1 f1@3 ~ f1@4 g1@3 ~ a1@3 ~", U: "bb1@3 ~ bb1@8 ~@3 bb1 bb1@3 ~ bb1@10 ~@2",
  V: "c2@2 ~@2 c2@3 ~ c3@7 c2 c2@3 ~ c2@7 ~ c2@4", W: "eb2@3 ~ eb2@8 ~@2 eb2 ~ eb2@3 ~ eb2@5 ~@3 eb2@4",
  X: "bb1@3 ~ bb1@6 ~@4 bb1 ~ a1@4 a1@6 ~@2 a1@4", Y: "g1@2 ~@2 g1@4 g2@6 g1 ~ g1@3 ~ g1@6 ~@2 g1@4",
  Z: "c2@3 ~ c2@4 c3@6 c2 ~ c2@3 ~ c2@6 ~@2 c2@4", AA: "eb1@3 ~ eb1@4 eb2@6 eb1 ~ eb1@3 ~ eb1@5 ~@3 eb1@3 ~",
  AB: "f1@3 ~ f1@4 f2@6 f1 f1@3 ~@2 f1@4 f2@8", AC: "g1@3 ~ g1@4 g2@6 ~ g1 g1@3 ~ g1@4 g2@5 ~@3",
  AD: "c1@2 ~@2 c1@3 ~ c2@7 c1 c1@3 ~ c1@4 c2@7 ~", AE: "eb1@3 ~ eb1@4 eb2@4 ~@2 eb1 ~ eb1@3 ~ eb1@4 eb2@8",
  AF: "bb1@3 ~ bb1@6 ~@4 bb1 ~ a1@4 a1@4 a2@8", AG: "g1@2 ~@2 g1@4 g2@6 g1 ~ g1@3 ~ g1@4 g2@4 g1@4",
  AH: "c1@3 ~ c1@4 c2@6 c1 ~ c1@3 ~ c1@6 ~@2 c1@4", AI: "f1@3 ~ f1@4 f2@6 f1 f1@3 ~@2 f1@4 f2@4 g2@4",
  AJ: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@5 g1 g1@3 f1 g1@2 ~@2 c2@2 ~@2",
  AK: "f1@2 g1 ~ g1@2 ~ f1 g1@2 ~@4 f1@4 g2@2 ~@4 g2@2 f2@4 bb1@2",
  AL: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@5 g1 g1@3 f1 g1@2 ~@2 c2@4",
  AM: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@4 g1 ~ g1@3 f1 g1@2 ~@2 g1@4", AN: "g2!3 f2@3 d2!3 c2@2 d2 c2 bb1 c2 d2",
  AO: "bb1@3 ~ bb1@4 bb1@6 f1 f1@3 ~@2 f1@4 f2@8", AP: "bb1@3 ~ bb1@4 bb1@6 f1 f1@3 ~@2 f1@4 f2@2 f2@2 c2@4",
  AQ: "bb1@3 ~ bb1@4 bb1@6 f1 f1@3 ~@2 f1@4 f2@4 f2@4", AR: "[bb1 ~@2 bb1@23 ~@6]/2",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@4 B@4 C@3 D E F G E H F I@2 J@2 K@2 B@4 C@3 D E F G E H F G L H F G E H F G L J@2 K@2 J@2 K@2 E F G E H F G M E F G
  E H F G M N F G E H F G M E F G E H F G M O@2
>`.pickRestart({
  A: "[~@20 bb4@8 ~@24 [c4,g4]@7 ~@17 f4@8 [bb3,f4]@8 [bb3,d4]@36, ~@4 g3@25 ~@3 c3@28 ~@8 g3@24 ~@36, ~@3 d4@4 [c4,g4]@3 g3@5 f4@4 ~@13]/4", // C5 Bb5 Bb C5
  B: "[~@6 d4@4 [d4,bb4]@4 [c4,g4]@4 ~@4 [c4,g4]@4 [c4,g4]@3 ~ f4@4 ~@4 [bb3,f4]@4 [bb3,f4]@4 ~@8 f3@2 ~@2 c4@2 f4@4, g2@6 ~@17 bb3@3 bb3@2 ~@4, ~@2 g3@12 ~@4 g3@11 ~@5 g3@12 d4@10 ~@8, ~@6 bb2 [a2,f3]]/4", // Gm C5 Bb5 Dm
  C: "[~@6 d4@4 [d4,bb4]@4 [c4,g4]@4 ~@4 [c4,g4]@4 [c4,g4]@3 ~ f4@4 ~@4 [bb3,f4]@4 [bb3,f4]@2 ~@2 ab3 bb3, g2@24 ~@64 f3@7 ~, ~@2 g3@12 ~@4 g3@11 ~@5 g3@11 ~@3]/3", // Gm C5 Bb5
  D: "~@7 [bb3,c4], f2 ~, f3@7 ~@5 c4@12 a3@8, ~@4 c3@13 ~@3 f3@12", // Bbsus2
  E: "~@8 [bb3,f4,bb4]@3 ~@3 [a3,f4,a4]@9 ~ [a3,a4]@6 ~@2, bb2@11 ~@21, ~@4 f3@7 ~@21", // Bb5 Dm A
  F: "~@8 [c4,g4,c5]@3 ~@3 [bb3,g4,bb4]@9 ~ [bb3,f4,bb4]@6 ~@2, c3@11 ~@21, ~@4 g3@7 ~@21", // C5 Eb Bb5
  G: "~@8 [eb4,bb4] ~@5 [eb4,a4]@10 ~@2 [eb4,a4]@3 ~@3, eb3, ~@4 g3@25 ~@3", // Eb5 Ebdim
  H: "~@8 [bb3,f4,bb4]@3 ~@3 [a3,f4,a4]@9 ~ [a3,a4]@6 ~@2, g2@11 ~@21, ~@4 d3@7 ~@21", // Bb5 Dm A
  I: "[~@8 [eb4,bb4] ~@5 [eb4,a4]@10 ~@2 [eb4,a4]@3 ~@3 a4@4 [f3,c4,f4,a4]@27 ~, eb3 ~, ~@4 g3@25 ~@2 [f3,c4,f4]@5 ~@28]/2", // Eb5 Ebdim F F5
  J: "[d3@10 [bb3,f4,bb4] ~@3 [g3,d4,g4]@18, g2@7 ~@9]/2", // Bb5 G5
  K: "[~@20 [bb3,f4,bb4]@2 ~@6 [g3,d4,g4]@35 ~, [g2,d3]@29 ~@35]/2", // Bb5 G5
  L: "~@8 [f4,c5] ~@5 [f4,c5]@10 ~@2 [f4,c5]@3 ~@3, f3, ~@4 a3@25 ~@3", // F5
  M: "~@8 [f4,bb4] ~@15 [f4,a4]@3 ~ [f4,a4]@3 ~, bb2@7 ~ f2@7 ~, ~@2 f3@5 [f4,a4]@5 ~@4", // Bb5 F
  N: "~@8 [bb3,f4,bb4]@3 ~@3 [a3,f4,a4]@8 [f4,a4]@2 [a3,a4]@6 ~@2, bb2@11 ~@21, ~@4 f3@7 ~@21", // Bb5 Dm F A
  O: "[[f4,bb4] ~@5 [f4,bb4]@46 ~@12, ~@2 bb2@51 ~@11, ~@4 f3@49 ~@11]/2", // Bb5
})).s("gm_electric_guitar_clean").gain(0.51).pan(0.4)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note("<A B@2 C D E@2 F D E@2 ~@13 D E@2 F D E@2 ~@59>".pickRestart({
  A: "~ d4 bb3@5 ~, ~@2 g2@5 ~@9", B: "[~@12 [c4,g4]@7 ~@21 bb3@4 bb3@8 eb3@8 ~@4, ~ e3@6 bb3@3 ~@6, ~@8 eb3@5 ~@3]/2",
  C: "[bb2,f3]@15 ~", D: "~@2 bb3@5 ~", E: "[~@2 c4 ~@7 bb3 ~@5, c3@27 ~ bb3@10 ~@26, ~@32 eb3@27 ~@5]/2",
  F: "~ f3@2 ~@4 c4",
})).s("gm_electric_guitar_clean").gain(0.29).pan(0.4)

// other · pad sweep
const pad_sweep = note("<~@48 A@4 B@2 C@2 ~@16 D@2 E F G@2 E F D@2 E F G@2 E F ~@2>".pickRestart({
  A: "[g3@92 g4@35 ~]/4", B: "[~@25 d4@4 c4@34 ~]/2", C: "[bb3@27 a3@26 ~ g3@9 ~]/2", D: "[bb2@31 c4@32 ~]/2", E: "eb3",
  F: "bb3 a3", G: "[g3@31 c4@32 ~]/2",
})).s("gm_pad_sweep").gain(0.46)

// chords · piano
const piano = note("<~@20 A@2 B@2 ~@24 C@2 B@2 C@2 B@2 ~@34>".pickRestart({
  A: "[[g1,g2]@20 [bb3,f4,bb4]@2 ~@6 [c4,g4,c5]@35 ~]/2", B: "[[g1,g2]@8 ~@2 [bb3,f4,bb4] ~@3 [c4,g4,c5]@18]/2",
  C: "[[g1,g2]@13 ~@7 [bb3,f4,bb4]@2 ~@6 [c4,g4,c5]@35 ~]/2", // G Bb5 C5
})).s("gm_piano").gain(0.64)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@12 A B C D E@2 F@2 G H G I G H G J@2 H G K A B C D E@2 L M N O C D P@2 L Q@2 R@2 S@2 T@2 U@2 V W D E@2 X@2 Y V W D
  E@2 Z@3 V W AA@3 AB@3 V W D E@2 AC@3 ~
>`.pickRestart({
  A: "bb2@8 [f4,bb4] ~@5 [f4,a4]@9 ~ a4@5 ~ [f4,bb4] ~, bb3, ~@12 f4 ~@3", // Bb5 F Bb5
  B: "~@8 [bb3,e4,c5] ~@5 e4@10 c3@2 d3@6, ~@7 [bb3,bb4]@7 ~@2", // C7 Bb
  C: "[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ a4@6 ~@2, ~@7 a4@2 [bb3,eb4]@2 ~@5, ~@5 a4 ~@2", // Eb5
  D: "bb3@2 bb3@2 [bb3,f4]@4 [f4,bb4] ~@5 a3@2 a3@2 [c4,f4]@2 f4@2 f4@2 [c4,f4]@2 ~@4 [f4,a4] ~, f4@4 ~@10 a4@8 ~@2 a4@5 ~@3, ~@7 c4@2 ~ c4@2 ~@4", // Bb5 F5 F
  E: "[[d4,g4]@2 [d4,g4]@2 [d4,g4]@2 [d4,g4]@2 [f4,bb4] ~@3 [d4,g4]@2 [f4,a4]@4 d4@2 [d4,g4]@2 [d4,g4]@2 a4@4 [f4,bb4] ~@7 e4@3 ~ [bb3,e4,c5] ~@3 g3@2 bb3@4 ~@2 g3@4 c3@2 ~@2 [bb3,d4]@2 [bb3,d4]@2, g3@6 ~@18 f4@2 ~@5 [f4,bb4]@2 ~ g3@5 ~@7 bb4@14 ~@4, ~@32 c3@7 ~@7 e4@10 ~@8, ~@25 c3@3 ~ d3@3]/2", // G5 Bb5 G5 F G5 Bb5 C7 Bb …
  F: "[[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@2 ~@2 f4@4 [c4,f4]@25 ~@3, ~@14 a4@4 [bb3,eb4]@4 ~@8 f3@31 ~@3, ~@20 a4@4 a4@6 ~ g3@31 ~@2, ~@31 c4@5 ~@28]/2", // Eb5 F5 Eb5
  G: "[g3,bb3]@2 ~ [g3,bb3]@4 [g3,bb3] ~@4 [g3,bb3]@6 ~ [g3,bb3] ~@4 [g3,bb3]@2 ~ [g3,bb3]@3 ~@2", // Gm
  H: "[g3,c4]@2 ~ [g3,c4]@4 [g3,c4] ~@4 [g3,c4]@2 [g3,c4]@4 [g3,c4] ~@5 [g3,c4]@2 ~ [g3,c4]@3 ~@2", // C5
  I: "[g3,c4]@2 ~ [g3,c4]@4 [g3,c4] ~@4 [g3,c4]@6 [g3,c4] ~@5 [g3,c4]@2 ~ [g3,c4,e4]@4 ~", // C5 C
  J: "[[f3,bb3]@2 ~ [f3,bb3]@4 [f3,bb3] ~@4 [f3,bb3]@6 [f3,bb3] ~@5 [f3,bb3]@2 ~ [f3,bb3,d4]@3 ~@3 g4@6 [g3,bb3] ~@4 [g3,bb3]@6 ~ [g3,bb3] ~@4 [g3,bb3]@2 ~ [g3,bb3]@4 ~, ~@15 d3@4 ~@13, ~@31 [g3,bb3]@7 ~@26, ~@32 d4@7 ~@25]/2", // Bb5 Bb Gm
  K: "[f3,c4]@2 ~ [f3,c4]@4 [f3,c4] ~@4 [f3,c4]@6 [f3,c4] ~@5 [f3,c4]@2 ~ [f3,a3,c4]@4 ~", // F5 F
  L: "[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@3 ~, ~@7 a4@2 [bb3,eb4]@2 ~@5, ~@10 a4@2 a4@3 ~", // Eb5
  M: "~@4 f4@3 ~ [c4,f4,a4] ~@3 f3@2 c4@4 ~@2 f3@4 c3@2 ~@2 [c4,f4]@2 [c4,f4]@2, ~@7 a4@7 ~@2, ~@7 f4@5 ~@4, ~@9 c3@3 ~ f3@3", // F F5
  N: "[f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@6 ~@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 [f4,a4]@2 a4@5 ~ [f4,bb4] ~, ~@12 f4 ~@3", // Bb5 F Bb5
  O: "[e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [bb3,e4,c5] ~@5 [bb3,e4,bb4]@4 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [c3,g4]@2 [d3,bb4]@6, c4@3 ~@13", // Em C7 Bbdim Em C5 Gm
  P: "[[d4,bb4]@2 [d4,bb4]@2 [d4,bb4]@2 [d4,bb4]@2 [d4,bb4] ~@3 [d4,a4]@2 [d4,a4]@2 [d4,a4]@2 [d4,a4]@2 [d4,a4]@2 [d4,a4]@2 a4@4 [f4,bb4] ~@7 e4@3 ~ [bb3,e4,c5] ~@3 g3@2 bb3@4 ~@2 g3@4 c3@2 ~@2 [bb3,d4]@2 [bb3,d4]@2, g3@6 ~@18 f4@2 ~@5 [f4,bb4]@2 ~ g3@5 ~@7 bb4@14 ~@4, ~@32 c3@7 ~@7 e4@10 ~@8, ~@25 c3@3 ~ d3@3]/2", // Gm D5 Bb5 C7 Bb Bb5
  Q: "[~@4 f4@3 ~ [c4,f4,a4] ~@3 f3@2 c4@4 ~@2 f3@4 c3@2 ~@18 [g3,bb3]@6 ~ [g3,bb3] ~@4 [g3,bb3]@2 ~ [g3,bb3]@4 ~, ~@14 a4@14 ~ g4@21 ~@14, ~@14 f4@10 ~@4 [c4,f4]@2 d4@13 ~@21, ~@9 c3@3 ~ f3@2 ~ g3@6 ~@10, ~@33 g2@18 ~@13]/2", // F Gm F5
  R: "[[g3,c4]@2 ~ [g3,c4]@4 [g3,c4] ~@4 [g3,c4]@2 [g3,c4]@4 [g3,c4] ~@5 [g3,c4]@2 ~ [g3,c4]@3 ~@3 a3@19 [g3,c4]@2 ~ [g3,c4]@4 [g3,c4] ~@4, ~@15 g4@11 ~@6, ~@31 d4@21 ~@12, ~@8 bb3@5 ~@3]/2", // C5
  S: "[[g3,c4,e4]@2 ~ [g3,c4,e4]@4 [g3,c4,e4] ~@4 [g3,c4,e4]@6 [g3,c4,e4] ~@5 [g3,c4]@2 ~ [g3,c4,e4]@3 ~@2 [a3,bb3]@12 [g3,bb3]@6 ~ [g3,bb3] ~@4 [g3,bb3]@2 ~ [g3,bb3]@4 ~, ~@15 g4@11 ~@6, ~@31 d4@21 ~@12]/2", // C C5 C Bbmaj7 Gm
  T: "[[g3,c4,e4]@2 ~ [g3,c4,e4]@4 [g3,c4,e4] ~@4 [g3,c4,e4]@2 [g3,c4,e4]@4 [g3,c4,e4] ~@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@3 ~@3 a3@11 [g3,bb3]@6 ~ [g3,bb3] ~@4 [g3,bb3]@2 ~ [g3,bb3]@3 ~@2, ~@15 g4@7 ~@10, ~@31 d4@13 ~@20, ~@32 bb3@11 ~@21]/2", // C Gm
  U: "[[g3,c4,e4]@2 ~ [g3,c4,e4]@4 [g3,c4,e4] ~@4 [g3,c4,e4]@6 [g3,c4,e4] ~@5 [g3,c4]@2 ~ [g3,c4,e4]@3 ~@2 d4@7 ~ [f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@2 [f4,a4]@6 [f4,bb4]@2 [f4,bb4]@2 a4@6 [f4,bb4] ~, ~@30 d3@11 ~@23, ~@31 [f3,bb3]@9 ~@16 f4@2 ~@6]/2", // C C5 C Bb5 F Bb5
  V: "~@4 [e4,c5]!3 [bb3,e4,bb4]@2 [e4,bb4]!3 c3 d3@3, ~@4 bb3@3 ~@2 bb3@3 ~@4", // C Bbdim Edim
  W: "[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ a4@6 ~@2, ~@2 bb4@5 ~@7 a4@4 [bb3,eb4]@4 ~@10, ~@5 a4 ~@2", // Eb5
  X: "[[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@3 ~ [f4,bb4]@6 ~@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 c4@4 ~@2 f3@4 c3@2 ~@2 [c4,f4]@2 [c4,f4]@2, ~@14 a4@4 [bb3,eb4]@4 ~@9 d4@7 ~@8 f4@10 ~@8, ~@10 a4@2 a4@3 ~@8 a4@7 ~@2, ~@25 c3@3 ~ f3@3]/2", // Eb5 Bb5 Bb F5 Eb5
  Y: "d4@7 ~ [f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@2 [f4,a4]@6 [f4,bb4]@2 [f4,bb4]@2 a4@6 [f4,bb4] ~, ~@12 f4 ~@3", // Bb5 F Bb5
  Z: "[[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@3 ~ [f4,bb4]@6 ~@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 c4@4 ~@2 f3@4 c3@2 ~@2 [c4,f4]@2 ~@2 [f4,bb4]@7 ~ [f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@2 [f4,a4]@6 [f4,bb4]@2 [f4,bb4]@2 a4@6 [f4,bb4] ~, ~@14 a4@4 [bb3,eb4]@4 ~@9 d4@7 ~@8 f4@10 ~@32 f4@2 ~@6, ~@10 a4@2 a4@3 ~@8 a4@7 ~@18, ~@50 c3@6 ~@2 f3@4 ~ [bb3,d4]@7 ~@26]/3", // Eb5 Bb5 Bb F5 Bb5 F Bb5 Eb5 …
  AA: "[bb3@2 bb3@2 [bb3,f4]@4 [f4,bb4] ~@5 a3@2 a3@2 [c4,f4]@2 f4@2 f4@2 [c4,f4]@2 ~@6 [d4,g4]@4 [d4,g4]@2 [d4,g4]@2 [f4,bb4] ~@3 [d4,g4]@2 [f4,a4]@4 d4@2 [d4,g4]@2 [d4,g4]@2 a4@4 [f4,bb4] ~@7 e4@3 ~ [bb3,e4,c5] ~@3 g3@2 bb3@4 ~@2 g3@4 c3@2 ~@2 [bb3,d4]@2 [bb3,d4]@2, f4@4 ~@10 a4@8 ~@2 a4@5 ~@27 f4@2 ~@5 [f4,bb4]@2 ~ g3@5 ~@7 bb4@14 ~@4, ~@14 c4@4 ~@2 c4@4 ~@7 [g3,bb3]@6 ~@27 c3@7 ~@7 e4@10 ~@8, ~@41 c3@3 ~ d3@3]/3", // Bb5 F5 G5 Bb5 G5 F G5 Bb5 …
  AB: "[[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@3 ~ [f4,bb4]@6 ~@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 c4@4 ~@2 f3@4 c3@2 ~@2 [c4,f4]@2 ~@2 bb4@5 ~@3 [f4,bb4]@2 [f4,bb4]@2 [f4,bb4]@2 [f4,a4]@6 [f4,bb4]@2 [f4,bb4]@2 a4@6 [f4,bb4] ~, ~@14 a4@4 [bb3,eb4]@4 ~@9 d4@7 ~@8 f4@10 ~@7 [d4,f4]@7 ~@18 f4@2 ~@6, ~@10 a4@2 a4@3 ~@8 a4@7 ~@18, ~@25 c3@3 ~ f3@2 ~@17]/3", // Eb5 Bb5 Bb F5 Bb5 F Bb5 Eb5 …
  AC: "[[bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@4 [bb3,eb4,bb4] ~@5 [bb3,eb4]@2 [bb3,eb4]@2 ~@4 [bb3,eb4] ~ [bb3,eb4]@2 [bb3,eb4]@2 [bb3,eb4]@3 ~ [f4,bb4]@6 ~@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 [d4,f4,bb4]@2 c4@4 ~@2 f3@4 c3@2 ~@2 [f4,a4]@2 ~@2 [f4,bb4]@2 ~@5 bb4@25, ~@14 a4@4 [bb3,eb4]@4 ~@9 d4@7 ~@8 f4@10 ~@7 d4@3 ~@4 [d4,f4]@26, ~@10 a4@2 a4@3 ~@8 a4@7 ~ a4 ~@16, ~@50 c3@6 ~@2 f3@6 ~@5 f3@27]/3", // Eb5 Bb5 Bb F Bb5 Eb5 Dm
})).s("gm_acoustic_guitar_steel").gain(0.3).pan(0.7)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@20 A@2 B@2 ~@7 C D E F G H I J K ~ E L M H I J N@3 B@2 O@4 D E F G H I P@2 D E F G Q@2 R@2 S E F T H I P@2 D E F G U
  V W@2 X@2
>`.pickRestart({
  A: "g1/2", B: "[g2@7 [c3,g3]@9, c3@11 ~@53]/2", C: "f3@31 ~", D: "bb2", E: "c3", F: "eb3", G: "~@8 d4@2 ~@4 c4@17 ~",
  H: "g2@27 ~@5", I: "c3@27 ~@5", J: "~@4 bb3@27 ~, eb3@13 ~@3", K: "c5@31 ~", L: "eb3@15 ~",
  M: "d4@2 ~@6 d4@3 ~@3 c4@17 ~", N: "[a4@27 ~ g2@66 ~@2]/3", O: "[[g2,d3]@60 ~ [g2,c3]@28 ~@3 [c3,g3]@36]/4",
  P: "[~@4 bb3@26 bb4@17 ~ f4@15 ~, eb3@13 ~@19]/2", Q: "[bb4@8 ~@24 c3@27 ~@5, g2@27 ~@37, ~@8 g4@55 ~]/2",
  R: "[~@4 bb4@26 d5@15 ~ c5@18, eb3@13 ~@19]/2", S: "bb4@9 ~@7", T: "~@2 f3 a3 bb3@4 c4@7 ~", U: "g2@27 ~@5, bb4 ~@3",
  V: "c5@4 g4@11 ~", W: "[~@4 bb3@26 bb4@15 ~ a4@18, eb3@13 ~@19]/2", X: "[[bb2,f3] ~@5 [bb2,f3]@46 ~@12]/2",
})).s("gm_overdriven_guitar").gain(0.37).pan(0.3)

// chords · pad warm
const pad_warm = note(`<
  ~@19 A B C B C D@2 E F D@2 E G H I J K L M N O B I J K L M N O B C B C B C B C H I J K L M N P H I J K L M N P H I J K
  L M N P H I J K L M N P Q@2
>`.pickRestart({
  A: "g4", B: "g2", C: "c2", D: "[~@32 c3@31 ~, g4]/2", E: "[eb3,bb3,eb4]", F: "bb3@15 ~ a3@16, f3", G: "[f2,c4]",
  H: "bb2@31 ~", I: "~@3 g3@28 ~, c3", J: "[eb2,g3]@31 ~", K: "bb1@15 a1@16 ~, f3@31 ~", L: "g3@31 ~", M: "[c3,g3]",
  N: "[eb3,g3]@31 ~", O: "[f2,f3]", P: "bb2 f2, f3", Q: "[bb2@51 ~@13]/2",
})).s("gm_pad_warm").gain(0.25)

// chords · rock organ
const rock_organ = note(`<
  ~@20 A@3 B C D E F C D E G H I J@2 K L M N O I P@2 K L M N A@3 B A@3 Q R I J@2 K L M S T I J@2 K L M S T I J@2 K L M S
  T I J@2 K L M S U@2
>`.pickRestart({
  A: "[f2,f5,bb5]@2 g2 ~ g2@2 f2@2 g2@3 ~ [f5,bb5]@2 f2@4 g2 ~ g2@2 f2@2 g2@3 ~@5", // Bb5
  B: "[f2,f5,bb5]@2 g2 ~ g2@2 f2@2 g2@3 ~ [f5,bb5]@2 f2@4 g2 ~ [g2,g5,c6]@2 f2@2 [g2,f5,bb5]@3 ~@5", // Bb5 C5 Gm7
  C: "g2 ~ [d5,f5] ~@2 g2 [d5,f5] ~, ~@4 bb5 ~@7 bb5 ~@3", // Dm
  D: "c3@6 ~@2 [g5,bb5]@2 ~@10 c3@4 [e5,g5,bb5]@3 ~@5, ~@2 e5 ~@5", // Gm Edim
  E: "eb3@4 ~@4 [g5,bb5,d6]@3 ~@9 eb3@4 [g5,bb5,d6]@3 ~@5", // Gm
  F: "bb2@6 ~@2 [d5,f5]@4 ~@4 a2@5 ~@3 [f5,a5,c6]@4 ~@4, ~@4 bb5 ~@11", // Dm F
  G: "f2@6 ~@2 [f5,a5]@4 ~@4 a2@5 ~@4 b3 [c4,d4] [e4,f4] [g4,a4] [b4,c5,d5] ~@2, ~@4 c6 ~@7 [f5,a5,c6]@2 ~@2", // F Csus2 Fmaj7 Gsus2 Bm F
  H: "[d5,bb5]@23 ~ [bb4,d5] ~@7", I: "~@8 [c5,e5]@5 ~ [c5,e5]@18", J: "[eb5@3 g5 ~@2 a4@2, bb4@47 ~@17, ~ d5]/2",
  K: "[d5,g5]@5 g3 ~@2 [d5,g5] ~@5 [d5,g5]@18, ~@13 g3@4 ~@15", L: "e5@27 ~ g5@4, c5", M: "[eb5,bb5]",
  N: "c6@7 ~ c5@24, f5@31 ~", O: "[bb4,d5]@23 ~ [bb4,d5] ~@7",
  P: "[[eb5,g5]@3 ~@3 a4@2, bb4@47 ~@17, ~@3 g5@3 ~@2, ~ d5]/2", // Eb
  Q: "[f2,f5,bb5]@2 g2 ~ g2@2 f2@2 g2@3 ~ [f5,bb5]@2 f2@4 g2 ~ [g2,g5,c6]@2 f2@2 [g2,f5,bb5]@3 b3 [c4,d4] [e4,f4] [g4,a4] [b4,c5,d5]", // Bb5 C5 Gm7 Csus2 Fmaj7 Gsus2 Bm
  R: "[f5,bb5]@23 ~ [bb4,d5] ~@7", S: "bb5@16 c5@12 [b3,c4] [d4,e4] [f4,g4,a4] [b4,c5], f5@15 ~",
  T: "[f5,bb5]@23 ~ [bb4,d5] ~@7, d5 ~@31", U: "[[bb4,d5,f5] ~@5 [bb4,f5]@42 c5 b4 [g4,a4] [e4,f4] d4 ~@11]/2",
})).s("gm_rock_organ").gain(0.48).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@18 A@2 B@4 ~@3 C@2 ~@2 D E F G H I@2 J@2 K F G L M N O D P@4 Q@5 R S T I@2 U V W R S T X@2 U V Y R S T Z@2 U AA AB R
  S AC@2 AD AE V AF@2
>`.pickRestart({
  A: "[bb4@30 ~ c5@32 ~]/2", B: "[~ c5@31, g5@27 ~@101]/4", C: "[~@2 c5@13 ~]/2", D: "[f2,c3]", E: "[bb1,f2]",
  F: "c2@31 ~", G: "eb2@31 ~", H: "bb1@15 ~ a2@16", I: "[~@12 g5@28 [c2,g2]@23 ~, ~@4 g4@7 ~@53, ~ bb4@4 ~@3]/2",
  J: "[[eb2,bb2]@31 [f2,c3]@32 ~]/2", K: "[g1,d2]", L: "bb2 a2", M: "~@8 bb4@6 a4@11 ~ bb4@6",
  N: "~@8 bb4@6 a4@11 ~ bb4@6, ~ c2@3", O: "bb2@4 bb4@3 a4@5 bb4@4, eb2", P: "[~@6 g5@21 ~ g6@64 ~@36, c5@31 ~]/4",
  Q: "[~@4 g5@120 [bb2,f3]@35 ~, c5@123 ~@37]/5", R: "[g2,c3]", S: "[bb2,eb3]@31 ~", T: "[bb2,d3]@3 ~", U: "[eb2,bb2]",
  V: "bb2 c3, f3", W: "f3@31 ~", X: "[~@4 g3@4 bb3@4 g4@27 ~ [c2,g2]@23 ~]/2", Y: "d3@31 ~",
  Z: "[~@4 d5@14 ~@2 c5@3 g4@8 ~, bb4@4 ~ c2@3]/2", AA: "d5@11 c5@2 ~ c5@14 ~@4, ~@13 bb4@2 ~@17", AB: "[bb2,f3]@31 ~",
  AC: "[[bb2,d3]@16 c5@4 d5@4 eb5@4 d5@27 ~@9]/2", AD: "~@8 [c2,g2]@23 ~", AE: "bb4@11 eb4@19 ~@2, eb2",
  AF: "[[bb1,bb4] ~@2 [bb1,bb4]@23 ~@6]/2", // Bb
})).s("gm_distortion_guitar").gain(0.48).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A@15 B A@3 C A@7 D A@7 D A@7 D A@3 E A@3 F A@3 G A@7 G A@3 H A@3 D A@7 E I A@2 J K L
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@3 x ~", B: "x", C: "x ~@14 x!2 ~@10 x!2 ~@3", D: "x ~@6 x!2 ~ x ~@5", E: "x ~@3 x!2 ~@2",
  F: "x ~@14 x!2 ~@11 x ~@3", G: "x ~@6 x!2 ~ x ~@2 x ~@2", H: "x ~@13 x ~ x ~@3 x ~@10 x",
  I: "x ~ x ~@4 x!2 ~ x ~@3 x ~", J: "x!2 ~@5 x ~@2 x ~@2 x ~ x", K: "x ~ x!2 ~@12", L: "~@5 x ~@2",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@4 A@15 ~ A@3 B A@7 C A@7 C A@3 C A@3 C A@3 D E A@2 F A@3 C A@7 C A@3 G A@7 C A@3 H A@3 I J ~
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!2 ~@2 x!2 ~", C: "~@2 x ~@3 x!2", D: "~@8 x ~@6 x ~@8 x ~@7", E: "~@4 x ~@7 x ~@2 x",
  F: "~@4 x ~@3 x ~@10 x!3 ~ x!2 ~@2 x ~@4", G: "~@8 x ~@10 x ~@4 x ~@3 x ~@3", H: "~@8 x ~@5 x ~@9 x ~@3 x!2 ~ x",
  I: "~@2 x ~@6 x ~@2 x ~@3", J: "~ x ~@14",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@89 [~@19 x ~@12]>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A@8 B A@6 ~ B A@2 C B A@3 B A@2 D E A@3 B A@2 D E A@2 F B A@2 D B A@2 F B A@2 C G A@2 F B A@2 D G A@2 H B A@2 I G
  A@2 D B A@2 D G A@2 H J A@2 K ~@2
// … 55 more lines

More by Nek