Strudelify
Basta uno sguardo cover art

1998 · In due

Basta uno sguardo

Nek

KeyG majorTempo75 bpm
0:00/0:00
// Basta uno sguardo — Nek
// 75 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 58, 4/4 at bar 59, 2/4 at bar 69, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 74 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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(`<
  A B C D E F G H I B G J K B G H I B G J K L M N O P M N E F G H I B G J K L M N O P M N O Q R S T U B C D V W X@2 Y Z
  AA AB AC Z AA AD AE AF C AG@3 AH AI@2
>`.pickRestart({
  A: "~@18 d2@5 ~", B: "d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~",
  C: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~",
  D: "c1@2 ~ c1@2 ~ c1@2 ~ c1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~",
  E: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~", F: "c1@2 ~ c1@2 ~ c1@2 ~ c1@2 ~ c1@2 ~ c1@2 ~ d1@5 ~",
  G: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~",
  H: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 b0 e1@2 b0 e1@2 ~ e1@2 ~ e1@2 ~",
  I: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~",
  J: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~",
  K: "c1@2 ~ c1@2 ~ c1@2 ~ c1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~", L: "d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ c2@6",
  M: "g1@3 g1@3 g1@3 g1@3 g1@3 g1@3 g1@3 g1@2 a1", N: "d1!8", O: "a1@3 a1@3 a1@3 a1@2 e1 a1@3 a1@3 a1@3 a1@3",
  P: "e1!2 e1@2 d1!2 d1@2", Q: "g1!2 g1@2 d1!2 d1@2", R: "g1@3 g1@3 g1@3 g1@3 g1@3 g1@3 g1@3 g1@2 ~", S: "c2!8",
  T: "b1@3 b1@3 b1@3 b1@2 g1 b1@3 b1@3 b1@3 b1@3", U: "c2!4 a1!2 g1 a1", V: "d#1@2 ~ d#1@2 ~ d#1@2 ~ d#1@2 ~ d#1@12",
  W: "~ g1@3", X: "[d1@18 ~@3 a1 ~@2 c2@3 b1@3 a1@3 d1@10 ~@3 f#1@2, ~@23 b1@2 ~@20 e1@2 ~]/2",
  Y: "g1 f#1 e1 a1@2 a1!3", Z: "a1@3 a1@3 a1@3 a1@2 b1 e1@3 e1@3 e1@3 e1@3",
  AA: "e1@3 e1@3 e1@3 e1@3 b1@3 b1@3 b1@3 b1@2 f#1", AB: "b1!4 f#1!2 f#1@2", AC: "e1!2 e1@2 a1!4",
  AD: "c#2@3 b1@3 a1@3 b1@3 e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~",
  AE: "e1@2 ~ e1@2 ~ e1@2 ~ e1@2 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~",
  AF: "f#1@2 ~ f#1@2 ~ f#1@2 ~ f#1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~ d1@2 ~", AG: "a1!8",
  AH: "a1@3 a1@3 a1@3 a1@3 a1@3 a1@3 ~ a1@5", AI: "[~ a1@12 ~@3]/2",
})).s("gm_electric_bass_finger").gain(0.56)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@14 A B@2 C D@2 E@2 F G@2 H F I ~@2 A B@2 C J@2 K@2 F G@2 H F G@2 L ~@11 M@7 N ~ O@2 ~@6
>`.pickRestart({
  A: "~@3 d4@5, ~ d3@7, ~ g3@3", B: "[~@9 e4@14 ~@13 g2@12, ~@3 e3@20 a2@13 ~@12, ~@3 b3@9 [a3,c4]@11 ~, ~@4 e3@3 ~]/2",
  C: "~@2 g4 ~@4 d4, a3@17 ~ a3@6, d3@7 ~@5, ~@3 d4@5 ~ d4@5 ~ d4@5 ~@4, ~ f#4",
  D: "[~@36 d3@11 ~, ~@12 d3@12 e2@23 ~, ~@5 a3@3 ~@8, ~@6 d4@3 ~ g4@6]/2",
  E: "[[g3,e4]@11 ~ [g3,d4]@11 ~ g4@11 ~ f#4@6 [c4,g4]@6, ~@23 a3@18 ~@7, ~@4 d4@3 ~]/2", // C G5 C5
  F: "~ d4@3, g3@23 ~, ~@5 b3@18 ~", G: "[~@9 d4@12 ~@4 e4@23, ~ d3@6 ~ c4@8, ~@6 a3@15 ~@2 a3@21 ~@4]/2",
  H: "~@6 d4@6 ~@6 d4@5 ~, e3@11 ~ d3@11 ~, ~@3 g4@11 ~ g4@9", I: "~@3 d4@4 ~, ~ d3@6 ~, ~@2 a3@5 ~",
  J: "[~@7 d4, ~@12 d3@12 e2@23 ~, ~@15 a3@9 ~@12 d3@11 ~, ~@6 d4@3 ~ e4@4 ~@2]/2",
  K: "[~@6 d4@6 ~@6 d4@5 ~ g4@11 ~ f#4@6 [c4,g4]@6, c3@12 b2@11 a3@18 ~@7, ~@4 d4@3 ~]/2", // C5
  L: "~@6 d4@6 ~@6 d4@5 ~, g3@11 ~ d3@11 ~, ~@3 g4@11 ~ g4@9",
  M: "[~@18 e4@18 ~@9 e4@12 ~@4 f#4@23 ~@6 e4@6 ~@6 e4@5 ~@7 e4@17 ~ a4@12 g#4@11 ~@2 f#4@11, ~@16 a3@20 ~@3 e3@18 ~@3 d4@24 ~@3 a4@11 ~ a4@9 ~@5 c#4@17 ~ b3@24 b3@13, ~@17 c#4@18 ~@7 b3@15 ~@2 b3@21 ~@4 f#3@11 ~ e3@11 ~ a3@23 ~ e4@23 ~ d4@12]/7",
  N: "b3 ~@2 b3@3 a3@3 b3@12 ~@3, e4@19 ~@5, c#4 ~@3", O: "[~ e4, ~@23 [g#3,b3]@25]/2",
})).s("gm_electric_guitar_clean").gain(0.56)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@2 B C D E@2 ~@2 F@2 G@3 H B I J H K L M N O P Q N O D R S B I J H K L M N O P Q N O P T D U V W@2 B C X@3 ~ Y Z@2 AA
  AB AC@2 AD@3 AE AF AG AF AH@3
