Strudelify

Gloria

Tozzi Umberto

KeyE majorTempo132 bpm
0:00/0:00
// Gloria — Umberto Tozzi
// 132 bpm, 4/4, key E 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 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(132/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 · electric bass finger · "Bass"
const bass = note(`<
  A@4 B@4 C@4 D@2 E@2 D@2 E@2 D@2 E@2 D@2 E@2 F G H I J K C@2 D@2 E@2 D@2 E@2 L@2 M@2 C@2 D@2 E@2 D@2 E@2 F G H I J K
  C@2 B@4 C@4 D@2 E@2 D@2 E@2 D@2 E@2 D@2 E@2 F G H I J K C@2 D@2 E@2 D@2 E@2 L@2 M@2 C@2 D@2 E@2 D@2 E@2 F G H I J K
  C@2 B@2 C@2 B@2 C N
>`.pickRestart({
  A: "[e1@15 ~]/4", B: "b1 ~ b1 ~ b1 ~ b1 ~", C: "e2 ~ e2 ~ e2 ~ e2 ~", D: "b1 ~ b1 ~ b1@2 b1@2 b1@2 b1@2 b1@2 b1@2",
  E: "e2 ~ e2 ~ e2@2 e2@2 e2@2 e2@2 e2@2 e2@2", F: "c#2@2 c#2 ~ c#2@2 ~@4 c#2@2 e2@2 f#2@2",
  G: "~@2 f#2 ~ f#2@2 ~@2 f#2@2 e2@2 d#2@2 a#1@2", H: "b1@2 b1 ~ b1@2 ~@4 b1@2 d#2@2 e2@2",
  I: "~@2 e2 ~ e2@2 ~@2 e2@2 d#2@2 c#2@2 g#1@2", J: "a1@2 a1 ~ a1@3 ~@3 a1@2 c#2 ~ b1@2",
  K: "~@2 b1@2 b1@3 ~ b1 ~ b1 ~ a2@4",
  L: "[b1 ~ b1 ~ b1@2 b1@2 b1@2 b1@2 b1@2 d2@4 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2]/2",
  M: "[a1 ~ a1 ~ a1@2 a1@2 a1@2 a1@2 a1@2 b1@4 b1 ~ b1@2 b1@2 b1@2 b1@2 b1@2 b1@2]/2", N: "e2 ~ e2 ~@5",
})).s("gm_electric_bass_finger").gain(0.32)

// other · pad poly · "Polysynt"
const pad_poly = note("<A@2 B@2 ~@62 C@2 D C E@4 ~@54 C@2 E@2 C@2 E F>".pickRestart({
  A: "[g#3,b3,e4]/2", B: "[[g#4,b4,e5]@31 ~]/2", C: "b2 ~ b2 ~ b2 ~ b2 ~", D: "b2@2 ~@2 b2@2 ~@2 b2@2 ~@2 b2@3 ~",
  E: "e2 ~ e2 ~ e2 ~ e2 ~", F: "e2 ~ e2 ~@5",
})).s("gm_pad_poly").gain(0.36).pan(0.8)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@4 A B A B C D C D ~@22 C D E ~ F ~ E ~ F ~@5 C D G@2 H@2 I@2 H@2 J K L M N O C D A B A B C D C D I@2 P@2 I@2 Q@2 R@2
  S@4 T@2 U V W X Y Z C D I@2 H@2 I@2 H@2 ~@4 C D AA@2 H@2 AA@2 H@2 U V W X Y Z C D A B AB D AC B AB AD
