Strudelify
Soli cover art

Collezione D'Oro

Soli

Celentano

KeyG minorTempo114 bpm
0:00/0:00
// Soli — Celentano
// 114 bpm, 4/4, key G minor. 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 119 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(114/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(`<
  ~@4 A B C D E F G H I J K L M N O P Q R C D E F G H I J K L M N O P Q S T U@2 V Q W X S T U@2 V Y Z AA AB AC B C D E F
  G H I J K L M N O P Q S T U@2 V Q W X S T U@2 V Y Z AA AB AC B C D E F G H I J K L M N O P Q AD@12 AE ~
>`.pickRestart({
  A: "~@21 bb1@2 ~ eb2@7 ~", B: "g1@9 ~@4 g1 ~@2 g1@11 ~@2 g1 ~@2", C: "d2@11 ~@2 c2 ~@2 d2@7 ~ bb1@7 ~",
  D: "g1@10 ~@3 g1 ~@2 d2@10 ~@3 g1 ~@2", E: "g1@10 ~@3 g1 ~@2 d2@7 ~ d2 ~@2 c2 ~ bb1@2 ~",
  F: "g1@10 ~@3 g1 ~@2 d2@10 ~@3 d2 ~@2", G: "g2@11 ~@2 f1 ~@2 g1@7 ~ b1@7 ~", H: "c2@10 ~@3 c2 ~@2 g2@10 ~@3 bb1 ~@2",
  I: "c2@10 ~@3 c2 ~@2 g2@5 c2 ~@2 c2@6 ~@2", J: "d2@10 ~@3 d2 ~@2 a2@11 ~@2 a2 ~@2",
  K: "d2@12 ~ d2 ~@2 e2@7 ~ gb2@7 ~", L: "g2@10 ~@6 d2@9 ~@4 d2 ~@2", M: "g2@10 ~@3 d2 ~@2 d2@7 ~ eb2@7 ~",
  N: "f2@10 ~@3 c2 ~@2 c2@11 ~@2 c2 ~@2", O: "f2@12 ~ f1 ~@2 g1@8 a1@8", P: "bb1@11 ~@2 a1 ~@2 bb1@7 ~ c2@7 ~",
  Q: "d2@11 ~@2 d2 ~@2 e2@7 ~ gb2@7 ~", R: "g2@9 ~@4 g1 ~@2 g1@11 ~@2 g1 ~@2", S: "g2@9 ~@4 d2 ~@2 d2@11 ~@2 d2 ~@2",
  T: "g2@11 ~@2 g2 ~@2 e3@7 ~ d3@7 ~", U: "a2@10 ~@3 d2 ~@2 d2@10 ~@3 d2 ~@2", V: "a2@11 ~@5 a1@10 ~@3 a1 ~@2",
  W: "g2@13 ~@3 gb2@7 ~ e2@7 ~", X: "d2@10 ~@3 d2 ~@2 e2@7 ~ gb2@7 ~", Y: "b1@11 ~@2 a1 ~@2 b1@7 ~ gb1@7 ~",
  Z: "e1@11 ~@2 b1 ~@2 e2@7 ~ e2 ~@2 e2@2 eb2@2 ~", AA: "d2@10 ~@3 bb1 ~@2 c2@5 ~@3 d2@5 ~@3", AB: "g1@31 ~",
  AC: "g1@28 ~ g1 ~@2", AD: "g1@12 ~ g2 ~@2 g2@12 ~ g1 ~@2", AE: "g1",
})).s("gm_fretless_bass").gain(0.4)

// other · flute
const flute = note(`<
  ~@19 A B ~@16 C@2 D@7 E F@3 G@3 H ~@15 A B C@2 D@7 E F@3 G@3 H I J@3 I K@4 L@2 M@2 N@5 ~ O@3 ~ O@3 ~ O@3 ~
