Strudelify
Sara cover art

Sotto Il Segno Dei Pesci

Sara

Antonello Venditti

KeyC majorTempo116 bpm
0:00/0:00
// Sara — Antonello Venditti
// 116 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 118 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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 · "BASS"
const bass = note(`<
  ~@12 A B@2 C A D@2 E F G H I@2 J K@2 L A B@2 C A D@2 E F G H I@2 J K@2 M A N O P A N O E Q R H I@2 S K@2 L T D@2 P U@2
  O E Q V H I@2 W X@4 Y A B@2 C A Z O AA Q AB H I@2 AC@2 AD L AE Z AF C AG@2 AH E Q G H I@2 J Z AD M AI@2
>`.pickRestart({
  A: "c2@2 e2@2 g2 e2 c2!2", B: "[d2@4 f2@4 a2@2 c3@2 a2@2 g2@8 g2@3 ~ g2@5 ~]/2", C: "g2@5 ~ g2@4 g2 ~ g2@4",
  D: "[d2@4 f2@4 a2@2 c3@2 a2@2 g2@7 ~ g2 ~ g2@8]/2", E: "e3@2 d3@5 ~ a2@2 c3@6", F: "e2@2 g2@2 b2 d3 b2 a2",
  G: "f2@2 c3@2 f3 c3@3", H: "a2@15 ~", I: "[f2@3 f2@3 ~ f2@25]/2", J: "c2@4 e2@4 g2@2 e2@2 c2 ~ c2@2",
  K: "[d2@4 f2@4 a2@2 c3@2 a2@2 g2@8 g2@2 g2@7 ~]/2", L: "g2 f2 e2 d2", M: "g2@5 ~ g2@2 g2@7 ~",
  N: "d2@4 f2@4 a2@2 a2@2 c3@3 ~", O: "g2@6 g2 ~ g2@8", P: "g2@6 g2 ~ g2@3 ~ g2@4", Q: "e2 g2 b2 d3", R: "f2 c3 f3 g3",
  S: "c2 e2 g2 c2", T: "c2@2 e2@2 g2@2 e2 c2", U: "[c2@2 e2@2 g2 e2 c2 d2@3 f2@2 a2@2 c3 a2]/2", V: "f2@2 c3@2 f3 g3@3",
  W: "c2@2 e2@2 g2 e2 c2@2", X: "[d2@2 f2@2 g2@3 c2@8 d2@8 e2@9]/4", Y: "f2!2 f2@2 g2!2 g2@2", Z: "d2 f2 a2 c3",
  AA: "e3@2 d3@5 ~ a2@2 c3@5 ~", AB: "f2 c3 f2 a2", AC: "[c2@4 e2@4 g2@2 e2@2 c2 ~ d2@6 f2@4 a2@2 c3@2 a2@2 g2@2]/2",
  AD: "g2@6 g2@2 g2@7 ~", AE: "c2 e2 g2 e2", AF: "g2@5 ~ g2 ~ g2@8", AG: "[c2@2 e2@2 g2 e2 c2 d2@3 f2@2 a2@2 g2@2]/2",
  AH: "g1@6 g1 ~ g1@8", AI: "c2/2",
})).s("gm_fretless_bass").gain(0.42)

