Strudelify
Alta marea cover art

1991 · Benvenuti In Paradiso

Alta marea

Antonello Venditti

KeyC majorTempo72 bpm
0:00/0:00
// Alta marea — Antonello Venditti
// 72 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 95 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(72/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(`<
  ~@6 A B C D A B C D E F G H E F G H I J I J I K L@2 M N O P A Q C D R S T U T V L@2 W X Y Z AA AB AC AD AE AF M AG AH
  AF M AG AI AJ AK AL AM AL AN@2 AO AP AO AP AQ AP AQ AR O AS AT AU O AV AT AW O AX AT AU O AV AT AW AY
>`.pickRestart({
  A: "c2@5 ~ c2 ~ c2@5 ~@3", B: "a1@5 ~ a1 ~ a1@6 ~@2", C: "f1@5 ~ f1 ~ f1@6 ~@2", D: "e1@5 ~ e1 ~ e1@6 ~@2",
  E: "c2@12 ~ c2 c2@2", F: "a1@15 ~", G: "f1@12 ~ f1 f1@2", H: "e1@15 ~", I: "f1@5 ~ f1 ~ g1@7 ~",
  J: "c2@5 ~ c2 ~ a1@7 ~", K: "c2@5 ~ c2 ~ a1@4 g1@4", L: "[f1!2 ~@5 f1!2 f1@2 ~@3 f1@18]/2", M: "c2@5 ~ c2 ~ c2@7 ~",
  N: "a1@5 ~ a1 ~ a1@7 ~", O: "f1@5 ~ f1 ~ f1@7 ~", P: "e1@5 ~ e1 ~ e1@2 g#1 b1 e2@2 d2@2", Q: "a1@6 a1 ~ a1@6 ~@2",
  R: "f1@5 ~ f1 ~ g1@5 ~ g1 a1", S: "c2@5 ~ g1 c2 a1@7 ~", T: "f1@5 ~ f1 ~ g1@3 ~ g1 a1 c2 d2",
  U: "c2@4 b1@4 a1@4 e1@3 ~", V: "c2 ~ c3@2 b2@4 a2@4 g2@4", W: "~@2 f1!2 ~ f1 f1@6 ~@2 e1!2",
  X: "~ e1 e1@6 ~@3 g1 c2@3 ~", Y: "~@3 f1!2 ~ f1 f1@5 ~@2 g1!2", Z: "~ g1 g1@4 ~ g1 d2@3 ~@5",
  AA: "f1@5 ~ g1 a1 c2!2 a1 ~@2 g1 a1 ~", AB: "f1@6 ~ a1 ~ a1 e1 ~ a1@3 ~", AC: "f1@5 g1 a1 c2 ~ c2 a1 g1 c2@2 g1 a1",
  AD: "a#1@5 ~ a#1 ~ a#1@6 ~@2", AE: "a#1@5 ~ a#1 ~ a#1@2 c2 c#2 d2@3 ~", AF: "d#2@5 ~ d#2 ~ d#2@7 ~",
  AG: "g#1@5 ~ g#1 ~ g#1@7 ~", AH: "g1@5 ~ g1 ~ g1@2 g1 d2 g2@2 f2@2", AI: "g1@5 ~ g1 ~ g1@7 ~",
  AJ: "g#1@5 ~ g#1 ~ a#1@5 ~ a#1 c2", AK: "d#2@6 a#1 d#2 c2@7 ~", AL: "g#1@5 ~ g#1 ~ a#1@3 ~ a#1 c2 d#2 f2",
  AM: "d#2 d2 c2 g1", AN: "[d#2@4 d2@4 c2@4 a#1 ~ g#1@17 ~]/2", AO: "g#1@6 g#1 ~ a#1@7 ~", AP: "d#2@6 a#1 ~ c2@7 ~",
  AQ: "g#1@5 ~ g#1 ~ a#1@7 ~", AR: "c2@4 e1@3 g1 c2@2 e1@2 c2@4", AS: "d2@5 ~ d2 ~ d2@7 ~", AT: "a#1@5 ~ a#1 ~ a#1@7 ~",
  AU: "a1@5 ~ a1 ~ a1@5 e1 a1 e1", AV: "d2@5 ~ d2 ~ e2@2 d2 c2 d2 c2 a1@2", AW: "a1@5 ~ a1 ~ a1@2 e2 a2@2 a1 e1 g1",
  AX: "d2@5 ~ d2 ~ d2@8", AY: "f1@3 ~@13",
})).s("gm_fretless_bass").gain(0.57)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@6 A B C D A B C D E B C D A B C D F G F H I J@3 A B C D A B C D K H F H F L@3 ~@4 M@3 N@2 O P Q R O P Q R S T S T S
  U@2 S T S V S V S W C X Y Z C X Y Z C X Y Z C X Y Z AA
>`.pickRestart({
  A: "[g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@2 [g3,c4,e4]@2", // C
  B: "[a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@2 [a3,c4,e4]@2", // Am C Am C Am C Am
  C: "[a3,c4,f4]@3 [c4,f4] [a3,c4,f4]@3 [c4,f4] [a3,c4,f4]@3 [c4,f4] [a3,c4,f4]@2 [a3,c4,f4]@2", // F F5 F F5 F F5 F
  D: "[a3,b3,e4]@3 [b3,e4] [a3,b3,e4]@3 [b3,e4] [g#3,b3,e4]@3 [b3,e4] [g#3,b3,e4]@2 [g#3,b3,e4]@2", // Asus2 E5 Asus2 E5 E E5 E
  E: "[g#3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@2 [g3,c4,e4]@2", // G#aug C
  F: "[a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [g3,b3,e4]@3 [b3,e4] [g3,b3,e4]@3 [b3,e4]", // Am C Am C Em E5 Em E5
  G: "[g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@4", // C Am C Am
  H: "[g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 ~", // C Am C Am
  I: "[a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [g3,b3,e4]@3 [b3,e4] g2 a2 ~ [d3,b3,e4], ~@3 [g3,b3,e4], ~@7 c3", // Am C Am C Em E5 E7 Em
  J: "[c3@2 ~@2 b2@2 e3 g3 a2@2 e3 ~ g2@2 ~@2 [a3,c4,e4]@13 ~ [a3,c4,e4,g4]@12 ~@6, ~ e3 ~@5 e3 ~@16, ~@3 g3@2 ~@6 g3@2 ~@2 f3@13 ~@20]/3", // Am Am7
  K: "[g#3,a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [g3,b3,e4]@3 [b3,e4] [g3,b3,e4]@3 [b3,e4]", // Am C Am C Em E5 Em E5
  L: "[[g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 [c4,e4] [a3,c4,e4]@3 ~ [a3,c4,e4]@13 ~ [a3,c4,e4,g4]@14 ~@4, ~@15 f3@13 ~@20]/3", // C Am C Am Am7
  M: "[a3,c4,f4]@3 [c4,f4] [a3,c4,f4]@4 [g3,c4,e4]@3 [c4,e4] [g3,c4,e4]@4", // F F5 F C
  N: "[g#3,c4,d#4]@2 [g#3,c4,d#4] [a#3,d4,f4]@2 [a#3,d4,f4]@3", // G# A#
  O: "[g3,a#3,d#4]@3 [a#3,d#4] [g3,a#3,d#4]@3 [a#3,d#4] [g3,a#3,d#4]@3 [a#3,d#4] [g3,a#3,d#4]@2 [g3,a#3,d#4]@2", // D# D#5 D# D#5 D# D#5 D#
  P: "[g3,c4,d#4]@3 [c4,d#4] [g3,c4,d#4]@3 [c4,d#4] [g3,c4,d#4]@3 [c4,d#4] [g3,c4,d#4]@2 [g3,c4,d#4]@2", // Cm
  Q: "[g#3,c4,d#4]@3 [c4,d#4] [g#3,c4,d#4]@3 [c4,d#4] [g#3,c4,d#4]@3 [c4,d#4] [g#3,c4,d#4]@2 [g#3,c4,d#4]@2", // G# Cm G# Cm G# Cm G#
  R: "[g3,c4,d4]@3 [c4,d4] [g3,c4,d4]@3 [c4,d4] [g3,b3,d4]@3 [b3,d4] [g3,b3,d4]@2 [g3,b3,d4]@2", // Gsus4 Csus2 Gsus4 Csus2 G Bm G
  S: "[c4,d#4,g4]@3 [d#4,g4] [c4,d#4,g4]@3 [d#4,g4] [a#3,d4,g4]@3 [d4,g4] [a#3,d4,g4]@3 [d4,g4]", // Cm D# Cm D# Gm G5 Gm G5
  T: "[a#3,d#4,g4]@3 [d#4,g4] [a#3,d#4,g4]@3 [d#4,g4] [c4,d#4,g4]@3 [d#4,g4] [c4,d#4,g4]@3 ~", // D# Cm D# Cm
  U: "[[a#3,d#4,g4]@3 [d#4,g4] [a#3,d#4,g4]@3 [d#4,g4] [c4,d#4,g4]@3 [d#4,g4] ~@2 [c4,d#4,g4]@13 ~@5, ~@6 [c4,d#4,g4] ~@9, ~@13 g#3@13 ~@6]/2", // D# Cm D# Cm
  V: "[a#3,d#4,g4]@3 [d#4,g4] [a#3,d#4,g4]@3 [d#4,g4] [c4,d#4,g4]@3 [d#4,g4] [c4,d#4,g4]@4", // D# Cm D# Cm
  W: "[c4,f4,g4]@3 [c4,f4,g4]@3 [c4,f4,g4]@2 [c4,e4,g4]@3 [c4,e4,g4]@3 [c4,e4,g4]@2", // Csus4 C
  X: "[a3,d4,f4]@3 [d4,f4] [a3,d4,f4]@3 [d4,f4] [a3,d4,f4]@3 [d4,f4] [a3,d4,f4]@2 [a3,d4,f4]@2", // Dm
  Y: "[a#3,d4,f4]@3 [d4,f4] [a#3,d4,f4]@3 [d4,f4] [a#3,d4,f4]@3 [d4,f4] [a#3,d4,f4]@2 [a#3,d4,f4]@2", // A# Dm A# Dm A# Dm A#
  Z: "[a3,d4,e4]@3 [d4,e4] [a3,d4,e4]@3 [d4,e4] [a3,c#4,e4]@3 [c#4,e4] [a3,c#4,e4]@2 [a3,c#4,e4]@2", // Asus4 Dsus2 Asus4 Dsus2 A C#m A
  AA: "[a3,c4,f4]@3 ~@5", // F
})).s("gm_acoustic_guitar_steel").gain(0.11)

