Strudelify
Azzurro cover art

Preghero

Azzurro

Adriano Celentano

KeyB♭ majorTempo122 bpm
0:00/0:00
// Azzurro — Adriano Celentano
// 122 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(122/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 · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B@2 C B@2 D E F@3 G H I J K E L M N M D@2 E O P Q N B R M E B@2 C B@2 D E F@3 G H I J K E L M N M D@2 E O P Q N B R
  M E B@2 C B@2 D E F@3 G H I J K E L M N M D@2 E O P Q N B R M E@2 L M N M D@2 E O P Q N B R M E S
>`.pickRestart({
  A: "bb1@3 ~ bb1@3 ~@2 f1@3 f1@3 ~", B: "bb1@3 ~ bb1@3 ~ f1@3 ~ f1@3 ~", C: "bb1@6 bb1@5 ~ bb1@3 ~",
  D: "bb1@3 ~ bb1@4 f1@3 ~ f1@3 ~", E: "bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~", F: "eb2@3 ~ eb2@3 ~ bb1@3 ~ bb1@3 ~",
  G: "eb2@3 ~ eb2@3 ~ eb2@2 ~@2 eb2@3 ~", H: "bb1 f1", I: "d2 g1", J: "c2 f1", K: "bb1 f1 g1 a1",
  L: "bb1@3 ~ bb1@3 ~ c2@3 ~ c2@3 ~", M: "f1@3 ~ f1@3 ~ f1@3 ~ f1@3 ~", N: "c2@3 ~ c2@3 ~ f1@3 ~ f1@3 ~",
  O: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@3 ~", P: "d2@3 ~ d2@3 ~ a1@3 ~ d2@3 ~", Q: "c2@3 ~ c2@3 ~ g1@3 ~ g1@3 ~",
  R: "g1@3 ~ g1@3 ~ gb1@3 ~ gb1@3 ~", S: "bb1 ~@3",
})).s("gm_acoustic_bass").gain(0.4)

// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
  A@4 ~@12 B@2 C D E@4 F G H@2 I J K@2 L M N ~@12 B@2 C D E@4 F G H@2 I J K@2 L M N ~@12 B@2 C D E@4 F G H@2 I J K@2 B@2
  C D E@4 F G H@2 I J K@2 ~
>`.pickRestart({
  A: "[[bb3,db4]@8 [a3,c4]@8 [bb3,db4]@8 [a3,c4]@8 [bb3,db4]@8 [a3,c4]@7 ~ [bb3,db4]@16, f4@63 ~]/4", // Bbm Am Bbm Am Bbm Am Bbm
  B: "[bb3@8 bb4@10 ~@2 bb3@3 ~ [c4,e4,g4]@7 ~, [d4,f4]@18 ~ [d4,f4]@4 ~@9]/2", C: "[a3,c4,f4]@7 ~",
  D: "[eb4,g4]@7 ~ a3@7 ~, c4@15 ~, ~@7 f4@8 ~", // Eb
  E: "[[a3,c4,eb4]@15 ~ [bb3,d4]@8 [a3,c4,eb4]@7 ~ [bb3,d4]@8 [a3,c4,eb4]@7 ~@8 ab3@7 ~@2, f4@23 ~ f4@39 ~, ~@48 [bb3,d4]@15 ~]/4", // Adim Bb Adim Bb Adim Bb
  F: "[bb3,d4,g4]@5 ~ [bb3,d4,g4]@9 ~", G: "[a3,c4,f4]@5 ~ [a3,c4,f4]@8 ~@2",
  H: "[[bb3,eb4]@7 ~ [b3,d4,f4]@7 eb4@8 ~ [a3,eb4]@7 ~, g4@23 f4@8 ~, ~@15 c4@15 ~@2]/2", // Eb5 Bdim Adim
  I: "bb3@7 ~@3 f4@5 ~, [d4,f4] a3, ~@7 c4@8 ~", J: "g3@8 gb3@7 ~, [bb3,d4]@15 ~",
  K: "[[bb3,d4]@8 [a3,c4]@8 [bb3,d4]@15 ~, f3@31 ~]/2", L: "[bb3,db4] [a3,c4]", M: "[bb3,db4]@8 [a3,c4]@7 ~",
  N: "~@3 f4@13, [bb3,db4]", // Bbm
})).s("gm_synth_strings_1").gain(0.31).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF B C D E F G H I J K L M N O P Q R S T U V W X Y
  Z AA AB AC AD AE AF B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF Q R S T U V W X Y Z AA AB AC
  AD AE AG@2
