Strudelify
Emozioni cover art

1997 · Emozioni

Emozioni

Battisti

KeyD majorTempo65 bpm
0:00/0:00
// Emozioni — Battisti
// 65 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: metre changes (4/4 at bar 1, 2/4 at bar 34, 4/4 at bar 34, 3/8 at bar 42, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 77 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(65/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.

// chords · acoustic guitar nylon · "EMOZIONI       EMOZIONI"
const acoustic_guitar_nylon = note(`<
  A@5 B C D E F G H I J C D E F G H I K@5 G H L M@2 N@8 O@2 P@6 Q@8 R@4 S T U V W@8 X@6
>`.pickRestart({
  A: "[~@7 e4@2 ~ f#4@6 e4@2 ~@37 e4@2 ~ f#4@6 e4@2 ~@37 e4@2 ~ f#4@6 e4@2 ~@60 e2@7 f#2@10 ~@10 [b3,g4]@5 ~@2 b4@7 [b3,f#4]@20 ~@5, ~@19 d4@6 d3@9 f#2@9 [e2,d3]@18 ~@9 g2@9 b3@6 d3@6 ~@30 d3@9 f#2@9 e2@6 d3@6 b2@6 ~@4 b2@6 f#2@7 ~@17 g2@15 ~@34, ~@22 g2@9 b3@6 d3@6 ~@30 d3@9 f#2@9 [e2,d3]@18 ~@9 g2@9 b3@6 d3@6 ~@3 b2@6 f#2@9 ~ e2@10 ~@72, ~@28 g3@12 g3@18 ~@9 d4@6 ~@3 g3@12 g3@18 ~@9 d4@6 ~@3 g3@12 g3@12 ~@6 d3@7 ~@3 d3@7 d3@7 ~@29 e4@8 ~@25]/5", // Em B5 E7
  B: "~ g4@5 ~@15 b3@3, [g2,d3] g2@3, ~ [g3,b3,d4]@12 ~@11 b2@24, ~@5 d3@3, ~@3 g3", // G5 G
  C: "~@42 e3@5 ~, f#2@3 c#3, ~ c#3@3 c#4@4, ~@2 e3@3 f#4@3, ~@3 a3@5",
  D: "~@3 g3 ~@3 c#4, e2@2 ~ g3, ~ b2@3 a2@4, ~@2 d3@2 ~ e3@3",
  E: "~@7 c#4, d3@5 d3@3, ~ a3@5 a3@2, ~@2 c#4@2 c#4@3 ~, ~@3 f#4@5",
  F: "~@42 d3@5 ~, g2@3 d4, ~ d3@3 d4 g4@3, ~ g3@3, ~@3 b3@5",
  G: "~@3 a3 ~@3 d4, f#2@2 ~ a3, ~ c#3@3 b2@4, ~@2 e3@2 ~ f#3@3", H: "~@7 d4, e2@5 b3 e4@2, ~ b2@3, ~@3 d3@5, ~ g3",
  I: "~@7 c#4, a2@24 a2@23 ~, ~@6 e3@24 e3@17 ~, ~@12 g3@24 g3@11 ~, ~@3 c#4@4 ~",
  J: "~@7 g3, g2@5 d4 b3@2, ~ b2@7, ~ d3@3, ~@3 g3 g4@4",
  K: "[~ f#4@8 ~@3 f#4@9 ~@3 [f#3,b3,d4]@5 ~@7 [f#3,d4]@5 ~@7 [e3,a3,c#4,e4]@5 ~@7 [e3,a3,c#4,e4]@5 ~@7 [e3,a3,c#4,e4]@5 ~@7 [e3,c#4,e4]@5 ~@7 [d3,g3,b3,g4]@5 ~@7 [d3,g3,b3,g4]@5 ~@7 [d3,g3,b3,g4]@5 ~@7 [d3,g3,b3,g4]@5 ~@7 [a3,d4,f#4]@5 ~@20 f#4@5 ~@7 f#4@5 ~@7 g4@10 ~ [d3,g3,b3,g4]@11 ~ [d3,g3,b3,g4]@11 ~ [d3,g3,b3,g4]@12, [b2,f#3,b3,d4]@5 ~@7 d4@5 ~@6 b2@5 ~@19 a2@5 ~@7 a2@5 ~@7 a2@5 ~@7 a2@5 ~@7 g2@5 ~@7 g2@5 ~@7 g2@5 ~@7 g2@5 ~@7 d3@5 ~@19 d3@5 ~@19 g2@9 ~@3 g2@9 ~@3 g2@9 ~@3 g2@9 ~@4, ~@24 f#4@9 ~@3 f#4@9 ~@123 [a3,d4]@5 ~@19 [d3,g3,b3]@9 ~@39]/5", // Bm D A C#m G D G Bm …
  L: "~@11 c#4, a2!2, ~ e3@4 e3@3, ~ g3@2 g3, ~@9 d4@13 ~@2",
  M: "[~@8 g3 ~@6 d4, ~@2 e2@13 e2@12 ~@9 c#4@12, ~@5 b2@13 b2@9 a2@12 a2@9, ~@17 d3@25 d3@12 ~@6 e3@24 e3@12, ~@23 g3@24 ~@19 g3@30]/2",
  N: "[c#4@6 ~@42 g3@6 ~@18 c#4@6 ~@42 f#4@6 ~@31 e2@24 ~@18 g3@6 ~@18 c#4@6 ~@42 c#4@6 ~@30 a3@18 ~@33 e4@2 ~ f#4@6 e4@2 ~@13 b3@2, ~@6 e2@36 d3@12 ~@6 e3@18 d3@48 g2@15 f#2@16 ~@24 e2@24 ~@42 f#4@17 ~ f#4@11 ~@19 f#4@30 ~@9 b3@9 ~@27 d4@6 ~@8, ~@12 b2@42 a2@24 ~@18 f#4@24 ~@17 b3@12 ~@68 g3@12 ~@6 a3@24 a3@17 ~@7 a3@24 ~@21 d3@12 d3@6 ~@30 d3@8, ~@18 d3@12 e4@24 ~@36 c#4@11 ~ c#4@11 ~ c#4@11 ~@8 g3@16 g3@32 ~@12 d3@12 ~@6 e3@18 d3@48 d3@48 g2@12 f#2@9 [e2,d3]@18 ~@9 g2@11, ~@24 g3@12 d4@18 ~@12 g3@12 ~@6 a3@24 a3@17 ~@4 d3@16 d3@8 d3@28 ~@6 b2@18 a2@24 ~@12 c#4@11 ~ c#4@15 ~@21 c#4@11 ~ c#4@24 ~@6 g3@12 g3@18 ~@18 g3@5]/8", // E7
  O: "[~@22 e4@2 ~ f#4@6 e4@2 ~@60 e2@3, ~ f#2@6 g3@18 ~@9 d4@6 d3@9 f#2@9 e2@6 d3@6 b2@6 ~@4 b2@6 ~@10, ~@4 d3@6 [e2,d3]@18 ~@9 g2@9 b3@6 d3@6 ~@3 b2@6 f#2@9 e2@10 f#2@7 ~@3, ~@43 g3@12 g3@12 ~@6 d3@7 ~@3 d3@7 d3@6]/2", // E7
  P: "[~@4 f#2@10 ~@42 b3@6 ~@42 e3@5 ~@19 g3@6 ~@18 c#4@6 ~@42 c#4@6 ~@42 d3@5 ~@19 a3@6 ~@6 f#3@4, ~@7 g2@18 d4@6 ~@6 e3@9 f#4@3 c#3@6 ~@3 b2@9 a2@12 ~@6 c#4@6 c#4@9 ~@9 g3@12 d4@6 ~@6 e3@6 ~@5, ~@10 d3@21 f#2@24 e2@12 ~@21 f#4@15 ~@9 b3@15 ~@3 c#3@9 b2@5, ~@13 g3@18 ~@3 c#3@9 c#4@12 ~@18 g3@6 ~@3 a3@15 a3@6 ~@3 d3@9 d4@3 g4@9 ~@17, ~@16 b3@3 d4@3 g4@9 ~@9 a3@15 ~@6 d3@6 ~@3 e3@9 d3@15 d3@9 g2@24 f#2@12 ~@5]/6",
  Q: "[~@8 d4@6 ~@42 d4@6 ~@42 c#4@6 ~@42 g3@6 ~@42 e3@5 ~@19 g3@6 ~@18 c#4@6 ~@42 c#4@6 ~@41 d3@5 ~@19 a3@6 ~@5 f#3@6, ~@2 a3@12 e2@30 b3@6 e4@12 ~@18 c#4@24 ~@24 g3@6 g4@6 d4@6 b3@12 ~@18 a3@18 c#3@12 ~@6 b2@18 a2@24 ~@12 c#4@12 c#4@18 ~@18 g3@24 d4@12 ~@11 e3@12 ~@11, ~@26 b2@36 a2@24 a2@23 ~ g2@48 f#2@48 e2@24 ~@42 f#4@30 ~@18 b3@30 ~@5 c#3@17 ~ b2@11, ~@32 d3@30 ~@6 e3@24 e3@17 ~@7 b2@42 ~@12 e3@18 f#4@18 ~@36 g3@12 ~@6 a3@30 a3@12 ~@6 d3@18 d4@6 g4@17 ~@35, ~@38 g3@24 ~@12 g3@24 g3@11 ~@13 d3@36 ~@6 c#3@18 c#4@24 ~@12 d3@12 ~@6 e3@18 d3@30 d3@18 g2@47 f#2@23 ~@12]/8",
  R: "[~@6 d4@6 ~@41 d4@6 ~@40 c#4@6 ~ f#4@8 ~@3 f#4@8 ~@4 f#4@8 ~@3 [f#3,d4]@5 ~@7 [a3,c#4,e4]@5 ~@7 [c#4,e4]@5 ~@6 [e3,a3,c#4,e4]@5 ~@7 [c#4,e4]@5, a3@12 e2@47 ~@17 c#4@23 ~@18 d4@5 ~@7 d4@5 ~@6 f#4@8 ~@44, ~@24 b2@35 a2@23 a2@23 [b2,f#3,b3,d4]@5 ~@18 [b2,f#3,b3]@5 ~@18 [a2,e3]@5 ~@7 [a2,e3,a3]@5 ~@6 a2@5 ~@7 [a2,e3]@5 ~, ~@29 d3@12 b3@6 e4@12 ~@11 g3@23 g3@11 ~@88, ~@35 g3@23 ~@6 e3@23 ~ e3@16 ~@88]/4", // D A C#m A C#m Bm B5 A5
  S: "~@7 g4@5 ~@6 [d3,g3,b3,g4]@5 ~@7 [b3,g4]@5 ~@6 [g2,d3,g3,b3,g4]@5 ~@2, ~@6 [g2,d3,g3,b3]@5 ~@6 g2@5 ~@7 [g2,d3,g3]@5 ~@14", // G Em G G5
  T: "~@5 [a3,d4,f#4]@5 ~@19 f#4@5 ~@6 f#4@5 ~@3, ~@4 d3@5 ~@19 [d3,a3,d4]@5 ~@15", // D D5
  U: "~@4 [b3,g4]@10 ~ [d3,g3,b3,g4]@11 ~ [b3,g4]@11 ~ g4@9, ~@3 [g2,d3,g3]@9 ~@2 g2@9 ~@3 [g2,d3,g3]@9 ~@3 [g2,d3,g3,b3]@9 ~", // Em G Em G5 G
  V: "~@19 a3@6 ~@18 d4@5, ~@2 f#2@23 ~@12 a3@11, ~@8 c#3@17 b2@23, ~@14 e3@12 ~@5 f#3@17",
  W: "[~@41 d4@6 ~@41 c#4@29 ~@41 g3@5 ~@35 d4@6 c#4@6 ~@41 g3@6 ~@17 c#4@6 ~@41 f#4@5 ~@26 e2@26 e2@6, e2@30 b3@5 e4@12 ~@18 d4@23 ~@46 g3@23 ~@18 g3@35 ~@12 d3@11 e4@12 d3@12 ~@5 e3@17 ~ d3@47 ~@3 d3@13 d3@6 d3@29 ~@6, ~@12 b2@35 a2@23 a2@47 e2@23 e2@23 ~@18 c#4@23 ~@24 g3@11 d4@17 ~@12 g3@12 ~@6 a3@23 a3@16 ~ g2@13 f#2@13 ~@32, ~@18 d3@29 ~@6 e3@23 e3@41 ~@6 b2@23 b2@17 a2@23 ~ a2@23 e2@47 ~@40 f#4@23 ~@16 b3@10 ~@38, ~@24 g3@23 ~@12 g3@23 g3@35 ~@12 d3@23 d3@12 ~@5 e3@23 ~ e3@16 ~@7 b2@41 a2@23 ~@12 c#4@11 c#4@11 ~ c#4@11 ~@7 g3@13 g3@32 ~@6]/8",
  X: "[~@12 g3@6 ~@18 c#4@6 ~@40 c#4@6 ~@5 g3@6 ~@6 g3@6 ~@5 a3@6 ~@6 a3@5 ~@20 g3@6 ~@16 d3@8 b2@7 ~@3 f#4@62 ~@33, b2@18 a2@24 ~@11 c#4@11 ~ c#4@14 ~@20 b3@11 ~@12 c#4@12 ~@12 d3@21 g3@23 ~@2 [a3,d4]@62 ~@34, ~@6 d3@12 ~@6 e3@18 d3@46 g2@19 ~@4 f#2@21 ~ e2@57 d2@62 ~@36, ~@30 g3@12 ~@5 a3@23 a3@16 ~@54 b2@36 ~@15 d3@62 ~@35, ~@59 f#4@17 f#4@11 ~@72 b3@31 ~@98]/6", // D5
})).s("gm_acoustic_guitar_nylon").gain(0.4).pan(0.3)

