Strudelify
Tutti quanti abbiamo un angelo cover art

1994 · Angelo

Tutti quanti abbiamo un angelo

Ron

KeyC majorTempo110 bpm
0:00/0:00
// Tutti quanti abbiamo un angelo — Ron
// 110 bpm, 4/4, key C 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 108 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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
const bass = note(`<
  ~@22 A B C D E F G D H I J K L M N O P I Q R S M T U V M W X Y Z AA AB AC AD AE AF ~ AF ~@3 AF ~@2 AG AH AI AJ AK M AL
  AM AN AO AP AQ X AR K AS AT AU AP AV X AR K AS AT AU M W X Y M W X AW AX@3 ~@3 AY@2
>`.pickRestart({
  A: "~@8 g2 ~ g1@6", B: "c2@3 ~@5 e2@3 ~ g2@2 ~@2", C: "f2@3 ~@5 c1 ~ e1 ~ g1@2 ~@2", D: "c2@3 ~@5 e2@3 ~ g2@3 ~",
  E: "d2@4 ~@4 g1 ~ g1@2 a1@2 d2@2", F: "c2@4 ~@4 e2@3 ~ g2@2 ~@2", G: "f2@4 ~@2 d3@3 ~ c3 ~ a2@3 ~",
  H: "~@2 g2 ~@3 g2@2 ~@2 g1@2 a1@4", I: "c2 ~ e2 ~", J: "f2@4 ~@2 f2@2 b1 ~ b1 ~ g1@3 ~", K: "c2@5 ~@3 e2@3 ~ g2@3 ~",
  L: "d2@5 ~ g2@2 g1 ~ g1@2 a1@3 ~", M: "c2@6 ~@2 e2@3 ~ g2@3 ~", N: "f2@5 ~ d3@4 c3@2 a2@4", O: "~@2 g2@5 ~ g2@8",
  P: "~ g2 a1@2 a1 b1 c2 d2", Q: "f2@4 ~@4 b1@2 b1@2 g1@3 ~", R: "c2@6 e2@6 g2@3 ~",
  S: "g2@2 g1@2 g1@2 g2@2 g1 ~ g1@2 a1@3 ~", T: "f2@5 ~ d3@4 c3@2 ~@2 d3@2", U: "~@2 c3@2 g2@2 ~@2 g2@2 ~@2 g2@3 ~",
  V: "g1@3 g1 a1 c2 d2@2", W: "f1@6 a1@3 ~ a1@2 c2@3 ~", X: "c2@5 ~ c2 ~ e2@3 ~ g2@3 ~", Y: "d2@5 ~ g2@3 ~ g2@3 ~ g2@2",
  Z: "~@2 g2@3 ~ g1@2 c1 ~ c1@2 d1@3 ~", AA: "f1@5 ~ f1@2 a1@4 c2@3 ~", AB: "c2@7 ~ c2 g1@3 a1@4",
  AC: "g1@5 ~ g1@3 ~ g1@2 a1@4", AD: "c1@4 ~@4 g2@3 ~@5", AE: "f2@4 ~@4 g2 ~ g2 ~ g2@4", AF: "c2 ~ c2 ~@13",
  AG: "~@8 g1 ~ g1@2 a1@4", AH: "c2@6 ~@2 g1@4 c2 ~ e1 ~", AI: "f1@4 ~@4 a1@3 ~ c2@2 ~@2", AJ: "c2@4 ~@4 e2@3 ~ g2@3 ~",
  AK: "g2@4 ~@2 g2@2 g1 ~ g1 ~ a1@3 ~", AL: "f2@5 ~ d3@4 c3@2 a2@3 ~", AM: "g2@15 ~", AN: "g2@13 ~ g1@2",
  AO: "g1@3 g1@2 d2 g1@2", AP: "c2@5 ~@3 g1@6 ~@2", AQ: "f1@5 ~ a1@4 a1 ~ c2@3 ~", AR: "d2@5 ~ g2@2 g1 ~ g1@2 a1@4",
  AS: "f2@5 ~ d3@3 ~ c3@2 a2@3 ~", AT: "c2@5 ~ c2 ~ e2@3 ~ g2@4", AU: "~@2 g2@3 ~ g1@2 a1@2 c2@2 d2@2 e2@2",
  AV: "f1@5 ~ a1@4 a1@2 c2@3 ~", AW: "d2@4 g1@2 a1@2 b1@2 c2@2 d2@2 e2 ~", AX: "[c2@43 ~@5]/3", AY: "c2/2",
})).s("gm_acoustic_bass").gain(0.64)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@11 A@2 B C@2 ~ D@2 E@2 D@2 F@4 G@5 H I@2 J@2 K L M@4 N@2 O@2 P@8 Q@5 ~@7 R@2 S@2 T U V@2 W B X Y@2 B X Y@2 B X Z@2 B
  X Y@2 ~@9 AA@2 AB@2 ~@3