>`.pickRestart({
  A: "bb2@2 [bb3,db4,f4]@2 ~@2 [bb3,db4,f4]@2 ~@2 [a3,c4,f4] ~@3 [a3,c4,f4]@2, ~ f2", // Bbm F
  B: "~@2 [bb3,db4,f4] ~@3 [bb3,db4,f4]@2 ~@2 [a3,c4,f4] ~@3 [a3,c4,f4]@2, bb2@5 ~@3 f2@8", // Bbm F
  C: "~@2 [bb3,db4,f4] ~@3 [bb3,db4,f4]@2 ~@2 [a3,c4,f4] ~@3 [a3,c4,f4]@2, bb2@7 ~ f2@8", // Bbm F
  D: "~@2 [bb3,db4,f4]@3 ~ [bb3,db4,f4]@2 bb2@2 [bb3,db4,f4]@2 bb2@2 [bb3,db4,f4]@2, bb2@7 ~@9", // Bbm
  E: "bb2@2 [bb3,db4,f4] ~ [bb2,bb3,db4] ~ [bb3,db4,f4]@2 f2@2 [a3,c4,eb4,f4] ~ f2 ~ [a3,c4,eb4,f4]@2", // Bbm F7
  F: "bb2@2 [bb3,db4,f4] ~ bb2 ~ [bb3,db4,f4]@2 f2@2 [a3,c4,eb4,f4] ~ a3 ~ [a3,c4,eb4,f4]@2", // Bbm F7
  G: "bb2@2 [bb3,db4,f4] ~@3 [bb3,db4,f4]@2 ~@2 [a3,c4,eb4,f4] ~ a3 ~ [a3,c4,eb4,f4]@2", // Bbm F7
  H: "~@2 [bb3,db4,f4] ~@3 [bb3,db4,f4] ~@3 [bb3,db4,f4]@3 ~ [bb3,db4,f4]@2", // Bbm
  I: "~@2 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4]@2 ~@2 [bb3,d4,f4] ~@3 [bb3,d4,f4]@2", // Ebm Bb
  J: "~@2 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4]@2 ~@2 [ab3,bb3,d4,f4] ~@3 [ab3,bb3,d4,f4]@2", // Ebm Bb7
  K: "~@2 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4]@2 ~@2 [ab3,bb3,d4,f4] ~@3 [ab3,bb3,d4,f4] ~", // Ebm Bb7
  L: "~@2 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~@3 [bb3,eb4,gb4] ~", // Ebm
  M: "~@2 [bb3,d4,f4]@2 bb3 ~ [bb3,d4,f4]@2 ~@2 [a3,c4,f4] ~@3 [a3,c4,f4]@2", // Bb F
  N: "~@2 [d4,f4,a4] ~@3 [d4,f4,a4]@2 ~@2 [b3,d4,f4,g4] ~@3 [b3,d4,f4,g4]@2", // Dm G7
  O: "~@2 [c4,eb4,g4] ~@3 [c4,eb4,g4]@2 ~@2 [a3,c4,f4] ~ a3 ~ [a3,c4,f4]@2", // Cm F
  P: "[bb3,d4,f4]@3 ~ [bb3,d4,f4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~", // Bb F
  Q: "bb2@2 [bb3,d4,f4] ~ bb2 ~ [bb3,d4,f4] ~ bb2 ~ [bb3,d4,f4] ~ bb2@2 [bb3,d4,f4]@2", // Bb
  R: "bb2@2 [bb3,d4,f4] ~ bb2@2 [bb3,d4,f4] ~ c3@2 [bb3,c4,e4,g4] ~ c3 ~ [bb3,c4,e4,g4]@2", // Bb C7
  S: "f2 ~ [a3,c4,f4] ~ f2 ~ [a3,c4,f4] ~ f2 ~ [a3,c4,f4] ~ f2 ~ [a3,c4,f4] ~", // F
  T: "c3@2 [c4,eb4,g4] ~ c3@2 [c4,eb4,g4]@2 f2@2 [a3,c4,f4] ~ f2@2 [a3,c4,f4]@2", // Cm F
  U: "f2@2 [a3,c4,eb4,f4] ~ f2 ~ [a3,c4,eb4,f4] ~ f2@2 [a3,c4,eb4,f4]@2 f2@2 [a3,c4,eb4,f4]@2", // F7
  V: "bb2@2 [bb3,d4,f4] ~ bb2 ~ [bb3,d4,f4]@2 f2@2 [a3,c4,eb4,f4] ~ f2@2 [a3,c4,eb4,f4]@2", // Bb F7
  W: "bb2@2 [bb3,d4,f4] ~ bb2 ~ [bb3,d4,f4]@2 ~@2 [a3,c4,eb4,f4] ~@3 [a3,c4,eb4,f4]@2, ~@8 f2@7 ~", // Bb F7
  X: "bb2@2 [bb3,d4,f4] ~ bb2@2 [bb3,d4,f4]@2 ab2@2 [ab3,bb3,d4,f4]@2 ab2@2 [ab3,bb3,d4,f4]@2", // Bb Bb7
  Y: "[bb3,d4,g4]@4 eb3 ~ bb3@3 eb3 eb3@2 bb3@2 [eb3,d4,g4] ~, eb3@3 ~@3 [d4,g4]@6 ~@4, ~@3 eb3 ~@4", // Gm Ebmaj7 G5
  Z: "[a3,c4,f4]@4 d3 ~ d3@3 ~ d3@2 a3@2 [d3,c4,f4] ~, d3@3 ~@3 [a3,c4,f4]@6 ~@4", // F Dm7 F
  AA: "eb3 [bb3,eb4,g4] eb3 [bb3,eb4,g4] b2 [g3,b3,d4] b2 [g3,b3,d4]", // Eb G
  AB: "c3@2 [g3,c4,eb4]@2 ~@2 [g3,c4,eb4] ~ [f2,f3,a3]@2 ~@2 [f3,a3,c4]@3 ~, ~@4 c3@4 ~@4 f2 ~@3", // Cm F
  AC: "~@2 [bb3,d4,f4] ~@3 [bb3,d4,f4] ~@3 [a3,c4,f4] ~@3 [a3,c4,f4] ~", // Bb F
  AD: "~@2 [g3,bb3,d4] ~@3 [g3,bb3,d4] ~@3 [gb3,bb3,d4] ~@3 [gb3,bb3,d4] ~", // Gm Gbaug
  AE: "~@2 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [f3,a3,c4] ~@3 [f3,a3,c4] ~", // Bb F
  AF: "~@2 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4,bb4] ~", // Bb
  AG: "[~@2 [f3,bb3,d4] ~@3 [f3,bb3,d4] ~@3 [bb3,d4,f4] ~@3 [bb3,d4,f4,bb4] ~ [d4,f4,g4,bb4]@5 ~@11, ~@15 [bb2,bb3]@6 ~@11]/2", // Bb Gm7 Bb
})).s("gm_acoustic_guitar_steel").gain(0.31).pan(0.3)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@3 A ~@3 B ~@3 C D E@2 F G H@2 I J K L M N O P@2 Q R S T ~@2 A ~@3 B ~@3 C D E@2 F G H@2 I J K L M N O P@2 Q R S T
  ~@2 A ~@3 B ~@3 C D E@2 F G H@2 I J K L M N O P@2 Q R S T G H@2 I J K L M N O P@2 Q R S T ~
>`.pickRestart({
  A: "[bb3,bb4,bb5]", B: "[bb4,bb5]@3 ~ [bb4,bb5]@3 ~ [bb4,bb5] ab5 [f4,f5]@5 ~, ~@9 ab4@2 ~@5",
  C: "~@2 bb3 eb4 gb3 ~ eb4 gb4 bb3 ~ [eb4,gb4] bb4 bb3 ~@2 eb5, eb3 ~@6 bb4, ~ gb3@2 ~@2 bb3@2 ~@6 gb4@2 ~", // Ebm
  D: "[bb4,d5,d6] [a4,c5,c6]", // Bb Am
  E: "[[a4,c5,c6]@8 [g4,b4,b5]@7 ~ [eb4,g4]@8 [c4,f4,a4]@7 ~, ~@8 a4 ~@6 [c4,bb4]@8 ~@9]/2", // Am G Eb F C7
  F: "[d4,f4,bb4]@4 [d4,f4,bb4]@3 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@4", G: "[f4,f5] [bb4,bb5]",
  H: "[~@2 f4@2 [bb4,bb5]@2 [f4,f5]@2 [g4,g5]@7 [f4,f5]@16 ~, ~ f5@2 ~@29]/2", I: "[bb4,bb5] [a4,a5]", J: "a4 c5",
  K: "d5 bb4 c5 d5 c5@2 a4@2", L: "bb4 c5", M: "d5@15 ~", N: "g5@5 ~ g5@9 ~", O: "f5@5 ~ f5@9 ~",
  P: "[eb5@8 d5@7 eb5@8 ~ f5 ~@3 f4@4, ~@14 f5 ~]/2", Q: "d5@3 ~ d5@5 ~ d5@2 eb5@2 e5@2",
  R: "f5@4 bb4@5 ~ bb4@2 c5@2 db5@2", S: "d5 ~ d5@2 db5@2 d5@2 g5@4 f5@4", T: "bb4",
})).s("gm_string_ensemble_1").gain(0.31).pan(0.4)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note(`<
  A@3 B C D E F G H I J K L M N ~@15 O A@2 B C D E F G H I J K L M N ~@15 O A@2 B C D E F G H I J K L M N ~@15 O ~@15 O
  ~
>`.pickRestart({
  A: "bb2@4 ~@2 db3@2 c3@2 eb3 ~@3 eb3 c3", B: "bb3@7 ~", C: "bb2@3 ~@3 db3@2 c3@2 eb3@3 ~ eb3 c3",
  D: "bb2@4 ~@2 db3@2 c3@2 eb3@3 ~ eb3 c3", E: "bb2@5 ~ db3@2 c3@2 eb3@3 ~ eb3 c3",
  F: "bb3@3 ~ bb3@3 ~ bb3 ab3 f3@4 ~@2", G: "eb3@4 ~@2 gb3@2 f3@2 bb3@2 ~@2 bb3 f3",
  H: "eb3@5 ~ gb3@2 f3@2 bb3@2 ~@2 bb3 f3", I: "eb3@5 ~ gb3@2 f3@2 bb3@3 ~ bb3 f3",
  J: "eb3@3 ~ eb3@3 ~ eb3@3 ~ eb3@2 ~@2", K: "bb2@3 ~ bb2@3 ~ c3@3 ~ c3@3 ~", L: "d3@3 ~ d3@3 ~ g2@3 ~ g2@3 ~",
  M: "c3@3 ~ c3@3 ~ f2@3 ~ f2@3 ~", N: "bb2@3 ~ bb2@3 ~ f2@3 ~ f2@3 ~",
  O: "d4 ~ d4!2 c4 bb3 g3 bb3 d4 ~ d4!2 c4 bb3 g3 bb3",
})).s("gm_baritone_sax").gain(0.35).pan(0.4)