// chords · acoustic guitar nylon · "EMOZIONI       EMOZIONI" · soft notes
const acoustic_guitar_nylon_2 = note("<~@21 A B C D ~@32 E F G@3 ~@15>".pickRestart({
  A: "~@6 [f#3,b3,d4]@5 ~ [f#3,b3]@5 ~ [f#3,b3,d4]@5 ~@7 [f#3,b3,d4]@5 ~ b3@5 ~ [f#3,b3,d4]@5 ~, ~@5 b2@5 ~ b2@5 ~ b2@5 ~@7 b2@5 ~ b2@5 ~ b2@5 ~@2", // Bm B5 Bm
  B: "~@6 [e3,a3,c#4,e4]@5 ~@7 [e3,a3,c#4,e4]@5 ~@7 [e3,a3,c#4,e4]@5 ~ a3@5 ~ [e3,a3,c#4,e4]@5 ~, ~@5 a2@5 ~@7 a2@5 ~@7 a2@5 ~@7 a2@5 ~@2", // A
  C: "~@6 [d3,g3,b3,g4]@5 ~@7 [d3,g3,b3,g4]@5 ~@7 [d3,g3,b3,g4]@5 ~@7 [d3,g3,b3,g4]@5 ~, ~@5 g2@5 ~@7 g2@5 ~@7 g2@5 ~@7 g2@5 ~@2", // G
  D: "~@6 [a3,d4,f#4]@5 ~@2 f#4@4 ~ [a3,d4,f#4]@5 ~@7 [a3,d4,f#4]@5 ~ [a3,d4]@5 ~ [a3,d4,f#4]@6, ~@5 d3@5 ~ d3@5 ~ d3@5 ~@7 d3@5 ~ d3@5 ~ d3@6 ~, ~@12 [a3,d4]@5 ~@31", // D D5 D D5
  E: "~@15 [f#3,b3,d4]@5 ~ b3@5 ~ [b3,d4]@5 ~@6 [b2,f#3,b3,d4]@5 ~ b3@4, ~@14 b2@5 ~ [b2,f#3]@5 ~ [b2,f#3]@5 ~@12 b2@5", // Bm B5
  F: "~@2 [f#3,b3,d4]@5 ~@7 [c#4,e4]@5 ~@6 [a2,e3,a3,c#4,e4]@5 ~@7 [e3,a3,c#4,e4]@5 ~ a3@5, ~ b2@5 ~@7 [a2,e3,a3]@5 ~@18 a2@5 ~@7", // Bm C#m A A5
  G: "[~ [c#4,e4]@5 ~@6 [g2,d3,g3,b3,g4]@5 ~@7 [b3,g4]@5 ~@7 g4@5 ~@6 [d3,g3,b3,g4]@5 ~@7 [d4,f#4]@5 ~ f#4@5 ~ f#4@5 ~@6 [a3,d4,f#4]@5 ~ d4@5 ~ [d4,f#4]@6 ~@44, [a2,e3,a3]@5 ~@18 [g2,d3,g3]@5 ~@7 [g2,d3,g3,b3]@5 ~@6 g2@5 ~@7 [d3,a3]@5 ~ [d3,a3,d4]@5 ~ [d3,a3,d4]@5 ~@6 d3@5 ~ [d3,a3]@5 ~ [d3,a3]@6 ~@45]/3", // C#m G Em G D A5 G5 G …
})).s("gm_acoustic_guitar_nylon").gain(0.16).pan(0.3)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon_3 = note(`<
  A@5 ~ B C D E F G H I J K L E F M N O P Q@2 R S T U@5 ~@4 V@2 W@3 X@7 Y@8 Z AA AB@3 AC AD@6 ~@8
>`.pickRestart({
  A: "[~@31 g3@3 f#3@6 ~@3 e3@6 g3@5 ~ b3@3 e4@3 d4@3 g4@3 a4@3 ~@3 b3@3 d4@3 b3@3 ~@3 b3@3 d4@3 b3@6 ~@6 e3@3 ~@3 g3@3 [e3,b3]@6 ~@9 g3@3 f#3@6 ~@3 e3@6 ~@29 [e3,d4]@7 d3@10 ~@2 [d4,g4]@47, ~@22 g3@6 d4@10 ~@2 d4@6 ~@24 b4@11 ~ a4@9 g4@9 b3@6 [b3,d4]@6 ~@6 g3@6 d4@10 ~@2 d4@6 ~@3 d4@6 b3@6 ~ e3@10 ~@23 g3@49, ~@25 b3@6 ~@66 d4@6 ~@18 b3@6 ~@21 d3@6 d4@7 b3@6 d3@7 ~@66, ~@164 d4@7 b3@7 ~@14 b3@48]/5", // E5 E7 G5 Bm
  B: "~@9 a4 f#4 c#4 a3 f#3@2 d3, ~ f#2@3", C: "~@3 g3 ~@3 c#4, g3@2 d3@2 ~ e3@3, ~ b2@3 a2@4, ~@3 g3",
  D: "~@7 f#2, d3@9 d3@5 ~@2, ~ a3@4 a3@2 ~, ~@4 c#4@4 c#4@3 c#4@2 c#4@3, ~@3 f#4@3 f#4@2",
  E: "~@42 d3@5 ~, g2@3 d4, ~ d3@3 d4 g4@3, ~ g3@3, ~@3 b3@5",
  F: "~@7 e3 ~@6 d4@2, f#2 ~, ~ c#3@3 b2@4, ~@3 e3@3 a3@2 ~@2 f#3@6, ~@4 a3 c#4@2 ~@5 a3@4",
  G: "~@7 d4, e2@5 b3 e4@2, ~ b2@3, ~@3 d3@5, ~ g3",
  H: "~@6 b3 b3@3 e4@2 a4@4, a2 ~, ~ a3@2 e4@5 ~@8, ~ c#4 b3 ~@5, ~@5 d4@3 ~@8",
  I: "~@7 g3, g2@5 d4 b3@2, ~ b2@7, ~ d3@3, ~@3 g3 g4@4",
  J: "~@15 e3, f#2@9 e3 c#3 f#2@5, ~ c#3@3 a3@2 c#3@2, ~@3 e3@4 c#4@6 e3 a3@2, ~@4 a3 c#4 f#4@10",
  K: "~@7 d3 ~@6 g3@2, e2@8 ~@3 c#4 e4@4, ~ b2@3 a2@4, ~@3 d3@3 g3@2 ~ e3@7, ~@4 g3 b3@3 ~@2 g3@3 c#4@3",
  L: "~@7 a3, d3@7 d3@9, ~ a3@2 a3 a3@2 a3 ~, ~@3 c#4@2 c#4@4 c#4@2 c#4@2 c#4@3, ~@2 f#4@3 f#4@3",
  M: "~@3 e2, e2@9 g3 d3 b2@5, ~ b2@3 b3@4, ~@4 d3@3 e4@9, ~@5 g3 d4@10",
  N: "~@6 b3 b3@3 e4@3 a4@3, a2 ~, ~ a3@2 e4@5 ~@8, ~ c#4 b3 ~@5, ~@5 d4@3 ~@8",
  O: "~ f#4@5 ~@6 [b3,d4,f#4,b4]@5 ~ [f#4,b4]@5 ~ [f#3,b3,d4,f#4,b4]@5 ~ f#4@5 ~ [f#3,b3,d4,f#4,b4]@5 ~ b4@5 ~, [f#3,b3,d4,b4]@5 ~@43", // Bm B5 Bm
  P: "[e3,a3,c#4,e4,a4]@5 ~ [e3,c#4,a4]@5 ~ [e3,a3,c#4,e4,a4]@5 ~@7 [e3,a3,c#4,e4,a4]@5 ~ [e3,c#4,a4]@5 ~ [e3,a3,c#4,e4,a4]@5 ~ [e3,c#4,a4]@5 ~", // A
  Q: "[[d3,g3,b3,d4,g4]@5 ~@7 [d3,g3,b3,d4,g4]@5 ~@7 [d3,g3,b3,d4,g4]@5 ~@7 [d3,g3,b3,d4,g4]@5 ~ [d3,b3,d4]@5 ~@2 f#4@5 f#4@5 ~@2 f#4@5 ~@7 f#4@5 f#4@5 ~@2 f#4@5 a3@6, ~@47 d3@5 ~@7 d3@5 ~@7 d3@5 ~@7 d3@5 ~@8, ~@48 [a3,d4]@5 ~@7 [a3,d4]@5 ~@7 [a3,d4]@5 ~@7 [a3,d4]@5 ~@7]/2", // G D5
  R: "~ g4@5 ~@42, [g2,d3,g3,b3]@5 ~@43", // G
  S: "~@7 c#3 ~@6 f#3@2, f#2 b2, ~ c#3@5 e3@2 ~@2 f#3@4 ~@2, ~@2 e3@3 a3@3 ~@3 a3@2 a3@3, ~@3 a3 c#4@4 ~@4 d4@4",
  T: "~@15 g3, e2@7 d3, ~@2 b2@6 g3 d3 b2@6, ~@3 d3@4 b3@9, ~@2 g3 e4@5",
  U: "[~@44 c#4@8 ~@44 g3@6 ~@9 d4@6 e4@9 f#4@12 g4@12 ~@42 g3@6 ~@12 e3@12 ~@18, a2@24 a2@27 ~ e2@26 e2@24 ~@48 e2@48 ~@9 c#4@15 ~@18, ~@6 e3@24 e3@20 ~@8 b2@26 b2@18 a2@12 ~@39 b2@42 ~@3 a2@24 ~@18, ~@12 g3@24 g3@15 ~@14 d3@25 d3@12 ~@6 c#4@6 ~@45 g3@21 d4@18 ~@6 g3@18 ~@18, ~@18 d4@26 ~@27 g3@24 ~@10 g3@9 ~@42 d3@9 e4@21 d3@12 ~@3 e3@9 ~@30]/5",
  V: "[~@46 g3@3 f#3@6 ~@3 e3@6 g3@5 ~ b3@3 e4@3 d4@3 g4@3 a4@3 ~@3 b3@3 d4@3 b3@2, ~@37 g3@6 d4@10 ~@2 d4@6 ~@24 b4@11, ~@20 b3@3 ~@25]/2",
  W: "[~@4 b3@3 d4@3 b3@6 ~@6 e3@3 ~@3 g3@3 [e3,b3]@6 ~@9 g3@3 f#3@6 ~@3 e3@6 ~@29 [e3,d4]@7 d3@10 g3@30 ~@4, ~ a4@9 g4@9 b3@6 [b3,d4]@6 ~@6 g3@6 d4@10 ~@2 d4@6 ~@3 d4@6 b3@6 e3@7 d4@7 b3@7 ~@47, ~@16 d4@6 ~@18 b3@6 ~@21 d3@6 d4@7 b3@6 d3@7 ~@51]/3", // E5 E7 Bm
  X: "[~@41 a4@3 f#4@3 c#4@3 a3@3 f#3@6 d3@3 ~@18 g3@6 ~@18 c#4@6 ~@42 f#2@6 ~@42 d3@5 ~@22 e3@3 ~@18 d4@6 ~@42 d4@6 ~@18 b3@3 b3@9 e4@4, ~@26 f#2@36 g3@12 d3@12 ~@6 e3@18 d3@27 d3@15 ~@6 g2@36 d4@12 ~@9 e3@9 a3@6 ~@6 f#3@18 ~@18 d3@12 b3@6 e4@12 ~@6 c#4@9 d4@9 ~@10, ~@68 b2@18 a2@24 ~@12 c#4@12 c#4@9 c#4@6 c#4@9 ~@12 g3@36 f#2@24 ~@24 e2@48 ~@9 e4@15 ~@10, ~@98 g3@12 ~@6 a3@24 a3@12 ~@12 d3@18 d4@6 g4@18 ~@12 a3@3 c#4@6 ~@15 a3@12 ~@24 g3@24 ~@3 a3@9 b3@6 ~@16, ~@64 f#4@9 f#4@6 ~@9 b3@15 ~@3 c#3@9 b2@12 ~@6 b2@18 a2@12 ~@5]/7",
  Y: "[~@2 a4@12 ~@42 g3@6 ~@45 e3@3 ~@21 d3@3 ~@18 g3@6 ~@42 a3@6 ~@41 d3@5 ~@22 e3@3 ~@17 d4@6 ~@35 e2@12 ~@17 b3@3 b3@9 e4@8, ~@14 g2@30 d4@6 b3@12 ~@9 e3@12 c#4@18 e3@3 a3@6 ~@9 d3@9 g3@6 ~@3 e3@21 d3@21 d3@27 g2@36 d4@12 ~@8 e3@9 a3@6 ~@5 f#3@17 ~@13 d3@8 e4@9 d3@3 b2@15 a2@23 ~@14, ~@20 b2@42 f#2@27 e3@3 c#3@3 f#2@15 e2@24 ~@9 c#4@3 e4@12 ~@9 c#4@6 c#4@12 c#4@6 c#4@6 c#4@9 ~@12 g3@35 f#2@23 ~@24 e2@26 g3@20 ~@3 a3@9 b3@6 ~@20, ~@26 d3@36 ~@6 c#3@18 a3@12 c#3@12 ~@6 b2@18 a2@24 ~@12 f#4@18 f#4@18 ~@18 b3@30 ~@5 c#3@17 ~ b2@23 ~@6 b2@17 b3@23 ~@9 e4@15 ~@14, ~@32 g3@6 g4@24 ~@12 a3@3 c#4@3 f#4@30 ~@12 g3@3 b3@9 ~@6 g3@9 c#4@9 ~@6 a3@12 a3@6 a3@12 a3@6 ~@12 d3@18 d4@6 g4@17 ~@12 a3@3 c#4@6 ~@14 a3@12 ~@15 g3@2 d4@29 ~@6 c#4@9 d4@9 ~@14]/8",
  Z: "a4@9 ~ [f#4,b4]@5 ~@6 [b3,d4,f#4,b4]@5 ~ [f#4,b4]@5 ~ [d4,f#4,b4]@5 f#4@5 ~ [f#3,b3,d4,f#4,b4]@4, ~@9 [f#3,b3,d4]@5 ~@18 [f#3,b3]@5 ~@11", // B5 Bm B5 Bm B5
  AA: "~@2 b4@5 ~ [a3,c#4,e4,a4]@5 ~ [c#4,a4]@5 ~ [c#4,e4,a4]@5 ~@6 [e3,a3,c#4,e4,a4]@5 ~ [e3,c#4,a4]@5 ~ [a3,c#4,e4,a4]@5, ~@7 e3@5 ~ e3@5 ~ [e3,a3]@5 ~@18 e3@5 ~", // A F#m A A5
  AB: "[~ [c#4,a4]@5 ~ [d4,g4]@5 ~@6 [d3,g3,b3,d4,g4]@5 ~@7 [b3,d4,g4]@5 ~@6 [d3,g3,b3,d4,g4]@5 ~ [d3,b3,d4]@5 ~ [a3,d4,f#4]@5 ~ f#4@5 ~ f#4@5 ~@7 f#4@5 f#4@5 ~ [d4,f#4]@5 a3@6 ~ [d3,b3,g4]@5 ~@39, e3@5 ~ [d3,g3,b3]@5 ~@18 [d3,g3]@5 ~@18 d3@5 ~@7 [d3,a3,d4]@5 ~@7 [d3,a3,d4]@5 ~@6 [d3,a3]@5 ~@7 [g2,g3]@5 ~@40]/3", // F#m G5 G D G G5 D5 G
  AC: "~@22 c#3@3 ~@18 f#3@5, ~@2 f#2@23 b2@23, ~@5 c#3@14 e3@6 ~@6 f#3@12 ~@5, ~@8 e3@8 a3@9 ~@9 a3@6 a3@8, ~@11 a3@3 c#4@12 ~@11 d4@11",
  AD: "[~@44 g3@3 ~@41 c#4@29 ~@41 g3@5 ~@9 d4@6 e4@9 f#4@11 g4@12 ~@41 g3@6 ~@11 e3@12 ~@8, e2@41 d3@6 ~@6 e3@23 e3@41 ~@6 b2@23 b2@17 a2@12 ~@38 b2@41 ~@3 a2@23 ~@8, ~@6 b2@18 g3@3 d3@3 b2@17 a2@23 a2@47 e2@23 e2@23 ~@47 e2@47 ~@8 c#4@15 ~@8, ~@9 d3@12 b3@26 ~@12 g3@23 g3@35 ~@12 d3@23 d3@12 ~@5 c#4@6 ~@44 g3@20 d4@17 ~@6 g3@17 ~@9, ~@12 g3@6 e4@29 ~@18 d4@23 ~@46 g3@23 ~@9 g3@9 ~@41 d3@9 e4@20 d3@12 ~@3 e3@8 ~@20]/6",
})).s("gm_acoustic_guitar_nylon").gain(0.32).pan(0.7)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_4 = note("<A ~ B@2 ~@17 C D E F G ~ H ~@10 I ~ J ~@16 K L M@3 ~ H ~@13>".pickRestart({
  A: "~@37 b3@6 ~@5", B: "[~@37 b3@6 ~@3 b3@6 ~@44]/2",
  C: "~@6 [f#3,b3,d4,f#4,b4]@5 ~ f#3@5 ~ [f#3,b3,d4]@5 ~@7 [f#3,b3,d4,b4]@5 ~@7 [f#3,b3,d4,f#4]@5 ~", // Bm
  D: "~@6 [a3,e4]@5 ~@7 [e3,a3,c#4,e4,a4]@5 ~@7 [a3,e4]@5 ~@7 [a3,e4]@5 ~", // A5 A A5
  E: "~@6 [d3,g3,b3,d4,g4]@5 ~@7 [d3,g3,b3,d4,g4]@5 ~@7 [d3,g3,b3,d4,g4]@5 ~@7 [g3,g4]@5 ~", // G
  F: "~@6 [a3,d4]@5 ~@7 [a3,d4,f#4]@5 ~@7 [a3,d4]@5 ~@7 [d4,f#4]@6, ~@5 d3@5 ~@7 d3@5 ~@7 d3@5 ~@7 d3@6 ~", // D5 D D5 D
  G: "~@6 [d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@5 ~ [d3,g3,b3]@5 ~ [d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@5 ~, ~@5 g2@5 ~ g2@5 ~ g2@5 ~ g2@5 ~@7 g2@5 ~ g2@5 ~@2", // G
  H: "~@5 b3@2 ~@9", I: "~@2 b3@3 ~@19", J: "~@4 b3@6 ~@3 b3@6 ~@29",
  K: "~@15 [f#3,b3,d4,f#4,b4]@5 f#3@5 ~@2 [b3,d4]@5 ~@7 b4@5 ~@4, ~@26 f#3@5 ~@7 [f#3,b3,d4]@5 ~@5", // Bm
  L: "~@2 [f#3,b3,d4,f#4]@5 ~@7 e4@5 ~@6 [e3,a3,c#4,e4,a4]@5 ~@7 [a3,e4]@5 ~@6, ~@13 a3@5 ~@30", // Bm A A5
  M: "[~ e4@5 ~@6 [d3,g3,b3,d4,g4]@5 ~@7 [b3,d4,g4]@5 ~@7 [d4,g4]@5 ~@6 [g3,g4]@5 ~@7 d4@5 ~@7 f#4@5 ~@6 [a3,d4]@5 ~@7 [d4,f#4]@6 ~@5 [g2,d3,g3,b3,g4]@5 ~ [d3,g3,b3,g4]@5 ~ [d3,g3,b3]@5 ~ [b3,g4]@5 ~ g4@5 ~ g4@5 [g2,d3,g3,b3,g4]@4, a3@5 ~@18 [d3,g3]@5 ~@7 [d3,g3,b3]@5 ~@18 [d3,a3]@5 ~@7 [d3,a3,d4]@5 ~@6 d3@5 ~@7 d3@6 ~@11 g2@5 ~ g2@5 ~ [g2,d3,g3]@5 ~ [d3,g3,b3]@5 ~ [g2,d3,g3,b3]@5 ~@5]/3", // G G5 G D5 D G Em G …
})).s("gm_acoustic_guitar_nylon").gain(0.16).pan(0.7)