>`.pickRestart({
  A: "[c4@2 c5@4 b4@4 a4@4 g4@4 c4@2 g4@3 ~ g4@4 g4@4]/2", B: "c4 c5@2 b4@2 a4@2 g4", C: "[~ g4 g5 g4 f5 e5 d5 c5@9]/2",
  D: "[c4 g4@2 f4@2 e4@2 d4@9]/2", E: "[c4@2 g4@4 f4@4 e4@3 ~ e4@4 f4@14]/2",
  F: "[c4@2 c5@4 b4@4 a4@4 g4@4 c4@2 g4@4 g4@2 g4@3 ~ g4@4 c5@4 b4@4 a4@4 g4@4 g4@3 ~ g4@3 ~ g4@6]/4",
  G: "[c4@2 c5@4 b4@4 a4@4 g4@4 c4@2 g4@4 g4@2 g4@3 ~ g4@4 c5@4 b4@4 a4@4 g4@4 g4@2 g5@2 g4@2 f5@2 e5@2 d5@2 c5@15 ~@3]/5",
  H: "e4 f4@7", I: "[c4@2 g4@4 f4@4 e4@4 d4@11 ~@7]/2", J: "[c4@2 g4@4 f4@4 e4@3 ~ e4@4 f4@12 ~@2]/2",
  K: "c4 g4@2 f4@2 e4@2 d4", L: "e4 f4 e4 d4",
  M: "[c4@2 g4@4 f4@4 e4@3 ~ e4@4 f4@4 f4@4 f4@3 ~ f4@4 g4@4 f4@4 e4@4 d4@10 e4@4 f4@4]/4",
  N: "[c4@2 g4@4 f4@4 e4@3 ~ e4@4 f4@4 f4@4 f4@3 ~ f4@2]/2", O: "[c4 g4@2 f4@2 e4@2 d4@5 e4@2 f4@2]/2",
  P: "[c4@2 c5@4 b4@4 a4@4 g4@4 c4@2 g4@2 g4@3 ~ g4@3 ~ g4@4 c5@4 b4@4 a4@4 g4@4 g4@3 ~ g4@3 ~ g4@4 g4@2]/4",
  Q: "[~@4 c5@2 b4@4 a4@4 g4@4 c4@2 g4@4 g4@2 g4@3 ~ g4@4 c5@4 b4@4 a4@4 g4@6 g5@2 g4@2 f5@2 e5@2 d5@2 c5@10 ~@8]/5",
  R: "[c4@2 g4@4 f4@4 e4@3 ~ e4@4 f4@4 f4@4 f4@6]/2", S: "[c4@2 g4@4 f4@4 e4@4 d4@4 d4@4 ~@4 e4@2 f4@3 ~]/2",
  T: "c4 g4@2 f4@2 e4@2 f4", U: "~@2 f4@3 ~ f4@3 ~ f4@3 ~ g4@2",
  V: "[~@2 g4@4 g4@3 ~ g4@3 ~ g4@4 g4@4 g4@3 ~ g4@3 ~ g4@2]/2", W: "~@2 g4@2 f4@2 e4@2 f4@3 ~ f4@4",
  X: "~@2 g4@4 g4@3 ~ g4@4 g4@2", Y: "[c4@2 c5@4 b4@4 a4@4 g4@4 g4@4 g4@3 ~ g4@4 g4@2]/2",
  Z: "[c4@2 c5@4 b4@4 a4@4 g4@4 g4@3 ~ g4@3 ~ g4@4 g4@2]/2", AA: "[~@2 g5@2 f5 e5 d5 c5@8 ~]/2",
  AB: "[~@2 g4@2 g5@2 g4@2 f5@2 e5@2 d5@2 c5@17 ~]/2",
})).s("gm_electric_guitar_jazz").gain(0.35)

// chords · synth brass 1
const synth_brass_1 = note(`<
  ~@55 A ~ A ~ A ~@3 A ~@12 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A B A ~@7