>`.pickRestart({
  A: "[b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~@5 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~", // E B E B
  B: "~@6 [b4,e5,g#5]@2 ~@2 [b4,e5,g#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~", // E B
  C: "[b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~@5 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~", // Esus4 E Esus4 E
  D: "~@6 [b4,e5,a5]@2 ~@2 [b4,e5,a5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // Esus4 E
  E: "~@10 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~", F: "~@10 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~",
  G: "[~ [b2,b3]@3]/2", H: "[e3,e4]/2", I: "[b2,b3]/2", J: "~ c#4 e4 g#4", K: "a#4", L: "~ b3 d#4 f#4", M: "g#4",
  N: "~ a3 c#4 e4", O: "f#4", P: "[e2,e3]/2", Q: "[~@30 a4 a#4, [e2,e3]]/2", R: "[b4@29 b4 a4 ~]/2",
  S: "[e4@30 a4 b4@30 ~ b4 a4, ~@31 a#4 ~@32]/4", T: "e4/2", U: "~ [c#4,c#5] [e4,e5] [g#4,g#5]", V: "[a#4,a#5]",
  W: "~ [b3,b4] [d#4,d#5] [f#4,f#5]", X: "[g#4,g#5]", Y: "~ [a3,a4] [c#4,c#5] [e4,e5]", Z: "[f#4,f#5]", AA: "[b3,b4]/2",
  AB: "[e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~@5 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~", // A5 Esus4 E Esus4 E
  AC: "[e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~@5 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~", AD: "~@3 [b4,e5,a5] ~@4",
})).s("gm_string_ensemble_1").gain(0.29).pan(0.3)

// other · lead 2 sawtooth · "Saw Wave"
const lead_2_sawtooth = note("<~@68 A@2 B@3 ~@63>".pickRestart({
  A: "[b3,b4]/2", B: "[e5,e6]/3",
})).s("gm_lead_2_sawtooth").gain(0.37).pan(0.6)

// chords · synth brass 1 · "SyntBras"
const synth_brass_1 = note(`<
  ~@4 A B A B C D C D ~@22 C D E ~ F ~ E ~ F ~@5 C D G ~ H ~ I ~ H ~@7 C D A B A B C D C D J ~ K ~ J ~ K ~ J ~ K ~ J ~ K
  ~@7 C D J ~ K ~ J ~ K ~@5 C D G ~ H ~ I ~ H ~@7 C D A B L D M B L N
>`.pickRestart({
  A: "[b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~@5 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~", // E B E B
  B: "~@6 [b4,e5,g#5]@2 ~@2 [b4,e5,g#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~", // E B
  C: "[b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~@5 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~", // Esus4 E Esus4 E
  D: "~@6 [b4,e5,a5]@2 ~@2 [b4,e5,a5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~", // Esus4 E
  E: "~@10 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~", F: "~@10 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~",
  G: "~@10 [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,d#4,f#4]@2", H: "~@10 [b3,e4,a4] ~ [b3,e4,a4] ~ [b3,e4,g#4]@2",
  I: "~@10 [b3,e4,g#4] ~ [e4,g#4] ~ [b3,d#4,f#4]@2, ~@6 b3 ~", J: "~@10 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5]@2",
  K: "~@10 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5]@2", // Esus4 E
  L: "[b4,g#5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~@5 [b4,e5,a5] ~ [b4,e5,a5] ~ [b4,e5,g#5] ~", // E Esus4 E Esus4 E
  M: "g#5 ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~@5 [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,d#5,f#5] ~", N: "~@3 [b4,e5,a5] ~@4",
})).s("gm_synth_brass_1").gain(0.25).pan(0.7)

// chords · piano
const piano = note(`<
  A@2 ~@2 B C B D E F E G H I J K H I J K H I J K H I J K L@2 M@2 N@2 O@2 H I J K H I J K P@2 Q@2 E G H I J K H I J K
  R@2 M@2 S@2 O@2 B C B D E F E G H I J K H I J K H I J K H I J K T@2 M@2 U@2 V@2 H I J K H I J K W@2 Q@2 E G H I J K H
  I J K X@2 M@2 Y@2 O@2 B C Z F AA C Z AB