// other · tremolo strings
const tremolo_strings = note("<~@11 [g6@2 ~ g6@45] ~@3 [g6@2 ~ g6@45] ~@61>")
  .s("gm_tremolo_strings").gain(0.16).pan(0.7)

// other · string ensemble 2
const string_ensemble_2 = note(`<
  ~@11 A ~@3 A ~ B C D E F G H I ~@7 J K@2 ~@14 L M N O P@2 Q@3 R S@3 ~@6 T U V@2 W@5
>`.pickRestart({
  A: "~ f#5@2 g5@3 ~@42, g5 ~@23", B: "~ c#4 d4 e4 d4 c#4@2 d4", C: "c#4@3 d4!2 c#4@2 b3", D: "b3@5 ~",
  E: "~@4 a3 b3 c#4 a3", F: "b3 c#4 d4 c#4 e4 d4 c#4 b3", G: "a3 b3 c#4 b3 d4 c#4 b3 a3", H: "b3 c#4 d4 e4@2 d4 c#4 b3",
  I: "a3 b3 c#4 d4@2 c#4 b3 a3", J: "~@18 a3@12 ~@12 c#4@5 ~",
  K: "[d4@6 e4@11 ~ d4@6 c#4@6 b3@15 d4@5 e4@5 ~ b3@5 d4@35]/2", L: "~@14 d4@6 c#4@6 b3@11 ~ a3@10",
  M: "~@2 g3@12 a3@11 ~ b3@11 ~ c#4@6 d4@4", N: "~ e4@3 f#4@3 a4@3 g4@3 g4@3 f#4@3 e4@3 f#4@2",
  O: "~ g4@3 g4@3 g4@3 f#4@3 f#4@3 e4@3 e4@3 d4@2",
  P: "[~@2 d4@6 c#4@6 b3@6 c#4@6 d4@6 a4@12 g4@11 f#4@6 e4@6 f#4@6 g4@6 d4@11 e4@6]/2",
  Q: "[f#4@6 g4@6 a4@12 g4@11 f#4@6 e4@6 d4@6 b3@6 a3@5 b3@6 c#4@6 d4@6 e4@6 f#4@5 g4@6 a4@6 b4@6 c#5@6 d5@6 c#5@5 e5@6 d5@6 c#5@4]/3",
  R: "~@2 b4@6 d5@5 c#5@6 b4@6 a4@6 d5@6 c#5@6 b4@5",
  S: "[a4@6 b4@6 c#5@6 d5@6 e5@11 d5@6 c#5@6 b4@6 a4@6 b4@5 c#5@6 d5@6 e5@6 d5@12 c#5@5 b4@29 ~@16]/3",
  T: "~@7 a3@3 ~@2", U: "~@4 c#4@5 d4@6 e4@11 ~ d4@6 c#4@5 b3@10", V: "[~@3 d4@4 ~ e4@4 b3@4 d4@38 ~@42]/2",
  W: "[~@5 c#5@6 d5@6 e5@11 d5@11 ~ c#5@5 b4@6 d5@11 ~ a4@22 g4@56 ~@2 a4@62 ~@35]/5",
})).s("gm_string_ensemble_2").gain(0.22).pan(0.6)

