Strudelify

Il ballo del potere

Battiato

KeyD majorTempo126 bpm
0:00/0:00
// Il ballo del potere — Battiato
// 126.4 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 13 sitar (copy of ch 6 lead 5 charang)
// note: Full arrangement: all 134 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(126.4/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
const bass = note(`<
  ~@4 A B C D B C@2 A B C D B C@2 E F G H I C H@2 J K L H I C L H I F H G I C L@2 A B C D B C@2 M N O P Q R S T U V@2 W
  X Y Z AA R V AB AA R Y@2 AC AD R AE AD R@2 AC AD R AE AD R@2 ~@7 AA AF V AB W U V Y W AF V Y W U AB@2 AC AD R AE AD
  R@2 AC AD R AE AD R@2 AC AD R AE AD R@2 ~@4
>`.pickRestart({
  A: "a2 ~@3 a2 ~ a2 ~@5 a2 ~@3 a2 ~ a2 ~@5", B: "e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@5",
  C: "d2 ~@3 d2 ~ d2 ~@5 d2 ~@3 d2 ~ d2 ~@5", D: "c3 ~@3 c3 ~ c3 ~@5 c3 ~@3 c3 ~ c3 ~@5",
  E: "c2 ~@3 c2 ~ c2 ~@5 b1 ~@3 b1 ~ b1 ~@3 b1 ~", F: "d2 ~@3 d2 ~ d2 ~@5 d2 ~@3 d2 ~ d2 ~@3 d2 ~",
  G: "g2 ~@3 g2 ~ g2 ~@5 g2 ~@3 g2 ~ g2 ~@5", H: "g2 ~@3 g2 ~ g2 ~@5 g2 ~@3 g2 ~ g2 ~@3 g2 ~",
  I: "c2 ~@3 c2 ~ c2 ~@5 b1 ~@3 b1 ~ b1 ~@5", J: "c2 ~@3 c2 ~ c2 ~@3 c2 ~ b1 ~@3 b1 ~ b1 ~@5",
  K: "d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@5", L: "g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~@5",
  M: "a2 ~@3 a2 ~@2 a2 ~@4 a2 ~@4 a2!2 ~@5", N: "e2 ~@3 e2 ~ e2 ~@6 e2 ~@3 e2 ~ e2 ~@4",
  O: "~ d2 ~@2 d2 ~ d2 ~@5 d2 ~@4 d2!2 ~@5", P: "~ c3 ~@2 c3 ~@2 c3 ~@4 c3 ~@4 c3!2 ~@5",
  Q: "~ e2 ~@2 e2 ~@2 e2 ~@4 e2 ~@4 e2!2 ~@5", R: "~ d2 ~@3 d2 ~ d2 ~@5 d2 ~@3 d2 ~ d2 ~@4",
  S: "~ d2 ~@3 d2 ~ d2 ~@5 d2 ~@2 d2 ~@2 d2 ~@4", T: "~ c2 ~@3 c2!2 ~@3 c2 ~@2 b1 ~@3 b1 ~ b1 ~@3 b1",
  U: "~ d2 ~@3 d2 ~ d2 ~@5 d2 ~@3 d2 ~ d2 ~@3 d2", V: "~ g2 ~@3 g2 ~ g2 ~@5 g2 ~@3 g2 ~ g2 ~@3 g2",
  W: "~ c2 ~@3 c2 ~ c2 ~@3 c2 ~ b1 ~@3 b1 ~ b1 ~@4", X: "~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2",
  Y: "~ g2 ~@3 g2 ~ g2 ~@5 g2 ~@3 g2 ~ g2 ~@4", Z: "~ g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~@3 g2",
  AA: "~ c2 ~@3 c2 ~ c2 ~@3 c2 ~ b1 ~@3 b1 ~ b1 ~@3 b1", AB: "~ g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~@3 g2 ~ g2 ~@4",
  AC: "~ a2 ~@3 a2 ~ a2 ~@5 a2 ~@3 a2 ~ a2 ~@4", AD: "~ e2 ~@3 e2 ~ e2 ~@5 e2 ~@3 e2 ~ e2 ~@4",
  AE: "~ c3 ~@3 c3 ~ c3 ~@5 c3 ~@3 c3 ~ c3 ~@4", AF: "~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@3 d2 ~ d2 ~@4",
})).s("gm_electric_bass_finger").gain(0.72)