// chords · piano
const piano = note(`<
  ~@4 A@16 B@2 C D@2 E@4 A@8 B@2 C D@2 E@4 A@8 B@2 C D@2 E@4 A@8 B@2 C D@2 F@5 G A@8 B@2 C D@2 E@4 A@8 B@2 C D@2 E@4 H@2
>`.pickRestart({
  A: "[~@4 [e4,g4]@4 a4@2 g4@2 e4@2 g4@4 g4@2 a4@4 g4@2 a4@4 g4 g4@3 g4@2 a4@2 g4@2 g4@4 a4@2 g4@3 ~ g4@2 a4@2 g4@2 g4@2 a4@2 g4@2 g4 ~@5 [e4,g4]@4 ~@2 g4@2 e4@2 g4@4 g4@2 a4@4 g4@2 a4@4 d4 d4@3 g4@2 a4@2 g4 ~ g4@4 a4@2 g4@3 ~ g4@2 a4@2 g4@2 c5@4 a4@4, c3@7 ~ [c3,e4]@5 ~ [c4,c5]@16 g3@10 [g3,d4,c5]@10 [g3,d4,c5]@6 [g3,c5]@7 g4@5 c5@9 ~@51, ~@4 c5@9 ~ d3@10 d3@6 d4@4 [d4,c5]@6 ~@16 d4@6 c4@15 ~@17 g3@10 g3@6 g3@9 ~ [g3,d4,g4]@8, ~@32 c3@4 c3@3 [d3,c4,c5]@5 [d3,c4,c5]@3 ~@17, ~@36 [e4,a4]@2 ~@9 g4@2 [d4,c5]@3 [d4,c5]@5 [d4,c5]@3 ~@4]/8", // Em C Gsus4 C5 D7 G5 D7 A5 …
  B: "[[b3,e4,g4]@5 [b3,e4,g4]@2 [c4,f4]@2 [c4,f4,a4]@2 [f4,a4,c5]@2 [g4,b4] [f3,f4,a4]@2, e3@13 ~ a3@18, ~@14 f3@13 ~@5, ~@22 c4@9 ~]/2", // Em F5 F G F
  C: "[a3,e4,a4]@3 a4@2 ~ e4@2, c4, ~@6 [a3,c5]@9 ~, ~@3 e4@3 ~@2, ~@5 a4@3", // A5 Am
  D: "[[f3,c4,f4]@3 [f3,f4,a4]@3 ~ [f3,a4,c5]@11 [a3,c4,f4,c5]@2 c5@2 c5@2 c5@2 [a3,c4,f4,b4]@2 a4@2 g4@2, a3@9 ~ [a3,c4,f4]@3 ~ [a3,c4,f4]@2, ~@3 c4@14 ~@15, ~@6 f4@11 ~@15]/2", // F5 F
  E: "[~@4 [e4,g4]@4 a4@2 ~@2 e4@2 g4@4 g4@2 a4@4 g4@2 a4@4 g4 g4@2 ~ g4@2 a4@2 g4 ~ g4@4 a4@2 g4@3 ~ g4@2 a4@2 g4@2 g4@2 a4@2 g4@4, c3@13 ~ [d3,c4,c5]@10 [d3,c4,c5]@6 g3@10 [g3,d4,c5]@10 [g3,d4,c5]@6 [g3,d4,c5]@8, ~@2 c5@5 ~@25, ~@8 e4@4 ~@18 d4@3 ~ [d4,c5]@6 ~@24, ~@5 g4@2 ~@25]/4", // Em D7 Gsus4 D7
  F: "[~@4 [e4,g4]@4 a4@2 ~@2 e4@2 g4@4 g4@2 a4@4 g4@2 a4@4 [c3,c4,e4,g4]@4 g4@2 a4@2 g4@2 g4@4 a4@2 [d3,c4,g4]@4 g4@2 a4@2 g4 ~ g4@4 a4@2 [d4,g4]@4 g4@2 a4@2 g4 ~ g4@4 a4@3 ~, c3@13 ~ [d3,c4,c5]@10 [d3,c4,c5]@6 ~@4 c3@12 ~@4 d3@12 e3@9 ~ [e3,d4,c5]@8, ~@2 c5@5 ~@33, ~@8 e4@4 ~@22 [e4,c5]@6 [e4,c5]@7 ~@3 [c4,c5]@6 [c4,c5]@6 ~@4 [d4,c5]@6 ~@8, ~@5 g4@2 ~@33]/5", // Em C Csus2 G5 D7 C D7
  G: "[f3,c4,f4,a4]@7 ~ [g3,d4,g4,b4]@4 [g3,d4,g4,b4]@4", H: "[[c3,g3,c4,e4,g4]@31 ~]/2",
})).s("gm_piano").gain(0.35).pan(0.4)

