Strudelify

Una dose di te

Nek

KeyD majorTempo92 bpm
0:00/0:00
// Una dose di te — Nek
// 92 bpm, 4/4, key D 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 87 bars on a 32-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 30.
setcpm(92/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(`<
  ~@2 A ~ B@8 C@8 D@8 E@7 F G F G F G F H I J I K L M N O@2 P@4 Q R S T F G F G F G F G F G F G F G F G Q R S U@8
>`.pickRestart({
  A: "~@11 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1@2",
  B: "[~@11 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~@2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~ d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~ d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ b1@2 ~@2 b1@3 ~ b1@3 ~ b1@2 ~@2 b1@2 ~@2 b1@3 ~ b1@3 ~ b1@3 ~ c2, ~@15 d1 ~@112]/8",
  C: "[~@3 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ b1@2 ~@2 b1@3 ~ b1@3 ~ b1@2 ~@2 b1@2 ~@2 b1@3 ~ b1@3 ~ b1@3 ~ c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~ d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@3 ~ c2]/8",
  D: "[~@2 d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~ d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1 d2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ c2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~ c2 d2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ c2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 c3@5 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@3 ~ c2]/8",
  E: "[~@3 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ b1@2 ~@2 b1@3 ~ b1@3 ~ b1@2 ~@2 b1@2 ~@2 b1@3 ~ b1@3 ~ b1@3 ~ c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@3 ~ c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~ b1@2 ~@2 b1@3 ~ b1@3 ~ b1@2 ~@2 b1@2 ~@2 b1@3 ~ b1@3 ~ b1@3 ~ c2@2 ~ c2@2 ~ c2@2 c3@2 ~ g2@2 ~ e2@2 ~ c2@11 ~@5]/7",
  F: "c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@2 ~ d2 c2@2 ~ d2 d2@3 ~ d2@3 ~ d2@3 ~",
  G: "c2@2 ~ d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ b1@5 g1@2 ~ d1",
  H: "c2@2 ~ d2 d2@3 ~ d2@2 ~ d2 a1@2 ~ b1 c2@6 ~ a1@9",
  I: "g1@2 ~@2 g1@3 ~ g1@3 g2 g1@2 ~@2 a1@2 ~@2 a1@3 ~ a1@3 ~ a1@2 ~ e1", J: "d1@31 ~", K: "d1@25 ~@2 d1 a1@3 ~",
  L: "c2@24 ~@3 d1 a1@3 ~", M: "b1@31 ~", N: "a#1@31 ~", O: "a1@7 ~ a1@7 ~ a1@7 ~ a1@7 ~", P: "[d1@63 ~]/2",
  Q: "d2@2 ~@2 d2@3 ~ d2@3 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~ d2@3 ~ d2@3 ~",
  R: "c2@2 ~@2 c2@3 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~",
  S: "b1@2 ~@2 b1@3 ~ b1@3 ~ b1@2 ~@2 b1@2 ~@2 b1@3 ~ b1@3 ~ b1@3 ~",
  T: "a1@2 ~@2 a1@3 ~ a1@3 ~ a1@2 ~@2 a1@2 ~@2 a1@3 ~ a1@3 ~ a1@3 ~",
  U: "[c2@2 ~@2 c2@3 ~ c2@3 ~@2 c2@2 ~@2 c2@2 ~ c2@2 c2@2 ~ c2@2 ~ a1@2 ~ f1@2 d1@200 ~@23]/8",
})).s("gm_fretless_bass").gain(0.72)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A@2 B@4 C@3 ~@7 A@2 B@4 D@5 ~@2 E@2 ~@3 F@2 G@4 H@2 ~ I ~ J K ~@12 F@2 G@12 L@2 M@3 N@6 ~@2
>`.pickRestart({
  A: "[~@15 c5@16 ~, ~@13 a4@18 ~]/2", B: "[~@30 c5@17 d4@32 ~@15 c5@32 ~@2, ~@26 a4@21 ~@43 a4@36 ~@2]/4",
  C: "[~@30 c5@17 d4@32 ~@17, ~@26 a4@21 ~@49]/3", D: "[~@19 d4@20 ~@12 d4@20 ~@12 d4@20 ~@12 d4@20 ~@25]/5",
  E: "[~@18 e4@2 ~@3 f#4@2 ~@2 f#4@12 ~@25]/2", F: "[~@31 c5@32 ~, ~@27 a4@36 ~]/2",
  G: "[~@31 c5@17 d4@32 ~@15 c5@32 ~, ~@27 a4@21 ~@43 a4@36 ~]/4", H: "[~@31 c5@17 ~@16, ~@27 a4@21 ~@16]/2",
  I: "~@5 f#4@3", J: "~@5 [a4,c5]@3", K: "~@23 f#4@5 d4@2 ~ d4, ~@19 a3@8 ~@5",
  L: "[~@31 c5@17 d4@16, ~@27 a4@21 ~@16]/2",
  M: "[[d4,f#4]@3 ~ [c4,e4]@2 ~@2 f#4@2 ~@2 [c4,e4]@2 ~@2 [d4,f#4]@2 ~@2 [c4,e4]@2 ~ [d4,f#4]@5 ~@3 [d4,f#4]@2 ~@3 [c4,e4]@2 ~@2 [d4,f#4]@2 ~@2 [c4,e4]@2 ~@2 [d4,f#4]@2 ~@2 [c4,e4]@2 ~ [d4,f#4]@5 ~@3 [d4,f#4]@2 ~@3 [b3,e4]@2 ~@2 [d4,f#4]@2 ~@2 [b3,e4]@2 ~@2 [d4,f#4]@2 ~@2 [b3,e4]@2 ~ [d4,f#4]@5 ~@3 [d4,f#4], ~ d4 ~@10]/3", // D C D C D C D C …
  N: "[~@4 [c4,e4]@2 ~@2 [d4,f#4]@2 ~@3 [c4,e4]@2 ~@2 [d4,f#4]@2 ~ f#4@2 [d4,f#4]@2 ~ [d4,f#4]@2 ~ [d4,f#4]@2 ~ [d4,f#4]@2 ~@62 a3@4 ~ [a3,d4,f#4]@80 ~@12, ~@19 d4@2 ~@12 f#4@7 a3@7 d4@6 f#4@7 a3@7 d4@7 f#4@10 ~@2 f#4@11 ~@95, ~@37 d4@6 f#4@7 a3@7 d4@7 f#4@7 a3@10 ~ a3@11 ~@99, ~@78 d4@10 ~@3 d4@9 ~@92]/6", // C D C D
})).s("gm_acoustic_guitar_steel").gain(0.48).pan(0.6)

// chords · acoustic guitar steel · soft notes · D
const acoustic_guitar_steel_2 = note(`<
  ~@47
  [~@27 b3 ~@4]
  ~@28
  [~@3 d4@5 ~@24, ~@3 f#4 ~@28]
  [~@3 [d4,f#4] ~@28]!3
  ~@7
>`).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.6)

// chords · acoustic guitar steel
const acoustic_guitar_steel_3 = note(`<
  A B C B C B C B C D E F G D E H@2 B C B C B C I J@2 K D E F G D E L@2 M@8 N O N O P Q R S T U V U V W X Y Z AA@16 AB@6
  ~@5
>`.pickRestart({
  A: "~@30 [a3,d4] [d3,a3,d4]", // D5
  B: "~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2", // Dsus4 D Dsus4 D D7 D
  C: "~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2, ~@5 [a3,d4,f#4] ~@10", // Dsus4 C G D
  D: "~@22 [d3,a3,d4]@2 ~@2 [d3,a3,d4]@2 ~@2 [c3,g3,d4]!2", // D5 Csus2
  E: "~@2 [c3,g3,d4]@2 ~@18 [c3,g3,d4]@2 ~@2 [c3,g3,d4]!2 ~@2 [b2,g3,d4]!2", // Csus2 G
  F: "~ [b2,g3,d4] ~@9 [b2,g3,d4] ~ [b2,g3,d4] ~ [c3,g3,d4]", // G Csus2
  G: "~@2 [c3,g3,d4]@2 ~@18 [c3,g3,d4]@2 ~@2 [c3,g3,d4]!2 ~@2 [c3,g3,d4] [d3,a3,d4]", // Csus2 D5
  H: "[~@14 [b2,g3,d4]@2 ~@2 [b2,g3,d4]@2 ~@2 [b2,g3,d4]!2 ~@2 [b2,g3,d4]@2 ~@2 [c3,g3,d4] [c3,g3,d4]@3 ~ [c3,g3,d4]@3 ~ [c3,g3,d4]@2 ~ [c3,g3,d4]@2 ~@2 [c3,g3,d4] [c3,g3,d4]@2 ~@13 [c3,g3,d4] ~]/2", // G Csus2
  I: "~@2 [a3,d4,f#4] [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~ [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] [g3,c4,e4]@2 ~ [a3,d4,f#4]@2", // D C D C D C D C …
  J: "[~@2 [a3,d4,f#4] [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~ [a3,d4,f#4]@2 ~@6 [g3,c4,e4] [a3,d4,f#4]@2 ~ [a3,d4,f#4] [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~ [a3,d4,f#4]@2 ~@2 [a3,d4,f#4] [g3,c4,e4]@2 ~ [a3,d4,f#4]@2]/2", // D C D C D C D C …
  K: "~@2 [a3,d4,f#4] [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~ [a3,d4,f#4]@2 ~@6 [g3,c4,e4] ~", // D C D C D C D C
  L: "[~@14 [b2,g3,d4]@2 ~@2 [b2,g3,d4]@2 ~@2 [b2,g3,d4]!2 ~@2 [b2,g3,d4]@2 ~@2 [c3,g3,d4] [c3,g3,d4,f#4]@2 ~ [c3,g3,d4,f#4]@2 ~ [c3,g3,d4,f#4]@2 ~ [g3,d4,f#4]@2 [c3,g3,d4,f#4]@2 ~ [c3,g3,d4,f#4]@2 ~ [c3,g3,d4,f#4]@3 ~@13, ~@39 c3@2 ~@23]/2", // G Csus2 Gmaj7 Csus2
  M: "[~@4 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [a3,c#4,e4]@5 [a3,c#4,e4]@2 ~ [a3,c#4,e4], ~@43 [a3,d4,f#4]@2 ~@62 [a3,d4,f#4]@2 ~@62 [a3,d4,f#4]@2 ~@62 [a3,d4,f#4]@2 ~@19]/8", // Dsus4 D Dsus4 D D7 D Dsus4 C …
  N: "~@2 [g2,d3,g3] ~@3 [g2,d3,g3,b3] ~@3 [a2,e3,a3] ~@3 [a2,e3,a3] ~", // G5 G A5
  O: "~@3 [a3,d4,f#4] [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [g3,c4,e4]@3 [a3,d4,f#4]@4 ~ [a3,d4,f#4]@4", // D C D C D C D
  P: "[c3,g3]@2 ~@2 [c3,g3,c4]@2 ~@2 [c3,g3]@2 ~@2 [c3,g3,c4]@2 ~@2 [c3,g3]@2 ~@2 [c3,g3,c4]@2 ~@2 [c3,g3]@2 ~ [c3,g3,c4,e4] [c3,g3,c4,e4]@2 ~ [c3,g3,c4,e4]", // C5 C
  Q: "~@4 [b2,g3,b3]@2 ~@2 g3@2 ~@2 [b2,g3,b3]@2 ~@2 g3@2 ~@2 [b2,g3,b3]@2 ~@2 [b2,g3]@2 ~ [b2,g3,b3,d4] [b2,g3,b3,d4]@2 ~ [b2,g3,b3,d4]", // Em G
  R: "~@4 [a#2,g3,a#3]@2 ~@2 g3@2 ~@2 [a#2,g3,a#3]@2 ~@2 g3@2 ~@2 [a#2,g3,a#3]@2 ~@2 [a#2,g3]@2 ~ [a#2,g3,a#3,d4] [a#2,g3,a#3,d4]@2 ~ [a#2,g3,a#3,d4]", // D# Gm
  S: "[a2,f#3,a3,d4]@3 ~ [a2,e3,a3,c#4]@3 ~ [a2,f#3,a3,d4]@3 ~ [a2,e3,a3,c#4]@3 ~", // D A D A
  T: "[a2,f#3,a3,d4]@6 ~@2 [a2,e3,a3,c#4]@6 ~@2 [a2,f#3,a3,d4]@6 ~@2 [a2,e3,a3,c#4]@6 ~ [d3,a3,d4,f#4]", // D A D A D
  U: "[d3,a3,d4,f#4]@4 [d3,a3,d4,g4]@2 ~@2 [d3,a3,d4,g4]@2 ~ [d3,a3,d4,f#4]@21", V: "~@31 [d3,a3,d4,f#4]",
  W: "~@4 [d3,a3,d4,g4]@2 ~@2 [d3,a3,d4,g4]@2 ~ [d3,a3,d4,f#4] ~@4 [d3,a3,d4,g4]@2 ~@2 [d3,a3,d4,g4]@2 ~ [d3,a3,d4,f#4] ~@3 [d3,a3,d4,f#4] ~@4", // Dsus4 D Dsus4 D
  X: "~@4 [c3,g3,d4,g4]@2 ~@2 [c3,g3,d4,g4]@2 ~ [c3,g3,d4,f#4] ~@4 [c3,g3,d4,g4]@2 ~@2 [c3,g3,d4,g4]@2 ~ [c3,g3,d4,f#4] ~@3 [c3,g3,d4,f#4] ~@4", // Csus2
  Y: "~@4 [b2,g3,d4,g4]@2 ~@2 [b2,g3,d4,g4]@2 ~ [b2,g3,d4,f#4] ~@4 [b2,g3,d4,g4]@2 ~@2 [b2,g3,d4,g4]@2 ~ [b2,g3,d4,f#4] ~@3 [b2,g3,d4,f#4] ~@4", // G Gmaj7 G Gmaj7
  Z: "~@4 [a2,a3,d4,g4]@2 ~@2 [a2,a3,d4,g4]@2 ~ [a2,a3,d4,f#4] ~@4 [a2,a3,d4,g4]@2 ~@2 [a2,a3,d4,g4]@2 ~ [a2,a3,d4,f#4] ~@3 [a2,a3,d4,f#4] ~@4", // Dsus4 D Dsus4 D
  AA: "[~@4 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~ [a3,d4,f#4]@2 ~@3 [c3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~@3 [a3,d4,g4]@2 ~@2 [a3,d4,g4]@2 ~@2 a2@2 ~ b2 [c3,g3,c4,e4]@6 ~ [g3,b3,d4]@5 [g3,b3,d4]@2 ~ [a3,d4,f#4], ~@43 [a3,d4,f#4]@2 ~@62 [a3,d4,f#4]@2 ~@62 [a3,d4,f#4]@2 ~@62 [a3,d4,f#4]@2 ~@19]/8", // Dsus4 D Dsus4 D D7 D Dsus4 C …
  AB: "[[a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~ [g3,d4,f#4]@4 [g3,d4,f#4] [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~ [a3,d4,f#4]@4 [a3,d4,f#4] [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~@2 [a3,d4,f#4]@2 ~ [g3,d4,f#4]@4 [g3,d4,f#4] [g3,d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~@3 [d4,f#4]@2 ~@2 [g3,d4,f#4]@2 ~ [d4,f#4]@2 [g3,d4,f#4]@2 ~ [g3,d4,f#4]@2 ~ [g3,d4,f#4]@2 ~ [g3,d4,f#4]@2 ~ f#4@41 ~@21, ~@108 g3@2 ~@5 g3@2 ~@12 [a3,d4]@41 ~@22]/6", // D Gmaj7 D Gmaj7 D Gmaj7 D Gmaj7 …
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.3)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_4 = note(`<
  ~ A B A B A B A B ~@8 A B A B A B ~@12 C D C D C D C E F G F G ~ H I ~@6 J K L M C D C D C D C D C D C D C D C D ~@11
>`.pickRestart({
  A: "~@2 d3@5 ~@7 d3@5 ~@7 d3 ~@5", B: "~@2 d3@5 ~@15 g2@8 ~@2", C: "~@3 d3@5 ~@7 d3@5 ~@7 d3 ~@4",
  D: "~@3 d3@5 ~@15 g2@8 ~", E: "~@3 d3@5 ~@15 a2@8 ~",
  F: "[g2,d3]@2 ~@6 [g2,d3]@2 ~ [g2,d3,g3,b3] ~@3 [g2,d3,g3,b3] [a2,e3,a3,c#4]@2 ~@6 [a2,e3]@2 ~@6", // G5 G A A5
  G: "~@27 [a3,d4,f#4] ~@4", H: "[b2,g3,b3,d4] ~@3 b2 ~@3 b2 ~@7", I: "[a#2,g3,a#3,d4] ~@3 a#2 ~@3 a#2 ~@7",
  J: "~@3 [d3,a3,d4,f#4] ~@11 [d3,a3,d4,f#4] ~@16", K: "~@3 [c3,g3,d4,f#4] ~@11 [c3,g3,d4,f#4] ~@16",
  L: "~@3 [b2,g3,d4,f#4] ~@11 [b2,g3,d4,f#4] ~@16", M: "~@3 [a2,a3,d4,f#4] ~@11 [a2,a3,d4,f#4] ~@16",
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.3)

// chords · percussive organ
const percussive_organ = note(`<
  ~@4 A@4 B@5 C@7 D@2 E@8 F@5 G@2 H@4 I@2 ~@4 J K L M N ~@4 O@4 H@16 P@4 Q@7
>`.pickRestart({
  A: "[~@31 [d4,f#4,a4]@47 ~ [e4,g4,c5]@6 ~ [d4,g4,b4]@9 [d4,f#4,a4]@33]/4", // D C G D
  B: "[~@15 [e4,g4,c5]@6 ~ [d4,g4,b4]@9 [a4,d5]@32 [g4,c5]@32 [g4,b4]@32 ~@16 e5@16 [a4,d5], ~@127 [g4,c5]@32 ~]/5", // C G D5 C5 G D5 C5
  C: "[~@15 f#5@16 [g4,c5,e5]@32 [g4,b4,d5]@32 [g4,c5,e5]@32 [d4,f#4,a4]@47 ~ [e4,g4,c5]@6 ~ [d4,g4,b4]@9 [d4,f#4,a4]@33]/7", // C G C D C G D
  D: "[~@15 [e4,g4,c5]@6 ~ [d4,g4,b4]@9 [d4,f#4,a4]@33]/2", // C G D
  E: "[~@15 [e4,g4,c5]@6 ~ [d4,g4,b4]@9 [d5,f#5,a5]@32 [d5,g5,c6]@32 [d5,f#5,a5]@32 [d5,g5,c6]@32 [a4,d5]@32 [g4,c5]@32 [g4,b4]@32 [g4,c5]]/8", // C G D Csus2 D Csus2 D5 C5 …
  F: "[~@15 e5@16 ~@16 f#5@16 [g4,c5,e5]@32 [g4,b4,d5]@32 [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~ [g4,c5,e5]@2 [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~ [g4,c5,e5]@2 ~@2 c4 [a3,b3] [g3,a3,b3] [e3,f3] [c3,d3] [b2,d3] a2 g2 f2 [d2,e2] c2 b1 a1 [g1,a1] f1, ~@31 [a4,d5]@32 ~@81 [g4,c5,e5]@3 ~@13]/5", // C G C Asus2 G Fmaj7 Csus2 Bm …
  G: "[[d4,f#4,a4]@47 ~ [e4,g4,c5]@6 ~ [d4,g4,b4]@9, e1 ~@63]/2", H: "[[d4,f#4,a4]@47 ~ [e4,g4,c5]@6 ~ [d4,g4,b4]@9]/2",
  I: "[[d4,f#4,a4]@47 ~ [e4,g4,c5]@6 ~ [e4,a4,c#5]@9]/2", J: "[g5,c6]", K: "[g5,b5]", L: "[f5,a#5]", M: "[e5,a5,c#6]",
  N: "[a5,c#6,e6]", O: "[~@16 f#6@8 a6@7 ~ [c5,c6]@32 b4@32 a4@32, a5 [a5,d6], d5 a6@3]/4",
  P: "[d5 [c5,c6] b4 c5, a5, ~ d6]/4", Q: "[~ [d5,e5,a5]@200 ~@23]/7",
})).s("gm_percussive_organ").gain(0.3).pan(0.7)

// chords · distortion guitar
const distortion_guitar = note("<~@16 A ~@13 B@2 ~@10 C ~@5 D E F@2 ~@2 G@2 H I J K ~@16 L M N O ~@2 P@5>".pickRestart({
  A: "~@19 [c3,g3,d4]@3 ~ [c3,g3,d4]@2 ~ [c3,g3,d4]@5 ~", B: "[~@23 [c3,g3,d4]@2 ~@6 [c3,g3]@2 ~@31]/2",
  C: "~@31 [g2,d3]", D: "~@19 g3 d4@2 ~ [b3,d4]@5 ~@3 a#3", E: "~@19 g3 d4@2 ~ [a#3,d4]@5 ~@3 a3", F: "e3 ~ e3 ~",
  G: "[~@31 [a4,c5]@4 [a4,c5]!2 ~@3 [a4,c5] ~@3 [a4,c5] ~@3 [g4,b4] ~@6 [f#4,a4]@8 ~]/2", // Am G F#m
  H: "~@12 [d3,a3] ~@7 [c3,c4]@2 ~@10", I: "~@3 a3 ~@4 a3 ~@3 [c3,a3] ~@3 a3 ~@3 a#2@2 ~ a3@8 ~",
  J: "~@3 a3 ~@4 a3 ~@3 [a2,g3,c4]@2 ~@2 a3@2 ~@2 [a2,c4]@2 ~ a3@8 ~", // Am7 Am
  K: "[a2,a3,e4] e4!2 [a2,a3,e4] e4!2 [a2,a3,e4]!2", // A5
  L: "~@3 [d4,f#4] [c4,e4]@2 ~@6 [c4,e4]@2 ~@6 [c4,e4]@2 ~ [d4,f#4]@5 ~@4", // D C D
  M: "~@4 [c4,e4]@2 ~@6 [c4,e4]@2 ~@6 [c4,e4]@2 ~ [d4,f#4]@5 ~@4", // C D
  N: "~@4 [b3,e4]@2 ~@6 [b3,e4]@2 ~@6 [b3,e4]@2 ~ [d4,f#4]@5 ~@4", O: "~@4 [c4,e4]@2 ~@7 [c4,e4]@2 ~@17",
  P: "[~@39 e4@98 ~@23, ~@31 d2@107 ~@22, ~@35 a2@103 ~@22, ~@36 d3@2 d4@99 ~@23, ~@37 a3@100 ~@23]/5",
})).s("gm_distortion_guitar").gain(0.32).pan(0.2)

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

// drums · clap
const clap = s("cp").struct("<~@43 [~ x ~ x]!7 ~@37>").gain(0.32)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@4 [~@19 x ~ x ~@3 x ~ x ~ x ~@2] ~@54 [~@4 x!2 ~ x ~@4 x!2 ~ x ~@16] ~@27>")
  .gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@51 A B C B D E@3 F ~@7 G ~@11 H ~@7>".pickRestart({
  A: "~@7 x", B: "~@11 x ~@7 x ~@7 x ~@4", C: "~@3 x ~@7 x ~@15 x ~@4", D: "~@3 x ~@7 x ~@20", E: "~@31 x",
  F: "~@29 x ~ x", G: "~@20 x ~@8 x ~ x", H: "~@15 x!2 ~@3 x ~@7 x ~@2 x",
})).gain(0.48)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct(`<
  ~@52
  [~@5 x ~@7 x ~@7 x ~@7 x ~@2]
  [~@5 x ~@7 x ~@5 x ~@3 x ~@5 x ~@2]
  [~@5 x ~@7 x ~@7 x ~@7 x ~@2]
  [~@5 x ~@7 x ~@18]
  ~@31
>`).gain(0.24)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@9 [~@13 x ~ x]!7 [~@15 x] ~@10 [~@13 x ~ x]!7 ~@9 [~@27 x ~@3 x]!7 ~@37>")
  .gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct("<~@16 A ~@9 B ~@25 C D E F A@3 G ~@7 H ~@19>".pickRestart({
  A: "~@27 x ~@4", B: "~@13 x ~ x", C: "~@7 x ~@7 x!2 ~@6 x ~@7 x", D: "x ~@6 x ~@7 x!3 ~@2 x!2 ~@9 x",
  E: "x ~@6 x ~@7 x!2 ~@6 x ~@7 x", F: "x ~@6 x ~@7 x!2 ~@7 x!2 ~ x!3 ~ x", G: "~@23 x!3 ~ x!2 ~@3",
  H: "~@19 x ~@7 x!2 ~@3",
})).gain(0.48)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5 A B@2 C ~@8 B@3 D B E B F B@2 ~@8 G H@2 I G H G I J ~@12 G@3 ~ G H@2 I G H G ~@20
>`.pickRestart({
  A: "~@15 x ~@7 x ~@7 x", B: "~@7 x ~@7 x ~@7 x ~@7 x", C: "~@7 x ~@7 x ~@15 x", D: "~@7 x ~@7 x ~@16",
// … 32 more lines

More by Nek