>`.pickRestart({
  A: "[~@33 d3@2 ~ d3@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], ~@23 a3@6 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@23 d3@4 d3@5 ~@7 d3@5 ~@4, ~@4 [d4,f#4] ~@3]/2", // D
  B: "~@9 e2@2 ~ e2@2 ~@4 [g3,b3,e4]@2 ~ e2@2 [g3,b3,e4], [g3,b3,e4]@6 [g3,b3,e4]@5 [g3,b3,e4]@3 [g3,b3,e4]@4 ~@2 [g3,b3,e4]@3 ~, ~@3 e2@5 ~@7 e2@5 ~@4", // Em
  C: "~@9 c3@2 ~ [d3,a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [g3,c4,e4]@6 [g3,c4,e4]@6 ~@2 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 c3@5 ~@7 d3@5 ~@4", // D C D
  D: "~@9 g2@2 ~ g2@2 ~@4 [b3,d4,g4]@2 ~ g2@2 [b3,d4,g4], [b3,d4,g4]@6 [b3,d4,g4]@5 [b3,d4,g4]@3 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@3 ~, ~@3 g2@5 ~@7 g2@5 ~@4", // G
  E: "[~@9 c3@2 ~ c3@2 ~ c3@3 [d3,a3,d4,f#4]@5 ~ [d4,g4]@16 ~@8, [g3,c4,e4]@6 [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@4 ~@5 b3@16 ~@9, ~@3 c3@5 ~@40]/2", // D G5 C
  F: "[~@12 g4@11 ~, ~@11 g2@7 ~@6, ~@23 d3@13 ~@12, ~@6 d4@5 ~, ~@24 b3@13 ~@11]/2",
  G: "[~@6 e4@16 ~@2 [c4,e4]@12 d4@11 ~ [d4,f#4]@6 f#4@3 ~@3 d4@6 d4@6, e2@2 ~@7 d4 f#4@2, ~@3 b3@19 ~ g3@13 ~@11 a3@9 ~ a3@11 ~@4]/3", // C D
  H: "~@9 g2@2 [b3,d4,g4] [d3,a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [b3,d4,g4]@6 [b3,d4,g4]@5 ~@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 g2@5 ~@7 d3@5 ~@4", // G D G D
  I: "~@9 a2@2 [a3,c4,e4] [g2,g3,c4,e4]@2 ~@4 [g3,c4,e4]@2 ~ g2@2 [g3,c4,e4], [a3,c4,e4]@6 [a3,c4,e4]@5 ~@3 [g3,c4,e4]@4 ~@2 [g3,c4,e4]@3 ~, ~@3 a2@5 ~@7 g2@5 ~@4", // Am C Am C
  J: "~@9 d3@2 [a3,d4,g4] [d3,a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [a3,d4,g4]@6 [a3,d4,g4]@5 ~@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 d3@5 ~@7 d3@5 ~@4", // Dsus4 D Dsus4 D
  K: "~@9 e3@2 [g3,b3,e4] [d3,g3,b3,d4]@2 ~@4 [g3,b3,d4]@2 ~ d3@2 [g3,b3,d4], [g3,b3,e4]@6 [g3,b3,e4]@5 ~@3 [g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~, ~@3 e3@5 ~@7 d3@5 ~@4", // Em G Em G
  L: "~@9 c3@2 [g3,c4,e4] [g2,g3,b3,d4]@2 ~@4 [g3,b3,d4]@2 ~ g2@2 [g3,b3,d4], [g3,c4,e4]@6 [g3,c4,e4]@5 ~@3 [g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~, ~@3 c3@5 ~@7 g2@5 ~@4", // C G C G
  M: "~@9 d3@2 [a3,d4,g4] [d3,a3,d4,f#4]@2 ~ d3@3 [c3,c4,d4,g4]@6, [a3,d4,g4]@6 [a3,d4,g4]@5 ~@3 [a3,d4,f#4]@4 ~@6, ~@3 d3@5 ~@16", // Dsus4 D Csus2 Dsus4 D
  N: "~@9 g2@2 [b3,d4,g4] [g2,b3,d4,g4]@2 ~@4 [b3,d4,g4]@2 ~ g2@2 [b3,d4,g4], [b3,d4,g4]@6 [b3,d4,g4]@5 ~@3 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@3 ~, ~@3 g2@5 ~@7 g2@5 ~@4", // G
  O: "~@9 d3@2 ~ d3@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [a3,d4,f#4]@6 [a3,d4,f#4]@5 [a3,d4,f#4]@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 d3@5 ~@7 d3@5 ~@4", // D
  P: "~@9 a2@2 [a3,c4,e4] [a2,a3,c4,e4]@2 ~@4 [a3,c4,e4]@2 ~ a2@2 [a3,c4,e4], [a3,c4,e4]@6 [a3,c4,e4]@5 ~@3 [a3,c4,e4]@4 ~@2 [a3,c4,e4]@3 ~, ~@3 a2@5 ~@7 a2@5 ~@4", // Am
  Q: "~@9 e3@2 [g3,b3,e4] [d3,a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [g3,b3,e4]@6 [g3,b3,e4]@5 ~@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 e3@5 ~@7 d3@5 ~@4", // Em D Em D
  R: "~@9 c3@2 ~ c3@2 ~ c3@3 [d3,a3,d4,f#4]@5 b3, [g3,c4,e4]@6 [g3,c4,e4]@5 [g3,c4,e4]@3 [g3,c4,e4]@4 ~@6, ~@3 c3@5 ~@16", // D C
  S: "~@9 g2@2 d4 [d3,a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [b3,d4,g4]@6 [b3,d4,g4]@5 [b3,g4]@4 d3@5 ~@4, ~@3 g2@5 ~@6 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~", // D G Em D
  T: "~@9 g2@2 [g3,b3,d4] [d3,a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [g3,b3,d4]@6 [g3,b3,d4]@5 ~@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 g2@5 ~@7 d3@5 ~@4", // G D G D
  U: "~@9 c3@2 ~ c3@2 ~@4 [c4,d4,g4]@2 ~ c3@2 [c4,d4,g4], [c4,d4,g4]@6 [c4,d4,g4]@5 [c4,d4,g4]@3 [c4,d4,g4]@4 ~@2 [c4,d4,g4]@3 ~, ~@3 c3@5 ~@7 c3@5 ~@4", // Csus2
  V: "~@9 b2@2 [b3,d4,g4] [b2,b3,d4,g4]@2 ~@4 [b3,d4,g4]@2 ~ b2@2 [b3,d4,g4], [b3,d4,g4]@6 [b3,d4,g4]@5 ~@3 [b3,d4,g4]@4 ~@2 [b3,d4,g4]@3 ~, ~@3 b2@5 ~@7 b2@5 ~@4", // G
  W: "[~@9 c3@2 ~ c3@2 ~@4 [c4,d4,g4]@2 ~ c3@2 [c4,d4,g4] ~@9 d3@2 ~ d3@2 ~@4 [a3,d4,f#4]@2 ~ d3@2 [a3,d4,f#4], [c4,d4,g4]@6 [c4,d4,g4]@5 [c4,d4,g4]@3 [c4,d4,g4]@4 ~@2 [c4,d4,g4]@3 a3@6 ~ [a3,d4,f#4]@5 [a3,d4,f#4]@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@3 ~, ~@3 c3@5 ~@7 c3@5 ~@3 d3@4 d3@5 ~@7 d3@5 ~@4, ~@4 [d4,f#4] ~@3]/2", // Csus2 D Csus2 D
  X: "[~@9 d#3@2 ~ d#3@2 ~@4 [a3,d#4,f#4]@8 ~@4 [b3,d4,g4]@21 ~@21, [a3,d#4,f#4]@6 [a3,d#4,f#4]@5 [a3,d#4,f#4]@3 [a3,d#4,f#4]@4 ~@11 g3@22 ~@21, ~@3 d#3@5 ~@7 d#3@9 ~@48]/3", // D#dim G D#dim
  Y: "~@21 a2@2 [c#4,e4,a4], ~@9 [c#4,e4,a4]@9 [c#4,e4,a4]@5 ~, ~@15 a2@5 ~@4", // A
  Z: "[[a2,c#4,e4,a4]@2 ~@4 [c#4,e4,a4]@2 ~ a2@2 [c#4,e4,a4] ~@9 e3@2 ~ e3@2 ~@4 [b3,e4,g#4]@2 ~ e3@2 [b3,e4,g#4] ~@9 b2@2 [b3,d4,f#4], ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~ [b3,e4,g#4]@6 [b3,e4,g#4]@5 [b3,e4,g#4]@3 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~ [b3,d4,f#4]@6 [b3,d4,f#4]@5 ~, ~@3 a2@5 ~@7 e3@5 ~@7 e3@5 ~@7 b2@5 ~@4]/2", // A E Bm A E Bm
  AA: "[b2,b3,d4,f#4]@2 ~@4 [b3,d4,f#4]@2 ~ b2@2 [b3,d4,f#4] ~@9 f#3@2 [a3,c#4,f#4], ~@2 [b3,d4,f#4]@4 ~@2 [b3,d4,f#4]@3 ~ [a3,c#4,f#4]@6 [a3,c#4,f#4]@5 ~, ~@3 b2@5 ~@7 f#3@5 ~@4", // Bm F#m Bm F#m
  AB: "[e3,b3,e4,g#4]@2 ~@4 [b3,e4,g#4]@2 ~ e3@2 [b3,e4,g#4] ~@9 a2@2 [c#4,e4,a4], ~@2 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~ [c#4,e4,a4]@6 [c#4,e4,a4]@5 ~, ~@3 e3@5 ~@7 a2@5 ~@4", // E A E A
  AC: "[[a2,c#4,e4,a4]@2 ~@4 [c#4,e4,a4]@2 ~ a2@2 [c#4,e4,a4] ~@9 e3@2 ~ e3@2 ~@4 [b3,e4,g#4]@2 ~ e3@2 [b3,e4,g#4] ~@9 b2@2 [b3,d4,f#4], ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~ [b3,e4,a4]@6 [b3,e4,a4]@5 [b3,e4,g#4]@3 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~ [b3,d4,f#4]@6 [b3,d4,f#4]@5 ~, ~@3 a2@5 ~@7 e3@5 ~@7 e3@5 ~@7 b2@5 ~@4]/2", // A E Bm A Esus4 E Bm
  AD: "[[b2,a3,d4,f#4]@11 ~@10 e3@2 ~ e3@2 ~@4 [b3,e4,g#4]@2 ~ e3@2 [b3,e4,g#4] ~@9 f#2@2 ~ f#2@2 ~@4 [a3,c#4,f#4]@2 ~ f#2@2 [a3,c#4,f#4] ~@9 d3@2 ~, ~@11 b3@6 ~ [b3,e4,g#4]@5 [b3,e4,g#4]@3 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~ [a3,c#4,f#4]@6 [a3,c#4,f#4]@5 [a3,c#4,f#4]@3 [a3,c#4,f#4]@4 ~@2 [a3,c#4,f#4]@3 ~ [a3,d4,f#4]@6 [a3,d4,f#4]@6, ~@11 e3@4 e3@5 ~@7 e3@5 ~@7 f#2@5 ~@7 f#2@5 ~@7 d3@5 ~@4, ~@2 [e4,g#4] ~@9]/3", // Bm7 E F#m E F#m D E
  AE: "[e3,b3,e4,g#4]@2 ~@4 [b3,e4,g#4]@2 ~ e3@2 [b3,e4,g#4] [e3,b3,e4,g#4]@2 ~@4 [b3,e4,g#4]@2 ~ e3@2 [b3,e4,g#4], ~@2 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~, ~@3 e3@5 ~@7 e3@5 ~@4", // E
  AF: "~@9 a2@2 [c#4,e4,a4] [a2,c#4,e4,a4]@2 ~@4 [c#4,e4,a4]@2 ~ a2@2 [c#4,e4,a4], [c#4,e4,a4]@6 [c#4,e4,a4]@5 ~@3 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~, ~@3 a2@5 ~@7 a2@5 ~@4", // A
  AG: "~@9 d3@2 [d4,f#4,a4] [d3,d4,f#4,a4]@2 ~@4 [d4,f#4,a4]@2 ~ d3@2 [d4,f#4,a4], [d4,f#4,a4]@6 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@3 ~, ~@3 d3@5 ~@7 d3@5 ~@4", // D
  AH: "[~@9 d3@2 [d4,f#4,a4] [d3,d4,f#4,a4]@2 ~@5 [d4,f#4,a4]@7 ~@2 [a2,a4]@35 ~@9, [d4,f#4,a4]@6 [d4,f#4,a4]@5 ~@3 [d4,f#4,a4]@4 ~@8 c#4@36 ~@10, ~@3 d3@5 ~@7 d3@6 ~@6 e4@35 ~@10]/3", // D A D
})).s("gm_acoustic_guitar_steel").gain(0.17).pan(0.2)

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~ A B C D E@2 ~@2 F@2 ~@7 G ~@2 H@7 D E@2 ~@3 G ~@2 I@8 J K L M N A B C O P Q R@8 S@3 T U A U V@3
>`.pickRestart({
  A: "[d3,a3,d4]", B: "[e3,g3,e4]", C: "[c3,g3,c4] [d3,a3,d4]", D: "[g2,d3,g3]",
  E: "[[c3,g3,c4]@18 [d3,a3]@6 g2@13 ~@11, ~@18 d4@19 ~@11]/2", F: "[~ g4, ~@23 [g3,d4]@22 ~@3]/2", G: "[d4,g4]",
  H: "[~@18 [c3,g3,g4]@5 ~ g4@23 ~ f#4@23 ~ e4@23 ~ e4@11 ~ f#4@11 ~ g4@23 ~ f#4@24, ~@23 d4@24 d4@24 c4@24 b3@12 d4@12 d4@24 d4@24 ~]/7", // C5
  I: "[~@18 [c3,g3,g4]@5 ~ g4@23 ~ f#4@23 ~ e4@23 ~ e4@11 ~ f#4@11 ~ g4@23 ~ f#4@23 ~ e4@23 g3, ~@23 d4@24 d4@24 c4@24 b3@12 d4@12 d4@24 d4@24 c4@24 ~]/8", // C5
  J: "d4@11 ~ f#4@12, ~@11 d4@12 ~", K: "[g2,d3]@11 ~", L: "[c3,g3]", M: "[b2,g3]", N: "[c3,g3]@4 a3!2 g3 a3",
  O: "[d#3,b3]", P: "~ [g3,d4]@3", Q: "[d3,a3]@18 ~@3 a3@2 b3",
  R: "[c4@3 b3@3 a3@3 [a3,d4]@12 e3@2 ~ g3@3 f#3@3 e3@3 [a3,c#4]@26 ~ g#4@23 ~ f#4@23 ~ f#4@11 ~ g#4@11 ~ a4@23 ~ a4@12 g#4@11 ~ f#4@12, ~@23 f#3@2 ~@34 e4@24 d4@24 c#4@12 e4@12 e4@24 e4@24 d4@12 ~]/8", // D5 A
  S: "[[c#4,e4] [b3,e4] [a3,e4] [e3,b3,e4]@9 [f#3,a3,f#4]@8 [d3,a3,d4]@4]/3", T: "[e3,b3,e4]", U: "[a2,e3,a3]",
  V: "[[d3,a3,d4]@26 ~@3 a3@33 ~@10, ~@28 [a2,e3]@35 ~@9]/3", // D5 A5
})).s("gm_overdriven_guitar").gain(0.48).pan(0.7)