// chords · overdriven guitar
const overdriven_guitar = note("<~@22 A ~@27 B@2 C@2 D E ~ F G H ~ F G ~@32>".pickRestart({
  A: "[c4,e4,f4,a4]@3 ~@13", B: "f3 a3 c4 g4 ~ f4 ~ c4@3 d4@3 c4 a3 g3",
  C: "[f3 a3 c4 g4 ~ f4 ~ c4@3 d4@3 c4@8 ~ d4@9 ~]/2", D: "d#4@5 ~ f4@9 ~", E: "[a#3,d#4,g4]@3 ~@5",
  F: "~@5 c4 d#4@9 ~, g#3@3 ~@5, ~ c4@2 g#4@5 ~@8, ~ d#4 ~@6", G: "[g3,c4,d4]@7 ~ [g3,b3,d4]@7 ~",
  H: "[a#3,d#4,g4]@7 ~@9", // D#
})).s("gm_overdriven_guitar").gain(0.19)

// other · tenor sax
const tenor_sax = note("<~@6 A B C D E F G H ~@32 I J K L ~@28 M@2 N O P@2 Q R S@2 T O P@2 Q R ~>".pickRestart({
  A: "e4@2 d4 g4", B: "c4@7 ~ b3@4 e4@4, ~@8 a#3 ~@7", C: "a3@11 ~@2 b3@2 c4", D: "b3@2 ~ b3@9 ~ g3 [a3,b3] [c4,d4]",
  E: "e4 d4 e4@6 d4@4 g4@4, ~@12 f#4 ~@3", F: "c4 b3 c4@5 ~ b3@4 e4@4", G: "a3@7 ~@3 b3 c4@2 d4@3, g#3 ~@15",
  H: "b3 a3 b3@9 ~@5", I: "e4@2 ~@2 e4@2 ~@2 e4@2 ~@2 e4 ~@3", J: "d4 e4 d4 e4 d4 b3 g3@6 ~@4",
  K: "e4@2 f4 e4 ~ f4 ~ e4@6 ~@2 c4, d#4 ~@15", L: "d4 e4 d4@6 ~@8",
  M: "[~@5 c4@2 d4 ~ f4 e4 ~ e4@7 ~@4 d4 ~ f4 g4 ~ e4@4, ~@4 e4 ~@6 c4 e4 ~@3]/2",
  N: "~ d4 ~ d4 ~ c4 ~ c4!2 a#3 ~ a#3 ~ a3 ~ g3, ~@2 d4 ~@3 a#3 ~", O: "a3 ~ a3@10 ~@4",
  P: "[~@5 c4@2 d4 e4 f4 e4 ~ e4@2 g4@7 c4@2 d4 e4@2 f4 g4 e4@4]/2",
  Q: "~ d4@2 d4!2 c4 ~ c4 ~ a#3 ~ a#3 ~ a3 ~ g3, ~@4 c4 ~ a#3 ~", R: "a3@7 ~",
  S: "[~@5 c4@2 d4 ~ f4 e4 ~ e4@6 ~@5 d4 ~ f4 g4 ~ e4@4, ~@4 e4 ~@6 c4 e4 ~@3]/2",
  T: "~ d4 ~ d4 ~ c4 ~ c4 ~ a#3 ~ a#3 ~ a3 ~ g3, ~@2 d4 ~ c4 ~ a#3 ~",
})).s("gm_tenor_sax").gain(0.25)