// bass · electric bass finger · soft notes
const bass_soft = note(`<
  ~@18 A B C D E F D@2 G H I D E F I D E B D C E F I@2 ~@15 J K@2 L ~ M ~@2 N K O ~ N M@2 ~@22 P K O L J K M L P K M L J
  O@2 ~@25
>`.pickRestart({
  A: "~@10 c2 ~@13", B: "~@10 d2 ~@13", C: "~@10 g2 ~@11 g2 ~", D: "~@10 g2 ~@13", E: "~@10 c2 ~@11 b1 ~",
  F: "~@10 d2 ~@11 d2 ~", G: "~@22 b1 ~", H: "~@22 d2 ~", I: "~@22 g2 ~", J: "~@11 d2 ~@12", K: "~@11 g2 ~@12",
  L: "~@23 b1", M: "~@11 g2 ~@11 g2", N: "~@11 d2 ~@11 d2", O: "~@23 g2", P: "~@23 d2",
})).s("gm_electric_bass_finger").gain(0.48)

// other · oboe
const oboe = note(`<
  ~@18 A B A C A B A C A B A C A B A C A B A C A B A C ~@14 D E F G F E F G F E F G F E F G ~@21 F E F G F E F G F E F G
  F E F G ~@25
>`.pickRestart({
  A: "g4 b3", B: "a4 f#4", C: "b4 a4", D: "~ g4@11 b3@12", E: "~ a4@12 f#4@11", F: "~ g4@12 b3@11", G: "~ b4@12 a4@11",
})).s("gm_oboe").gain(0.31).pan(0.8)

// other · vibraphone
const vibraphone = note(`<
  ~@17 A B C B D B@5 E B F B@5 G B H B@4 I@2 J K L M N I@2 O K L M N P@4 Q@4 P@4 R@4 S@2 T@3 U V S W X Y@2 U Z ~@7 AA@4
  AB@8 AC@5 S T@3 U V ~@18
>`.pickRestart({
  A: "~@11 g4", B: "g4@2 g4 g4@2 g4 g4@2 g4 g4@2 g4", C: "g4@2 g4 g4@2 f#4 f#4@2 f#4 f#4@2 f#4",
  D: "g4@4 g4@2 g4@4 f#4@2 f#4@4 f#4@2 f#4@4 f#4 ~", E: "g4@2 g4 g4@2 g4 f#4@2 f#4 f#4@2 f#4",
  F: "g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4 ~", G: "g4@2 g4 g4@2 g4 g4@2 f#4 f#4@2 f#4",
  H: "g4@4 g4@2 g4@4 f#4@2 g4@4 f#4@2 g4@4 f#4 ~", I: "e5@3 d5", J: "e5@3 d5@2 e5@2 ~@5", K: "~@16 e5 ~ e5@4 d5@2",
  L: "e5@15 ~ f#5@8", M: "e5", N: "d5 ~@7", O: "e5@3 d5@2 e5@2 d5@2 e5@2 ~",
  P: "[~ g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 f#4@4 f#4@2 f#4@4 f#4]/2",
  Q: "[~ g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 f#4@4 f#4@2 f#4@4 f#4]/4",
  R: "[~ g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 ~@11]/4",
  S: "~ e5@18 d5@5", T: "[~ e5@6 d5@6 e5@6 d5@4 e5@2 ~@16 e5@2 e5@4 d5@2 e5@14 ~@2 e5@4 f#5@3]/3", U: "~ e5@23",
  V: "~ d5@6 ~@17", W: "~ e5@14 d5@6 e5@3", X: "~ d5@4 e5@4 d5@4 e5@4 ~@7",
  Y: "[~@17 e5@2 e5@4 d5@2 e5@14 ~@2 e5@2 ~@2 f#5@3]/2", Z: "~ d5@8 ~@15",
  AA: "[~ g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 f#4@4 f#4@2 f#4@4 f#4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4]/4",
  AB: "[~ g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 f#4@2 f#4@4 f#4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 f#4@2 g4@4 f#4@2 g4@4 f#4]/8",
  AC: "[~ g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 g4@4 g4@2 e5@18 d5@5]/5",
})).s("gm_vibraphone").gain(0.52)