// other · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@32 A ~@2 B@3 ~@25 C@6 ~@8>".pickRestart({
  A: "~@30 a3 ~@17", B: "[~@37 f#5@96 ~@11]/3",
  C: "[~@47 [e3,g3,b3,d4,g4,a4]@70 [e3,g3,b3,d4,g4,a4]@93 [e3,g3,b3,d4,g4,a4]@41 ~@29 a3 ~@7]/6", // Em7
})).s("gm_string_ensemble_2").gain(0.13).pan(0.6)

// other · string ensemble 2
const string_ensemble_2_2 = note("<~@17 A B C ~ D E F@2 ~@7 G@4 ~@17 H I J@7 ~@6 K@2 L@2 M@5>".pickRestart({
  A: "c#4 b3@2 a3", B: "b3 a3 b3 a3", C: "a3@12 g3@31 ~@5", D: "f#3@24 b3@17 b3@6 ~", E: "e3", F: "[~ d2, d3]/2",
  G: "[~@30 [d2,d3]@36 [a2,a3]@12 [g2,g3]@15 [f#2,f#3]@16 [e2,e3]@48 ~@35]/4", H: "~@7 g4@12 f#4@5",
  I: "~@2 e4@11 a3@12 b3@12 c#4@11",
  J: "[d4@12 b3@6 c#4@6 c#4@5 d4@6 d4@6 e4@6 f#4@6 g4@6 a4@34 g4@12 f#3@23 b3@35 a3@12 e3@12 f#3@11 g3@23 ~ f#3@11 e3@12 g3@11 f#3@35 d3@29 ~@16, ~@245 d2@47 ~@44]/7",
  K: "[~@40 [d2,d3]@35 [a2,a3]@11 [g2,g3]@10]/2", L: "[~@3 [f#2,f#3]@13 [e2,e3]@50 ~@30]/2",
  M: "[~@5 c#4@6 d4@6 e4@11 d4@11 ~ c#4@5 b3@6 d4@11 ~ a3@22 g3@56 ~@2 d3@62 ~@35]/5",
})).s("gm_string_ensemble_2").gain(0.19).pan(0.2)