// chords · percussive organ
const percussive_organ = note(`<
  ~@37 A B C D E F C G@2 ~@4 H@3 I J ~@4 K L M N O P Q P Q R@2 S T S T S T S U V@12 W@5
>`.pickRestart({
  A: "~@14 [f3,g3,a3] [b3,c4,d4,e4]", B: "[c5,f5,a5] [d5,g5,b5], [f4,g4] ~@15", C: "[e5,g5,c6] [c5,e5,a5]",
  D: "[c5,e5,a5] [d5,g5,b5]", E: "c6 b5 [c5,e5,a5]@2, [e5,g5] ~", F: "[c5,f5,a5] [d5,g5,b5]", G: "[c5,f5,a5]/2",
  H: "[a4,c5,f5] [g4,c5,e5]", I: "[d#4,g#4,c5]@3 [f4,a#4,d5]@5", J: "[g#4,c5,d#5]@6 [a#4,d5,f5]@9 ~", K: "g6@2 f6 a#6",
  L: "d#6@2 d6 g6", M: "c6@14 d6 d#6", N: "d6@5 ~ b5 a5 b5@6 [g#3,a#3,c4] [d4,d#4,f4,g4]",
  O: "[d#5,g#5,c6] [f5,a#5,d6], [g#4,a#4] ~@15", P: "[g5,a#5,d#6] [d#5,g5,c6]", Q: "[d#5,g#5,c6] [f5,a#5,d6]",
  R: "[[g5,a#5,d#6]@4 [d#5,g5,c6]@3 [d#5,g5,c6]@9]/2", S: "c6@2 a#5@2 g#5@2 g5@2 f5@7 ~",
  T: "a#5@2 g#5@2 g5@2 f5@2 d#5@7 ~", U: "f5 e5, [c5,g5]",
  V: "[c6@2 ~@2 a#5@2 ~ c#6, f5@3 [e5,a5], a5 ~, ~@2 d6@5 ~]/4", // A5
  W: "[c6@16 ~@16 a#5@16 ~@8 c#6@8 [f5,c6]@7 ~@9, f5@3 e5 ~, a5@32 ~@16 a5@23 ~@9, ~@2 d6@5 ~@3]/5", // F5
})).s("gm_percussive_organ").gain(0.09)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@6 B@4 C@4 B@4 C@4 D@6 E@2 B@4 C@4 F@6 G@2 H@2 I@2 J@3 K L M@4 N@4 O@7 P@6 Q R S@4 T@4 S@4 T@4 U
>`.pickRestart({
  A: "f1/6", B: "[d5@2 ~@2 [f4,f5]@2 ~ g#4, c5@3 ~, [e4,g4]@2 ~ [e4,b4,e5], ~@2 a4@5 ~]/4",
  C: "[d5@2 e5@2 [f4,f5]@2 ~ g#4, c5@3 [e4,b4,e5], [e4,g4]@4 a4@3 ~]/4", // F E5 Em
  D: "[[f4,a4,c5,f5]@2 [b4,d5,g5]@2 ~@4 [f4,f5]@2 [b4,d5,g5]@2 [e4,e5]@4 [f4,a4,f5]@2 [b4,d5]@2 e5 d5 ~ b4, ~ g4@2 a4@2 g4@3 ~ [g4,g5]@2 ~, ~@4 c5@6 ~@2 c5@6 ~@2 c5@3 ~, ~@2 [e4,e5]@2 ~@7 [e4,a4,e5]]/6", // F G F G E F Bm G …
  E: "[f4,a4,c5,f5]/2", // F
  F: "[[f4,a4,c5]@2 [b4,d5]@2 ~@4 f4@2 [b4,d5]@2 e4@4 [f4,a4]@2 [b4,d5]@2 e5 d5 ~ b4, ~ g4@2 a4@2 g4@3 ~ g4@2 ~, ~@4 c5@6 ~@2 c5@6 ~@2 c5@3 ~, ~@2 e4@2 ~@7 [e4,a4]]/6", // F Bm F Bm A5
  G: "[f4,a4,c5]/2", H: "[[f4,a4,c5]@14 ~@2 e5 ~@3 e5 ~@3 e5 ~@3 e5 ~@3, ~@7 [g4,b4,d5]@9]/2",
  I: "[e5 ~@3 e5 ~@3 e5 ~@3 e5 ~@3 e5 ~@3 e5 ~@3 e5 ~@3 e5 ~@3, [f4,a4,c5]@7 [b4,d5,g5]@9]/2", // F G
  J: "[[a4,f5]@7 [g4,e5]@9 [a4,f5]@7 [g4,e5]@9 [a4,f5]@7 [g4,e5]@9, c5]/3", K: "[g#4,c5,d#5]@3 [a#4,d5,f5]@5",
  L: "[c5,d#5,g#5]@3 [d5,f5,a#5]@5", M: "[f5@2 ~@2 [g#4,g#5]@2 ~ b4, d#5@3 ~, [g4,a#4]@2 ~ [g4,d5,g5], ~@2 c5@5 ~]/4",
  N: "[f5@2 g5@2 [g#4,g#5]@2 ~ b4, d#5@3 [g4,d5,g5], [g4,a#4]@4 c5@3 ~]/4", // G# G5 Gm
  O: "[[g#4,c5,d#5,g#5]@4 [d5,f5,a#5]@4 ~@8 [g#4,g#5]@4 [d5,f5,a#5]@4 [g4,g5]@8 [g#4,c5,g#5]@4 [d5,f5]@4 ~@4 g4@3 [g#4,g#5]@9, ~ a#4@2 c5@2 a#4@3 ~ [a#4,a#5]@2 c5@3, ~@2 d#5@3 ~ d#5@3 ~ d#5@4, ~@8 [g4,g5]@8 ~@24 g5@7 ~@9]/7", // G# A# G# A# G G# Dm G# …
  P: "[[g#4,c5,d#5,g#5] [d5,f5,a#5] ~ c5, ~ a#4@2 ~, ~ [g4,d#5,g5]]/2", Q: "[g#4,c5,d#5,g#5] [a#4,d5,f5,a#5]",
  R: "f5 g5, [g4,c5]", S: "[g5@2 ~@2 [a#4,a#5]@2 ~ c#5, f5@3 ~, [a4,c5]@2 ~ [a4,e5,a5], ~@2 d5@5 ~]/4",
  T: "[g5@2 a5@2 [a#4,a#5]@2 ~ c#5, f5@3 [a4,e5,a5], [a4,c5]@4 d5@3 ~]/4", U: "[c5,f5,a5,c6]@5 ~@3",
})).s("gm_string_ensemble_2").gain(0.2)

// chords · pad new age
const pad_new_age = note("<~@4 A@2 ~@39 B C ~@2 B C ~@44>".pickRestart({
  A: "[[c4,e4,a4]@14 [d4,g4,b4]@12 [g4,b4,d5]@5 ~]/2", // Am G
  B: "~@12 [e3,f3,g3,a3] [b3,c4,d4,e4] [f4,g4,a4,b4] [c5,d5,e5,f5]", C: "[e5,g5,a5] ~@7",
})).s("gm_pad_new_age").gain(0.19)

// drums · kick
const kick = s("bd").struct("<~@2 A B A B C@8 A@8 C@6 D ~ C@14 D ~ E F G H I J K C@15 L M C@24 A>".pickRestart({
  A: "x", B: "~@8 x ~ x!2 ~@4", C: "x ~@2 x!2 ~@3", D: "x!2 ~@5 x!3 ~@4 x ~", E: "~@2 x!2 ~ x!2 ~@7 x!2",
  F: "~ x!2 ~@8 x!2 ~@3", G: "~@3 x!2 ~ x!2 ~@3 x!2 ~ x!2", H: "~ x!2 ~@4 x!2 ~@2 x!2 ~@3", I: "x ~@6 x ~@8",
  J: "x ~@6 x ~ x!2 ~@5", K: "x ~@5 x ~@7 x!2", L: "x ~@2 x!2 ~ x!2", M: "~@11 x!2 ~@3",
})).gain(0.64)

// drums · rim
const rim = s("rim").struct("<~@14 [~ x ~ x]!8 ~@73>").gain(0.57)

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

// drums · low tom
const low_tom = s("lt").struct("<~@28 A B ~@14 A ~@4 C ~@27 D ~@7 E ~@7 F ~>".pickRestart({
  A: "~@7 x!3 ~@4 x ~", B: "~@7 x", C: "~@15 x", D: "~@3 x ~@2 x ~@3 x ~@5", E: "~@3 x ~@4", F: "~@11 x ~@3 x",
})).gain(0.43)

// drums · hihat
const hihat = s("hh").struct("<~@6 A@7 B A@7 B A@6 C D A@55 E A@7 E ~>".pickRestart({
  A: "x!16", B: "x!14 ~@2", C: "x!12 ~@2 x!2", D: "x!10 ~@2 x!2 ~@2", E: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2",
})).gain(0.29)

// drums · mid tom
const mid_tom = s("mt").struct("<~@29 A ~@7 B ~@11 C ~@4 D ~@30 E ~@7 F ~>".pickRestart({
  A: "~@12 x!2 ~@2", B: "~@14 x!2", C: "~@6 x!2", D: "~@12 x!4", E: "x ~@2 x ~@6 x ~@5", F: "~@4 x!4",
})).gain(0.43)

// drums · open hat
const open_hat = s("oh").struct("<~@13 A ~@7 A ~@6 B C ~@55 D ~@7 D ~>".pickRestart({
  A: "~@7 x", B: "~@3 x", C: "~@5 x ~ x", D: "~ x ~ x ~ x ~ x",
})).gain(0.43)

// drums · high tom
const high_tom = s("ht").struct("<~@29 A ~@7 B ~@11 B ~@4 C ~@30 D ~@7 E ~>".pickRestart({
  A: "~ x", B: "~@12 x!2 ~@2", C: "~@10 x!2 ~@4", D: "x!2", E: "~@8 x!2 ~@2 x!2 ~@2",
})).gain(0.5)

// drums · china
const china = s("cr").struct(`<
  ~@6 A ~@3 A ~@2 B ~@8 A ~@7 A ~@7 A ~@2 C ~ C D ~@6 C ~ A E A ~@2 C ~@3 C A ~@2 C ~ D F ~@8 A ~@3 A ~@3 A ~@3 A ~@3 A
>`.pickRestart({
  A: "x", B: "~ x", C: "~@3 x", D: "~@7 x", E: "x ~@2 x ~@4", F: "~ x ~@2",
})).gain(0.5)

// drums · congas
const congas = s("conga:18").struct("<~@2 [~ x ~@6]!52 ~ [~ x ~@6]!39 ~>").gain(1.14)

// drums · congas
const congas_2 = s("conga:33").struct("<~@2 [~@14 x!2]!52 ~ [~@14 x!2]!39 ~>").gain(1.14)

// drums · claves
const claves = s("clave:2").struct("<~@2 [~@6 x!2 ~@8]!52 ~ [~@6 x!2 ~@8]!39 ~>").gain(2.1)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct(`<
  ~@2
  [~@2 x!2 ~@6 x!4 ~@2]
  [~@10 x!4 ~@2]
  [~@2 x!2 ~@6 x!4 ~@2]
  [~@10 x!4 ~@2]
  ~@89
>`).gain(0.52)

stack(
  bass, acoustic_guitar_steel, overdriven_guitar, tenor_sax, percussive_organ, string_ensemble_2, pad_new_age, kick,
// … 2 more lines

More by Antonello Venditti