Strudelify

Nessun pericolo... per te

Rossi Vasco

KeyA majorTempo116 bpm
0:00/0:00
// Nessun pericolo... per te — Rossi Vasco
// 116 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 139 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28, guitar program 25, guitar program 25.
setcpm(116/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 · fretless bass
const bass = note(`<
  A B C D A B E F A B C D A B E F A B C D G H I J K L M N O P Q R A B C D A B E F A B C D A B E F A B C D G H I J K L M
  N O P Q R S@2 T@2 U V W X Y V W X Y Z@2 AA AB@2 AC@2 AD AE AF AG@2 AH@2 AI AJ AK AL AM@4 AN@5 AO@2 AP@8 AQ@6 AR@4 AS@7
  AT@6 AU AV
>`.pickRestart({
  A: "a1@6 ~@3 a1@11 ~ g1@3", B: "a1@7 ~@2 a1@6 c2@3 a1@3 g1@3", C: "a1@5 ~@4 a1@11 ~ a1@3", D: "d2@3 c2@3 b1@2",
  E: "a1@7 ~@2 e1@3 g1@3 a1@3 ~@3 e1@3", F: "d1@3 c1@3 b0@2", G: "f#1@6 ~@3 f#1@11 ~ f#2@3",
  H: "f#1@7 ~@2 f#1@6 a1@3 f#1@3 e1@3", I: "f#1@7 ~@2 f#1@9 c#3@6", J: "f#3@2 f#3@2 f#3@2 e3@3 c#3@3",
  K: "f#2@8 ~ f#2@11 ~ e2@3", L: "f#2@7 ~@2 f#2@6 a2@3 f#2@3 e2@3", M: "f#2@8 ~ e2 c#2 ~ b1 e2 ~ c#2@3 b1@3 a1@3",
  N: "f#1@3 f#1@2 e1 f#1 a1", O: "c2@8 ~ c2@14 ~", P: "c2@8 ~ c2 d2 ~ e2@4 d2@4 c2@4", Q: "a#1@8 ~ a#1@15",
  R: "f1@11 ~@13", S: "[b1@3 b1@3 ~@3 c2@4 ~@2 a1@12 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3]/2",
  T: "[b1@6 ~@3 c2@4 ~@2 a1@12 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3]/2", U: "a1!8",
  V: "c#2@2 ~ c#2@2 ~ c#2@3 ~ c#2@2 ~ c#2 ~ b1@9", W: "a1@2 ~ a1@2 ~ a1@3 e1 a1@2 ~ a1 ~ b1@3 b1@3 b1!2 ~",
  X: "c#2@2 ~ c#2@2 ~ c#2@3 ~ c#2@2 ~ c#2 ~ b1@6 a1@2 ~", Y: "a1@2 ~ g#1@2 ~ g#1@3 f#1!2 ~ f#1@3 b1@3 b1@6",
  Z: "[c#2@7 c2@9]/2", AA: "a#1", AB: "[f1@21 f2@18 f1@2 ~ f1@2 ~ f1@2 ~]/2",
  AC: "[g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~ a1@2 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1@2 a1@2 ~ f#1@2 g#1 ~@2 g#1 ~@3 g1@2 ~ a1@2 ~ f#1@2 g#1 ~, ~@8 g1@2 ~@4 f#1@2 ~@7 g1@2 ~@12 g#1@2 ~ g#1@2 ~@6]/2",
  AD: "~ g#1 ~@3 g1@2 ~ d#2@3 ~@2 g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~, ~@4 g#1@2 ~ g#1@2 ~@3 f#1@2 ~@7 g1@2 ~",
  AE: "a1@2 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1@2 a1@2 ~ f#1@2 g#1 ~@2 g#1, ~@3 f#1@2 ~@7 g1@2 ~@10",
  AF: "~@3 g1@2 ~ a1@2 ~ f#1@2 g#1 ~@2 g#1 ~@3 g1@2 g#1@2 d#2@2, ~@2 g#1@2 ~ g#1@2 ~@10 g#1@2 ~@5",
  AG: "[~@2 g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~ a1@2 ~@2 g#1 ~@2 g#1 ~@2 g#1@2 g1@2 ~ a1@2 ~ f#1@2 g#1 ~@2 g#1 ~@3 g1@2 ~ a1@2 ~ f#1@2, ~ f#1@2 ~@7 g1@2 ~@4 f#1@2 ~@9 g#1@2 ~@10 g#1@2 ~ g#1@2 ~@4]/2",
  AH: "[g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1@2 d#2@3 ~ g#1@2 ~ g#1 ~@2 g#1 ~@2 g#1 ~ a1@2 ~@2 g#1 ~@2 g#1 ~@4 g1@2 ~ a1@2 ~ f#1@2 g#1 ~, ~@8 g1@2 ~@4 f#1@2 ~@7 g1@2 ~@4 f#1@2 ~@6 g#1@2 ~ g#1@2 ~@6]/2",
  AI: "~ g#1 ~@3 g1@2 ~ a1@2 ~ f#1@2 g#1 ~@2 g#1 ~@2 g#1@2 ~ g#1@2, ~@4 g#1@2 ~ g#1@2 ~@12 g1@2 ~",
  AJ: "d#2@3 ~ a1 ~ a1!2 ~ a1 d2 ~ d2!2 ~ d2 g#1 ~ g#1!2 ~ g#1 ~ c#2",
  AK: "c#2 ~ c#2!2 ~ g1!2 ~ g1!2 ~ c2!2 ~ c2!2 ~ f#1!2 ~ f#1!2 ~ b1", AL: "b1 ~ b1 ~ b1 f#1@6 ~@3 f#1@10",
  AM: "[~@2 f#2@3 f#1@7 ~@2 f#1@6 a1@3 f#1@3 e1@3 f#1@7 ~@2 f#1@9 c#3@6 f#3@4 f#3@4 f#3@4 e3@6 c#3@6 f#2@8 ~ f#2@10]/4",
  AN: "[~@2 e2@3 f#2@7 ~@2 f#2@6 a2@3 f#2@3 e2@3 f#2@8 ~ e2 ~ c#2 b1 ~ e2 c#2@3 b1@3 a1@3 f#1@9 f#1@6 e1@3 f#1@3 a1@3 c2@8 ~ c2@14 ~ c2@8 ~ c2 ~ d2 e2@4 d2@3]/5",
  AO: "[~ c2@4 a#1@8 ~ a#1@15 f1@11 ~@8]/2",
  AP: "[~@5 b1@3 b1@3 ~@3 c2@4 ~@2 a1@12 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 b1@6 ~@3 c2@4 ~@2 a1@12 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@9 a1@2 ~ a1@2 ~ a1@3 e1 ~ a1@2 ~ a1 b1@3 b1@3 b1 ~ b1 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@4]/8",
  AQ: "[~@2 a1@2 ~ a1@2 ~ g#1@2 ~ g#1@3 f#1 ~ f#1 f#1@3 b1@3 b1@6 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@9 a1@2 ~ a1@2 ~ a1@3 e1 ~ a1@2 ~ a1 b1@3 b1@3 b1 ~ b1 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@6 a1@2 ~ a1@2 ~ g#1@2 ~ g#1@3 f#1 ~ f#1 f#1@3 b1@3 b1@6 c#2@19]/6",
  AR: "[~@2 c2@27 a#1@24 f1@21 f2@18 f1@2 ~ f1]/4",
  AS: "[~@2 f1@2 ~ c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@9 a1@2 ~ a1@2 ~ a1@3 e1 ~ a1@2 ~ a1 b1@3 b1@3 b1 ~ b1 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@6 a1@2 ~ a1@2 ~ g#1@2 ~ g#1@3 f#1 ~ f#1 f#1@3 b1@3 b1@6 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@9 a1@2 ~ a1@2 ~ a1@3 e1 ~ a1@2 ~ a1 b1@3 b1@3 b1 ~ b1 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@4]/7",
  AT: "[~@2 a1@2 ~ a1@2 ~ g#1@2 ~ g#1@3 f#1 ~ f#1 f#1@3 b1@3 b1@6 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@9 a1@2 ~ a1@2 ~ a1@3 e1 ~ a1@2 ~ a1 b1@3 b1@3 b1 ~ b1 c#2@2 ~ c#2@2 ~ c#2@3 ~@2 c#2@2 ~ c#2 b1@6 a1@2 ~ a1@2 ~ g#1@2 ~ g#1@3 f#1 ~ f#1 f#1@3 b1@3 b1@6 a1 ~ a1!2 ~ a1 d2 ~ d2!2 ~ d2 ~ g#1!2 ~ g#1!2 ~]/6",
  AU: "c#2!2 ~ c#2!2 ~ g1 ~ g1!2 ~ g1 c2 ~ c2!2 ~ c2 f#1 ~ f#1 ~ f#1!2", AV: "~ b1!2 ~ b1!2 ~@18",
})).s("gm_fretless_bass").gain(0.43)

// chords · percussive organ
const percussive_organ = note("<~@34 A@2 ~@2 B@2 ~@2 A@2 ~@2 A@2 ~@2 A@2 ~@87>".pickRestart({
  A: "[~@7 [d5,d6]@4 [c5,c6]@3 [b4,b5]@2, ~@7 g4@9, ~@21 a4@20 ~@7]/2", // D C B
  B: "[~@7 [d5,d6]@5 [c5,c6]@2 ~@2, ~@7 g4@9, ~@7 a4@7 ~@2]/2", // D C
})).s("gm_percussive_organ").gain(0.12).pan(0.7)

// chords · percussive organ · soft notes
const percussive_organ_soft = note("<~@36 A ~@2 B C ~@3 A ~@3 A ~@90>".pickRestart({
  A: "[e4,a4] ~", B: "~@3 [b4,b5]", C: "[e4,a4,a5] ~",
})).s("gm_percussive_organ").gain(0.04).pan(0.7)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@39 A B@3 ~@4 A B@3 ~@8 C@5 ~@5 D@8 E@2 F G ~ H@2 I J K L@2 M@2 N O P Q ~@7 R@4 ~@5 S@7 T@7 U@8 V@4 W@2
>`.pickRestart({
  A: "~@7 [a2,e3]", B: "[[a2,e3,a3]@71 ~]/3",
  C: "[~@72 f4@21 [a#2,f3,a#3]@10 ~@17, ~@7 [c3,g3,c4]@16 [a#2,f3,a#3]@8 ~@9, ~@8 g4@16 ~@7 f4@4 ~@5]/5", // A#5 C5 A#5
  D: "[[c#3,g#3,c#4]@7 [a2,e3,a3]@7 [b2,f#3,b3]@2]/2", E: "[[c#3,g#3,c#4]@7 [c3,g3,c4]@9]/2", F: "[a#2,f3,a#3]",
  G: "[f2,c3,f3]", // F5
  H: "[g#2@2 ~ g#2@2 ~ g#2@2 ~ g#2@2 a2@2 ~@2 g#2@2 ~ g#2 ~@2 g#2@2 ~ g#2@2 a2@2 ~ f#2@2 g#2@2 ~ g#2 ~@3 f#2@2 ~ a2@2 ~ f#2@2 g#2@2, ~@8 f#2@2 ~@4 f#2@2 ~@7 f#2@2 ~@12 g#2@2 ~ g#2@2 ~@6]/2",
  I: "~ g#2 ~@3 f#2@2 ~ d#3@2 ~@3 g#2@2 ~ g#2@2 ~ g#2@2 ~ g#2@2, ~@4 g#2@2 ~ g#2@2 ~@3 f#2@2 ~@7 f#2@2 ~",
  J: "a2@2 ~@2 g#2@2 ~ g#2 ~@2 g#2@2 ~ g#2@2 a2@2 ~ f#2@2 g#2@2 ~ g#2, ~@3 f#2@2 ~@7 f#2@2 ~@10",
  K: "~@3 f#2@2 ~ a2@2 ~ f#2@2 g#2@2 ~ g#2 ~@3 f#2@2 g#2@2 d#3@2, ~@2 g#2@2 ~ g#2@2 ~@10 g#2@2 ~@5",
  L: "[~@2 g#2@2 ~ g#2@2 ~ g#2@2 ~ g#2@2 a2@2 ~@2 g#2@2 ~ g#2 ~@2 g#2@2 f#2@2 ~ a2@2 ~ f#2@2 g#2@2 ~ g#2 ~@3 f#2@2 ~ a2@2 ~ f#2@2, ~ f#2@2 ~@7 f#2@2 ~@4 f#2@2 ~@9 g#2@2 ~@10 g#2@2 ~ g#2@2 ~@4]/2",
  M: "[g#2@2 ~ g#2 ~@2 g#2@2 ~ g#2@2 d#3@2 ~@2 g#2@2 ~ g#2@2 ~ g#2@2 ~ g#2@2 a2@2 ~@2 g#2@2 ~ g#2 ~@4 f#2@2 ~ a2@2 ~ f#2@2 g#2@2, ~@8 f#2@2 ~@4 f#2@2 ~@7 f#2@2 ~@4 f#2@2 ~@6 g#2@2 ~ g#2@2 ~@6]/2",
  N: "~ g#2 ~@3 f#2@2 ~ a2@2 ~ f#2@2 g#2@2 ~ g#2 ~@2 g#2@2 ~ g#2@2, ~@4 g#2@2 ~ g#2@2 ~@12 f#2@2 ~",
  O: "d#3@2 ~@2 a2@2 a2 a2@2 ~ d3@2 d3 d3@2 ~ g#2@2 g#2 g#2@2 g#2@2 c#3, ~@9 a2@2 ~@4 d3@2 ~@7",
  P: "c#3@2 c#3 c#3@2 g2 g2@2 g2 g2@2 c3 c3@2 c3 c3@2 f#2 f#2@2 f#2 f#2@2 b2", Q: "b2!3 ~@9",
  R: "[~@53 f4@21 [a#2,f3,a#3]@10 ~@12, ~ [c3,g3,c4]@24 [a#2,f3,a#3]@12 ~@11, ~@5 g4@48 ~@21 f4@12 ~@10]/4", // A#5 C5 A#5
  S: "[~@5 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@19]/7", // C#5 A5 B5 C#5 A5 B5 C#5 A5 …
  T: "[~@2 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [c3,g3,c4]@27 [a#2,f3,a#3]@24 [f2,c3,f3]@24 [c3,f3] ~@2 [f2,c3,f3]@3 [f2,c3,f3]@3 [f2,c3,f3]@3 [f2,c3,f3]@3 [f2,c3,f3]@3 [f2,c3,f3]@3 [f2,c3,f3]@3 [c#3,g#3,c#4]@19, ~@125 f2@3 ~@40]/7", // A5 B5 C#5 C5 A#5 F5 C#5
  U: "[~@2 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@19]/8", // A5 B5 C#5 A5 B5 C#5 A5 B5 …
  V: "[~@2 [a2,e3,a3]@21 [b2,f#3,b3]@6 [c#3,g#3,c#4]@21 [a2,e3,a3]@21 [b2,f#3,b3]@6 a2@2 a2 a2@2 ~ d3@2 d3 d3@2 d3@2 g#2 g#2@2 g#2 g#2@2, ~@41 a2 ~@6]/4", // A5 B5 C#5 A5 B5
  W: "[c#3 c#3@2 c#3 c#3@2 g2@2 g2 g2@2 ~ c3@2 c3 c3@2 c3@2 f#2 f#2@2 f#2 f#2@2 b2 b2@2 b2 b2@2 ~@17, ~@11 g2@2 ~@35]/2",
})).s("gm_distortion_guitar").gain(0.32).pan(0.3)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@40 A B C ~ A D C ~ A E C ~ F@2 G@2 H I@3 ~@4 J@2 K@3 ~ L@3 ~ M@2 N ~@5 O@2 P Q R@2 S@6 T@5 U@4 ~@3 V@6 W@3 ~ X@4 ~@5
  W@3 ~ X@4 W@3 ~@3
>`.pickRestart({
  A: "~@21 a3@2 ~", B: "~@12 g3 ~@5 g3 ~@5", C: "~@6 g3@2 ~@4 g3 ~@5 g3@3 a3@3", D: "~@6 g3 ~@5 g3 ~@5 g3 ~@2 a3 ~@2",
  E: "~@6 g3@2 ~@4 g3@2 ~@4 g3@2 ~ a3@2 ~", F: "[c#4@3 f#4@2 ~@3 f#4@8, ~@15 c#4@32 ~]/2", G: "[[f#3,c#4]@15 ~]/2",
  H: "c#4@19 f#4@5", I: "[c#4@15 f#4@3 c#4@12 f#4@2 c#4@39 ~]/3",
  J: "[[b2,f#3,b3]@8 ~ [c3,g3,c4]@3 ~@3 [a2,e3,a3]@31 ~@2]/2", // B5 C5 A5
  K: "[[b2,f#3,b3]@8 ~ [c3,g3,c4]@3 ~@3 [a2,e3,a3]@55 ~@2]/3", L: "[~@3 a3@12 b3@6 c#5@29 ~@22]/3",
  M: "[~@3 a3@12 b3@6 g#5@26 ~]/2", N: "~ a3!4 c#4@3",
  O: "[[d#4,g#4]@2 ~ [d#4,g#4]@2 ~ [d#4,g#4]@2 ~ g#4@2 [d#4,a4]@3 d#4 [d#4,g#4]@2 ~ [d#4,g#4]@2 ~ [d#4,g#4]@2 ~ g#4@2 [d#4,b4]@3 d#4@2 [d#4,g#4]@2 ~ [d#4,g#4]@2 ~@2 f#4@2 ~ [d#4,a4]@3 d#4@2 [d#4,g#4]@2, ~@8 f#4@2 ~@13 f#4@2 ~@12 [d#4,g#4]@3 g#4@2 ~@6]/2", // G#5 D#dim G#5 G#m G#5 D#dim G#5
  P: "~ [d#4,g#4]@2 ~@2 f#4@2 g#4@17, ~@2 [d#4,g#4] ~@9", Q: "~ g#4@23",
  R: "[~@3 g#4@2 ~ g#3@2 ~ d#4@2 ~ a#4 b4 ~ d#4@2 ~ g#4@2 f#4@2 d#4 d#4@3 g#4@2 d#4@3 ~ d#4@3 g#4@2 d#4@3 ~ d#4@3 [g#4,b4]@2 d#4@2, ~@2 g#3@2 ~ d#4@2 ~ g#4@2 ~ b4@2 ~ g#4@2 ~ f#4@2 ~@12 g#4@2 ~@7 g#4@2 ~@6]/2", // G#m
  S: "[~ [g#4,b4]@2 d#4@3 ~ d#4@3 [g#4,b4]@2 c#4@6 f5@9 b4@3 f5@9 g#5@18 g#5@2 d#5@2 f#5 g#5@2 ~ f#5 ~@2 c#6@9 ~@2 b5 ~@2 b5@2 c#6@9 f5@2 b5@2 g#5@3 f#4@2 ~ d5@2 ~ f#5@2 ~ a4@2 ~ f4@2 ~ c#5@2 d#5@2 ~ c#5@2 ~ f4@2 ~ g4@2 ~ d5@2 ~ c5@2 ~ e4@2 ~ f#4@2 ~ c#5@2 d#5, ~@6 [g#4,b4]@2 ~@56 d#5@2 ~ g#5@2 ~@9 f5@2 ~ g#5@2 ~@19 a4@2 ~ e5@2 ~ d5@2 ~ f#4@2 ~ g#4@2 ~@3 f5@2 ~ g#4@2 ~ e4@2 ~ c5@2 ~ e5@2 ~ g4@2 ~ d#4@2 ~ b4@2 ~@2]/6", // G#m
  T: "[b4@2 f#4@2 ~ c#4@9 f#4@6 ~@9 f#4@24 [f#3,c#4]@45 ~@3 c#4@19, ~@2 d#4 ~@7 c#4@16 ~@34]/5", // F#5
  U: "[f#4@5 c#4@15 f#4@3 c#4@12 f#4@2 c#4@39 ~@20]/4",
  V: "[~@5 [b2,f#3,b3]@8 ~ [c3,g3,c4]@3 ~@3 [a2,e3,a3]@31 ~@2 [b2,f#3,b3]@8 ~ [c3,g3,c4]@3 ~@3 [a2,e3,a3]@55 ~@21]/6", // B5 C5 A5 B5 C5 A5
  W: "[~@8 a3@12 b3@6 c#5@29 ~@17]/3", X: "[~@8 a3@12 b3@6 g#5@26 ~@4 a3@3 a3@3 a3@3 a3@3 c#4@9 ~@19]/4",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.6)

// other · electric guitar muted
const electric_guitar_muted = note("<~@40 A ~ B ~ A ~ B ~ A ~ B ~@88>".pickRestart({
  A: "~@6 g3 ~@5 g3 ~@5 g3@3 a3@3", B: "~@6 g3@2 ~@4 g3@2 ~@4 g3@3 a3@3",
})).s("gm_electric_guitar_muted").gain(0.32).pan(0.7)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A B C D A B C D A B C D A B C D A B C D ~@12 A B C D A B C D A B C D A B C D A B C D ~@87
>`.pickRestart({
  A: "a2@11 ~", B: "a2@23 ~", C: "a2", D: "d3@2 c3 b2",
})).s("gm_acoustic_guitar_steel").gain(0.29).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ C@8 D@2 E ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ A B@2 ~ C@8 D@2 E ~@3 F G ~@26 H@8
  I@2 J ~@4 K ~@29
>`.pickRestart({
  A: "d3 ~@3", B: "[d3@2 ~@5 a2@4 ~@5, ~@7 d3@3 ~@6]/2", C: "~@5 f#3 ~@2", D: "~@5 g3 ~@2", E: "~@5 f3 ~@2",
  F: "~@7 [a2,a3]", G: "~ [a2,a3] ~@3 e3 ~@2", H: "~@20 f#3@3 ~", I: "~@20 g3@3 ~", J: "~@20 f3@3 ~",
  K: "~@2 [a2,a3]@3 ~@3 [a2,a3]@3 ~@9 e3@3 ~", // A
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  A B@3 A B@3 A B@3 A B@3 A B@3 C@8 D@2 E F A B@3 A B@3 A B@3 A B@3 A B@3 C@8 D@2 E F G@2 H I J K@8 L@2 M N ~@13 O@8 P@4
  Q@3 R@2 S@8 T@5 U@8 V@5 ~@2
>`.pickRestart({
  A: "[g3,c4]@2 [g3,c4,e4] [g3,c4]!3 [g3,c4,e4] [g3,c4], e4 ~@2 e4@2 ~@3", // C5 C C5 C C5
  B: "[[g3,c4]@2 [g3,c4]!3 [g3,c4,e4] [g3,c4] [g3,c4]@3 [g3,c4]!3 [g3,c4,e4]!2 [a3,d4]@3 [a3,d4] [a3,d4,f#4]@5, e4@3 e4@2 ~@2 e4@4 e4@2 ~@2 f#4@4 ~@5]/3", // C5 C C5 C D5 D
  C: "[b3,c#4]@2 [b3,c#4,f#4] [b3,c#4]!3 [b3,c#4,f#4] [b3,c#4], f#4 ~@2 f#4@2 ~@3", // Bsus2
  D: "[c4,d4]@2 [c4,d4,g4] [c4,d4]!3 [c4,d4,g4] [c4,d4], g4 ~@2 g4@2 ~@3", // Csus2
  E: "[a#3,c4]@2 [a#3,c4,f4] [a#3,c4]!3 [a#3,c4,f4] [a#3,c4], f4 ~@2 f4@2 ~@3", F: "[a#3,c4,f4] ~@3",
  G: "[[b2,f#3,b3,d#4]@3 [b2,f#3,b3,d#4]@4 ~@2 [c3,g3,c4,e4]@3 ~@3 [a2,e3,a3,c#4]@32 ~]/2", // B C A
  H: "[b2,f#3,b3,d#4]@6 ~@3 [c3,g3,c4,e4]@3 ~@3 [a2,e3,a3,c#4]@5 ~@4", I: "~@2 [a2,e3]!3 a2 [a2,e3]!2", J: "[a2,e3]!8",
  K: "[[c#4,e4,g#4]!3 [c#4,e4,g#4]@2 [c#4,e4,g#4]!2 [c#4,e4,a4]@2 [c#4,e4,a4]!2 e4!2 [c#4,e4,a4] [d#4,f#4,b4]!2, ~@11 [c#4,a4]@2 ~@3]/2", // C#m A B F#m
  L: "[[c#4,e4,g#4]!3 [c#4,e4,g#4]@2 [c#4,e4,g#4]!2 [c4,e4,g4]@2 [c4,e4,g4]!2 [c4,e4,g4]@2 [c4,g4] [c4,e4,g4]@2]/2", // C#m C C5 C
  M: "[a#3,d4,f4]@23 ~", N: "[f3,c4,f4]@23 ~",
  O: "[~@5 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@6 [b3,c#4,f#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4]@3 [b3,c#4,f#4], ~@5 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@9 f#4@3 ~@6 f#4@6 ~@4]/8", // Bsus2
  P: "[~@2 [b3,c#4]@3 [c4,d4]@6 [c4,d4,g4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4,g4]@3 [c4,d4]@3 [c4,d4]@6 [c4,d4,g4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4]@3 [c4,d4,g4]@3 [c4,d4]@3 [a#3,c4]@6 [a#3,c4,f4]@3 [a#3,c4]@3 [a#3,c4]@3 [a#3,c4]@3 [a#3,c4,f4]@3 [a#3,c4]@3 [a#3,c4,f4]@6 ~@13, ~@5 g4@3 ~@6 g4@6 ~@9 g4@3 ~@6 g4@6 ~@9 f4@3 ~@6 f4@6 ~@28]/4", // Bsus2 Csus2 A#sus2
  Q: "[~@5 [b2,f#3,b3,d#4]@3 [b2,f#3,b3,d#4]@4 ~@2 [c3,g3,c4,e4]@3 ~@3 [a2,e3,a3,c#4]@32 ~ [b2,f#3,b3,d#4]@6 ~@3 [c3,g3,c4,e4]@3 ~@3 [a2,e3,a3,c#4]@4]/3", // B C A B C A
  R: "[~@11 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 a2@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]@3 [a2,e3]]/2", // A5
  S: "[~@2 [a2,e3]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4], ~@19 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@2]/8", // A5 C#m A B C#m A B C#m …
  T: "[~@2 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c4,e4,g4]@6 [c4,e4,g4]@3 [c4,e4,g4]@3 [c4,e4,g4]@6 [c4,g4]@3 [c4,e4,g4]@6 [a#3,d4,f4]@23 ~ [f3,c4,f4]@23 ~@20]/5", // B C#m C C5 C A# F5
  U: "[~@5 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4], ~@19 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@2]/8", // C#m A B C#m A B C#m A …
  V: "[~@2 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,g#4]@6 [c#4,e4,g#4]@3 [c#4,e4,g#4]@3 [c#4,e4,a4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3 e4@3 e4@3 [c#4,e4,a4]@3 [d#4,f#4,b4]@3 [d#4,f#4,b4]@3 ~@19, ~@19 [c#4,a4]@3 ~@21 [c#4,a4]@3 ~@14]/5", // B C#m A B C#m A B F#m
})).s("gm_acoustic_guitar_steel").gain(0.27).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A C D@3 B E F@8 A G A@2 H I J K L M N O P Q R S T U V W V W V W V W V W X Y@3 Z AA AB AC@7 AD AE W@2 AF AC@12 AG
  AH AI
>`.pickRestart({
  A: "x ~@2 x ~@3 x", B: "x ~@2 x ~ x!3", C: "x", D: "x ~@2 x ~ x ~@2", E: "x!8", F: "x!2 ~ x ~ x ~@2",
  G: "~ x!3 ~@3 x", H: "~@2 x!2 ~ x ~@2", I: "x ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2 x ~@2",
  J: "x ~ x ~@4 x ~@2 x ~@2 x ~@2 x!2 ~@4 x ~", K: "~ x ~@2 x ~@2 x!2 ~@3 x!2 ~@2 x ~@2 x ~@2 x ~",
  L: "x ~@3 x ~@2 x ~@2 x ~@2 x ~ x ~@4 x ~@2 x", M: "~@2 x ~@2 x!2 ~@4 x ~@2 x ~@2 x ~@2 x ~ x ~",
  N: "~ x!2 ~@2 x ~@2 x ~@2 x ~ x ~@3 x ~@2 x ~@2 x", O: "~@3 x!2 ~@4 x ~@2 x ~@2 x ~@2 x!2 ~@4",
  P: "x ~@2 x ~@2 x ~@2 x ~ x ~@2 x!2 ~@2 x ~@2 x ~@2", Q: "x ~ x ~@3 x ~@2 x ~@3 x ~@2 x!2 ~@4 x ~",
  R: "~ x ~@2 x ~@2 x!2 ~@4 x ~@2 x ~@2 x ~@2 x ~", S: "x ~@3 x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~ x",
  T: "x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x", U: "x ~ x ~ x!2 ~@8 x ~@9", V: "~@2 x ~@2 x ~@8 x ~@5 x ~@2 x",
  W: "~@2 x ~@2 x ~@8 x ~@9", X: "~@2 x ~@2 x ~@18", Y: "~@5 x ~@8 x ~@5 x ~@3", Z: "~@5 x ~@8 x ~@5 x ~@2 x",
  AA: "~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", AB: "~@2 x ~@2 x ~@2 x ~@5 x ~@5 x ~@3",
  AC: "~@5 x ~@2 x ~@5 x ~@5 x ~@3", AD: "~@5 x ~@8 x ~@9", AE: "~@2 x ~@5 x ~@2 x ~@2 x ~@9",
  AF: "~@2 x ~@8 x ~@2 x ~@5 x ~@3", AG: "~@5 x ~ x!2 ~ x!2 ~ x!2 ~ x ~ x!2 ~ x!2 ~",
  AH: "x!2 ~ x!2 ~ x ~ x!2 ~ x!2 ~ x!2 ~ x ~ x!2 ~ x!2", AI: "~ x!2 ~ x!2 ~@18",
})).gain(0.52)

// drums · rim
const rim = s("rim").struct("<A@31 B A@7 C ~@13 D A@2 ~ D A@2 ~ D A ~@76>".pickRestart({
  A: "x ~@2 x ~@3 x", B: "x", C: "x ~@2 x ~@4", D: "~@3 x ~@4",
})).gain(0.3)

// drums · clap
const clap = s("cp").struct("<A@31 ~ A@21 ~@3 A ~@3 A ~@33 B ~@3 B ~@3 B ~@36>".pickRestart({
  A: "~@3 x", B: "~@23 x",
})).gain(0.52)

// drums · snare
const snare = s("sd").struct(`<
  ~@39 A ~ A ~@3 A ~@3 A ~@3 A ~ A ~ A ~ A ~ A ~ B C@4 D C@7 E F@4 G H I J K L M N O I P Q ~ R@11 S T R@3 U V R@6 W X
  Y@3 Z AA R@6 Z AA R AB W ~@2 AC
>`.pickRestart({
  A: "~@3 x", B: "x ~@4 x!3", C: "~ x ~ x", D: "~@6 x!2", E: "~@6 x ~@11 x ~@2 x ~ x", F: "~ x",
  G: "x ~@5 x ~@5 x ~@5 x ~@2 x ~ x", H: "~@2 x ~@4 x", I: "~@13 x ~@10", J: "~@4 x!2 ~@3 x ~@9 x ~@4", K: "~@5 x ~@6",
  L: "~@2 x ~@14 x!2 ~@3 x ~", M: "~ x ~", N: "x ~@4 x ~@2", O: "~@6 x!2 ~@3 x ~@9 x ~@2", P: "~@4 x ~@14 x ~@2 x ~",
  Q: "x!2 ~ x ~@20", R: "~@11 x ~@11 x", S: "~@5 x ~@14 x ~@2 x", T: "~@2 x ~@8 x ~@11 x",
  U: "~@5 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x", V: "~ x!2 ~ x ~@6 x ~@11 x", W: "~@11 x ~@4 x ~@2 x ~@3 x",
  X: "~@2 x ~ x ~@12 x ~@6", Y: "~@17 x ~@6", Z: "~@5 x ~@5 x ~@5 x ~@5 x", AA: "~@2 x ~ x ~@6 x ~@11 x",
  AB: "~@11 x ~@4 x ~@6 x", AC: "~ x!2 ~ x!2 ~@18",
})).gain(0.66)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@65 A ~ A ~@16 B ~ C ~@2 D ~ E ~@15 F ~ F ~@29>".pickRestart({
  A: "~@4 x!2 ~@18", B: "~@6 x!3 ~@15", C: "~@19 x!3 ~@2", D: "~@8 x!3 ~@13", E: "~@7 x", F: "~@9 x!2 ~@13",
// … 113 more lines

More by Rossi Vasco