// chords · synth strings 1
const synth_strings_1 = note(`<
  A B C D E F G C H I G J K L G C H I G J K M N O P Q N O E F G C H I G J K M N O P Q N O P R S T U V B C D W ~@3 X@4
  Y@3 Z@3 AA AB AC AB AD AE@2
>`.pickRestart({
  A: "[g1,g3,a3,d4]", B: "[d2,f#3,a3,d4]@23 ~", C: "[e2,g3,b3,e4]@23 ~", D: "[c2,g3,c4,e4]@11 ~ [d2,a3,d4,f#4]@11 ~",
  E: "[g2,b3,d4,g4]@23 ~", F: "[c2,g3,c4,e4]@17 ~ [d2,a3,d4,f#4]@5 ~", G: "[g2,g3,b3,d4]@11 ~ [d2,f#3,a3,d4]@11 ~",
  H: "[a2,a3,c4,e4]@11 ~ [g2,g3,c4,e4]@11 ~", I: "g4@11 ~ f#4@11 ~, [d2,a3,d4]@23 ~",
  J: "[e2,g3,b3,e4]@11 ~ [d2,g3,b3,d4]@11 ~", K: "[c3,g3,c4,e4]@11 ~ [g2,g3,b3,d4]@11 ~", L: "[d2,a3,d4,f#4]@23 ~",
  M: "[d2,a3,d4,g4]@11 ~ [d2,a3,d4,f#4]@5 ~ [c2,c4,d4,g4]@5 ~", N: "[g2,b3,d4]@11 ~", O: "[d2,a3,d4]@23 ~",
  P: "[a2,c4,e4]@23 ~", Q: "[e2,b3,e4]@11 ~ [d2,a3,d4]@11 ~", R: "[g2,b3,d4]@11 ~ [d2,a3,d4]@11 ~", S: "[g2,g3]@23 ~",
  T: "[c2,g3]", U: "[b2,g3]@23 ~", V: "[c2,g3] ~", W: "[d#2,a3,d#4,f#4]@7 ~",
  X: "[~@9 [a2,c#4,e4]@27 [e2,b3,e4]@23 ~ [b2,d4,f#4]@23 ~ [f#2,c#4,f#4]@11 ~]/4", // A E5 Bm F#5
  Y: "[[e2,b3,e4]@11 ~ [a2,c#4,e4]@22 ~@2 [e2,b3,e4]@23 ~ [b2,d4,f#4]@12]/3", // E5 A E5 Bm
  Z: "[~@12 [e2,g#3,b3,e4]@23 ~ [f#2,a3,c#4,f#4]@23 ~ [d2,a3,d4,f#4]@11 ~]/3", AA: "[e2,b3,e4,g#4]",
  AB: "[a3,c#4,e4]@11 ~", AC: "[a3,d4]@11 ~", AD: "[a3,d4]", AE: "[~@4 [a3,c#4,e4]@27 ~@17]/2",
})).s("gm_synth_strings_1").gain(0.39)