// chords · lead 5 charang
const lead_5_charang = note("<A@4 ~@130>".pickRestart({
  A: "[[g2,d3,g3,d4]@2 [g2,d3,g3,d4]@2 [g2,d3,g3,d4] [d3,g3,c#4] [d3,g3,b3] [d3,g3,c#4] [d3,g3,d4]@2 [g3,d4]@2 [g2,d3,g3,e4] [g2,d3,g3,d4] [g2,d3,g3,c#4] [g2,d3,g3,b3], ~@5 g2@5 [g2,d3] ~@5]/2", // G5 G G5 Em7 G5 G G5
})).s("gm_lead_5_charang").gain(0.3)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@4 A B C A B D@2 A B E A B D@2 ~@24 A B E A B D@2 A B F G H I@3 ~@15 J K F J K L@3 K F J K I@3 ~@22 J K F J K L@3 K F
  J K L@3 K F J K M@6
>`.pickRestart({
  A: "[c5,c6]", B: "[b4,b5]", C: "[f#4,f#5] [g4,g5]", D: "[d5,d6]/2", E: "f#4 g4, d6", F: "~ f#4@12 g4@11, ~ d6@23",
  G: "~ c5@23, c6", H: "~ b5@23, b4", I: "[~ [d5,d6]@48 ~@23]/3", J: "~ [c5,c6]@23", K: "~ [b4,b5]@23",
  L: "[~ [d5,d6]@48 [c5,c6]@23]/3", // D C
  M: "[~@49 b4@2 ~@4 a4 ~@4 g4 ~@4 b4@2 ~@4 a4 ~@5 g4 ~@5 b4@2 ~@4 a4 ~@6 g4 ~@5 b4@2 ~@6 a4@2 ~@32, ~ [d5,d6]@120 ~@23]/6", // D
})).s("gm_string_ensemble_1").gain(0.56).pan(0.3)

// other · string ensemble 2
const string_ensemble_2 = note(`<
  ~@4 A@2 B A@2 C@2 A@2 B A@2 C@2 ~@24 A@2 B A@2 C@2 D@2 B D A E@3 ~@15 D@2 F D@2 G@3 D F D@2 ~@50
>`.pickRestart({
  A: "e4", B: "d4", C: "d4/2", D: "~ e4@23", E: "[~ d4@48 ~@23]/3", F: "~ d4@23", G: "[~ d4@48 e4@23]/3",
})).s("gm_string_ensemble_2").gain(0.56).pan(0.4)

// chords · string ensemble 2
const string_ensemble_2_2 = note(`<
  ~@4 A B C@2 D E@2 A B C@2 D E@2 ~@24 A B C@2 D F@2 G H I@2 J K@2 ~@16 L M N@3 O@3 M N@3 P@3 ~@22 L M N@3 O@3 M N@3 O@3
  M N@3 Q@5 ~