>`.pickRestart({
  A: "[c2,g2] ~ [c2,g2] ~@13", B: "~@2 g1 a1 b1 c2 d2 e2",
})).s("gm_synth_brass_1").gain(0.55)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@62 A@5 ~@41>".pickRestart({
  A: "[~@32 f#6@15 ~ f#4@8 [f4,d7]@24, ~ [c6,e6]@9, ~@8 c7@49 ~@23, ~@8 g6@24 ~@15 g6@33, ~@3 a5@3 ~@4]/5", // Dm C
})).s("gm_string_ensemble_2").gain(0.06).pan(0.4)

// chords · piano
const piano = note(`<
  A B C D ~@18 E F G H I F G H I F G H I F G H I F G H I F G H I F G H I F G H J B C D ~@8 K F G H I F G L M@2 F G H I F
  G H I N O P Q N O P R N O P S T@2 U@3 A B V W X Y ~
>`.pickRestart({
  A: "~@4 c6 d6 e6 f6", B: "g6 c6 g6 c6 a6 c6 b6 c7", C: "g6 c6 g6 c6 g6 c6 g6 c6", D: "g6@2 c6@2 g6@2 c6 ~@9",
  E: "~ g2 g1@2 a1@2 b1@2", F: "~@4 [c3,e3,g3]@3 ~@5 [c3,e3,g3]@4", G: "~ [c3,f3,a3] ~ [c3,f3,a3]",
  H: "~ [c3,e3,g3] ~ [c3,e3,g3]", I: "~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3]",
  J: "~@2 [d3,f3,g3,b3]@2 c6 d6 e6 f6, ~@3 [d3,f3,g3,b3]", K: "~@2 g1 a1 b1 c2 a1 g1", L: "[g3,c4]@15 ~, e3@13 ~@3",
  M: "[g2,d3,f3,a3]/2", N: "~@4 [g4,c5,e5,g5]@2 ~@4 [a4,c5,e5,g5] ~ [b4,e5,g5,b5] ~ [b4,e5,g5,b5] ~, [e3,g3,c4]@3 ~@5",
  O: "~@10 [g4,c5,g5] ~ [a4,a5] ~ [g4,c5,g5] ~, f2@15 ~, ~@2 [a3,c4,f4]@13 ~, ~@6 c5 ~", // C5 A C5 F
  P: "~@4 [g4,c5,e5,g5] ~ [c5,e5,g5,c6] ~@5 [c5,e5,c6] ~ [b4,d5,b5] ~, c2@5 ~@3, ~ [e3,g3,c4]@4 ~@3", // C Bm C
  Q: "~@4 [b4,d5,b5]@2 ~@2 [c5,e5,c6]@2 [c5,e5,c6]@2 [d5,f5,d6]@2 [e5,g5,e6] ~", // Bm C Dm Em
  R: "~@2 [b4,d5,b5] ~ [d5,d6] [d5,f5,d6] [e5,g5,e6] ~, ~@8 f5 ~@7", // Bm D Dm Em
  S: "~@4 [b4,d5,b5]@2 [c5,e5,c6]@2 [d5,f5,d6]@2 [b4,d5,b5]@2 ~@2 [f5,a5,f6] ~", // Bm C Dm Bm F
  T: "[[e5,g5,e6] ~@3 [g4,c5,e5,g5]@2 ~@6 [b4,d5,b5]@2 ~@14 a5@2 g5@2, ~@5 [c5,e5,c6]@2 [b4,d5,b5]@3 ~@3 c5@2 ~, ~@16 f2@15 ~, ~@18 [a3,c4,f4]@13 ~]/2", // Em C Bm C Bm F
  U: "[~@12 [d5,f5,d6]@2 [b4,d5,b5]@6 d5@2 [c5,d5,e5,c6]@2 [d5,f5,d6]@2 [e5,g5,e6]@4 [c5,e5,c6]@5 ~@13, c2@7 ~@17, ~ [e3,g3,c4]@6 ~@17, ~@4 [c5,e5,c6]@3 ~@3 [b4,b5]@2 ~@12]/3", // Dm Bm C Dm Em C B
  V: "g6 c6 g6 c6 f6 e6 g6 f6", W: "e6 c6 e6 c6 d6 c6 b5 d6", X: "c6@2 c7@2 g6@3 ~ g6@2 c6@2 g6@2 c6@2", Y: "c7@7 ~",
})).s("gm_piano").gain(0.36).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@2 A@7 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B C@3 B D@2 ~@7 E@2 B C@3 ~@3 E@2 B C@3 B
  C@3 B C@3 B C@3 B C@3 B F@2 ~@7
>`.pickRestart({
  A: "[~@7 [g2,c3,g3,c4,e4]@2 [g2,e3,g3,e4] ~ [g2,c3,e3,g3,c4,e4]@2 g2!2 [f3,a3,c4,f4] ~ [f2,c3,f3,a3,c4,f4] [f2,f3,a3,f4] [f2,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]!2 [e3,g3,e4] ~ [g2,c3,e3,g3,c4,e4]@2 [c3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4] [g2,e4] [d3,g3,b3,f4] ~ [g2,d3,g3,b3,f4] [d3,g3,f4] [g2,d3,g3,b3,f4] ~ [d3,g3,b3,f4] [g2,d3,f4] [g2,c3,e3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 [g2,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,f3,a3,c4,f4] a3 [g2,c3,e3,g3,c4,e4], ~@7 e3 ~ [c3,c4]@2 ~@2 [c3,e3,g3,c4,e4]@2 [f2,c3]@2 ~@6 c4@2 ~@2 [g2,e3] ~@3 b2@2 b2@2 b2@2 ~@16 c3@2 ~]/7", // C F Em C G7 C F C …
  B: "~ [g2,e3,g3,c4,e4] g3 [g2,c3,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4] ~ [g2,b2,d3,g3,b3,f4], ~ c3@2 ~@5", // C G7
  C: "[~ [g2,b2,b3]@2 [g2,b2,g3,b3,f4]@2 [g2,b2,d3,g3,b3,f4] g2 [g2,c3,e3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 [g2,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,f3,a3,c4,f4] a3 [g2,c3,e3,g3,c4,e4], ~ [d3,g3,f4] ~ d3 ~@17 c3@2 ~]/3", // G G7 C F C G7
  D: "[~ [g2,b2,b3]@2 [g2,b2,g3,b3,f4]@2 [g2,b2,d3,g3,b3,f4] g2 [g2,c3,e3,g3,c4,e4]@2 [e3,g3,c4,e4]@2 ~@5, ~ [d3,g3,f4] ~ d3 ~@12]/2", // G G7 C G7
  E: "[~ [e3,g3,c4,e4]@2 [g2,e3,g3,c4,e4]@2 [g2,c3,e3,g3,c4,e4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,c3,f3,a3,c4,f4]@2 [f2,f3,a3,c4,f4] a3 [g2,c3,e3,g3,c4,e4], ~@13 c3@2 ~]/2", // C F C
  F: "[~ [g2,b2,b3]@2 [g2,b2,g3,b3,f4]@2 [g2,b2,d3,g3,b3,f4] g2 [g2,c3,e3,g3,c4,e4]@3 ~@6, ~ [d3,g3,f4] ~ d3 ~@12]/2", // G G7 C G7
})).s("gm_acoustic_guitar_steel").gain(0.17)