// other · string ensemble 2
const string_ensemble_2_3 = note("<~@21 A@2 B C ~@7 D@3 E@3 ~@11 F G H I J K L@6 M ~@6 N@2 O@7>".pickRestart({
  A: "[f#4@2 b4@3 a4 e4 f#4]/2", B: "g4@2 f#4 e4", C: "g4 f#4@3", D: "[~@30 a4@24 f#4@23 ~ b4@15 a4@16 g4@35]/3",
  E: "[~@25 a5@12 a6@96 ~@11]/3", F: "~@7 d4@3 e4@3 e4@3 f#4@3 f#4@3 g4@2",
  G: "~ a4@3 b4@3 c#5@3 d5@3 d5@3 e5@3 e5@3 d5@2", H: "~ d5@3 c#5@3 b4@6 c#5@3 d5@3 d5@3 c#5@2",
  I: "~ c#5@3 b4@3 a4@6 b4@6 c#5@3 d5@2", J: "~ e5@3 f#5@3 g5@12 f#5@5", K: "~@2 e5@11 a4@12 b4@12 c#5@11",
  L: "[d5@12 b4@6 c#5@6 c#5@5 d5@6 d5@6 e5@6 f#5@6 g5@6 a5@34 g5@12 f#4@23 b4@35 a4@12 e4@12 f#4@11 g4@23 ~ f#4@11 e4@12 g4@11 f#4@32]/6",
  M: "~@3 g4@29 ~@16", N: "[~@40 a4@23 f#4@22 ~ b4@10]/2",
  O: "[~@3 a4@13 g4@38 ~@24 a5@12 a6@28 [f#5,f#6]@9 [a5,a6]@8 ~ b6@11 d7@11 ~ a6@11 d7@11 ~@13 d7@44 ~ [f#5,f#6]@62 ~@35, ~@90 a5 ~@45 b5@23 a5@22 [g5,g6]@57 ~@98]/7", // F# A F# G
})).s("gm_string_ensemble_2").gain(0.19).pan(0.7)