// chords · percussive organ
const percussive_organ = note("<~@46 A@3 B ~@24>".pickRestart({
  A: "[~ g5@23 [c5,g5]@24 [b4,g5]@24, b4@23 ~@49, ~ d5@71]/3", B: "[c5,d5,g5]@11 ~ b3@3 a3@3 g3@3 a3@3, ~@12 a#3 ~@11",
})).s("gm_percussive_organ").gain(0.4)

// chords · distortion guitar
const distortion_guitar = note(`<
  A@6 B ~@2 C@2 ~@2 D@2 ~@2 E@2 ~@3 F G H I F J@3 B ~@2 K L ~@3 F G H I F G H M ~@3 N@6 O P Q@4 R@4 S T@6 U@2
>`.pickRestart({
  A: "[~@12 [b3,d4]@3 a3@3 g3@3 a3@14 ~ a3@3 a3@3 a3@8 ~ e3@8 ~ e3@3 g3@3 a3@3 b3@6 b3@6 a3@6 a3@6 g3@15 ~@3 [b3,d4]@3 a3@3 c4@14 ~ [b3,d4]@6 [a3,d4]@6, ~@15 d4@9 ~@26 g3@2 ~@62 d4@6 ~@24]/6", // Bm D5
  B: "g3@13 ~@11", C: "[~@5 [b3,d4] a3 g3@3 ~@6, ~@3 d4 ~@4]/2", D: "[~@4 e4 d4 a3 [g3,d4]@5 ~@4]/2",
  E: "[~@4 b3 d4 a3 g3@5 ~@4]/2", F: "[g2,d3]", G: "[d3,a3]", H: "[a2,e3]", I: "[e2,b2] [d3,a3]",
  J: "[a3@15 g3@3 g3@3 g3@15 ~@3 [b3,d4]@3 a3@3 c4@14 ~ [b3,d4]@6 [a3,d4]@6, d3@4 ~@3 d4 ~@4]/3", // Bm D5
  K: "~@8 e4@4 e4@3 d4@2 d4 d4@3 a3@2 b3", L: "d4 ~", M: "[g2,d3] [d3,a3]",
  N: "[~@12 a4@3 a4@3 g4@3 a4@15 a4@3 a4@3 a4@8 ~ e4@8 ~ e4@3 g4@3 a4@3 b4@6 b4@6 a4@6 [g3,e4]@3 [a3,f#4]@3 [b3,g4]@6 a#3@3 b3@3 [a3,f#4]@6 [b3,g4]@15 [g2,d3]@18, ~@50 g4@2 ~@47 g4@6 ~@39]/6", // C D Em D Em G5
  O: "[d2,a2]@18 ~@3 a2@2 b2", P: "c3@3 b2@3 a2@3 [d2,d3]@12 e2@2 f#2",
  Q: "[g2@3 f#2@3 e2@3 [a2,e3]@25 ~@2 [e3,b3]@24 [b2,f#3]@24 [f#2,c#3]@12]/4", // A5 E5 B5 F#5
  R: "[[e3,b3] [a2,e3]@2 [e3,b3]@2 [b2,f#3]@2 ~]/4", S: "b3@3 b3@3 b3@8 ~ f#3@8 ~, ~@7 a3 ~@4",
  T: "[f#3@3 a3@3 b3@3 c#4@6 c#4@6 b3@6 b3@11 ~ b3@6 a3@15 ~@3 [c#4,f#4]@3 [b3,e4]@3 [a3,d4]@9 f#3@3 a3@6 [c#4,f#4]@3 [b3,e4]@3 a3@18 [c#4,f#4]@3 [b3,e4]@3 [a3,d4]@9 f#3@3 a3@6 [c#4,f#4]@3 ~ [b3,e4]@5, ~@31 c#4@5 ~@12]/6", // F#5 E5 D5 F#5 E5 F#5 E5 D5 …
  U: "[~ [a3,c#4]@12 ~@3]/2", // A
})).s("gm_distortion_guitar").gain(0.64)

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