// chords · acoustic guitar steel · "AC.GUITAR"
const acoustic_guitar_steel = note(`<
  A B C D E F G H I J K L E F G H I J K L M N O P@2 A B C D E F G H I J K L M N O P@2 A B C D E F G H I J K L M N O P@2
  A B C D E F G H I J K L M N O P@2 Q R S T U V E F G H I J K L M N O P@2 A B C D E F G H I J K L M N O P@2 A B C D W@2
>`.pickRestart({
  A: "[c3,e3,g3,c4,e4,c5]@3 [e3,g3,c4,e4] [e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@3 c3 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4,c5]!2 [c3,e3,g3,c4,e4,c5]@2, ~@3 [c3,c5]@3 c5@6 ~@4", // C
  B: "[a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4,f4,a4]@2 [a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4,f4,a4]@2 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4] [a2,d3,a3,c4]@2, ~@13 [f4,a4]@3", // Dm7 D7 F
  C: "[b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4] [d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4] [b2,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2", // G
  D: "[b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4,b4] [d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]@3 [d3,g3,d4,g4] [d3,g3,d4,g4]@2 [b2,d3,g3,d4,g4,b4] [b2,g3,d4,g4,b4] [d3,g3,d4,g4,b4]@2, ~@9 [b2,b4]@3 ~@4", // G G5 G B
  E: "[c3,e3,g3,c4,e4,c5]@3 [e3,g3,c4] [e3,g3,c4]@2 [c3,e3,g3,c4,e4,c5]@3 [c3,e3,g3,c4] [c3,e3,g3,c4]@2 [c3,e3,g3,c4,e4,c5]!2 [c3,e3,g3,c4,e4,c5]@2, ~@3 [c3,e4,c5]@3 ~@3 [e4,c5]@3 ~@4", // C
  F: "[a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4,f4] [a2,d3,a3,c4,f4]@2 [a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4] [a2,d3,a3,c4]@2 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4,f4] [a2,d3,a3,c4,f4]@2, ~@3 a4@3 ~@3 [f4,a4]@3 ~ a4@3", // Dm7 D7 Dm7 F
  G: "[b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4] [d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]!2 [b2,d3,g3,d4,g4,b4]@2", // G
  H: "[b2,d3,g3,d4,g4,b4]@3 [g3,d4,g4,b4] [g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]!2 [b2,d3,g3,d4,g4,b4]@2, ~@3 [b2,d3]@3 ~@10", // G Bm
  I: "[c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4] [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4,c5]@3 [c3,e3,g3,c4] [c3,e3,g3,c4]@2 [c3,e3,g3,c4,e4,c5]!2 [c3,e3,g3,c4,e4,c5]@2, c5@6 ~@3 [e4,c5]@3 ~@4", // C
  J: "[a2,d3,a3,c4,f4,a4]@3 [a2,f4] [a2,d3,a3,c4,f4,a4]@2 [a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4,f4,a4]@2 [a2,d3,a3,c4,f4,a4]!2 [a2,d3,a3,c4,f4,a4]@2", // Dm7 Dm Dm7
  K: "[b2,d3,g3,d4,g4,b4]@3 [d3,g3,d4,g4] [d3,g3,d4,g4]@2 [b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4] [b2,d3,g3,d4,g4]@2 [b2,d3,g3,d4,g4,b4] [b2,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2, ~@3 [b2,b4]@3 ~@3 b4@3 ~@4", // G G5 G B
  L: "[b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4,b4] [d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4]@3 [b2,d3,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2 [b2,d3,g3,d4,g4,b4] [b2,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2", // G
  M: "[b2,e3,b3,e4,g4]@3 [b2,e3,b3,e4,g4] [b2,e3,b3,e4,g4]@2 [b2,e3,b3,e4,g4,b4]@3 [b2,e3,b3,e4,g4] [b2,e3,b3,e4,g4,b4]@2 ~ [e4,g4,b4] [b2,e3,b3,e4,g4,b4]@2, b4@3 ~@3 [b2,e3,b3,e4,g4,b4] ~", // Em
  N: "[c3,f3,a3,c4,f4]@3 [c3,f3,a3,c4,f4] [c3,f3,a3,c4,f4]@2 [c3,f3,a3,c4,f4]@3 [f3,a3,c4,f4] [f3,a3,c4,f4]@2 [c3,f3,a3,c4,f4,a4] [a3,c4,f4,a4] [c3,f3,a3,c4,f4,a4]@2, a4@3 a4@3 ~@2, ~@9 c3@3 ~@4", // F
  O: "[b2,e3,b3,e4,g4,b4]@3 [b2,e3,b3,e4,g4,b4] [e3,b3,e4,g4,b4]@2 [b2,e3,b3,e4,g4,b4]@3 [b2,e3,b3,e4,g4,b4] [b2,e3,b3,e4,g4,b4]@2 [b2,e3,b3,e4,g4,b4]!2 [b2,e3,b3,e4,g4,b4]@2", // Em
  P: "[[c3,f3,a3,c4,f4,a4]@3 [c3,f3,a3,c4,f4,a4]@3 ~ [c3,f3,a3,c4,f4,a4]@25]/2", // F
  Q: "[c3,e3,g3,c4,e4,c5]@3 [c3,e3,g3,c4,e4] [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4,c5]@3 [c3,e3,g3,c4,e4,c5] [e3,g3,c4,e4,c5]@2 ~ [c4,e4] [c3,e3,g3,c4,e4]@2, ~@3 c5@3 ~@6 [c3,e3,g3,c4,e4,c5]@2 ~@2, ~@13 c5@3", // C
  R: "[a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4,f4] [a2,d3,a3,c4,f4]@2 [c3,f3,a3,c4,g4,a4]@3 [c3,f3,a3,c4,g4,a4] [c3,f3,a3,c4,g4,a4]@2 [c3,f3,a3,c4,g4,a4] [c3,a3,c4,g4,a4] [c3,e3,g3,c4,e4,c5]@2, ~@3 a4@3 ~@10", // Dm7 F Am7 C
  S: "~ [g3,c4,e4,c5] [c3,e3,g3,c4,e4,c5]@2 ~ [c3,e3,g3] [c3,e3,g3,c4,e4,c5]@3 [c3,g3,c4,e4,c5] [c3,e3,g3,c4,e4,c5]@2 ~ [c3,e3,c5] [a2,d3,a3,c4,f4,a4]@2, ~@2 [c3,e3,g3,c4,e4,c5] ~@3 [c3,e3,g3,c4,e4] ~", // C Dm7 C
  T: "~ [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4,f4,a4]@2 ~ [a2,d3,a3] [a2,d3,a3,c4,f4,a4]@3 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4,f4,a4]@2 [a2,d3,a3,c4,f4,a4] [a2,d3,a3,c4] [b2,e3,b3,e4,g4,b4]@2, ~@2 [a2,d3,a3,c4,f4,a4] ~@5", // Dm7 D5 Dm7 D7 Em Dm7
  U: "~ [b2,b3,e4,g4] ~ [e4,g4] ~ [b2,e3,b3] [b2,e3,b3,e4,g4,b4]@3 [b2,e3,b3,e4,g4] [b2,e3,b3,e4,g4]@2 [b2,e3,b3,e4,g4,b4] [b2,e3,b3,e4] [b2,e3,b3,e4]@2, ~ b4@3 ~@5 b4@3 ~ [g4,b4]@3, ~ [b2,e3,b3] [b2,e3,b3,e4,g4,b4] ~@5", // Em E5 Em E5 G E5 Em
  V: "[c3,f3,a3,c4,f4,a4] [f3,a3,c4,f4] [f3,a3,c4,f4]@2 [c3,f3,a3,c4,f4,a4] [c3,f3,a3,c4] [c3,f3,a3,c4]@2 [b2,d3,g3,d4,g4,b4] [d3,g3,d4] [d3,g3,d4]@2 [b2,d3,g3,d4,g4,b4] [b2,g3,d4,g4,b4] [b2,d3,g3,d4,g4,b4]@2, ~ [c3,a4]@3 ~ [f4,a4]@3 ~ [b2,g4,b4]@3 ~@4", // F G G5 G F Em
  W: "[[c3,e3,g3,c4,e4,c5]@31 ~]/2", // C
})).s("gm_acoustic_guitar_steel").gain(0.19).pan(0.6)

