Strudelify

Questo piccolo grande amore

Baglioni Claudio

KeyA majorTempo80 bpm
0:00/0:00
// Questo piccolo grande amore — Baglioni Claudio
// 80 bpm, 4/4, key A major. 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 78 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@25 A ~ B@3 C@2 D@8 ~@19 E@2 ~ F G H I@8 J@2 ~@3>".pickRestart({
  A: "~ e3@2 c#3@2 d3@2 ~ c3 ~@2 b2@2 a2@2 b2@2 ~@15, ~@7 e3@2 ~ c#3@2 ~@20",
  B: "[~@17 e4@12 ~@12 d5@7 ~ c#5@12 d5@4 e5@15 ~ [f#4,d5,f#5]@15, ~@29 e5@12 ~@55, ~@33 g#4@16 a4@31 ~@16]/3", // D
  C: "[~ [a4,c#5,e5]@16 [d4,b4,d5]@16 [c#4,a4,c#5]@15 ~ [d4,g4]@15, ~@17 f#4@31 [b4,d5]@16]/2", // A G F#m G5 Bm
  D: "[~ [f#4,d5]@16 ~@16 [c#4,c#5]@15 ~ [f#4,d5,f#5]@16 [e4,c#5,e5]@16 [d4,b4,d5]@16 [c#4,a4,c#5]@16 [b3,g4,b4]@15 ~ [a3,f#4]@16 [b3,g4,b4]@16 [a3,f#4,a4]@15 ~ b3@15 [f#4,a4]@8 ~@2 a4 ~@6 d5@15 ~ c#5@10 ~@21, ~ a4@40 ~@8 a4@32 ~@32 d5@95 ~@48, ~@17 [e4,e5]@32 ~@32 f#4@31 ~@16 a4@16 ~@32 [g4,b4]@16 ~@9 [g4,b4]@8 a4@26 ~@21, ~@17 [d4,d5]@16 ~@80 d4@112 ~@31, ~@29 a5@20 ~@207]/8", // D C# D C#m G F#m Em D …
  E: "[~@25 e3@2 c#3@2 d3@2 ~ c3 c#3@2 b2@2 a2@2 b2@2 ~@23, ~@31 e3@2 ~@31]/2", F: "~@9 e4@12 ~@4 g#4@7, ~@21 e5@11",
  G: "~ d5@7 ~ c#5@12 d5@4 e5@7, ~@9 a4@23", H: "~@9 [f#4,d5,f#5]@16 [a4,c#5,e5]@7",
  I: "[~@9 [d4,b4,d5]@16 [c#4,a4,c#5]@15 ~ g4@16 [f#4,d5]@16 ~@16 [c#4,c#5]@15 ~ [f#4,d5,f#5]@16 [e4,c#5,e5]@16 [d4,b4,d5]@16 [c#4,a4,c#5]@16 [b3,g4,b4]@15 ~ [a3,f#4]@16 [b3,g4,b4]@16 [a3,f#4,a4]@15 ~ b3@15 [f#4,a4]@8, ~@9 f#4@31 [b4,d5]@16 ~ a4@40 ~@8 a4@32 ~@47 a4@16 ~@32 [g4,b4]@16 ~@8, ~@41 d4@31 ~ e5@33 ~@150, ~@73 e4@30 ~@34 f#4@31 ~ [d4,d5]@87, ~@73 [d4,d5]@12 a5@20 ~@151]/8", // G F#m D C# D C#m G F#m …
  J: "[~@2 a4 ~@6 d5@15 ~ c#5@10 ~@29, ~ [g4,b4]@8 a4@26 ~@29]/2", // G
})).s("gm_string_ensemble_1").gain(0.14)

// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<~@21 A@8 ~@27 B@8 ~@14>".pickRestart({
  A: "[~@17 f#4@16 f4@15 ~@13 b4@4 c#5@8 ~@20 e5@4 g#4@15 ~ [a4,c#5]@32 f#4@8 ~@16 b4@7 a4@13 b4@4 c#5@8 ~@8 b4@32 ~@15, ~@17 [g#4,c#5]@31 a4@13 ~@12 a4@20 ~@60 g#4@24 ~@24 a4@25 ~@30, ~@49 f#4@32 [e4,b4]@33 ~@31 c#3@16 f4@16 ~@79, ~@39 c#5@3 ~@2 f#4@8 ~@12]/8", // A C#5 E5
  B: "[~@9 f#4@16 f4@15 ~@13 b4@4 c#5@8 ~@20 e5@4 g#4@15 ~ [a4,c#5]@32 f#4@8 ~@16 b4@7 a4@13 b4@4 c#5@8 ~@8 b4@32 ~@23, ~@9 [g#4,c#5]@31 a4@13 ~@12 a4@20 ~@60 g#4@24 ~@24 a4@25 ~@38, ~@41 f#4@32 [e4,b4]@32 ~@32 c#3@16 f4@16 ~@87, ~@37 c#5@3 ~@2 f#4@8 ~@14]/8", // A C#5 E5
})).s("gm_string_ensemble_1").gain(0.05)