// chords · flute
const flute = note("<~@37 A B C D@2 ~@4 E@3 ~@13 F@2 ~@13>".pickRestart({
  A: "~@37 b4@11", B: "~ a4@8 ~ g4@24 ~@3 [b4,d5]@11", C: "~ [a4,d5]@8 ~ [g4,b4]@25 ~@2 [b5,d6]@11",
  D: "[~ [a5,d6]@8 ~ [g5,b5]@52 ~@34]/2", E: "[~@14 [a4,c#5]@24 [a4,d5]@24 ~ b4@47 ~@34, ~@62 e5@47 ~@35]/3",
  F: "[~@2 c#5@23 ~@12 b4@58 ~, ~ a4@17 ~@30, ~@25 d5@70 ~]/2",
})).s("gm_flute").gain(0.27)

// bass · electric bass finger
const bass = note("<~@41 A@2 B@8 C@8 D@2 E F G@7 H@7>".pickRestart({
  A: "[~@7 g2@12 g3@12 f#2@12 ~@5]/2",
  B: "[~@2 e3@11 ~ e2@24 a2@23 ~ d3@48 g2@42 g3@6 f#3@24 b2@21 f#3@2 ~ e3@47 ~ a2@42 a2@5 ~ g2@24 g3@24 f#2@24 ~@10]/8",
  C: "[~@2 e3@11 ~ e2@24 a2@23 ~ d2@48 g2@40 ~ g2@5 ~ f#2@16 ~@2 a2@3 b2@3 b2@23 e2@35 e3@6 b2@3 e2@3 a2@19 ~ a2@2 ~ a1@20 ~@3 b1@5 ~ b1@12 ~@2 b1@2 ~ d2@3 e2@5 ~ f2@6 f#2@5 ~ g#2@3 a2@18 ~@2 a2@2 ~ a2@11 ~ a2@2 e2@3]/8",
  D: "[f#2@4 ~@2 g2@18 ~@3 g2@2 ~ g2@12 ~@2 g2@2 ~ c#2@5 ~ d2@18 ~@2 d2@2 ~ d2@6 d2 ~@13]/2", E: "~@4 g2@39 ~ g2@4",
  F: "~@2 f#2@23 b2@23",
  G: "[~ e2@43 g2@2 ~ a2@70 e3@45 ~ a2@43 ~ a2 ~@2 e2@41 ~@3 e2@2 ~@2 a2@22 ~@46 g2@10, ~@5 d2]/7",
  H: "[~@3 f#2@12 ~ e2@48 ~@2 a1@24 d2@45 ~ g2@22 ~ f#2@22 e2@57 ~ d2@62 ~@35]/7",
})).s("gm_electric_bass_finger").gain(0.48)