>`.pickRestart({
  A: "[a2,e3,a3,c4]", B: "[e2,e3,g3,b3]", C: "[[d2,f#3,d4] [c3,e3,c4], a3]/2", D: "[e2,e3,g3,e4], b3@3 ~",
  E: "[f#3@3 f#3 g3@4, [d2,d3,a3,d4]]/2", F: "[~ f#3@17 f#3@6 g3@24, [d2,d3,a3,d4]]/2", G: "~ a3@23, [a2,e3,c4]",
  H: "~ e2@23, [e3,g3,b3]", I: "[~ f#3@24 [c3,e3,c4]@23, a3, [d2,d4] ~]/2", J: "~ g3@23, [e2,e3,e4], b3@3 ~",
  K: "[~ f#3@18 f#3@5 g3@24, d3, ~ [d2,a3,d4]@47]/2", L: "~ [a2,e3,a3,c4]@23", M: "~ [e2,e3,g3,b3]@23",
  N: "[~ [d2,f#3,d4]@24 [c3,e3,c4]@24 [e2,e3,g3,e4]@23, ~ a3@48 b3@18 ~@5]/3", // D C Em
  O: "[~ f#3@18 f#3@6 g3@24 [a2,e3,a3,c4]@23, ~ [d2,d3,a3,d4]@48 ~@23]/3", // Am D5
  P: "[~ f#3@18 f#3@6 g3@24 ~@23, ~ [d2,d3,a3,d4]@48 ~@23]/3", // D5
  Q: "[~ f#3@18 f#3@6 g3@95, ~ [d3,a3,d4]@119, ~ d2@48 ~@71]/5", // D5
})).s("gm_string_ensemble_2").gain(0.56).pan(0.7)

// chords · church organ
const church_organ = note("<~@86 A B C D E F@3 ~@40>".pickRestart({
  A: "~ d4@6 d#4@6 e4@6 c4@5, ~ [f4,a4,a#4,c5,d5]@12 [f#4,a#4,c5,d5,e5]@11", // Dm7 F#aug
  B: "~ [e4,f#4,a#4,d5,e5]@6 [f4,g#4,f5]@6 ~@6 f5@5, ~ c5@12 [f4,a4,c#5]@11", // Daug Fm Faug
  C: "~ [f4,a#4,c#5,f5]@12 [f#4,a#4,d5,f#5]@11", D: "~ [a#4,d5]@6 b4@6 c5@11, ~ [g4,g5]@23, ~@7 d#5@17",
  E: "~ [g4,b4,c#5,d#5,g5]@12 [g#4,c5,d5,e5,g#5]@11", F: "[~ [a4,d5,f#5,a5]@48 ~@23]/3",
})).s("gm_church_organ").gain(0.31).pan(0.3)

// other · synth strings 1
const synth_strings_1 = note(`<
  ~@8 A B C ~@7 D E F E D E F E D E F E D E F E D E F E D E F E ~@14 G E F E G E F E G E F E G E F E ~@21 H@16 ~@25
>`.pickRestart({
  A: "~@10 [e3,e4] [f#3,f#4]", B: "[g3,g4]@2 [f#3,f#4] [e3,e4]@2 [f#3,f#4] [d3,d4]@4 e4 [f#3,f#4], ~@5 e3",
  C: "[g3,g4]@2 [f#3,f#4] [e3,e4]@2 [f#3,f#4] d3@6, ~@6 d4@5 ~", // G F# E F#
  D: "c4 ~ e4@2 g4@2 c4@2 e4@2 g4@2 b3@2 e4@2 g4@2 b3@2 e4@2 g4@2", E: "d4 g4 a4 d4 g4 a4 d4 f#4 a4 d4 f#4 a4",
  F: "c4 e4 g4 c4 e4 g4 b3 e4 g4 b3 e4 g4", G: "~ c4 e4@2 g4@2 c4@2 e4@2 g4@2 b3@2 e4@2 g4@2 b3@2 e4@2 g4@2",
  H: "[~ c4 ~ e4@2 g4@2 c4@2 e4@2 g4@2 b3@2 e4@2 g4@2 b3@2 e4@2 g4@2 d4@2 g4@2 a4@2 d4@2 g4@2 a4@2 d4@2 f#4@2 a4@2 d4@2 f#4@2 a4@2 c4@2 e4@2 g4@2 c4@2 e4@2 g4@2 b3@2 e4@2 g4@2 b3@2 e4@2 g4@2 d4@2 g4@2 a4@2 d4@2 g4@2 a4@2 d4@2 f#4@2 a4@2 d4@2 f#4@2 a4@2 c4 ~ e4@2 g4@2 c4@2 e4@2 g4@2 b3@2 e4@2 g4@2 b3@2 e4@2 g4@2 d4@2 g4@2 a4@2 d4@2 g4@2 a4@2 d4@2 f#4@2 a4@2 d4@2 f#4@2 a4@2 c4@2 e4@2 g4@2 c4@2 e4@2 g4@2 b3@2 e4@2 g4@2 b3@2 e4@2 g4@2 d4@2 g4@2 a4@2 d4@2 g4@2 a4@2 d4@2 f#4@2 a4@2 d4@2 f#4@2 a4]/8",
})).s("gm_synth_strings_1").gain(0.4).pan(0.3)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@4 A B C B D E@2 A B C B D E@2 ~@24 A B C B D E@2 A F G F D H@3 ~@15 I F J F K L@3 F J F K H@3 ~@22 I F J F K L@3 F J
  F K L@3 F J F K H@3 ~@3
>`.pickRestart({
  A: "[a3,e4]", B: "[g3,e4]", C: "[a3,d4]", D: "[b3,e4]", E: "[a3,d4]/2", F: "~ [g3,e4]@23", G: "~ a3@23, d4",
  H: "[~ [a3,d4]@48 ~@23]/3", I: "~ [a3,e4]@23", J: "~ [a3,d4]@23", K: "~ [b3,e4]@23", L: "[~ [a3,d4]@48 [a3,e4]@23]/3",
})).s("gm_distortion_guitar").gain(0.46)