// other · trombone
const trombone = note(`<
  A B A C A@2 B D E@2 F G H I J K L M N O P Q R S T U V W X Y Z AA B A C A@2 B D E@2 F G H I J K L M N O P Q R S T U V W
  X Y Z AA B A C A@2 B D E@2 F G H I J K L M N O P Q R S T U V W X Y Z AA L M N O P Q R S T U V W X Y Z AA AB
>`.pickRestart({
  A: "bb2@4 ~@2 db3@2 c3@2 eb3@2 ~@2 eb3 c3", B: "bb2@5 ~ db3@2 c3@2 eb3@2 ~@2 eb3 c3", C: "~ bb3@13 ~@2",
  D: "bb3@3 ~ bb3@3 ~ bb3 [g3,ab3] f3@5 ~", E: "eb3@4 ~@2 gb3@2 f3@2 bb3@2 ~@3 f3, ~@7 bb3",
  F: "eb3@5 ~ gb3@2 f3@2 bb3@3 ~@2 f3, ~@7 bb3", G: "eb3@3 ~ eb3@3 ~ eb3@3 ~ eb3@2 ~@2",
  H: "bb2@3 ~@3 bb2@2 c3@3 ~@3 c3@2", I: "d3@3 ~@3 d3@2 g2@3 ~@3 g2@2", J: "c3@3 ~@3 c3@2 f2@4 ~@2 f2@2",
  K: "bb2@3 ~ bb2@3 ~ f2@3 ~ f2@3 ~", L: "bb2@3 ~@5 f2@4 ~@4", M: "bb2@3 ~@5 c3@5 ~@3", N: "f2 ~ c3 ~", O: "c3 ~ f2 ~",
  P: "f2@4 ~@4 c3@5 ~@3", Q: "bb2@5 ~@3 f2@4 ~@4", R: "bb2 ~ f2 ~", S: "bb2@5 ~@3 bb2@6 ~@2",
  T: "[eb3,bb3,d4,g4]@5 ~ [eb3,bb3,d4,g4]@8 ~@2", U: "[d3,a3,c4,f4]@5 ~ [d3,a3,c4,f4]@8 ~@2", V: "bb2@8 b2@7 ~",
  W: "c3@3 ~ c3@3 ~ f2@3 ~ f2@2 ~@2", X: "bb2@2 ~@2 bb2@2 ~@2 f2@3 ~ f2@2 ~@2", Y: "g2@3 ~ g2@3 ~ gb2@3 ~ gb2@2 ~@2",
  Z: "f2@3 ~ f2@3 ~ f2@3 ~ f2@2 ~@2",
  AA: "[d4,d5] ~ [d4,d5]!2 [c4,c5] [bb3,bb4,b4] [g3,g4] [bb3,bb4] [d4,d5] ~ [d4,d5]!2 [c4,c5] [bb3,bb4] [g3,g4] [bb3,bb4]", // D C Bmaj7 G Bb D C Bb …
  AB: "bb2 ~@3",
})).s("gm_trombone").gain(0.35).pan(0.4)