// drums · kick
const kick = s("bd").struct("<~@23 A ~ A ~@19 B ~@7 C D E F G H I J A ~@15>".pickRestart({
  A: "x", B: "~@41 x ~@2 x ~@3", C: "~@7 x ~@11 x ~@2 x ~", D: "~@10 x ~@2 x ~@34", E: "~@12 x ~@22 x ~@5 x ~@6",
  F: "~@8 x ~@2 x ~@22 x ~@13", G: "~@6 x ~@2 x ~@19 x ~@2 x ~@5 x ~@9", H: "~@5 x ~@2 x ~@7 x ~@14 x ~@8 x ~@7",
  I: "~@3 x ~@2 x ~@5 x ~@14 x ~@2 x ~@4 x ~@12", J: "~@2 x ~@5 x ~@2 x ~@16 x ~@5 x ~@13",
})).gain(0.72)

// drums · snare
const snare = s("sd").struct("<~@52 A B C D E F G H I ~@16>".pickRestart({
  A: "~@19 x ~@4", B: "~@13 x ~@10", C: "~@2 x ~@16 x ~@9 x ~ x ~@16", D: "~@24 x ~@22 x", E: "~@28 x ~@16 x ~@2",
  F: "~@21 x ~@22 x ~@3", G: "~@19 x ~@28", H: "~@18 x ~@22 x ~@6", I: "~@2 x ~@2 x",
})).gain(0.48)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@50 [~@11 x] [~ x ~@2 x ~@19] [~@2 x] ~@24>").gain(0.24)