// chords · piano · "A.PIANO"
const piano = note(`<
  A B C@3 D E F G H I@2 J K L@2 M N O P@3 Q@2 R@4 S@2 T U V@2 W X@2 Y Z AA@5 AB@4 AC@8 AD@8 AE AF AG AH@3 AI@3 AJ@5
>`.pickRestart({
  A: "~@9 d4@4 b3 c#4@18, ~ [d3,a3,a4]@12 [a2,e3,e4]@19, ~ e4@4 e4@8 ~@19, ~@2 f#4@11 ~@19", // D5 A5
  B: "~@9 d4@4 b3 c#4@18, ~ [d3,a3,a4]@12 [a2,e3,e4]@19, ~ e4@4 e4@7 ~@20, ~ f#4@5 ~@10", // D5 A5
  C: "[~ a3 ~@7 g3@4 e3 ~@11 d3@5 ~@3 [e3,a3]@32 e4 ~@3 e4@8 b3 c#4@18, ~ [g2,d3,d4]@12 [d2,a2,a3]@17 [e2,a2]@35 ~@31, ~@2 b3@11 ~@8 e3@11 c#3@33 ~ f#4@11 e4@19, ~@5 a3@8 ~ f#3@18 ~@33 a4@12 ~@19]/3", // A5 G5 D5 A5
  D: "~ e4 ~@7 d4@4 [a2,e3,e4]@19, ~ [d3,a3,a4]@13 ~@18, ~ f#4@6 ~@9, ~@5 e4@8 b3 ~@18", // A5 D5
  E: "~ a3 ~@7 g3@4 e3 ~@11 d3@7, ~ [g2,d3,d4]@12 [d2,a3]@19, ~@7 f#3@9, ~@21 e3@11", F: "~ g#3@31, ~ d#3 ~@30",
  G: "~@17 [b3,e4,g#4]@8 [e4,g#4]@7, ~ f#3@31, ~@17 [e2,e3]@15", // E
  H: "~ [d4,f#4]@8 [a3,d4,f#4]@4 b3 ~ a3@6 ~@8 e4@3, ~ d3@11 ~@3 [a2,e3]@17, ~ a3@4 ~@10 [c#4,e4]@12 c#4@5, ~@25 [b3,a4]@7", // D A5 C#m B7
  I: "[~ [e4,g#4]@8 [b3,e4,g#4]@7 ~ [d4,f#4]@8 [a3,d4,f#4]@4 b3@2 a2@26 ~@4 g#2@3, ~ e3@15 ~ e3@14 [e3,a3,c#4,e4]@33, ~ b3@4 ~@12 a3@4 ~@43]/2", // E D A
  J: "~ [a3,c#4,f#4]@8 [a3,c#4,f#4]@7 ~ [b3,e4,g#4]@8 [b3,e4,g#4]@7, ~ f#2@15 ~ e3@12 ~@3", // F#m E
  K: "~ [d4,f#4]@8 [a3,d4,f#4]@4 b3@2 [a2,e3,c#4,e4,a4]@17, ~ d3@14 ~@17, ~ a3@4 ~@10 a3@8 ~@9", // D A
  L: "[~ [e4,g#4]@8 [b3,e4,g#4]@8 [d4,f#4]@8 [a3,d4,f#4]@4 b3@2 [a2,e3,a3,c#4,e4,a4]@33, ~ e2@16 [e2,e3]@14 ~@33, ~ e3@12 ~@51, ~ b3@4 ~@12 a3@4 ~@43]/2", // E D A E
  M: "~ [a2,a3,b3,d4,f#4]@6 [b3,d4,f#4]@10 [a3,c#4,e4]@8 [a3,c#4,e4]@7, ~@17 [e3,a4]@15", // Bm7 Bm A A5
  N: "~ [a2,b3,d4,f#4]@6 [d3,a3,d4,f#4]@8 d2@2 [a3,c#4,e4]@8 e4@7, ~@17 a2@15", // Bm7 D A
  O: "~ [b3,d4,f#4]@6 [b3,d4,f#4]@10 [a3,c#4,e4]@8 [c#4,e4]@7, ~ a2@16 [a2,a4]@15, ~@25 a3@4 ~@3", // Bm A C#m A
  P: "[~ [a2,b3,d4,f#4]@5 ~ [d3,a3,d4,f#4]@64 ~@10 [f#4,g#4,c#5]@8 [f#4,g#4,c#5]@7, ~@27 [c#2,c#3]@5, ~@27 c#4@4 ~]/3", // Bm7 D F#sus2 C#
  Q: "[~ [c#3,f4,g#4]@8 [f4,g#4]@7 ~ [c#4,f#4]@8 [c#4,f#4]@8 [c#4,f#4]@8 a3@4 a3@3 ~ [e4,a4]@8 b3@4 b3@3, ~ c#5@15 ~ a3@4 ~@4 a3@4 ~@4 a3@4 ~@4 [c#4,f#4]@7 ~ b3@4 ~@4 [e4,a4]@7, ~ c#4@4 ~@4 c#4@4 ~@4 f#3@31 ~ e3@15]/2", // C# Fm F#5 A5 F#5 A5
  R: "[~ b3@4 b3@4 b3@4 b3@4 a3@4 a3@4 ~@20 a3@4 [f#4,g#4,c#5]@8 ~@8 [f4,g#4,c#5]@8 c#4@4 c#4@4 [c#4,f#4]@8 a3@4 a3@4 [c#4,f#4]@8 a3@4 a3@4 b3@4 b3@4 b3@4 b3@3, ~ [e2,e3]@16 [a2,e3]@32 c#3@14 c#3@18 a3@4 ~@4 [c#4,f#4]@8 a3@4 ~@4 [c#4,f#4]@8 ~@15, ~ [e4,g#4]@8 [e4,g#4]@8 [c#4,e4,a4]@8 [c#4,e4,a4]@8 [c#4,e4,a4]@8 [c#4,e4,a4]@8 c#4@4 ~@4 [f#4,g#4,c#5]@8 c#4@4 ~@4 [f4,g#4,c#5]@8 ~@32 [e4,a4]@8 [e4,a4,b4]@7, ~@29 a3@8 a3@8 ~@16 c#4@4 g#3@16 f#3@32 e3@15]/4", // F#sus2 C# F#5 E A5 F#5 E A …
  S: "[~ [b3,g#4]@4 b3@4 b3@4 b3@3 ~ a3@4 a3@4 a3@4 ~@6 e3@2 ~@2 [a2,e3,e4,a4]@2 [a2,e3,g3,a3,c#4,e4,a4]@2 [a2,e3,g3,a3,c#4,e4,a4]@2 a3@2 a3@2 a3@4 a3@4 [a3,d4,f#4]@7, ~ e3@15 ~ [a2,e3]@14 e3@4 ~@29, ~ e4@8 [e4,g#4]@7 ~ [c#4,e4,a4]@8 [c#4,e4,a4]@8 a2@4 ~@8 [a2,e3,g3,c#4,e4,a4]@19, ~@29 a3@4 [a3,c#4,e4,a4]@8 ~@8 [d4,f#4]@8 ~@7]/2", // E A5 A7 D A5 E A A7 …
  T: "~ [c#4,e4]@8 a3@4 a3@3 ~ [d4,f#4]@8 [d4,f#4]@7, ~ a3@4 ~@4 [c#4,e4]@7 ~ b3@4 ~@4 b3@4 ~@3", // C#m D C#m
  U: "~ [c#4,f#4]@8 a3@4 a3@4 b3@4 ~@8 a4@3, ~ a3@4 ~@4 [c#4,f#4]@8 g4@15, ~@17 d4@8 a4@2 b4@5, ~@21 b3@11, ~@25 d5@7", // F#5
  V: "[~@5 d4@4 a3@4 a3@3 ~ a3@2 ~@12 a5@2 ~@4 a3@4 a3@4 a3@4 [a3,d4,f#4]@8 a3@4 a3@3, ~ e4@15 ~ [e4,a4]@6 e4@10 a4@8 [c#4,e4,a4]@8 ~@15, ~ a4@8 ~@10 a3@10 e5@4 [c#5,e5,a5]@15 ~@16, ~@3 f#4@6 [d4,f#4,a4]@7 ~ d4@4 d4@28 ~@8 [d4,f#4]@7, ~@25 a4@2 d5@22 ~@15]/2", // D A5 A D
  W: "~ a3@4 ~@8 a3@4 [b3,d4,f#4]@8 b3@4 b3@3, ~ [c#4,e4]@8 [c#4,e4,a4]@8 ~@8 [d4,f#4]@7, ~@5 a3@8 ~@19", // Bm C#m A D
  X: "[~ [c#4,f#4]@8 a3@4 a3@3 ~ b3@4 ~@10 b4@2 ~@6 a3@4 a3@2 a3@4 [d4,g4]@8 b3@4 b3@3, ~ a3@4 ~@4 [c#4,f#4]@7 ~ [d4,g4]@15 ~ [e4,a4]@16 ~@8 [d4,g4]@7, ~@21 b3@12 ~@4 d4@6 [d4,f#4]@6 b3@4 ~@11, ~@25 [a4,d5]@4 [a4,d5]@4 ~@2 f#4@8 ~@21, ~@27 b4@4 ~@33]/2", // F#5 G5 F#5 G5 A5 G5 D D5
  Y: "~ a3@4 a3@4 ~@4 d4@3 ~ [d4,g4]@8 b3@4 b3@3, ~ [d4,f#4]@10 f#4@5 ~@16, ~@9 [a3,e4,a4]@7 ~ b3@4 ~@4 [d4,g4]@7", // G5 D A5 G5
  Z: "~ a3@4 a3@4 b3@4 b3@4 a3@4 ~@8 a3@3, ~ [d4,f#4]@8 [d4,g4]@8 [d4,a4]@8 [d4,f#4,a4]@7, ~@21 a3@8 ~@3", // D G5 D5 D
  AA: "[~ [b3,c#4,e4,a4]@14 ~@10 e4 ~@7 d4@4 [a2,e3,e4]@20 a3 ~@7 g3@4 e3 ~@11 d3@8 g#3@32 ~@16 [b3,e4,g#4]@8 [e4,g#4]@8 [d3,d4,f#4]@7, ~@25 [d3,a3,a4]@12 ~@20 [g2,d3,d4]@13 f#3@19 ~@32 f#3@31 ~ a3@4 ~@3, ~@26 f#4@11 ~@40 e3@12 d#3 ~@70, ~@29 e4@8 b3 ~@31 [d2,a3]@20 ~@48 [e2,e3]@16 ~@7]/5", // A A5 E D D5 G5 D5 E
  AB: "[~ [a3,d4,f#4]@4 b3 ~ a3@6 ~@8 e4@4 [e4,g#4]@8 [b3,e4,g#4]@7 ~ [d4,f#4]@8 [a3,d4,f#4]@4 b3@2 a2@26 ~@4 g#2@4 [a3,c#4,f#4]@8 [a3,c#4,f#4]@7 ~ [b3,e4,g#4]@8 [b3,e4,g#4]@7 ~ [d3,d4,f#4]@7, ~@7 [a2,e3]@18 e3@15 ~ e3@14 [e3,a3,c#4,e4]@33 ~ f#2@15 ~@24, ~@7 [c#4,e4]@12 c#4@6 ~@96 a3@4 ~@3, ~@17 [b3,a4]@8 b3@4 ~@12 a3@4 ~@60 e3@12 ~@11]/4", // D E D F#m E D A5 A …
  AC: "[~ [a3,d4,f#4]@4 b3@2 [a2,e3,c#4,e4,a4]@18 [e4,g#4]@8 [b3,e4,g#4]@8 [d4,f#4]@8 [a3,d4,f#4]@4 b3@2 [a2,e3,a3,c#4,e4,a4]@33 ~ [a2,a3,b3,d4,f#4]@6 [b3,d4,f#4]@10 [a3,c#4,e4]@8 [a3,c#4,e4]@8 [a2,b3,d4,f#4]@6 [d3,a3,d4,f#4]@8 d2@2 [a3,c#4,e4]@8 e4@8 [b3,d4,f#4]@6 [b3,d4,f#4]@10 [a3,c#4,e4]@8 [c#4,e4]@7 ~ [a2,b3,d4,f#4]@5 ~ [d3,a3,d4,f#4]@64 ~, ~@7 a3@8 ~@10 e2@16 [e2,e3]@14 ~@82 a2@16 a2@16 [a2,a4]@15 ~@72, ~@25 e3@12 ~@68 [e3,a4]@16 ~@135, ~@25 b3@4 ~@12 a3@4 ~@132 a3@4 ~@75]/8", // D A E D A Bm7 Bm A …
  AD: "[~@9 [f#4,g#4,c#5]@8 [f#4,g#4,c#5]@8 [c#3,f4,g#4]@8 [f4,g#4]@7 ~ [c#4,f#4]@8 [c#4,f#4]@8 [c#4,f#4]@8 a3@4 a3@3 ~ [e4,a4]@8 b3@4 b3@4 b3@4 b3@4 b3@4 b3@4 a3@4 a3@4 ~@20 a3@4 [f#4,g#4,c#5]@8 ~@8 [f4,g#4,c#5]@8 c#4@4 c#4@4 [c#4,f#4]@8 a3@4 a3@4 [c#4,f#4]@8 a3@4 a3@4 b3@4 b3@4 b3@4 b3@4 [b3,g#4]@4 b3@4 b3@4 b3@3 ~ a3@4 a3@4 a3@4 ~@6 e3@2 ~@2 [a2,e3,e4,a4], ~@9 [c#2,c#3]@16 c#4@4 ~@4 c#4@4 ~@4 f#3@31 ~ e3@16 [e2,e3]@16 [a2,e3]@32 c#3@14 c#3@18 a3@4 ~@4 [c#4,f#4]@8 a3@4 ~@4 [c#4,f#4]@8 ~@32 [c#4,e4,a4]@8 [c#4,e4,a4]@6 e3@4 ~@5, ~@9 c#4@12 ~@4 c#5@15 ~ a3@4 ~@4 a3@4 ~@4 a3@4 ~@4 [c#4,f#4]@7 ~ b3@4 ~@4 [e4,a4]@8 [e4,g#4]@8 [e4,g#4]@8 [c#4,e4,a4]@8 [c#4,e4,a4]@8 [c#4,e4,a4]@8 [c#4,e4,a4]@8 c#4@4 ~@4 [f#4,g#4,c#5]@8 c#4@4 ~@4 [f4,g#4,c#5]@7 ~@33 [e4,a4]@8 [e4,a4,b4]@8 e4@8 [e4,g#4]@7 ~@13 a3@4 [a3,c#4,e4,a4]@7, ~@117 a3@8 a3@8 ~@16 c#4@4 g#3@16 f#3@32 e3@15 ~ e3@15 ~ [a2,e3]@16 a2@4 ~@3]/8", // F#sus2 C# Fm F#5 A5 F#sus2 C# F#5 …
  AE: "~ [a2,e3,g3,a3,c#4,e4,a4]@2 [a2,e3,g3,a3,c#4,e4,a4]@2 a3@2 a3@2 a3@4 a3@4 [a3,d4,f#4]@8 [c#4,e4]@7, ~@5 [a2,e3,g3,c#4,e4,a4]@21 ~@6, ~@9 [d4,f#4]@8 ~@8 a3@4 ~@3", // A7 D C#m A7 D
  AF: "~ a3@4 a3@3 ~ [d4,f#4]@8 [d4,f#4]@8 [c#4,f#4]@7, ~ [c#4,e4]@7 ~ b3@4 ~@4 b3@4 ~@4 a3@4 ~@3", // D F#5 C#m
  AG: "~ a3@4 a3@4 b3@4 ~@8 a4@4 e4 ~@3 d4@3, ~ [c#4,f#4]@8 g4@16 a4@7, ~@9 d4@8 a4@2 b4@6 ~@2 f#4@5, ~@13 b3@12 ~@7, ~@17 d5@8 ~@7", // F#5
  AH: "[~ a3@4 a3@3 ~ a3 ~@13 a5@2 ~@4 a3@4 a3@4 a3@4 [a3,d4,f#4]@8 a3@4 a3@3 ~ a3@4 ~@8 a3@4 [b3,d4,f#4]@8 b3@4 b3@4 [c#4,f#4]@7, ~ [d4,f#4,a4]@7 ~ [e4,a4]@6 e4@10 a4@8 [c#4,e4,a4]@8 ~@16 [c#4,e4]@8 [c#4,e4,a4]@8 ~@8 [d4,f#4]@8 ~@7, ~@9 d4@4 d4@28 ~@8 [d4,f#4]@7 ~@5 a3@8 ~@20 a3@4 ~@3, ~@11 a3@10 e5@4 [c#5,e5,a5]@16 ~@55, ~@17 a4@2 d5@22 ~@55]/3", // D Bm F#5 D A5 A C#m A …
  AI: "[~ a3@4 a3@3 ~ b3@4 ~@10 b4@2 ~@6 a3@4 a3@2 a3@4 [d4,g4]@8 b3@4 b3@4 a3@4 a3@4 ~@4 d4@3 ~ [d4,g4]@8 b3@4 b3@4 a3@4 a3@3, ~ [c#4,f#4]@7 ~ [d4,g4]@16 [e4,a4]@16 ~@8 [d4,g4]@8 [d4,f#4]@12 ~@12 [d4,g4]@8 [d4,f#4]@7, ~@13 b3@12 ~@4 d4@6 [d4,f#4]@6 b3@4 ~@20 [a3,e4,a4]@7 ~ b3@4 ~@19, ~@17 [a4,d5]@4 [a4,d5]@4 ~@2 f#4@8 ~@32 f#4@5 ~@24, ~@19 b4@4 ~@73]/3", // G5 F#5 G5 A5 G5 D G5 D …
  AJ: "[~ b3@4 b3@4 a3@4 ~@8 a3@4 ~ a4@13 ~@10 d4@4 b3 ~ c#4@18 a3 ~@7 g3@4 e3 ~@11 d3@6 ~@3 a3@47 ~@7, ~ [d4,g4]@8 [d4,a4]@8 [d4,f#4,a4]@8 ~@16 e4@4 e4@8 ~@20 [g2,d3,d4]@11 ~ [d2,a2,a3]@18 e2@50 ~@7, ~@13 a3@8 ~@4 [b3,c#4,e4]@13 ~@3 [d3,a3,a4]@12 [e3,e4]@21 b3@11 ~@8 e3@11 a2@49 ~@7, ~@43 f#4@11 ~@23 a3@8 ~ f#3@19 [c#3,e3]@49 ~@6]/5", // G5 D5 D G5 D5 C#m7 D5 E …
})).s("gm_piano").gain(0.61)