// other · orchestra hit
const orchestra_hit = note("<~@86 A@6 B ~@16 C@2 D C@2 E@3 C D C@2 E@3 C D C@2 F@6>".pickRestart({
  A: "[~@7 d5@2 d#5@2 c5@2 e5@2 ~@4 e5@4 c5@2 e5@3 ~@3 f5@3 ~@3 g#4@2 ~@8 c#5@2 a4@2 ~@10 a#4@2 ~@4 d5@2 ~@2 d#5@2 b4@2 ~@4 d#5@2 ~@2 e5@2 b4@2 ~@8 c5@2 c#5@2 ~@6 e5@2 c#5@2 ~@6 f5@2 f5@2 d5@2 d5@2 ~@4 f#5@2 f#5@2 ~@13]/6",
  B: "~ d5@2 ~@21", C: "~ e4@23", D: "~ d4@23", E: "[~ d4@48 e4@23]/3", F: "[~ d4@120 ~@23]/6",
})).s("gm_orchestra_hit").gain(0.64).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@4 A@13 B A@30 B C@2 D E F G H I@22 J I@6 J I@6 K I@22 J I@6 J I@6 J ~@4>".pickRestart({
  A: "x!2 ~ x!2 ~", B: "x!2 ~@4", C: "x ~@4 x ~@7 x ~@2 x ~@7", D: "x ~@4 x ~@6 x ~@3 x ~@7",
  E: "~ x ~@3 x ~@6 x ~@4 x ~@6", F: "~ x ~@3 x ~@7 x ~@2 x ~@7", G: "x ~@3 x ~@7 x ~@4 x ~@6", H: "x ~@4 x ~@18",
  I: "~ x ~@3 x ~@7 x ~@3 x ~@6", J: "~ x ~@3 x ~@18", K: "~ x ~@3 x ~@7 x ~@10",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A B@6 C B@6 C B@24 D@2 E F E G H B I J K J K L K@15 M K@6 N K@2 O K@3 N K@6 P K@16 Q@2 R S R@3 K@2 O K@3 N K@2 O
  K@3 N ~@4
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@3 x ~@5 x!2 ~", D: "~@7 x ~ x ~ x", E: "~@7 x ~ x!3", F: "~@6 x!2 ~ x ~ x",
  G: "~@15 x ~@2 x ~ x ~ x ~", H: "~@14 x ~@3 x ~@2 x!2 ~", I: "~@6 x ~@12 x ~@4", J: "~@7 x ~@10 x ~@5",
  K: "~@7 x ~@11 x ~@4", L: "~@7 x ~@3 x ~@7 x ~ x ~@2", M: "~@7 x ~@11 x ~@3 x", N: "~@7 x ~@7 x ~@3 x ~ x ~ x",
  O: "~@7 x ~@11 x ~ x ~ x", P: "~@19 x ~ x ~@2", Q: "~@15 x ~@3 x ~@3 x", R: "~@15 x ~@3 x ~ x ~ x",
  S: "~@13 x ~ x ~@3 x ~@3 x",
})).gain(0.8)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@3 A ~@13 B ~@24 C@2 D E D F G ~@6 H ~@22 I ~@6 I ~@23 J@2 K L K@3 ~@6 I ~@6 I ~@4
>`.pickRestart({
  A: "~@5 x", B: "~@11 x", C: "~@5 x!2 ~@5", D: "x ~ x ~ x!3 ~ x ~@3", E: "x ~ x ~ x!2 ~@6",
  F: "x ~@3 x ~@3 x ~ x ~ x ~@4 x ~@6", G: "x ~@4 x ~@2 x ~ x ~ x ~@3 x ~@7", H: "~@3 x ~ x ~@5 x",
  I: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@6", J: "~@11 x ~ x ~@10", K: "~ x ~@3 x ~@3 x ~ x ~ x ~@3 x ~@6",
  L: "~ x ~@3 x ~@3 x ~ x ~@12",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@4 A B@5 C A B@5 C D B@7 D B@7 D B@6 C A B@4 E F G H I J K L M N O P@6 Q P@6 R S P@2 T P@2 R S P@2 Q P@2 R S P@5 U Q
  P@7 Q P@6 R S P@5 R S P@2 Q P@2 R S P@2 Q P@2 R ~@4
>`.pickRestart({
  A: "~ x!4 ~ x!4 ~@2", B: "x!12", C: "x!10 ~@2", D: "~ x!11", E: "x ~ x ~ x ~@2 x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~",
  F: "~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x ~ x ~@4", G: "~@2 x ~ x ~@2 x ~ x ~@3 x!2 ~@2 x!2 ~@5",
  H: "x ~ x ~ x ~ x ~ x ~@2 x ~ x ~ x!2 ~ x ~@2 x ~ x", I: "~ x!2 ~ x ~ x ~@2 x ~ x!2 ~@2 x ~ x!2 ~@2 x!2 ~",
  J: "~ x!2 ~ x ~ x ~ x ~@2 x!2 ~ x ~@2 x!2 ~ x ~ x ~", K: "x ~ x ~@2 x ~ x ~ x!2 ~@2 x ~ x ~ x!2 ~@2 x ~ x",
  L: "~ x!2 ~ x ~@2 x!2 ~@2 x!2 ~@2 x ~ x!2 ~@2 x!2 ~", M: "x ~@2 x ~ x ~ x ~ x!2 ~@2 x ~ x!2 ~@2 x ~@4",
  N: "~@3 x ~ x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", O: "x ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  P: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", Q: "~@3 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  R: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~@4", S: "~@3 x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~@4",
  T: "~@3 x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~ x", U: "~ x ~ x ~ x ~ x ~@16",
})).gain(0.24)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@9 A@2 B@7 ~@24 C@6 D C@6 E ~@16 F G H I J@2 K F L J@4 K ~@5 M N ~@16 J@6 K J L J@4 K J L J@4 K ~@4
>`.pickRestart({
  A: "x ~@3 x!2 ~@4 x!2 ~@4 x!2 ~@6", B: "x ~ x ~ x ~ x ~@3 x ~ x ~ x ~ x ~ x ~@4 x", C: "x!12",
  D: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", E: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!4",
  F: "~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~", G: "x ~ x ~@2 x ~ x!2 ~@2 x!2 ~ x ~ x ~@2 x ~ x ~ x",
  H: "~ x!2 ~@2 x ~ x!2 ~@2 x ~ x ~ x!2 ~ x ~@2 x ~ x", I: "~ x ~ x ~ x!2 ~@2 x ~ x ~ x ~ x ~ x ~ x ~ x ~ x",
  J: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x", K: "~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~ x",
// … 77 more lines

More by Battiato