Strudelify

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: 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@2 N O P Q R S P Q T U V W X Y Z AA AB AC AD AE AF AG AH AI AB AJ M AK N AL M AM AN AO V
  W X Y Z AA AB AP V AQ X Y Z AA AB AP V W X Y Z AA AB AR V W X Y Z AA AB AS AT@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 g1 ~ g1@3 f1 g1@2 ~@6",
  O: "f1@2 g1 ~ g1@2 ~ f1 g1@2 ~@4 f1@4 g2@2 ~@2 g2@2 f2@2 d2 ~ c2@2 bb1@2", P: "g1@2 g1@3 ~@9 f1 ~ f1@3 ~ g1@4 ~@8",
  Q: "c2@2 ~@2 c2@4 ~@6 bb1 ~ bb1@4 c2@5 ~@3 bb1@2 c2@2", R: "eb1@3 ~ eb1@3 ~@7 d1@2 eb1@2 d1@2 eb1@4 ~@8",
  S: "bb1@2 ~@2 bb1@4 ~@7 bb1 a1@3 ~ a1@4 ~@4 a1@3 ~", T: "eb1@3 ~ eb1@3 ~@7 d1@2 eb1@2 d1@2 eb1@4 ~@4 eb1@2 e1 ~",
  U: "f1@2 ~@2 f1@4 ~@7 f1 f1@3 ~ f1@4 g1@3 ~ a1@3 ~", V: "bb1@3 ~ bb1@8 ~@3 bb1 bb1@3 ~ bb1@10 ~@2",
  W: "c2@2 ~@2 c2@3 ~ c3@7 c2 c2@3 ~ c2@7 ~ c2@4", X: "eb2@3 ~ eb2@8 ~@2 eb2 ~ eb2@3 ~ eb2@5 ~@3 eb2@4",
  Y: "bb1@3 ~ bb1@6 ~@4 bb1 ~ a1@4 a1@6 ~@2 a1@4", Z: "g1@2 ~@2 g1@4 g2@6 g1 ~ g1@3 ~ g1@6 ~@2 g1@4",
  AA: "c2@3 ~ c2@4 c3@6 c2 ~ c2@3 ~ c2@6 ~@2 c2@4", AB: "eb1@3 ~ eb1@4 eb2@6 eb1 ~ eb1@3 ~ eb1@5 ~@3 eb1@3 ~",
  AC: "f1@3 ~ f1@4 f2@6 f1 f1@3 ~@2 f1@4 f2@8", AD: "g1@3 ~ g1@4 g2@6 ~ g1 g1@3 ~ g1@4 g2@5 ~@3",
  AE: "c1@2 ~@2 c1@3 ~ c2@7 c1 c1@3 ~ c1@4 c2@7 ~", AF: "eb1@3 ~ eb1@4 eb2@4 ~@2 eb1 ~ eb1@3 ~ eb1@4 eb2@8",
  AG: "bb1@3 ~ bb1@6 ~@4 bb1 ~ a1@4 a1@4 a2@8", AH: "g1@2 ~@2 g1@4 g2@6 g1 ~ g1@3 ~ g1@4 g2@4 g1@4",
  AI: "c1@3 ~ c1@4 c2@6 c1 ~ c1@3 ~ c1@6 ~@2 c1@4", AJ: "f1@3 ~ f1@4 f2@6 f1 f1@3 ~@2 f1@4 f2@4 g2@4",
  AK: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@5 g1 g1@3 f1 g1@2 ~@2 c2@2 ~@2",
  AL: "f1@2 g1 ~ g1@2 ~ f1 g1@2 ~@4 f1@4 g2@2 ~@4 g2@2 f2@4 bb1@2",
  AM: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@5 g1 g1@3 f1 g1@2 ~@2 c2@4",
  AN: "f1@2 ~ g1 g1@2 ~ f1 g1@2 ~@4 f1@4 g1 ~ g1@3 f1 g1@2 ~@2 g1@4", AO: "g2!3 f2@3 d2!3 c2@2 d2 c2 bb1 c2 d2",
  AP: "bb1@3 ~ bb1@4 bb1@6 f1 f1@3 ~@2 f1@4 f2@8", AQ: "c2@2 ~@2 c2@3 ~ c3@7 c2 c2@2 ~@2 c2@7 ~ c2@4",
  AR: "bb1@3 ~ bb1@4 bb1@6 f1 f1@3 ~@2 f1@4 f2@2 f2@2 c2@4", AS: "bb1@3 ~ bb1@4 bb1@6 f1 f1@3 ~@2 f1@4 f2@4 f2@4",
  AT: "[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 G@2 ~@13 D E@2 F D G@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", G: "[~@2 c4 ~@7 bb3 ~@5, c3@27 ~ bb3@10 ~@26, ~@16 eb3@13 ~@3]/2",
})).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]/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 I J G K I L@2 K I M A B C D E@2 N O P Q C D R@2 N S@2 T@2 U@2 V@2 W@2 X Y D E@2 Z@2 AA X Y D
  AB@2 AC@3 X Y AD@3 AE@3 X Y D E@2 AF@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]@4 ~", // Gm
  H: "[g3,c4]@2 ~ [g3,c4]@4 [g3,c4] ~@4 [g3,c4]@2 [g3,c4]@3 ~ [g3,c4] ~@5 [g3,c4]@2 ~ [g3,c4]@3 ~@2", // C5
  I: "[g3,bb3]@2 ~ [g3,bb3]@4 [g3,bb3] ~@4 [g3,bb3]@6 ~ [g3,bb3] ~@4 [g3,bb3]@2 ~ [g3,bb3]@3 ~@2", // Gm
  J: "[g3,c4]@2 ~ [g3,c4]@4 [g3,c4] ~@4 [g3,c4]@6 [g3,c4] ~@5 [g3,c4]@2 ~ [g3,c4,e4]@4 ~", // C5 C
  K: "[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
  L: "[[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
  M: "[f3,c4]@2 ~ [f3,c4]@4 [f3,c4] ~@4 [f3,c4]@6 [f3,c4] ~@5 [f3,c4]@2 ~ [f3,a3,c4]@4 ~", // F5 F
  N: "[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
  O: "~@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
  P: "[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
  Q: "[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
  R: "[[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
  S: "[~@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
  T: "[[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
  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 [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
  V: "[[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
  W: "[[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
  X: "~@4 [e4,c5]!3 [bb3,e4,bb4]@2 [e4,bb4]!3 c3 d3@3, ~@4 bb3@3 ~@2 bb3@3 ~@4", // C Bbdim Edim
  Y: "[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
  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 [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
  AA: "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
  AB: "[[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@5 ~@19 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 …
  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 [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 …
  AD: "[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 ~@2 bb3@5 ~@20 f4@2 ~@5 [f4,bb4]@2 ~ g3@5 ~@7 bb4@14 ~@4, ~@14 c4@4 ~@2 c4@4 ~@6 g3@6 ~@28 c3@7 ~@7 e4@10 ~@8, ~@41 c3@3 ~ d3@3]/3", // Bb5 F5 G5 Bb5 G5 F G5 Bb5 …
  AE: "[[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 …
  AF: "[[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 Q E F G R@2 S@2 T E F U H I V@2 D E F G W
  X Y@2 Z@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: "~@7 d4@2 ~@5 c4@17 ~",
  H: "g2@27 ~@5", I: "c3@27 ~@5", J: "~@3 bb3@27 ~@2, eb3@13 ~@3", K: "c5@31 ~", L: "eb3@15 ~",
  M: "d4@2 ~@5 d4@3 ~@4 c4@17 ~", N: "[a4@27 ~ g2@66 ~@2]/3",
  O: "[[g2,d3]@60 ~ g2@28 ~@3 [c3,g3]@36, ~@15 c3@7 ~@10]/4", P: "[~@3 bb3@27 bb4@17 ~ f4@15 ~, eb3@13 ~@19]/2",
  Q: "bb2@31 ~", R: "[bb4@8 ~@24 c3@27 ~@5, g2@27 ~@37, ~@8 g4@55 ~]/2",
  S: "[~@3 bb4@26 ~ d5@15 ~ c5@18, eb3@13 ~@19]/2", T: "bb4@9 ~@7", U: "~@2 f3 a3 bb3@4 c4@7 ~",
  V: "[~@3 bb3@27 bb4@17 ~ f4@16, eb3@13 ~@19]/2", W: "g2@27 ~@5, bb4 ~@3", X: "c5@4 g4@11 ~",
  Y: "[~@3 bb3@27 bb4@15 ~ a4@18, eb3@13 ~@19]/2", Z: "[[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 P Q J R L M N O B C B C B C B C H Q J R L M N S H I J R L M N T H Q J R
  L M N T H I J R L M N U V@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", L: "g3@31 ~", M: "[c3,g3]",
  N: "[eb3,g3]@31 ~", O: "[f2,f3]", P: "g2@31 ~", Q: "~@3 g3@28 ~, c3@31 ~", R: "bb1@15 a1@16 ~, f3@31 ~",
  S: "bb2 f2, f3@31 ~", T: "bb2 f2, f3", U: "bb2@16 f2@15 ~, f3@31 ~", V: "[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@3 f2@2 g2@3 ~@5", // Bb5
  B: "[f2,f5,bb5]@2 g2 ~ g2@2 f2@2 g2@3 ~ [f5,bb5]@2 f2@4 g2 ~ [g5,c6]@2 f2@2 [g2,f5,bb5]@3 ~@5, ~@19 g2@3 ~@10", // Bb5 C5 Gm7
  C: "g2 ~ [d5,f5] ~@2 g2 [d5,f5] ~, ~@4 bb5 ~@7 bb5 ~@3", // Dm
  D: "c3@6 ~@2 [g5,bb5]@2 ~@9 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 ~ [g5,c6]@2 f2@2 [g2,f5,bb5]@3 b3 [c4,d4] [e4,f4] [g4,a4] [b4,c5,d5], ~@19 g2@3 ~@10", // 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 L M N O P Q D R@4 S@5 T U V W@2 X Y Z T U V AA@2 X Y AB AC U V AD@2 X AE
  AF AC U AG@2 AH AI Y AJ@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: "c2", M: "eb2", N: "bb2 a2", O: "~@8 bb4@6 a4@11 ~ bb4@6",
  P: "~@8 bb4@6 a4@11 ~ bb4@6, ~ c2@3", Q: "bb2@4 bb4@3 a4@5 bb4@4, eb2", R: "[~@6 g5@21 ~ g6@64 ~@36, c5@31 ~]/4",
  S: "[~@4 g5@120 [bb2,f3]@35 ~, c5@123 ~@37]/5", T: "[g2,c3]", U: "[bb2,eb3]@31 ~", V: "[bb2,d3]@3 ~",
  W: "[~@3 g5@7 [c2,g2]@6, ~@4 g4@7 ~@53, ~ bb4@4 ~@3]/2", X: "[eb2,bb2]", Y: "bb2 c3, f3", Z: "f3@31 ~",
  AA: "[~@4 g3@4 bb3@4 g4@27 ~ [c2,g2]@23 ~]/2", AB: "d3@31 ~", AC: "[g2,c3]@31 ~",
  AD: "[~@4 d5@14 ~@2 c5@3 g4@8 ~, bb4@4 ~ c2@3]/2", AE: "d5@11 c5@2 ~ c5@14 ~@4, ~@13 bb4@2 ~@17", AF: "[bb2,f3]@31 ~",
  AG: "[[bb2,d3]@16 c5@4 d5@4 eb5@4 d5@27 ~@9]/2", AH: "~ [c2,g2]@3", AI: "bb4@11 eb4@19 ~@2, eb2",
  AJ: "[[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 C A D A@7 E A@7 E A@7 E A C A F A C A G A@3 H A@7 H A@3 I A@3 E A@7 F J A@2 K L M
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@3 x ~", B: "x", C: "x ~@14 x!2 ~@3 x ~@7 x ~@3", D: "x ~@14 x!2 ~@10 x!2 ~@3",
  E: "x ~@6 x!2 ~ x ~@5", F: "x ~@3 x!2 ~@2", G: "x ~@14 x!2 ~@11 x ~@3", H: "x ~@6 x!2 ~ x ~@2 x ~@2",
  I: "x ~@13 x ~ x ~@3 x ~@10 x", J: "x ~ x ~@4 x!2 ~ x ~@3 x ~", K: "x!2 ~@5 x ~@2 x ~@2 x ~ x", L: "x ~ x!2 ~@12",
  M: "~@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",
// … 65 more lines

More by Nek