// drums · snare
const snare = s("sd").struct(`<
  ~ A@4 B C D C D C D C E F D C D C D C G H@5 I A J C D C D C D C G H@3 K H@3 L E A E M A@3 N ~ O P Q H@3 R H@2 C S@3
  A@3 T ~@2
>`.pickRestart({
  A: "~@6 x ~@4 x ~@2 x ~@3 x ~@4 x", B: "~@6 x ~@4 x ~@2 x ~@3 x ~@2 x ~ x", C: "~@6 x ~@11 x ~@4 x",
  D: "~@6 x ~@4 x ~@6 x ~@5", E: "~@6 x ~@4 x ~@6 x ~@4 x", F: "x ~@5 x ~@11 x ~@4 x", G: "~@3 x ~@3 x ~ x ~@2",
  H: "~ x ~ x", I: "~@6 x ~@4 x!2 ~ x ~@3 x ~@5", J: "~@6 x ~@4 x ~@2 x ~@3 x ~@2 x!3", K: "~@2 x ~@2 x!2 ~",
  L: "~@6 x ~@11 x ~@2 x ~ x", M: "~@6 x ~@4 x!2 ~@5 x ~@5", N: "~@6 x ~@4 x ~@2 x ~@3 x ~@5", O: "~@21 x ~ x",
  P: "x ~@17 x ~@2 x ~ x", Q: "~@3 x", R: "~ x!2 ~@3 x ~", S: "~@2 x ~@3 x ~@4 x ~@6 x ~@4 x",
  T: "~@6 x ~@4 x ~@2 x ~@4 x ~@4",
})).gain(0.56)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@6 A B C D A B C E A B C D A B C E ~@8 A B C D A B C E ~@9 E ~ E ~@24
>`.pickRestart({
  A: "~@11 x ~@12", B: "~@2 x ~@11 x ~@8 x", C: "x ~@10 x ~@12", D: "~ x ~@5 x ~@4", E: "~ x ~@10",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@21 A ~@15 A ~@18 B C ~@13 D E F>".pickRestart({
  A: "~@7 x", B: "~@3 x ~@4 x ~@3", C: "~ x!2 ~@5", D: "~@11 x", E: "~ x ~@22", F: "~@7 x ~@4",
})).gain(0.72)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@13 A ~@13 B ~@21 C ~@6 D E ~@13 F ~@2>".pickRestart({
  A: "~@14 x!2 ~@8", B: "~@21 x ~ x", C: "~@9 x!2 ~@13", D: "~@3 x ~@10 x ~@9", E: "x!2 ~@6", F: "~@11 x",
})).gain(0.64)
// … 39 more lines

More by Nek