// other · overdriven guitar · "EL.GUITAR"
const overdriven_guitar = note(`<
  ~@37 A B A C@2 ~@8 D E F@2 A G A H@2 ~@8 D E F@2 A G A H@2 ~ I@4 J@2 ~@3 D E F@2 A G A H@2 ~@8 D E F@2 A G K H@2 ~@6
>`.pickRestart({
  A: "e4@14 d4 e4", B: "f4@14 g4 a4", C: "[a4@3 c5@3 g5@24 ~@2]/2", D: "~@7 g5", E: "a5@4 g5@4 f5@2 e5@4 f5 e5",
  F: "[d5@14 c5@4 b4@7 ~ b4@2 a4@2 b4 a4]/2", G: "f4@6 g4 a4", H: "[f4@3 a4@3 ~ c5@24 ~]/2",
  I: "[~@14 c5@14 a4@2 d5@14 g4 ~ e5@18]/4", J: "[f5@8 g5@23 ~]/2", K: "e4",
})).s("gm_overdriven_guitar").gain(0.25).pan(0.7)

// other · banjo · "MANDOLIN"
const banjo = note(`<
  ~@10 A@2 B C D@2 E F A@2 E F E ~@2 E F A@2 E F A@2 E F A@2 E F E ~@2 E F A@2 E F A@2 E F A@2 E F E ~@2 E F A@2 E F A@2
  E F A@2 E F E ~@2 E F G@4 E F A@2 E F A@2 E F E ~@2 E F A@2 E F A@2 E F A@2 E F E ~@2 E F A@2 ~@2
>`.pickRestart({
  A: "g5!16", B: "c5!14 e5!2", C: "f5!4 e5!4 c5!2 a4!4 g4!2", D: "g4!16", E: "e5!16", F: "f5!16", G: "c5!16",
})).s("gm_banjo").gain(0.19).pan(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  ~@29 A B C@2 D B C@2 E F G H@2 ~@2 I J A B C@2 D B C@2 E F G H@2 ~@4 A B C@2 D B C@2 E F G H@2 ~@6 A B C@2 D B C@2 E F
  G H@2 ~@2 I J A B C@2 D B C@2 E F G H@2 ~@2 I J K@2
>`.pickRestart({
  A: "c5@13 ~ e5@2", B: "f5@2 e5@2 c5 a4@3", C: "g4/2", D: "c5@7 e5", E: "e4", F: "f4", G: "e4@15 ~",
  H: "[a4@3 c5@3 ~ g5@25]/2", I: "[g3,g4] [g3,d4]!3 [g3,f4] [g3,d4]!3 [g3,e4] [g3,d4]!3 [g3,f4] [g3,d4]!3",
  J: "[g3,g4] [g3,d4]!3 [g3,e4] [g3,d4]!3 [g3,f4] [g3,d4]!3 [g3,f4]@2 [g3,d4]@2", K: "[c4,g4]/2",
})).s("gm_string_ensemble_1").gain(0.26).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  ~@12 A@2 B C A@2 B C A D E F C A@2 B C A@2 B C A@2 B C A D E F C A@2 B C A@2 B C A@2 B C A D E F C A@2 B C A@2 B C A@2
  B C A D E F C A D G H I J A@2 B C A@2 B C A D E F C A@2 B C A@2 B C A@2 B C A D E F C A@2 B C@2 ~
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@4 x", B: "x ~@6 x!2 ~ x ~@5", C: "x", D: "x ~@6 x!2 ~ x ~@3 x ~", E: "x ~ x!2",
  F: "x ~@2 x ~@3 x ~@4 x ~@3", G: "~ x ~@2 x ~@2 x", H: "~ x ~@2 x ~ x!2", I: "~ x ~@2 x ~ x ~",
  J: "x ~@3 x ~@2 x ~@4 x ~@3",
})).gain(0.4)

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@19 A ~@8 A ~@7 A ~@8 A ~@7 A ~@8 A ~@7 A ~@10 B ~@7 A ~@8 A ~@7 A ~@8 A ~@2
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~@12 x ~ x!2",
})).gain(0.45)

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

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@11 A ~@3 A ~@3 B ~@4 A ~@3 C ~@3 A ~@3 B ~@4 A ~@3 C ~@3 A ~@3 B ~@4 A ~@3 C ~@3 A ~@3 B ~@4 A ~@5 D ~@3 A ~@3 B ~@4
  A ~@3 C ~@3 A ~@3 B ~@4 A ~@3 C ~@2
>`.pickRestart({
  A: "~@4 x!3 ~", B: "~@6 x!3 ~@7", C: "~@7 x!2 ~@7", D: "~@9 x!2 ~@5",
})).gain(0.4)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@28 A ~@16 A ~@16 A ~@35 A ~@16 A ~@2>".pickRestart({
  A: "~@3 x ~@4",
})).gain(0.15)