// other · flute
const flute = note(`<
  ~@11 A B C D E ~ F G H ~@3 I ~@3 J ~@3 K ~@10 A B C D E ~ F G H ~@3 I ~@3 J ~@3 K ~@10 A B C D E ~ F G H ~@3 I ~@3 J
  ~@3 K ~ F G H ~@3 I ~@3 J ~@3 K L
>`.pickRestart({
  A: "~ gb4 bb4 eb5 gb4 bb4 eb5 gb5 bb4 ~ gb5 bb5 eb5 gb5 bb5 eb6, eb4@2 ~@7 eb5@2 ~@5", B: "d6@8 c6@7 ~",
  C: "c6@8 b5@7 ~", D: "eb5 c5", E: "bb4@4 bb4@3 ~ f4@3 ~ f4@3 ~", F: "~ f5 bb5 f5 g5@4", G: "f5@7 ~", H: "bb5 a5",
  I: "~@9 d4 f4 bb4!2 d5 f5 bb5, ~@4 bb3 ~@3", J: "~@2 c5 ~ eb5 ~ g5 ~ f5@7 ~",
  K: "d6 ~ d6!2 c6 bb5 g5 bb5 d6 ~ d6!2 c6 bb5 g5 bb5", L: "[f6,bb6]@3 ~@13",
})).s("gm_flute").gain(0.37).pan(0.6)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@24 A ~@2 B ~@27 A ~@2 B ~@27 A ~@2 B ~@12 A ~@2 B ~@5>".pickRestart({
  A: "x ~@2 x ~@2 x ~", B: "~@2 x!2",
})).gain(0.27)