>`.pickRestart({
  A: "bb6", B: "a6",
  C: "[~ b3 ~@2 e4 ~@7 f5@2 ~@4 d6@2 ~@3 a6 b6 c7@3 ~ a6@2 ~ f6@2 ~@2 c6@2 ~ a5@2 ~@2 e5@2 ~@2 b4@2 ~@4 d4@2 ~ b3@3 c4 d4 [e4,f4] g4 a4, ~@2 c4@2 ~@2 g4@2 b4@2 d5@2 ~@3 a5@2 c6@2 ~ e6@2 g6@2 ~@4 b6@2 ~@5 d6@2 ~ b5@2 ~ g5@2 ~@3 c5@2 ~ a4@2 f4@2 ~@11, ~@3 d4@2 f4@2 a4@2 c5@2 e5@2 ~ g5@2 b5@2 ~@3 f6@2 ~@8 g6@2 ~ e6@2 ~@6 f5@2 ~ d5@2 ~@3 g4@2 e4@2 ~ c4@2 ~@7]/2", // Fmaj7
  D: "[b4 c5 ~ e5@2 ~@2 a5@2 ~@4 f6@2 ~@3 c7@2 ~ e7@4 ~@2 a6@2 ~@3 d6@2 ~@3 g5@4 a5@2 [b5,c6] ~ e6@2 ~@2 a6@2 ~ c7@4 b6@2 ~@6 b5@2 ~@4 d5@2 ~@2 a4@2 ~@2 e4@2 ~ c4@4 [d4,e4] f4 g4 ~@2 c5@2 ~ e5@2 ~@2 a5@2 ~@3 e6@2 ~@3 b6 ~ d7@2 e7@3 ~ c7@2 b6@2 ~@3 e6@2 ~@5 f5@2 ~@2 c5@2 ~@4 e4@3 f4 g4 a4 b4 ~@3 f5@2 ~ a5@2 ~ c6@2 ~@2 f6@2 ~ a6@2 b6@2 a6 ~@7 g5@2 ~@2 d5@2 ~@2 a4@2 ~@2 e4@4 ~@2 a4@2 ~ c5@2 d5@2 e5@2 ~ g5@2 ~ b5@2 ~@2 e6@2 ~@2 a6@2 ~ c7@4 ~@2 g6@2, ~@2 d5@2 ~ f5@2 ~@3 c6@2 e6@2 ~ g6@2 b6@2 ~ d7@2 ~@3 d7@2 b6 ~ g6@2 e6@2 ~ c6@2 a5@2 ~@10 g6@2 ~ b6@2 ~@5 a6@2 f6@2 d6@2 ~@3 g5@2 e5@2 ~ c5@2 ~@3 f4@2 ~ d4@3 ~@6 b4@2 ~ d5@2 ~ f5@2 ~@3 c6@2 ~@3 g6@2 ~@12 a6@2 f6@2 ~ d6@2 b5@2 g5@2 ~ e5@2 ~@3 a4@2 f4@2 ~@7 d5@2 ~@9 e6@2 ~ g6@2 ~@4 g6@2 e6@2 c6@2 a5@2 ~ f5@2 ~@3 b4@2 ~ g4@2 ~@5 g4@2 ~ b4@2 ~@5 f5@2 ~ a5@2 ~ c6@2 ~@3 g6@2 ~ b6@2 ~@3 b6@2 ~@2, ~@6 g5@2 ~ b5@2 d6@2 ~@3 a6@2 ~@8 c7@2 ~@2 f6@2 ~@3 b5@2 ~@7 d6@2 ~ f6@2 ~@10 g6@2 e6@2 c6@2 ~ a5@2 f5@2 ~@3 b4@2 ~ g4@2 ~@10 a4@2 ~@6 g5@2 ~ b5@2 d6@2 ~ f6@2 a6@2 c7@2 ~@4 d7@2 ~@4 g6@2 ~@3 c6@2 a5@2 ~@3 d5@2 ~ b4@2 g4@2 ~@7 c5@2 e5@2 ~ g5@2 ~ b5@2 ~ d6@2 ~@9 f6@2 d6@2 b5@2 ~@3 e5@2 ~ c5@2 ~@3 f4@2 ~@3 f4@2 ~@16 d6@2 ~ f6@2 ~@8 a6@2 ~]/7", // Cmaj7 Dsus2
  E: "~@2 d6@2 ~@2 a5@2 ~@3 d5@2 ~@3 g4@2 ~@3 c4@2 b3@4 ~@4 g4, f6@2 ~@3 b5@2 ~ g5@2 e5@2 ~ c5@2 a4@2 ~ f4@2 d4@2 ~@10, ~ e6@2 ~ c6@2 ~@3 f5@2 ~@3 b4@2 ~@3 e4@2 ~@11",
  F: "[a4@2 ~@2 d5@2 ~@2 g5@2 ~ b5@2 ~@2 e6@2 ~ g6@2 ~ b6@2 ~ d7@3 c7 b6 ~@4 d6@2 ~ b5@2 ~@3 e5@2 ~@2 b4@2 ~ d5 ~@2 g5@2 ~@3 d6@2 ~@2 g6@2 ~@3 d7@2 ~ f7@3 e7 ~ c7 ~@3 f6@2 ~@2 c6@2 ~@5 d5@2 ~@4 f4@2, ~@2 b4@2 ~@3 f5@2 ~ a5@2 ~ c6@2 ~@15 g6@2 e6@2 ~ c6@2 ~ a5@2 f5@2 ~ d5@2 ~@4 e5@2 ~@3 b5@2 ~@3 f6@2 ~ a6@2 c7@2 ~ e7@2 ~@3 d7@2 ~ a6@2 ~@3 d6@2 ~ b5@2 g5@2 e5@2 ~ c5@2 a4@2 ~@2, ~@3 c5@2 ~ e5@2 ~@6 d6@2 ~ f6@2 ~ a6@2 ~ c7@2 ~@4 a6@2 f6@2 ~@6 g5@2 ~@3 c5@5 ~ f5@2 ~ a5@2 c6@2 ~ e6@2 ~@3 b6@2 ~@9 b6@2 g6@2 ~ e6@2 ~@3 a5@2 f5@2 ~@3 b4@2 g4@2 ~]/3",
  G: "[~ g4 a4 c5@2 ~@2 f5@2 ~ a5@2 ~@2 d6@2 ~@2 g6@2 a6@3 g6@2 ~@2 d6@2 ~@2 a5@2 ~ f5@2 ~@2 c5@2 ~@5 d4@2 ~ b3@4 ~@4 g4@2 ~@3 d5@2 ~@4 b5@2 c6@2 d6@3 ~@2 a5@2 ~ f5@2 ~@6 f4@2 ~@2 c4@2 ~ a3@2, ~@2 b4@2 ~ d5@2 ~@6 c6@2 ~ e6@2 ~@8 e6@2 ~ c6@2 ~@6 d5@2 ~ b4@2 g4@2 e4@2 ~ c4@2 ~@3 c4@2 e4@2 ~@3 b4@2 ~@3 f5@2 a5@2 ~@6 c6@2 ~@6 d5@2 b4@2 g4@2 ~ e4@2 ~@5, ~@6 e5@2 ~ g5@2 ~ b5@2 ~@3 f6@2 ~@6 f6@2 ~@3 b5@2 ~ g5@2 ~ e5@2 ~@3 a4@2 f4@2 ~@8 d4@2 f4@2 ~ a4@2 c5@2 ~ e5@2 g5@2 ~@8 b5@2 ~ g5@3 e5@2 c5@2 a4@2 ~@3 d4@2 ~ b3@2 ~]/3",
  H: "g3 ~@7", I: "~@29 d6@3",
  J: "[bb6@5 bb6@3 bb6@4 ~ bb6@3 bb6@8 c7@5 a6@8 a6@3 a6@4 ~ a6@3 c7@8 bb6@5 a6@8 g6@27]/3",
  K: "[g6@5 g6@3 g6@4 ~ g6@3 g6@8 ab6@5 f6@7 ~ f6@3 f6@4 ~ f6@3 ab6@8 g6@5 f6@8 eb6@33 ~@23 eb6@3]/4",
  L: "[d6@7 ~ gb6@7 ~ gb6@8 a6@5 a6@27 ~@5 eb6@3]/2", M: "[d6@8 g6@7 ~ g6@8 bb6@5 bb6@16 ~@16 g6@3]/2",
  N: "[f6@8 a6@7 ~ a6@8 c7@5 c7@24 bb6@3 c7@5 d7@21 ~@3 c7@3 bb6@5 a6@21 ~@3 bb6@3 a6@5 g6@32 ~@3]/5",
  O: "[bb6@5 bb6@3 bb6@5 bb6@3 bb6@8 c7@5 a6@8 g6@3 eb6@5 d6@3 c7@7 ~ bb6@5 a6@8 g6@27]/3",
})).s("gm_flute").gain(0.11).pan(0.8)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A B C B ~@16 D E F@2 G@2 H@2 I@2 J@2 K@4 L@2 M N O P@2 Q R@2 M N S T U V W B ~@2 A X Y@2 Z@2 AA@2 AB@2 AC@2 AD AE
  L@2 M N O P@2 Q R@2 M N S T U V W B ~@2 AF AG Y@2 Z@2 AA@2 AB@2 AC@2 AD AH C B C B C B C B C B C B C ~
>`.pickRestart({
  A: "[g2,g3,bb3,d4]", B: "[g2,g3,bb3,eb4,g4]", C: "[g2,g3,bb3,d4,g4]", D: "bb4", E: "a4",
  F: "[d3@31 ~ d5@23 ~ c5@8, g4@63 ~, ~@32 eb3@31 ~]/2",
  G: "[[d4,bb4,g5]@4 ~@2 g2 [b2,d5,d6], g3@3 ~, ~ f4, ~@4 [d5,b5]@3 ~]/2", // Gm Bm G
  H: "[[c6,eb6]@39 ~ [bb5,d6]@8 [a5,c6]@8 [g5,bb5]@8, [c3,eb4,c5]]/2", I: "[gb5@2 ~ c5, [d3,d4,a5], d5@3 ~, ~ a4]/2",
  J: "[[bb4,g5]@3 [c5,a5] ~@2 d3 [eb3,eb4], d4@7 ~, g3@3 ~, ~ [d5,bb5]]/2", // Eb F Eb Gm
  K: "[[c4,c5,a5]@4 [a5,eb6]@4 bb5@2 [a4,c6] [c3,g4,bb5] [d3,gb4,a5]@4, f3 d6, ~@2 f4@3 ~@3, ~@8 bb2@3 ~@5]/4", // F Adim Am C7 D
  L: "[d5@2 g5 [a4,a5] [g4,b5]@2 [a4,gb5,a5] [b4,g5,b5], g3, b4@3 ~@5]/2", M: "a3@2 a3 b3, [a4,a5,c6]",
  N: "c4 d4 e4 gb4, [c5,a5]@31 ~", O: "[a3,c4,g4,c6]", P: "[[d3,gb4,a5] [g3,g4,b5], d4@63 ~]/2",
  Q: "[d3,d4,gb4,a5]@2 [e3,e5] [gb3,eb5], ~ [c4,a4]", // D E Ebm F
  R: "[d5@2 g5 [a4,a5] [d4,g4,b5]@2 [a4,gb5,a5] [b4,g5,b5], g3, b3 ~, b4@3 ~@5]/2", S: "[a2,e4,g4,c6]",
  T: "b5@3 a5, [b2,eb4,gb4]@31 ~", U: "[e3,e4,g4,b5]", V: "a5@21 bb5@3 a5@8, [d3,d4,gb4]", W: "[g2,g3,bb3,g4], d4 ~@31",
  X: "[g2,g3,bb3,eb4]@31 ~", Y: "[[bb3,d4] b3, g3@5 ~@3]/2", Z: "c4/2", AA: "[~@4 d3@2 e3 gb3, a3, ~ a4]/2",
  AB: "[g3@31 ~ bb3@4 a3@4 g3@14 ~ f3@8 ~, [d4,bb4]@63 ~]/2", AC: "[f3,c4,a4]/2", AD: "[bb2,d4]@3 [c3,e4], bb4",
  AE: "[d3,gb4,a4,c5]@31 ~", AF: "[g2,bb3,d4]", AG: "[g2,bb3,eb4]@31 ~", AH: "[d3,gb4,a4]@31 ~",
})).s("gm_string_ensemble_2").gain(0.2)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@2 B@4 C@4 D@3 E F@3 G H@2 I@2 C@4 D@3 E F@3 G H@2 J@2 K@4 L@4 K@4 M@4 B@2 C@4 D@3 E F@3 G H@2 J@2 K@4 L@4 K@4 M@4
  B@2 C@4 D@3 E F@3 G H@2 I@2 B@10 N O ~