// drums · open hat
const open_hat = s("oh").struct("<~@22 A ~@16 A ~@16 A ~@16 A ~@3 B@3 ~@12 A ~@16 A ~@8>".pickRestart({
  A: "~@2 x!2", B: "~@7 x",
})).gain(0.45)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@11 A ~@3 A ~@3 A ~@4 A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@3 A ~@3 A ~@4 A ~@5 B ~@3 A ~@3 A ~@4
  A ~@3 A ~@3 A ~@3 A ~@4 A ~@3 A ~@2
>`.pickRestart({
  A: "~ x!2 ~@5", B: "~@4 x ~ x!2 ~@8",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct(`<
  ~@12 A ~@3 A ~@3 A ~@2 B ~ A ~@3 A ~@3 A ~@3 A ~@2 B ~ A ~@3 A ~@3 A ~@3 A ~@2 B ~ A ~@3 A ~@3 A ~@3 A ~@2 B ~ A ~@5 A
  ~@3 A ~@3 A ~@2 B ~ A ~@3 A ~@3 A ~@3 A ~@2 B ~ A ~@3 A ~
>`.pickRestart({
  A: "x", B: "x ~@2 x ~@3 x ~@8",
})).gain(0.45)

stack(
  bass, piano, acoustic_guitar_steel, overdriven_guitar, banjo, string_ensemble_1, kick, snare, low_tom, hihat, mid_tom,
  mid_tom_soft, open_hat, high_tom, crash
)

More by Antonello Venditti