// chords · piano · "A.PIANO" · soft notes
const piano_soft = note(`<
  ~@4 A B C D E F G H I J K ~ L M@2 ~@2 N O P Q R S T U V W X ~@3 T Y@2 ~@2 Z@4 AA AB AC AD AE AF AG@2 AH AI ~@2 AJ AK
  AL AM AN AO AP AQ@2 AR AS ~@2 AT ~ AL@2 ~ AU@2 ~@2
>`.pickRestart({
  A: "~@9 d4@4 [a2,e3]@19, ~ [d3,a3]@12 ~@19", B: "~@7 c#4@9", C: "~@5 a3@8 a2@19, ~@2 b3@11 ~@19",
  D: "~@17 c#3@15, ~ [c#2,g#2,f3]@31, ~@7 d#3@9", E: "~@25 b3@4 b3@3, ~ [f#2,c#3,c#4,f#4]@31",
  F: "~@5 a3@4 ~@12 a3@2 a3@9", G: "~@5 b3@4 ~@12 a3@4 ~@7", H: "~@25 a2@7", I: "~@29 e3@3", J: "~@5 a3@4 ~@14 a3@9",
  K: "~@5 b3@4 ~@4 e3@4 ~@4 a3@4 ~@7", L: "~@7 [a2,a3]@10 a2@15",
  M: "[~@25 a3@4 ~@2 e3@2 ~@28 a3@2 a2, ~@25 [e3,c#4]@8 ~@31, ~@29 a3@4 ~@31]/2", N: "~@29 c#4@3",
  O: "~@5 c#4@4 ~@4 c#4@3 ~@5 a3@4 ~@4 a3@3, ~@11 c#3@5 ~@16", P: "~@5 a3@4 ~@12 b3@4 ~@7", Q: "~@25 a3@4 ~@3",
  R: "~@21 c#4@8 ~@3", S: "~@5 c#4@4 ~@12 a3@4 ~@7", T: "~@5 a3@4 ~@23", U: "~@5 g#4@4 ~@23",
  V: "~@5 [a2,e3]@2 c#4@2 ~@23", W: "~@5 a3@4 ~@12 b3@4 ~@4 b3@3", X: "~@5 a3@4 ~@20 d4@3", Y: "~@21 b3@4 ~@7",
  Z: "[~@6 c#4@19 ~@4 a3@8 a2@20 ~@16 c#3@16 ~@24 b3@4 b3@4 ~@4 a3@3, ~@26 b3@11 ~@20 [c#2,g#2,f3]@32 [f#2,c#3,c#4,f#4]@32 ~@7, ~@70 d#3@19 ~@39]/4", // C# F#5
  AA: "~@13 a3@2 a3@10 ~@4 b3@3", AB: "~@13 a3@4 ~@15", AC: "~@17 a2@7 ~@8", AD: "~@21 e3@3 ~@5 a3@3",
  AE: "~@15 a3@10 ~@4 b3@3", AF: "~@5 e3@4 ~@4 a3@4 ~@15", AG: "[~@31 [a2,a3]@10 a2@16 ~@7]/2",
  AH: "~@17 a3@4 ~@2 e3@2 ~@7, ~@17 [e3,c#4]@8 ~@7, ~@21 a3@4 ~@7", AI: "~@21 a3@2 a2 ~@8", AJ: "~@21 c#4@4 ~@4 c#4@3",
  AK: "~@5 c#4@3 ~@5 a3@4 ~@4 a3@4 ~@4 a3@3, ~@3 c#3@5 ~@24", AL: "~@13 b3@4 ~@15", AM: "~@17 a3@4 ~@11",
  AN: "~@13 c#4@8 ~@8 c#4@3", AO: "~@13 a3@4 ~@12 a3@3", AP: "~@29 g#4@3", AQ: "[~@29 [a2,e3]@2 c#4@2 ~@28 a3@3]/2",
  AR: "~@13 b3@4 ~@4 b3@4 ~@4 a3@3", AS: "~@21 d4@4 ~@7", AT: "~@29 a3@3", AU: "[~@10 a2@11 ~@11]/2",
})).s("gm_piano").gain(0.23)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@16 A B C D@2 E F G H@2 I J K L M N O@3 P@3 Q R ~@10 S@6 T@7 U@2 V W@2 X@2 Y Z@2 AA@2 ~@3
>`.pickRestart({
  A: "~ a2@15 ~ a2@15", B: "~ a2@6 d3@10 a2@15", C: "~ a2@15 ~ a2@14 ~", D: "[~@7 d3@34 ~@23]/2", E: "~@17 c#3@15",
  F: "~ c#3@15 ~ f#2@15", G: "~ f#3@14 f#2@2 e3@12 b2@3", H: "[~ e2@16 a2@27 ~ a2@2 b2@2 c#3@15]/2",
  I: "~ c#3@16 f#2@15", J: "~ f#3@10 c#3@2 f#2@4 e3@12 b2@3, ~@29 a#2 ~@2", K: "~ e2@8 e3@8 a2@12 ~@3",
  L: "~ a3@6 a2@2 a3@2 e3@2 a2@4 d3@10 ~@2 d3@3", M: "~ c#3@8 c#4@6 ~@2 b2@11 ~ b2@3",
  N: "~ f#2@8 f#3@2 c#3@2 f#2@4 g2@12 g3@3",
  O: "[~ d3@10 ~@6 a2@12 g3@2 g#3@2 a3 ~ e3@2 a2@3 ~ a2@2 a3@2 e3@2 a2@2 d3@13 ~ d3@2 c#3@11 ~ c#3@4 b2@7 ~ b3@2 f#3@2 b2@3]/3",
  P: "[~ f#2@9 ~ c#3@2 f#3@4 g2@8 ~@2 g3@4 g2@2 d3@5 ~@5 d3@3 ~@3 g2@8 g3@2 d3@2 g2@4 d3@5 ~ d3@3 ~ d3@3 ~@3 g2@8 g3@2 d3@2 g2@3]/3",
  Q: "~ f#2@7 ~ g2@8 a2@15", R: "~ a3@12 ~@19",
  S: "[~@25 a2@15 ~ a2@15 ~ a2@6 d3@10 a2@15 ~ a2@15 ~ a2@14 ~@8 d3@34 ~@31]/6",
  T: "[~@10 c#3@15 c#3@15 ~@2 f#2@15 f#3@14 f#2@2 e3@12 b2@3 ~ e2@16 a2@27 ~ a2@2 b2@2 c#3@15 ~ c#3@16 f#2@16 f#3@10 c#3@2 f#2@4 e3@12 a#2 b2@3 e2@7]/7",
  U: "[~ e3@9 a2@12 ~@3 a3@6 a2@2 a3@2 e3@2 a2@4 d3@10 ~@2 d3@4 c#3@7]/2", V: "~ c#4@6 ~@2 b2@11 ~ b2@3 ~ f#2@7",
  W: "[~ f#3@2 c#3@2 f#2@4 g2@12 g3@4 d3@10 ~@6 a2@12 g3@2 g#3@2 a3 ~ e3@2 a2@3]/2",
  X: "[~ a2@2 a3@2 e3@2 a2@2 d3@13 ~ d3@2 c#3@11 ~ c#3@4 b2@8 b3@2 f#3@2 b2@3 ~ f#2@7]/2",
  Y: "~@3 c#3@2 f#3@4 ~ g2@8 ~ g3@4 g2@2 d3@5 ~@2",
  Z: "[~@3 d3@3 ~@3 g2@8 g3@2 d3@2 g2@4 d3@5 ~ d3@3 ~ d3@3 ~@3 g2@8 g3@2 d3@2 g2@4 f#2@7]/2",
  AA: "[~ g2@8 a2@16 a3@12 ~@27]/2",
})).s("gm_acoustic_bass").gain(0.43)

// bass · acoustic bass · "ACOU BASS" · soft notes
const bass_soft = note("<~@19 A ~@3 B ~@4 C@2 D ~@5 E F ~@15 G ~@4 H ~@4 I ~ J ~@4 K@2 L ~@5>".pickRestart({
  A: "~ a2@6 ~@25", B: "~@29 a#2 ~@2", C: "[~@31 a2@2 ~@31]/2", D: "~@15 c#3@2 ~@15", E: "~@7 d3@3 ~@5 d3@2 ~@15",
  F: "~@15 d3@2 ~@15", G: "~@25 a2@6 ~", H: "~@21 a#2 ~@10", I: "~@23 a2@2 ~@7", J: "~@7 c#3@2 ~@23",
  K: "[~@31 d3@3 ~@5 d3@3 ~@22]/2", L: "~@7 d3@3 ~@22",
})).s("gm_acoustic_bass").gain(0.27)

// drums · kick
const kick = s("bd").struct("<~@28 A@2 B C D A E F G H I J ~@23 K L M N O P Q R S T U ~@4>".pickRestart({
  A: "~@17 x ~@14", B: "~@3 x ~ x ~@9 x ~ x ~@3 x ~@10", C: "~ x ~ x ~ x ~@9 x ~ x ~@3 x ~@9 x",
  D: "~ x ~@3 x ~@9 x ~ x ~@3 x ~@9 x", E: "~@5 x ~@7 x ~@3 x ~@3 x ~@10", F: "~@5 x ~ x ~@7 x ~ x ~@3 x ~@10",
  G: "~ x ~@3 x ~@9 x ~ x ~@3 x ~@10", H: "~@5 x ~ x ~@5 x ~@3 x ~@3 x ~@10", I: "~ x ~@3 x ~ x ~@9 x ~@3 x ~@10",
  J: "~ x ~@30", K: "~@5 x ~@10", L: "~@9 x ~@17 x ~ x ~@2", M: "~@7 x ~ x ~@3 x ~@11 x ~ x ~ x ~@2",
  N: "~@7 x ~ x ~@3 x ~@9 x ~ x ~@3 x ~@2", O: "~@7 x ~ x ~@3 x ~@9 x ~@8", P: "~@9 x ~@19 x ~@2",
  Q: "~@5 x ~@3 x ~@3 x ~@15 x ~ x", R: "~@7 x ~ x ~@3 x ~@11 x ~@3 x ~@2", S: "~@7 x ~ x ~@3 x ~@15 x ~ x",
  T: "~@5 x ~@3 x ~@3 x ~@11 x ~@3 x ~ x", U: "~@9 x ~@3 x ~@11 x ~@6",
})).gain(0.43)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@34 A B ~@2 C ~@29 D E F ~@2 F ~@4>".pickRestart({
  A: "~@3 x ~@3 x ~@24", B: "~@3 x ~@27 x", C: "~@31 x", D: "~@27 x ~@3 x", E: "~@27 x ~@4", F: "~@23 x ~@8",
})).gain(0.21)

// drums · snare
const snare = s("sd").struct("<~@29 A B C@2 D E C B E F ~@24 G H I J K L M J I M N ~@4>".pickRestart({
  A: "~ x ~@3 x!4 ~@16 x ~@5 x", B: "~@9 x ~@15 x ~@5 x", C: "~@9 x ~@15 x ~@6", D: "~ x ~@2 x ~ x ~@18 x ~@6",
  E: "~@9 x ~@5 x ~@9 x ~@5 x", F: "~@9 x ~@5 x ~@9 x ~@6", G: "~@25 x ~@3 x!3", H: "x ~@16 x ~@5 x ~@8",
  I: "~ x ~@15 x ~@5 x ~@8", J: "~ x ~@15 x ~@14", K: "~ x ~@15 x ~@7 x ~@2 x ~ x ~", L: "~@17 x ~@14",
  M: "~ x ~@5 x ~@9 x ~@5 x ~@8", N: "~ x ~@5 x ~@9 x ~@14",
})).gain(0.71)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@29 A ~@3 B ~@3 C ~@25 D ~@3 E F ~@2 G ~@6>".pickRestart({
  A: "~@2 x!3 ~@27", B: "~@2 x ~@2 x ~@2 x ~@23", C: "~@3 x ~@28", D: "~@26 x!3 ~@3", E: "~@27 x ~ x ~@2", F: "x",
  G: "~@27 x ~@4",
})).gain(0.36)

// drums · low tom
const low_tom = s("lt").struct("<~@33 [~@17 x ~@14] ~@34 [~@9 x ~@22] ~@9>").gain(0.5)

// drums · hihat
const hihat = s("hh").struct("<A@28 B C D E@2 F G E@3 H I A@23 J K D L M K L@4 N ~@4>".pickRestart({
  A: "~ x ~@7 x ~@7 x ~@7 x ~@6", B: "~ x ~@7 x ~@22", C: "~@17 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  D: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  E: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", F: "~ x ~@15 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  G: "~@2 x!2 ~ x ~ x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  H: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@2", I: "~ x ~@15 x ~@7 x ~@6", J: "~ x ~@30",
  K: "~@9 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  L: "~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  M: "~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@6",
  N: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@3 x ~@6",
})).gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct("<~@29 A ~@3 B ~@30 C ~@3 D ~@9>".pickRestart({
  A: "~@14 x!3 ~@15", B: "~@13 x!2 ~ x ~@15", C: "~@6 x!3 ~@23", D: "~@5 x!2 ~ x ~@23",
})).gain(0.71)

// drums · open hat
const open_hat = s("oh").struct("<~@29 A ~ B@2 ~ B@4 C ~@24 C ~@2 A@2 ~ A@4 D ~@4>".pickRestart({
  A: "~@7 x ~@24", B: "~@15 x ~@16", C: "~@31 x", D: "~@23 x ~@8",
})).gain(0.29)

// drums · high tom
const high_tom = s("ht").struct("<~@29 A ~@3 B ~@30 C ~@3 D ~@9>".pickRestart({
  A: "~@9 x!3 ~ x ~@18", B: "~@9 x!2 ~ x ~@19", C: "~ x!3 ~ x ~@26", D: "~ x ~ x!2 ~@27",
})).gain(0.57)

// drums · high tom · soft notes
const high_tom_soft = s("ht").struct("<~@29 [~@3 x ~@4] ~@34 [~ x ~@6] ~@13>").gain(0.29)

// drums · crash
const crash = s("cr").struct("<~@29 A ~@3 A ~@30 B ~@3 B ~@9>".pickRestart({
  A: "~@17 x ~@14", B: "~@9 x ~@22",
})).gain(0.36)

// drums · ride
const ride = s("rd").struct("<~@28 A B C D C ~ D E F C G H ~@23 I C J K L M K N O P Q ~@4>".pickRestart({
  A: "~@17 x ~@7 x ~@5 x", B: "~@25 x ~@6", C: "~@17 x ~@14", D: "~@7 x ~@5 x ~@3 x ~@14", E: "~@9 x ~@7 x ~@14",
  F: "~@3 x ~@7 x ~@5 x ~@14", G: "~ x ~@7 x ~@7 x ~@14", H: "~ x ~@30", I: "~@10 x ~@6 x ~@5 x ~@8", J: "~@9 x ~@21 x",
  K: "~@5 x ~@3 x ~@22", L: "~@5 x ~@10", M: "~@31 x", N: "~ x ~@7 x ~@17 x ~@4", O: "~@3 x ~@5 x ~@22",
  P: "~@9 x ~@15 x ~@6", Q: "~ x ~@7 x ~@15 x ~@6",
})).gain(0.36)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@29 A B C D ~ C E B F G ~@25 H I J K ~ L I M N O ~@4>".pickRestart({
// … 9 more lines

More by Baglioni Claudio