// chords · acoustic guitar steel · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@3 A B@2 C D E F G D E F G D E F G D E F G D E F G D E F G D E F G D E F G D E F G D E F G D E F G D E F G D E F G H
  ~@7 D E F G D E I ~@2 D E F G D E F G D E F G D E F G D E F G D E F G ~@8
>`.pickRestart({
  A: "e3 ~ [g2,e3,g3,e4] ~@5", // C
  B: "[[f3,a3,c4,f4] ~ [c3,c4] c3@2 ~@2 g2 [g2,e3,g3,e4] ~@3 [g2,e3] ~ [c3,e3,g3,c4] g2, ~@7 c3@2 ~@7]/2", // F C
  C: "[g2,d3,g3,b3,f4] ~ [g2,b3] ~ [g2,d3,g3,b3,f4] [g2,b2] [b2,g3,b3] ~", D: "~ [g2,c3]@2 c3@2 ~@3",
  E: "~@6 [f2,f3,c4,f4] ~", F: "[g2,c3,e3,g3,c4,e4] ~ [g2,e3,c4,e4] ~@3 [g2,c3,e3,g3,c4,e4] ~",
  G: "[g2,b2,d3,g3,b3,f4] ~ [d3,g3,f4] ~ d3 ~ [b2,d3,g3,b3,f4] ~", H: "~ [g2,c3]@2 ~@5", I: "[g2,c3,e3,g3,c4,e4] ~@7",
})).s("gm_acoustic_guitar_steel").gain(0.08)

// chords · synth strings 1
const synth_strings_1 = note("<~@11 A@4 B@4 C@4 D@16 E@8 D@8 F@4 ~@8 G@6 H@3 D@24 I@8>".pickRestart({
  A: "[e4@2 b4 [f4,a4] e4@2 [d4,f4,b4]@2, [c4,c5]@3 ~, g4@3 ~ g4@4]/4", // F Bdim C
  B: "[[e4,g4] [f4,a4] e4 [b3,d4,f4], c4@3 ~, ~ g4]/4", C: "[[g3,e4] [a3,f4] e4 [b3,d4,f4], c4@3 ~, ~ g4]/4",
  D: "[[g3,e4] [a3,f4] e4 [b3,d4,f4] e4 [a3,f4] e4 [b3,d4,f4], c4@3 ~ c4@3 ~, ~@2 g3@3 ~ g3@2]/8", // C Dm Bdim Dm Bdim
  E: "[[g4,e5]@6 [f4,d5]@6 e4@4 [a3,f4]@16 [g4,e5]@6 [f4,d5]@6 [e4,c5]@4 b4@6 [e4,c5]@6 [f4,d5]@4 [g4,e5]@6 [f4,d5]@6 [e4,c5]@4 [a4,f5]@6 [g4,e5]@5 [f4,d5]@5 g5@6 f5@6 e5@4 [b3,d4,f4,b4,g5]@16, c4@3 [b3,d4] c4@3 ~, g3 ~ g3@3 a3 g3@2, e4@12 c5@20 e4@12 ~@4 f4@12 ~@4 e4@12 ~@4 f4@11 ~@5 [e4,c5]@16 ~@16]/8", // C Dm C Dm C Dm C Dm …
  F: "[[g3,e4] [a3,f4] e4 [b3,d4,f4], c4@3 ~, ~ g3]/4", // C Dm Bdim
  G: "[[g3,e4] [a3,f4] e4 [b3,d4,f4] e4 [a3,f4], c4@3 ~ c4@2, ~@2 g3@3 ~]/6", H: "[e4 [a3,d4,f4]@2, g3]/3",
  I: "[[c3,g3,e4]@5 [d3,a3,f4] [e3,e4,g4] [f3,f4,a4] [e4,g4] [b3,d4,f4] [c3,c4,e4]@6, c4@9 ~@7, ~ g3]/8", // C Dm Em F Em Bdim C
})).s("gm_synth_strings_1").gain(0.14)

// drums · kick
const kick = s("bd").struct("<~@23 A@14 B@10 A@8 B C B C ~@5 D E F B@6 ~ G B A@23 B ~@5 D E ~>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x!2", C: "x ~@3 x!2 ~@2", D: "~@5 x ~@2", E: "x", F: "~ x ~@2 x ~@3", G: "~ x ~@6",
})).gain(0.64)

// drums · clap
const clap = s("cp").struct("<~ A@37 B A@26 ~ C A@6 D@2 ~ A@30 ~@2>".pickRestart({
  A: "~ x ~ x", B: "~@2 x ~@3 x!2", C: "~@6 x!2", D: "x",
})).gain(0.8)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@22 A ~ A ~ A ~ A ~@5 A ~@3 A ~@3 A ~@3 B ~@3 A ~@19 A ~@6 A ~ A ~@3 C ~ A ~ A ~ A ~ D ~ A ~ A ~ A ~ A ~ A ~ A ~@4
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@5 x", C: "~ x ~@3 x ~@2", D: "~@3 x ~@3 x",
})).gain(0.48)

// drums · tambourine
const tambourine = s("tb").struct("<~@24 A ~@3 A ~@15 A ~ B@9 C@4 D@6 E ~ B@6 ~@2 A B@15 F B@8 D@6 E ~>".pickRestart({
  A: "~@10 x!3 ~@3", B: "~ x ~ x", C: "x ~ x!6", D: "x!4", E: "x", F: "~@4 x ~@5 x!3 ~@3",
})).gain(0.4)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct("<~@55 [~ x ~@6]!4 [~ x ~ x ~ x ~ x]!6 ~@35 [~ x ~ x ~ x ~ x]!6 ~@2>").gain(0.24)

// drums · ride
const ride = s("rd").struct("<~@75 [~@3 x] ~@32>").gain(0.48)

// drums · bongos
const bongos = s("bongo:4").struct("<~@55 [~@2 x!2 ~@4]!4 ~@49>").gain(0.84)

// drums · ht
const ht = s("ht").struct("<~@22 A B@15 C B@26 ~ D B@6 E@2 ~ B@24 ~@8>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@6 x!2", E: "x",
})).gain(0.48)

// drums · ht · soft notes
const ht_soft = s("ht").struct("<~@100 [~ x ~ x]!6 ~@2>").gain(0.32)

// drums · mt
const mt = s("mt").struct("<~@22 [~@7 x] ~@85>").gain(0.4)

// drums · shaker
const shaker = s("sh").struct("<~ A@58 B@6 C D E@7 C ~ A@24 E@6 C ~>".pickRestart({
  A: "x!8", B: "x ~ x ~ x!4", C: "x", D: "~@6 x!2", E: "x ~ x ~ x!3 ~",
})).gain(0.24)

// drums · shaker · soft notes
const shaker_soft = s("sh").struct("<~@59 [~ x ~ x ~@4]!6 ~@2 [~ x ~ x ~@3 x]!7 ~@26 [~ x ~ x ~@3 x]!6 ~@2>").gain(0.16)

stack(
  bass, electric_guitar_jazz, synth_brass_1, string_ensemble_2, piano, acoustic_guitar_steel, acoustic_guitar_steel_2,
  synth_strings_1, kick, clap, hihat, open_hat, tambourine, tambourine_soft, ride, bongos, ht, ht_soft, mt, shaker,
  shaker_soft
)

More by Ron