>`.pickRestart({
  A: "[~@33 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, ~@30 g2@33 ~, ~@31 d3@33, ~@31 g3@9 [g3,bb3,d4]@5 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4]@5 bb3@3, ~@32 [bb3,d4]@8 ~ g4@16 g4@7]/2", // G5 Gm Bb
  B: "[~ g4@7 ~@6 [g3,eb4]@2 ~ eb4@4 ~ [g3,eb4]@2 ~@6 [g3,bb3]@2 ~ g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [g3,bb3,eb4]@8 [g3,bb3,eb4]@5 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,eb4]@5 eb4@35, ~@9 g4@16 g4@7 [g3,bb3,d4]@8 [g3,bb3,d4]@5 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4]@5 bb3@3, ~@41 g4@16 g4@7]/2", // Cm Gm G5 Eb Gm Eb Gm
  C: "[~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,c4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 g3@2 ~ g4@7 ~@6 [g3,eb4]@2 ~ eb4@4 ~ [g3,eb4]@2 ~@6 g3@2 ~ g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [a3,c4,gb4]@8 [a3,c4,gb4]@5 c4@3 [a3,c4]@5 gb4@3 [a3,c4,gb4]@5 gb4@60 g4@8 ~@8 g4@16 g4@7, ~@9 a4@16 a4@39 [g3,bb3,eb4]@8 [g3,bb3,eb4] g4@4 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,eb4]@5 bb3@3 [g3,bb3,d4]@8 [g3,bb3,d4]@5 bb3@3 [g3,bb3]@6 ~@2 [g3,bb3,d4]@5 ~@3, ~@15 [a3,c4]@32 eb4@17, ~@32 [g3,bb3,d4]@8 [g3,bb3,d4] g4@4 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4] g4@4 bb3 d4@34 ~@21 bb3@3 ~@5 bb3@3]/4", // D Am G5 Cm G5 Gbdim Am Gbdim …
  D: "[~ g4@7 ~@6 [f3,d4]@2 ~ d4@4 ~ [f3,b3]@2 ~@9 g4@7 ~@6 [g3,eb4]@2 ~ eb4@4 ~ [g3,eb4]@2 ~@6 [g3,eb4]@2 ~ g4@7 ~@6 [g3,eb4]@2 ~ eb4@4 ~ [g3,eb4]@2 ~@6 [g3,eb4]@2, [f3,b3,d4]@8 [f3,b3,d4]@5 b3@3 [f3,b3]@5 d4@3 [f3,b3,d4]@5 d4@64 c4@3, ~@9 g4@16 g4@7 [g3,c4,eb4]@8 [g3,c4,eb4]@5 c4@3 [g3,c4]@5 c4@3 [g3,c4,eb4]@5 c4@3 [g3,c4,eb4]@8 [g3,c4,eb4]@5 c4@3 [g3,c4]@5 c4@3 [g3,c4,eb4]@5 ~@3, ~@15 [f3,b3]@32 ~, ~@41 g4@16 g4@8 ~@8 g4@16 g4@7]/3", // Dm Fdim Cm Bdim Fdim Bdim Cm C5 …
  E: "~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,c4]@2 ~@6 [a3,c4]@2, [a3,c4,gb4]@8 [a3,c4,gb4]@5 c4@3 [a3,c4]@5 gb4@3 [a3,c4,gb4]@5 gb4@3, ~@9 a4@16 a4@7", // D Am Gbdim Am Gbdim
  F: "[~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,c4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2 ~ g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [a3,c4,gb4]@8 [a3,c4,gb4]@5 c4@3 [a3,c4]@5 gb4@3 [a3,c4,gb4]@5 gb4@64 ~@3, ~@9 a4@16 a4@52 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4]@5 bb3@3, ~@15 [a3,c4]@32 ~, ~@32 [g3,bb3,d4]@8 [g3,bb3,d4] g4@4 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4] g4@4 bb3@3 [g3,bb3,d4]@8 [g3,bb3,d4] g4@16 g4@7]/3", // D Am G5 Gbdim Am Gbdim Gm Am …
  G: "~ f4@7 ~@6 [f3,c4]@2 ~ c4@4 ~ [f3,a3]@2 ~@6 [f3,a3]@2, [f3,a3,c4]@8 [f3,a3,c4]@5 a3@3 [f3,a3]@5 c4@3 [f3,a3,c4]@5 c4@3, ~@9 f4@16 f4@7", // F5 F
  H: "[~ f4@7 ~@6 [eb3,c4]@2 ~ c4@4 ~ [eb3,a3]@2 ~@9 f4@7 ~@6 [f3,d4]@2 ~ d4@4 ~ [f3,d4]@2 ~@6 [f3,d4]@2, [eb3,a3,c4]@8 [eb3,a3,c4]@5 a3@3 [eb3,a3]@5 c4@3 [eb3,a3,c4]@5 c4@35, ~@9 f4@16 f4@7 [f3,bb3,d4]@8 [f3,bb3,d4]@5 bb3@3 [f3,bb3]@5 bb3@3 [f3,bb3,d4]@5 bb3@3, ~@15 [eb3,a3]@17, ~@41 f4@16 f4@7]/2", // Cm Ebdim Dm Adim Ebdim Adim Bb Bb5 …
  I: "[~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,c4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [a3,c4,gb4]@8 [a3,c4,gb4]@5 c4@3 [a3,c4]@5 gb4@3 [a3,c4,gb4]@5 gb4@32 bb3@3, ~@9 a4@16 a4@39, ~@15 [a3,c4]@17, ~@32 [g3,bb3,d4]@8 [g3,bb3,d4] g4@4 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4] g4@7]/2", // D Am G5 Gbdim Am Gbdim Am Gm
  J: "[~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,c4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [a3,c4,gb4]@8 [a3,c4,gb4]@5 c4@3 [a3,c4]@5 gb4@3 [a3,c4,gb4]@5 gb4@32 b3@3, ~@9 a4@16 a4@39, ~@15 [a3,c4]@17, ~@32 [g3,b3,d4]@8 [g3,b3,d4] g4@4 b3@3 [g3,b3]@5 b3@3 [g3,b3,d4] g4@7]/2", // D Am G5 Gbdim Am Gbdim Am G
  K: "[~ g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,b3]@2 ~@9 a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,gb4]@2 ~@6 [a3,gb4]@2 ~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,gb4]@2 ~@6 a3@2 ~ a4@7 ~@6 [a3,e4]@2 ~ e4@4 ~ [a3,e4]@2 ~@6 [a3,e4]@2, [g3,b3,d4]@8 [g3,b3,d4]@5 b3@3 [g3,b3]@5 d4@3 [g3,b3,d4]@5 d4@3 [a3,d4,gb4]@8 [a3,d4,gb4]@5 d4@3 [a3,d4]@5 d4@3 [a3,d4,gb4]@5 d4@3 [a3,d4,gb4]@8 [a3,d4,gb4]@5 d4@3 [a3,d4]@5 d4@3 [a3,d4,gb4]@5 d4@35, ~@9 g4@16 g4@64 ~@5 gb4@34, ~@30 [g3,b3]@64 ~@2 [a3,c4,e4]@8 [a3,c4,e4]@5 c4@3 [a3,c4]@5 c4@3 [a3,c4,e4]@5 c4@3, ~@41 a4@16 a4@8 ~@8 a4@16 a4@8 ~@8 a4@16 a4@7]/4", // G5 G D A5 G D D5 D …
  L: "[~ a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,c4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@9 a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,gb4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [a3,c4,gb4]@8 [a3,c4,gb4]@5 c4@3 [a3,c4]@5 gb4@3 [a3,c4,gb4]@5 gb4@32 b3@32 c4@32 b3@3, ~@9 a4@16 a4@39 [a3,c4,gb4]@8 [a3,c4,gb4] a4@4 c4@3 [a3,c4]@5 c4@3 [a3,c4,gb4] a4@39, ~@15 [a3,c4]@16 [g3,d4]@16 [a3,gb4]@17, ~@32 [g3,b3,d4]@8 [g3,b3,d4] g4@4 b3@3 [g3,b3]@5 b3@3 [g3,b3,d4] g4@39 [g3,b3,d4]@8 [g3,b3,d4] g4@4 b3@3 [g3,b3]@5 b3@3 [g3,b3,d4] g4@7]/4", // D Am G5 D G5 Gbdim Am Gbdim …
  M: "[~ b4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,eb4]@2 ~@9 b4@7 ~@6 [b3,g4]@2 ~ g4@4 ~ [b3,g4]@2 ~@9 a4@7 ~@6 [a3,gb4]@2 ~ gb4@4 ~ [a3,gb4]@2 ~@9 g4@7 ~@6 [g3,d4]@2 ~ d4@4 ~ [g3,d4]@2 ~@6 [g3,d4]@2, [a3,eb4,gb4]@8 [a3,eb4,gb4]@5 eb4@3 [a3,eb4]@5 gb4@3 [a3,eb4,gb4]@5 gb4@32 e4@33 [a3,gb4]@31 bb3@3, ~@9 b4@16 b4@7 [b3,e4,g4]@8 [b3,e4,g4] b4@4 e4@3 [b3,e4]@5 e4@3 [b3,e4,g4] b4@36 c4@35, ~@30 eb4@32 g4@2 [a3,c4,gb4]@8 [a3,c4,gb4] a4@4 c4@3 [a3,c4]@5 c4@3 [a3,c4,gb4] a4@39, ~@30 a3@32 b3@34 [g3,bb3,d4]@8 [g3,bb3,d4] g4@4 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,d4] g4@7]/4", // D Adim Em D G5 Ebdim Adim Ebdim …
  N: "~ g4@7 ~@6 [g3,eb4]@2 ~ eb4@4 ~ [g3,eb4]@2 ~ g4@7, [g3,bb3,eb4]@8 [g3,bb3,eb4]@5 bb3@3 [g3,bb3]@5 bb3@3 [g3,bb3,eb4]@8, ~@9 g4@16 ~@7", // Cm Eb Gm Eb
  O: "~ g4@31, [g3,bb3,d4]", // Gm
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~@5 A@3 B A@7 B A B A@5 B A@7 B A B A@5 B A@7 B A B A B C D A@3 B A@7 B A B A@5 B A@7 B A B A B C D A@3 B A@3 B A@3 B
  A B A B A@3 E A@3 F A@3 E C ~
>`.pickRestart({
  A: "x!2", B: "x ~@15 x ~@12 x ~@2", C: "x", D: "~@29 x ~@2", E: "x ~@15 x ~@4 x ~@10", F: "x ~@15 x ~@4 x ~@7 x ~@2",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~@5 A@15 ~ B@15 C B@7 ~ B@7 D ~@2 A@7 E B@7 ~ B@7 ~ B@7 D ~@2 B@7 ~ B@7 ~ B@3 F B@3 G B@3 G ~@2
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@5 x ~@26", D: "~ x ~@2", E: "~ x", F: "~@8 x ~@7 x ~@2 x ~@4 x ~@7",
  G: "~@8 x ~@15 x ~@2 x ~@4",
})).gain(0.42)