>`.pickRestart({
  A: "[[g#3,b3,e4]@7 ~]/2", B: "[b1,b3,e4,g#4] b2 [b1,b3,d#4,f#4] b2 b1 [b2,b3,e4,g#4] b1 [b2,b3,d#4,f#4]",
  C: "b1 b2 b1 b2 b1 b2 [b1,b3,d#4,f#4] b2, ~@6 [b3,e4,g#4]@5 ~@5", // B E
  D: "b1@2 b2@2 b1@2 b2@2 b1@2 b2@2 [b1,b3,d#4,f#4]@2 b2 ~, ~@6 [b3,e4,g#4]@5 ~@5", // B E
  E: "[e2,b3,e4,a4] e3 [e2,b3,e4,g#4] e3 e2 [e3,b3,e4,a4] e2 [e3,b3,e4,g#4]", // Esus4 E Esus4 E
  F: "e2 e3 e2 e3 e2 e3 [e2,b3,e4,g#4] e3, ~@6 [b3,e4,a4]@5 ~@5", // E Esus4
  G: "e2@2 e3@2 e2@2 e3@2 e2@2 e3@2 [e2,b3,e4,g#4]@2 e3 ~, ~@6 [b3,e4,a4]@5 ~@5", // E Esus4
  H: "[b1,b3,e4,g#4] b2 [b1,b3,d#4,f#4] b2 b1 [b2,b3,e4,g#4] [b1,b3,e4,g#4] [b2,b3,d#4,f#4]", // E B E B
  I: "b1 b2 b1 [b2,e4] b1 [b2,e4,g#4] [b1,b3,d#4,f#4] [b2,d#4,f#4], ~@6 [b3,g#4]@5 ~@5", // E5 E B E
  J: "[e2,b3,e4,a4] e3 [e2,b3,e4,g#4] e3 e2 [e3,b3,e4,a4] [e2,b3,e4,a4] [e3,b3,e4,g#4]", // Esus4 E Esus4 E
  K: "e2 e3 e2 e3 e2 [e3,e4,a4] [e2,b3,g#4] [e3,e4,g#4], ~@6 [b3,e4,a4]@5 ~ e4 ~@3", // A5 E Esus4
  L: "[[c#3,c#4,e4,g#4]@3 ~ c#4@3 ~ c#4@2 [c#3,c#4,e4,g#4]@2 c#4 ~ c#4@4 c#4@2 c#4@2 [f#3,c#4,f#4,a#4]@4 c#4 ~ c#4@2 [f#3,c#4]@2, ~@2 [c#3,e4,g#4]@3 ~@2 [f#3,f#4,a#4]@4 ~@2 f#3@2 ~, ~@7 [f#4,a#4]]/2", // C#m F# F#5 C#m F#
  M: "[[b2,b3,d#4,f#4]@3 ~ [b2,b3,d#4,f#4]@4 b3 ~ [b2,b3,d#4,f#4]@2 b3 ~ b3@3 ~ b3@2 b3 ~ [e3,b3,g#4]@4 b3@2 [b3,d#4,g#4]@2 [e3,b3] ~, ~@14 [e3,d#4,g#4]@7 ~ d#4@6 ~@4, ~@13 e3@2 ~]/2", // B E G#m E5 Emaj7
  N: "[[a2,a3,c#4,e4]@3 ~ [a2,c#4,e4]@4 a3 ~ a3@2 [c#3,a3]@2 [b2,b3]@4 [b2,b3]@2 [b2,b3]@2 b3@2 [b2,b3]@2 b3@2 [b2,b3]@2 [b3,d#4,f#4] ~, ~@4 a3@3 ~@3 [a2,c#4,e4]@4 [d#4,f#4]@8 [d#4,f#4,b4]@4 [d#4,f#4,b4]@4 ~@2, ~@22 b2 ~@3 b2 ~@3 [b2,b4]@2]/2", // A F#m B A D#m B
  O: "[[e4,a4]@2 [e3,b3] ~ [e3,b3]@2 [e3,b3]@2 [e3,b3] ~ [e3,b3,e4,a4] ~ [e3,b3,e4,a4]@2 b3@2 [e3,b3]@2 [e3,b3,e4,g#4]@2 [b3,e4,g#4] ~ [e3,b3] ~ [e3,b3]@2 [e3,b3,e4,a4] ~ [e4,g#4]@2 e3@2, [e3,b3] ~@3 [e4,g#4]@5 ~@5 [e4,g#4]@4 ~@4 [e4,a4]@4 ~@4 b3 ~, ~@14 e3 ~@5 e3@2 ~@6 [e3,b3] ~@3]/2", // A5 E5 Esus4 E5 E E5 Esus4 E …
  P: "[[b2,b3,e4,g#4]@3 ~ b3@4 b3@2 [b2,b3,d#4,f#4]@2 b3 ~ [d3,d4,f#4,a4]@4 [d3,d4,f#4,a4]@2 ~@2 a3@2 [d3,a3] ~@3 a3@2 [d3,a3] ~, ~@4 [b2,d#4,f#4]@6 ~@4 a3@6 [d3,d4,f#4,a4]@5 ~ [d3,d4,f#4,a4]@5 ~]/2", // E B D D5 B D
  Q: "[[a2,a3,c#4,e4,a4]@3 ~ [a2,a3,c#4,e4,a4]@4 a3 ~ [a2,a3,c#4,e4,a4]@2 a3 ~ [b2,b3]@4 [b2,b3]@2 [b2,b3]@2 b2@2 b2@2 [b2,d#4,f#4,b4]@2 b2@2 [b2,b3]@2, ~@7 [d#4,f#4,b4]@4 [d#4,f#4,b4]@2 ~ [d#4,f#4,b4]@2, ~@22 b3 ~ b3@6 ~@2]/2", // A B
  R: "[[c#3,c#4,e4,g#4]@3 ~ c#4@3 ~ c#4@2 [c#3,c#4,e4,g#4]@2 c#4 ~ c#4@3 ~ c#4@2 c#4@2 [f#3,c#4,f#4,a#4]@4 c#4 ~ c#4@2 [f#3,c#4]@2, ~@2 [c#3,e4,g#4]@3 ~@2 [f#3,f#4,a#4]@4 ~@2 f#3@2 ~, ~@7 [f#4,a#4]]/2", // C#m F# F#5 C#m F#
  S: "[[a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4]@4 a3 ~ a3@2 [c#3,a3]@2 [b2,b3]@4 [b2,b3]@2 [b2,b3]@2 b3@2 [b2,b3]@2 b3@2 [b2,b3]@2 [b3,f#4,b4] ~, ~@5 [a2,c#4,e4]@2 [d#4,f#4]@4 [d#4,f#4,b4]@2 [d#4,f#4,b4]@2 ~, ~@22 b2 ~@3 b2 ~@3 [b2,d#4]@2]/2", // A F#m B B5 A D#m B
  T: "[[c#3,c#4,e4,g#4]@3 ~ c#4@3 ~ c#4@2 [c#3,c#4,e4,g#4]@2 c#4@2 c#4@4 c#4@2 c#4@2 [f#3,c#4,f#4,a#4]@4 c#4 ~ c#4@2 [f#3,c#4]@2, ~@2 [c#3,e4,g#4]@3 ~@2 [f#3,f#4,a#4]@4 ~@2 f#3@2 ~, ~@7 [f#4,a#4]]/2", // C#m F# F#5 C#m F#
  U: "[[a2,a3,c#4,e4]@3 ~ [a2,c#4,e4]@4 a3 ~ a3@2 [c#3,a3]@2 [b2,b3]@4 [b2,b3]@2 [b2,b3]@2 b3@2 [b2,b3]@2 b3@2 [b2,b3]@2 [b3,f#4,b4] ~, ~@4 a3@3 ~@3 [a2,c#4,e4]@4 [d#4,f#4]@8 [d#4,f#4,b4]@4 [d#4,f#4,b4]@4 ~@2, ~@22 b2 ~@3 b2 ~@3 [b2,d#4]@2]/2", // A F#m B B5 A D#m B
  V: "[[e4,a4]@2 [e3,b3] ~ b3@2 [e3,b3]@2 [e3,b3] ~ [e3,b3,e4,a4] ~ [e3,b3,e4,a4]@2 b3@2 [e3,b3]@2 [e3,b3,e4,g#4]@2 [b3,e4,g#4] ~ [e3,b3] ~ [e3,b3]@2 [e3,b3,e4,a4] ~ [e4,g#4]@2 e3@2, [e3,b3] ~@3 [e4,g#4]@5 ~@5 [e4,g#4]@4 ~@4 [e4,a4]@4 ~@4 b3 ~, ~@4 e3 ~@9 e3 ~@5 e3@2 ~@6 [e3,b3] ~@3]/2", // A5 E5 Esus4 E5 E E5 Esus4 E …
  W: "[[b2,b3,e4,g#4]@3 ~ b3@4 b3@2 b3@2 b3@2 [d3,d4,f#4,a4]@4 [d3,d4,f#4,a4]@2 ~@2 a3@2 [d3,a3] ~@3 a3@2 [d3,a3] ~, ~@4 [b2,d#4,f#4]@6 [b2,d#4,f#4]@4 a3@6 [d3,d4,f#4,a4]@5 ~ [d3,d4,f#4,a4]@5 ~]/2", // E D D5 B D
  X: "[[c#3,c#4,e4,g#4]@3 ~ c#4@3 ~ c#4@2 [c#3,e4,g#4]@2 c#4 ~ c#4@4 c#4@2 c#4@2 [f#3,c#4,f#4,a#4]@4 c#4 ~ c#4@2 [f#3,c#4]@2, ~@4 [c#3,e4,g#4]@6 c#4 ~@3 [f#3,f#4,a#4]@8 ~@4 f#3@4 ~@2, ~@7 [f#4,a#4]]/2", // C#m F# F#5 C#m F#
  Y: "[[a2,a3,c#4,e4]@3 ~ [a2,a3,c#4,e4]@4 a3 ~ a3@2 [c#3,a3]@2 [b2,b3]@4 [b2,b3]@2 [b2,b3]@2 b3@2 [b2,b3]@2 b3@2 [b2,b3]@2 [b2,b3,f#4]@2, ~@10 [a2,c#4,e4]@4 [d#4,f#4]@8 [d#4,f#4,b4]@4 [d#4,f#4,b4]@4 [d#4,b4] ~, ~@22 b2 ~@3 b2 ~@5]/2", // A F#m B B5 A D#m B G#m
  Z: "[b3,g#4] ~ e3@2 [e2,b3,e4,g#4]@2 e3@2 e2@2 [e3,b3,e4,a4]@2 e2@2 [e3,b3,e4,g#4]@2, e4 ~@7", // E Esus4 E
  AA: "[b3,e4,g#4] b2 [b1,b3,d#4,f#4] b2 b1 [b2,b3,e4,g#4] b1 [b2,b3,d#4,f#4]", // E B E B
  AB: "e2 e3 e2 e3 e2 ~@3, ~@6 [b3,e4,a4]@5 ~@5", // Esus4
})).s("gm_piano").gain(0.32).pan(0.4)

// other · overdriven guitar · "Overd.gt"
const overdriven_guitar = note("<~@44 A@2 B@3 ~@57 A@2 B@3 ~@25>".pickRestart({
  A: "[~@10 b2@2 c#3@2 d3@15 ~@3]/2", B: "[~@10 a2@3 ~ b2@12 ~ b4 a2@6 ~@14]/3",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.3)

// chords · epiano1 · "El.Piano"
const epiano1 = note("<~@27 A@7 ~@23 A@7 ~@25 A@7 ~@23 A@7 ~@10>".pickRestart({
  A: "[~@16 [c#5,e5]@14 [c#5,f#5,a#5]@15 ~@3 b4@13 ~ [b4,d#5,g#5]@14 ~@4 a4@11 ~@3 [b4,d#5,f#5]@16 ~@2, ~@14 c#6@15 ~@18 d#5@13 ~@18 [e5,g#5]@13 ~@21, ~@15 g#5@14 ~@17 [f#5,b5]@14 ~@19 c#5@12 ~@21]/7", // C#m F# G#m B E B5
})).s("gm_epiano1").gain(0.15).pan(0.6)

// other · synth drum · "SynthDrm"
const synth_drum = note(`<
  ~@4 A@2 B@5 C ~@22 A@2 ~@12 A@2 ~@14 A@2 B@5 C A@2 ~@22 A@2 ~@9 D ~ D A@2 ~@14 A@2 B@3 C B@3 E