// drums · low tom
const low_tom = s("lt").struct("<~@22 A B C ~@20 D ~@2 E F ~@3 G H I J K ~@2 L M ~@15>".pickRestart({
  A: "~@18 x ~ x!2 ~@2", B: "~@6 x!2 ~@4", C: "~@2 x!2 ~@7 x!5 ~@4 x ~@2 x", D: "~@2 x ~@2 x ~@2 x ~@39",
  E: "~@41 x!3 ~@4", F: "~@2 x ~@2 x ~@6 x ~ x ~@33", G: "~ x ~@4", H: "~@11 x ~@12", I: "x ~ x ~@2 x ~@18",
  J: "~@15 x", K: "x!3 ~@13", L: "~@13 x ~@10", M: "~ x ~@14",
})).gain(0.48)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@47 [~@11 x!4 ~@33] ~@29>").gain(0.24)

// drums · hihat
const hihat = s("hh").struct("<~@48 A ~@4 B C D E F G H I ~@16>".pickRestart({
  A: "~@19 x ~@4", B: "~@10 x ~@2 x ~@2 x ~@2 x ~@2 x ~", C: "~@2 x ~@4 x ~@40",
  D: "~@18 x ~@5 x ~@4 x ~@5 x ~@5 x ~@5 x", E: "~@5 x ~@10 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4 x ~@2",
  F: "~@3 x ~@11 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x ~@3", G: "~@2 x ~@10 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~@4",
  H: "x ~@11 x ~@5 x ~@5 x ~@5 x ~@4 x ~@5 x ~@5 x", I: "~@11 x ~@4 x ~@5 x ~@5 x ~@5 x ~@5 x ~@5 x ~",
// … 37 more lines

More by Battisti