// drums · low tom
const low_tom = s("lt").struct("<~@20 A ~@15 A ~@7 A ~@9 B ~@23 A ~@9 A ~@7 A ~@22>".pickRestart({
  A: "~@3 x", B: "~ x",
})).gain(0.36)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B C@14 D B C@14 E B C@6 F G C@6 H I F B C@6 H G C@6 ~ B C@6 F G C@6 H J ~ B C@6 K G C@6 J B C@2 L G C@2 M G C@2
  M ~@2
>`.pickRestart({
  A: "~@21 x ~@10", B: "~@8 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2", C: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2",
  D: "x ~@4 x ~@26", E: "x ~@4 x ~@2 x ~@7 x ~@7 x ~@7", F: "~ x!3", G: "~@5 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@2",
  H: "x ~@4 x ~@2 x ~@4 x ~@18", I: "~ x ~ x", J: "~ x ~@2", K: "x ~@4 x ~@2 x ~@23",
  L: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@7 x ~@7", M: "x ~@4 x ~@2 x ~@4 x ~@2 x ~@4 x ~@10",
})).gain(0.24)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@20 A ~@15 B ~@7 C ~@7 D ~ E ~@7 F ~@7 G ~@7 C ~@7 D H I ~@7 J ~@7 K ~@3 L ~@10
>`.pickRestart({
  A: "~ x", B: "~@16 x ~@4 x ~@10", C: "~@13 x ~@2 x ~@6 x ~@8", D: "~@3 x", E: "~@5 x ~@7 x ~@10 x ~@7",
  F: "~@24 x ~@4 x ~@2", G: "~@8 x ~@15 x ~@2 x ~ x ~@2", H: "~@31 x", I: "x ~@15 x ~@4 x ~@10", J: "~@13 x ~@2 x ~@15",
  K: "~@21 x ~@2 x ~@7", L: "~@29 x ~@2",
})).gain(0.42)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A ~@15 B ~@23 C ~@7 D E ~@8 D ~@7 C ~@7 C ~@7 D F ~@16 C ~@3 G ~@3 A ~@3 A ~@2
>`.pickRestart({
  A: "~@3 x", B: "~@8 x ~@20 x ~@2", C: "x", D: "~ x", E: "~@13 x ~@2 x ~@12 x ~@2", F: "~@13 x ~@2 x ~@15",
  G: "~@21 x ~@10",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@20 A ~@15 A ~@7 B ~@7 C ~ D ~@15 E ~@7 B ~@7 C F A ~@7 B ~@7 G ~@3 H ~@10
>`.pickRestart({
  A: "~@13 x ~@18", B: "~@5 x ~@26", C: "~@21 x ~@10", D: "x ~@22 x ~@8", E: "~@5 x ~@10 x ~@2 x ~ x ~@10",
  F: "~@23 x!2 ~@7", G: "~@13 x ~@2 x ~@15", H: "~@27 x ~@4",
})).gain(0.42)

// drums · crash
const crash = s("cr").struct(`<
  ~@21 A ~@15 A ~@7 A ~@7 A ~ A ~@7 A ~@7 A ~@7 A ~@7 A ~ A ~@7 A ~@7 A ~@3 A ~@3 A ~@3 A ~
>`.pickRestart({
  A: "x",
})).gain(0.3)

stack(
  bass, flute, string_ensemble_2, acoustic_guitar_steel, kick, snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash
)

More by Celentano