>`.pickRestart({
  A: "~@2 a3@3 ~ a3@2", B: "~@4 a3@5 ~@3 a3@4", C: "~ a3 ~ a3", D: "~@4 a3@5 ~@7", E: "~ a3 ~@2",
})).s("gm_synth_drum").gain(0.29)

// drums · kick
const kick = s("bd").struct("<[x!8]!3 [x!6 ~@2] [x!2]!132>").gain(0.53)

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

// drums · hihat
const hihat = s("hh").struct("<~@4 A@30 B A@13 B A@15 B A@45 B C B A@12 D B A B A@6 D>".pickRestart({
  A: "x!4", B: "~ x!3", C: "x!2 ~@2", D: "x!3 ~",
})).gain(0.47)

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

// drums · low tom
const low_tom = s("lt").struct("<[~ x!7] [x!8]!2 [x!6 ~@2] ~@43 [~ x ~@2] ~@88>").gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@111 [~@4 x!3 ~] ~@24>").gain(0.42)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@11 A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A B C B@3 D ~ A ~@7 A ~ E F D ~ A ~ A ~@3 A ~ A B C B@3 D ~ A ~@7 A ~ A ~@3 A ~@3 A
  ~@3 A ~@2 B C B@3 D ~ A ~ A ~@3 A ~@5 A ~ F ~ A ~@3 A ~ A B@5 G ~ A ~@8
>`.pickRestart({
  A: "~@7 x", B: "~ x ~ x ~ x ~ x", C: "~@3 x ~ x ~ x", D: "~ x ~ x ~ x ~@2", E: "~@5 x ~ x", F: "~@3 x ~@3 x",
  G: "~ x ~ x ~ x!3",
})).gain(0.26)

// drums · crash
const crash = s("cr").struct("<A ~@33 A ~@13 A ~@15 A ~@45 A ~ A ~@13 A ~ A ~@7>".pickRestart({
  A: "x",
})).gain(0.26)

stack(
  bass, pad_poly, string_ensemble_1, lead_2_sawtooth, synth_brass_1, piano, overdriven_guitar, epiano1, synth_drum,
  kick, snare, hihat, hihat_soft, low_tom, mid_tom, open_hat, crash
)

More by Tozzi Umberto