// drums · snare
const snare = s("sd").struct(`<
  A@3 B A@11 C D@8 E F D@6 A@2 B A@11 C D@8 E F D@6 A@2 B A@11 C D@8 E F D@14 E F D@6 ~
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~ x ~@4 x!2 ~ x!2", C: "x ~@3 x ~@5 x!6", D: "~ x ~ x ~ x ~ x", E: "~@5 x ~ x",
  F: "~@2 x ~@2 x ~ x",
})).gain(0.41)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@3 A ~@11 B ~@8 C D ~@8 A ~@11 B ~@8 C D ~@8 A ~@11 B ~@8 C D ~@14 C D ~@7
>`.pickRestart({
  A: "~@2 x!2 ~@3 x!4 ~@5", B: "~@11 x ~@4", C: "~@3 x!2 ~@11", D: "~@3 x ~@12",
})).gain(0.23)

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

// drums · open hat
const open_hat = s("oh").struct("<~@23 A ~@30 A ~@30 A ~@15 A ~@9>".pickRestart({
  A: "~@7 x",
})).gain(0.27)

// drums · crash
const crash = s("cr").struct(`<
  A ~@2 A ~@11 B ~@8 C@2 A D ~@4 A ~ A ~@11 B ~@8 C@2 A D ~@4 A ~ A ~@11 B ~@8 C@2 A D ~@4 A ~@7 C@2 A D ~@4 A
>`.pickRestart({
  A: "x", B: "x!3 ~", C: "x ~@2 x ~@4", D: "~@2 x!2",
})).gain(0.23)

// drums · high tom
const high_tom = s("ht").struct("<~@24 A ~@30 A ~@30 A ~@15 A ~@8>".pickRestart({
  A: "~ x ~@14",
})).gain(0.09)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A@3 ~ A@11 ~ B C@7 ~@8 A@2 ~ A@11 ~ B C@7 ~@8 A@2 ~ A@11 ~ B C@7 ~@8 B C@7 ~@9
>`.pickRestart({
  A: "~ x ~ x", B: "x!2 ~ x ~ x ~ x", C: "~ x ~ x ~ x ~ x",
})).gain(0.37)

// drums · shaker
const shaker = s("sh").struct(`<
  ~@4 A B C@2 A@2 D C E@2 A E F G H I J@3 K L M N O P Q@3 ~@3 A B C@2 A@2 D C E@2 A E F G H I J@3 K L M N O P Q@3 ~@3 A
// … 20 more lines

More by Adriano Celentano