Strudelify

Mr. Crowley

Ozzy Osbourne

KeyD minorTempo108 bpm
0:00/0:00
// Mr. Crowley — Ozzy Osbourne
// 108 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 8 epiano1 (copy of ch 3 piano)
// note: Full arrangement: all 134 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(108/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.

// chords · piano · "untitled"
const piano = note("<A@8 B C@3 D@7 E@6 ~@109>".pickRestart({
  A: "[~@11 d6@27 e5@29 f6@27 ~@29 a5@28 [g5,b5]@22 ~@7 [c5,e5,a5]@12, ~@10 f5@28 c6@113 ~@41, ~@11 a5@86 ~@95, ~@94 g5@29 ~@69, ~@95 e6@78 ~@19]/8", // G Am
  B: "~@2 bb5@7 c6@7 d6@7 c6", C: "[~@6 b5@7 c6@7 [d5,f5]@28 [db5,e5]@24, ~@5 a5@13]/3",
  D: "[~@4 [f5,d6]@27 ~@30 f6@27 ~ e6@28 a5@27 ~ [b4,e6]@23, ~@2 a5@43 ~@39, ~@31 e5@30 ~@27 g5@29 ~@27 g5@24, ~@32 c6@113 ~@23]/7", // Dm E5
  E: "[~@6 [c5,e5,a5]@13 [bb4,bb5]@7 ~ [c5,c6]@7 [d5,d6]@7 [c5,c6]@6 [b4,b5]@8 [c5,c6]@6 [d5,f5]@29 [db5,e5]@42 ~@12, ~@61 a4@70 ~@13]/6", // Am Bb C D C B C Dm …
})).s("gm_piano").gain(0.31)

// other · piano
const piano_2 = note("<A B@5 C@6 D E@5 F G@6 ~@109>".pickRestart({
  A: "~@10 d3@11 e3@3",
  B: "[~ f3@6 g3@6 ~ a3@7 e3@7 a2@7 ~@3 g3@3 ~ f3@11 g3@4 a3@6 b3@6 ~ c4@7 g3@7 c3@7 ~ c4@3 b3@4 a3@10 b3@4 c4@7, ~@7 a3 ~@16]/5",
  C: "[d4@6 e4@8 b3@6 e4@9 ~@7 a3@14 [bb2,bb3]@7 [f2,f3]@7 [g2,g3]@6 ~ f3@7 [e2,e3]@6 [f2,f3]@7 a3@48 ~@2 f3@3, ~@35 a2@14 ~@21 f2@7 ~@67]/6", // Bb F G E F
  D: "e3@3 ~ d3@11 e3@3 f3@6",
  E: "[~ g3@7 a3@7 e3@7 a2@7 a3@3 g3@3 ~ f3@11 g3@4 a3@6 b3@7 c4@7 g3@7 c3@7 c4@4 b3@3 a3@11 b3@3 c4@7 d4@7]/5",
  F: "e4@7 b3@8 e4@9",
  G: "[~@5 [a2,a3]@13 ~ bb2@7 ~ f3@6 [g2,g3]@7 [f2,f3]@7 [e2,e3]@7 [f2,f3]@7 a3@72 ~@11, ~@19 bb3@9 ~@116, ~@26 f2@7 ~@111]/6", // A G F E F
})).s("gm_piano").gain(0.36)

// other · piano
const piano_3 = note("<~@9 A@4 ~@8 B@4 ~@109>".pickRestart({
  A: "[~@19 a5@57 ~@20]/4", B: "[~@14 a5@69 ~@13]/4",
})).s("gm_piano").gain(0.46)

// other · piano
const piano_4 = note("<~@12 A@6 B C@6 ~@109>".pickRestart({
  A: "[~@4 d5@27 c5@29 f5@27 e5@29 c5@28]/6", B: "e5", C: "[~@6 a4@13 ~ bb4@5 c5@8 d5@7 c5@7 b4@7 c5@7 a4@71 ~@12]/6",
})).s("gm_piano").gain(0.52)

// other · epiano2
const epiano2 = note(`<
  ~@24 A@2 B@2 C@2 D E F@3 G H I J K@3 L@2 M@2 N O P Q@2 R S T@2 U@2 ~@15 A@2 B@2 V@2 D E W@3 X Y@2 Z AA@2 ~@9 AB@2 AC
  AD AE AF@2 ~@29
>`.pickRestart({
  A: "[~@12 f4@6 e4@2 ~ e4@5 ~ d4@9 ~@12]/2", B: "[~@4 d4@4 e4@3 ~ f4@3 ~ e4@4 f4@2 ~ f4@3 ~ bb3@5 ~@16]/2",
  C: "[~@6 f4@6 e4@5 f4@4 e4@6 d4@9 ~@12]/2", D: "~@3 d4@4 ~ e4@3 ~ f4@4 e4@4 f4@2 ~@2", E: "f4@3 bb3@5 ~@16",
  F: "[~@20 f4@3 g4@2 ~ g4@3 f4@2 ~ g4@5 ~ g4@3 f4@3 ~ g4@5 ~ c4@3 ~@8 c4@4 d4@2 f4@2 ~@2]/3",
  G: "f4@2 ~ f4 ~ f4@3 ~ d4@8 ~@7", H: "~@20 f4@3 ~", I: "g4@2 g4@3 f4@3 g4@5 ~ g4@3 f4@3 g4@4",
  J: "~@3 c4@3 ~@9 d4@5 ~ f4@2 ~",
  K: "[f4 ~@2 f4@2 ~ f4@5 ~ f4@2 ~ e4 ~@2 f4@2 ~ e4@9 ~@6 f4@5 e4@2 ~@2 e4@6 d4@9 ~@12]/3",
  L: "[~@3 d4@5 e4@3 ~ f4@4 e4@4 f4@2 ~ f4@2 ~@2 bb3@4 ~@17]/2", M: "[~@5 f4@6 ~ e4@5 f4@4 e4@6 d4@10 ~@11]/2",
  N: "~@3 d4@5 e4@3 ~ f4@4 e4@4 f4@2 ~@2", O: "f4@3 bb3@4 ~@17", P: "~@5 f4",
  Q: "[g4@2 g4@3 f4@3 ~ g4@5 ~ g4@3 f4@3 g4@5 ~ c4@4 ~@8 d4@6 f4@2 ~]/2", R: "f4@2 ~ f4@2 ~ f4@3 d4@8 ~@7",
  S: "~@9 e4 f4@2", T: "[g4@2 g4@3 f4@3 ~ g4@5 ~ g4@3 f4@3 g4@5 ~ c4@4 ~@11 d4@2 f4@2 ~@2]/2",
  U: "[f4@2 ~ f4@2 ~ f4@5 g4@4 f4@2 g4@2 ~@2 a4@15 ~@12]/2", V: "[~@12 e4@6 f4@2 ~ e4@5 ~ d4@13 ~@8]/2",
  W: "[~@20 f4@3 g4@2 ~ g4@3 f4@2 ~ g4@5 ~ g4@3 f4@3 ~ g4@5 ~ c4@3 ~@12 c4@3 d4@3]/3",
  X: "f4@2 ~ f4@2 ~ f4@3 ~ d4@11 ~@3", Y: "[~@20 f4@2 ~ g4@2 ~ g4@2 ~ f4@2 ~ g4@5 ~@2 g4@2 ~ f4@2 ~ g4@3]/2",
  Z: "~ c4 ~@6", AA: "[f4@2 ~ f4 ~@2 f4 ~@2 f4@2 ~ g4@3 f4@3 g4@2 ~ a4@10 ~@17]/2",
  AB: "[~@3 a4@2 ~ a4@2 ~ a4@2 ~ a4@3 g4@2 ~ g4@2 ~ e4@12 ~@15]/2",
  AC: "~@3 f4@2 ~ f4 ~@2 f4@2 ~ g4@2 ~ a4@3 g4@3 f4@3", AD: "d4 ~@2", AE: "~@3 e4@2 ~ e4@2 ~ e4@2 ~ e4@11 ~",
  AF: "[~@3 e4@2 ~ e4@2 ~ e4@2 ~ e4@2 ~ e4 ~@2 e4@2 ~ a4@12 ~@3 a4@10 ~@2]/2",
})).s("gm_epiano2").gain(0.64)

// chords · celesta
const celesta = note(`<
  ~@25 A B C D E F G H I J K ~ L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AF AG AI AJ AK AL AG AM AN AO AP
  AQ@2 AR F R AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG@2 BH@2 BI BJ BK BF BG@2 BH@2 BI BJ BK AN BL BM BN AG BO BP BQ
  BR BS BT BU BV BW BX BY BZ CA CB CC CD CE CF CG CH CI CJ CK CL
>`.pickRestart({
  A: "[d5,a5,d6]@23 ~", B: "[d5,a5,d6]@17 ~ [d5,a5,d6]@4 ~@2", C: "[bb4,f5,bb5]@8 ~ [bb4,f5,bb5]@13 ~@2",
  D: "[bb4,f5,bb5]@8 ~ [bb4,f5,bb5]@12 ~@3", E: "[d5,a5,d6]@2 ~", F: "[d5,a5,d6]@17 ~ [d5,a5,d6]@3 ~@3",
  G: "[bb4,f5,bb5]@7 ~@2 [bb4,f5,bb5]@2 ~", H: "[bb4,f5,bb5]@14 ~ [bb4,f5,bb5]@5 ~ [f5,bb5] ~@2, ~@21 bb4@2 ~",
  I: "[c5,g5,c6]@7 ~@2 [c5,g5,c6] ~@2 [c5,g5,c6]@7 ~@2 [c5,g5,c6] ~@2", // C5
  J: "[c5,g5,c6]@8 ~ [c5,g5,c6] ~@2 [c5,g5,c6]@5 ~ [c5,g5,c6]@4 ~@2", // C5
  K: "[d5,a5,d6]@8 ~ [d5,d6]@2 ~ [d5,a5,d6]@12, ~@9 a5 ~@14", // D5 D D5
  L: "[c5,g5,c6]@8 ~ [c5,g5,c6] ~@2 [c5,g5,c6]@7 ~@2 [c5,g5,c6] ~@2", // C5
  M: "[c5,g5,c6]@7 ~@2 [c5,g5,c6] ~@2 [c5,g5,c6]@4 ~@2 [c5,g5,c6]@3 ~@3", // C5
  N: "[bb4,f5,bb5]@8 ~ [bb4,f5,bb5] ~@2 [bb4,f5,bb5]@5 ~ [bb4,f5,bb5]@4 ~@2", O: "[a4,e5,a5]@11 ~@13",
  P: "[d5,d6]@5 ~@3, a5@13 ~@11", Q: "[d5,a5,d6]@11 ~ [d5,a5,d6]@9 ~@3", R: "[bb4,f5,bb5]@7 ~@2 [bb4,f5,bb5]@4 ~@11",
  S: "[bb4,f5,bb5]@7 ~@2 [bb4,f5,bb5]@11 ~@4", T: "[d5,a5,d6]@13 ~@11", U: "[d5,a5,d6]@11 ~ [d5,a5]@10 ~@2, ~@3 d6@2 ~",
  V: "[bb4,f5,bb5]@8 ~ [bb4,f5,bb5]@6 ~@9", W: "[bb4,f5,bb5]@8 ~ [bb4,f5,bb5]@9 ~@6",
  X: "[c5,g5,c6]@8 ~ [c5,c6]@2 ~ [c5,g5,c6]@10 ~@2, ~@9 g5 ~@14", // C5 C C5
  Y: "[c5,g5,c6]@8 ~ [g5,c6] ~@2 [c5,g5,c6]@9 ~@3, ~@9 c5@2 ~@13", // C5
  Z: "[d5,a5,d6]@8 ~ [a5,d6] ~@2 [d5,a5,d6]@9 ~@3, ~@9 d5@2 ~@13", AA: "~@18 [d5,a5,d6]@5 ~",
  AB: "[c5,g5,c6]@8 ~ [c5,c6]@2 ~ [c5,g5,c6]@8 ~ [c5,g5] ~@2, ~@9 g5 ~@11 c6@2 ~", // C5 C C5
  AC: "[c5,g5,c6]@10 ~@2 [c5,g5,c6]@5 ~ [c5,g5,c6]@4 ~@2", AD: "[bb4,f5,bb5]@11 ~ [bb4,f5,bb5]@5 ~ [bb4,f5,bb5]@4 ~@2",
  AE: "[a4,e5,a5]@17 ~@7", AF: "[d5,a5,d6,f6]@16 ~@2 [d5,a5,d6,f6]@3 ~@3",
  AG: "[bb4,f5,bb5,d6]@16 ~@2 [bb4,f5,bb5,d6]@3 ~@3", AH: "[c5,g5,c6,e6]@17 ~ [c5,g5,c6,e6]@4 ~@2",
  AI: "[e5,bb5,d6,g6]@16 ~@2 [e5,bb5,d6,g6]@3 ~@3", AJ: "[a4,e5,db6,e6]@23 ~", AK: "[a4,e5,db6,e6]@5 ~",
  AL: "[d5,a5,d6,f6]@15 ~@3 [d5,a5,d6,f6]@2 ~@4", AM: "[c5,g5,c6,e6]@8 ~ [c5,g5,c6,e6] ~@2",
  AN: "[d5,a5,d6,f6]@17 ~ [d5,a5,d6,f6]@3 ~@3", AO: "[bb4,f5,bb5,d6]@8 ~ [bb4,f5] ~@2, ~@18 [bb5,d6] ~@5",
  AP: "[e5,bb5,d6,g6]@17 ~ [e5,bb5,d6,g6]@3 ~@3", AQ: "[[a4,e5,db6,e6]@15 ~]/2", AR: "[a5,d6]@5 ~@3, d5@17 ~@7",
  AS: "[bb4,f5,bb5]@7 ~@2 [bb4,f5,bb5]@12 ~@3", AT: "[d5,a5,d6]@7 ~", AU: "[d5,a5]@7 ~, d6@19 ~@5",
  AV: "[bb4,f5,bb5]@7 ~@2 [bb4,f5,bb5]@5 ~@10", AW: "[bb4,f5,bb5]@8 ~ [bb4,f5,bb5]@11 ~@4",
  AX: "[c5,g5,c6]@7 ~@2 [g5,c6] ~@2 [c5,g5,c6]@8 ~ [c5,g5,c6] ~@2, ~@9 c5@2 ~@13", // C5
  AY: "[c5,g5,c6]@8 ~ [g5,c6] ~@2 [c5,g5,c6]@4 ~@2 [c5,g5,c6]@3 ~@3, ~@9 c5@2 ~@13", // C5
  AZ: "[d5,d6]@12 [d5,a5,d6]@11 ~, a5@5 ~@7", BA: "~@6 [d5,a5,d6]@2 ~ [d5,a5,d6]@2 ~",
  BB: "[c5,g5,c6]@7 ~@2 [c5,g5,c6] ~@2 [c5,g5,c6]@9 ~@3", // C5
  BC: "[c5,g5,c6]@8 ~ [c5,g5,c6] ~@2 [c5,g5,c6]@4 ~@2 [c5,g5,c6]@3 ~@3", // C5
  BD: "[bb4,f5,bb5]@7 ~@2 [f5,bb5] ~@2 [bb4,f5,bb5]@5 ~ [bb4,f5,bb5]@3 ~@3, ~@9 bb4@2 ~@13", BE: "[a4,e5,a5]@3 ~",
  BF: "~@7 a5 ~ d6 e6 ~ f6@3 e6@3 d6@3 c6@3", BG: "[bb5@9 g6@3 g6@18 ~ g5 ~ c6 d6 ~ e6@3 d6@3 c6@3 g5@3]/2",
  BH: "[a5@9 f6@3 f6@18 ~ f5 ~ bb5 c6 ~ d6@3 c6@3 bb5@3 a5@3]/2", BI: "g5@3 e6 e6@4", BJ: "db6 d6 e6 f6",
  BK: "e6 d6 db6@2", BL: "[g4,d5,g5,bb5,d6,g6]@16 ~@2 [g4,d5,g5,bb5,d6,g6]@3 ~@3",
  BM: "[c5,g5,c6,e6]@17 ~ [c5,g5,c6,e6]@2 ~@4", BN: "[f4,c5,f5,a5]@16 ~@2 [f4,c5,f5,a5] ~@5",
  BO: "[e4,e5,bb5,d6,g6]@8 ~ [e4,e5,bb5,d6,g6] ~@2", BP: "[a4,e5,a5,db6,e6]@23 ~",
  BQ: "[a4,e5,a5,db6,e6]@17 ~ [a4,e5,a5,db6,e6]@3 ~@3", BR: "[d5,a5,d6,f6]@17 ~ [d5,a5,d6,f6]@2 ~@4",
  BS: "[g4,d5,g5,bb5,d6]@8 ~ [g4,d5,g5,bb5,d6] ~@2", BT: "[c5,g5,c6,e6]@17 ~ [c6,e6]@2 ~@4, ~@18 [c5,g5] ~@5",
  BU: "[f4,c5,f5,a5,c6,f6]@16 ~@2 [f4,c5,f5,a5,c6,f6] ~@5", BV: "[bb4,f5,bb5]@16 ~@2 [bb4,f5,bb5] ~@5, d6@7 ~@2 d6 ~@2",
  BW: "[e4,e5,bb5,d6,g6]@17 ~ [e5,bb5,g6] ~@5, ~@9 [e4,d6] ~@2", // Em7b5 Edim E7
  BX: "[a4,e5,a5,d6,e6]@9 [a4,e5,a5,d6,e6] ~@2 [a4,e5,a5,d6,e6]@7 ~@2 [a4,e5,a5,d6]@2 ~, ~@21 e6 ~@2", // Asus4
  BY: "[a4,e5,a5,db6,e6]@3 ~", BZ: "[d5,a5,d6,f6]@17 ~ [a5,d6,f6]@2 ~@4, ~@18 d5 ~@5",
  CA: "[g4,d5,g5,bb5,d6,g6]@17 ~ [g4,d5,bb5,d6,g6]@2 ~@4, ~@18 g5 ~@5", // Gm
  CB: "[c5,g5,c6,e6]@17 ~ [g5,c6,e6]@2 ~@4, ~@18 c5 ~@5", // C
  CC: "[f4,c5,f5,a5,c6,f6]@17 ~ [f4,c5,f5,f6] ~@5, ~@9 [a5,c6] ~@2", // F F5 Am
  CD: "[bb4,f5,bb5,d6]@17 ~ [bb4,f5,bb5] ~@5, ~@9 d6 ~@2", CE: "[e4,e5,bb5,d6,g6]@17 ~ [e4,e5,bb5,d6] ~@5, ~@9 g6 ~@2",
  CF: "[a4,e5,a5,db6,e6]@20 ~ [a4,e5,db6,e6]@2 ~, ~@21 a5 ~@2", CG: "[a4,e5,a5,db6,e6]@17 ~ [a4,e5,a5,db6,e6]@2 ~@4",
  CH: "[d5,a5,d6,f6]@17 ~ [d5,a5,d6] ~@5, ~@9 f6 ~@2", // Dm D5
  CI: "[g4,d5,g5,bb5,d6,g6]@17 ~ [g4,d5,g5,d6,g6] ~@5, ~@9 bb5 ~@2", // Gm G5
  CJ: "[c5,g5,c6,e6]@17 ~ [c5,g5,e6] ~@5, ~@9 c6 ~@2", CK: "[f4,c5,f5,a5,c6,f6]@7 ~", CL: "[bb4,f5,bb5,d6]@5 ~",
})).s("gm_celesta").gain(0.19)

// other · clavinet
const clavinet = note(`<
  ~@25 A B C D E B F G H I J@2 K L M N O B P Q R S T U V L W X Y Z AA AB AC AD AE AF AD AG AH AI AJ AK AE AJ AK AL AM AN
  AO B C D E B F G H I J AP V AQ AR AS AJ AD AE AF AT AU AH@2 AV AD AW AX AK AU AY AZ BA BB BC BD BE BF BG AB BA BB BH
  BD BE BI N AZ AC BJ BK BL AK BM BN AB B BO BC BP BQ
>`.pickRestart({
  A: "d4@13 ~@2 a4@2 ~@4 f4@2 ~", B: "d4@23 ~", C: "bb3@6 ~@3 bb3@5 ~@5 c4 ~@2 a3 ~, ~@18 bb3@2 ~ bb3@2 ~",
  D: "bb3@9 bb3@8 ~ c4@5 ~", E: "d4@13 ~@2 a4@3 ~@3 f4@2 ~", F: "bb3@6 ~@3 bb3@4 ~@6 c4 ~ bb3@2 a3, ~@9 bb3 ~@2",
  G: "bb3@8 ~ bb3@10 ~@2 bb3@2 ~", H: "c4@8 ~ c4@2 ~ c4@8 ~ c4@2 ~", I: "c4@9 c4@2 ~ c4@12", J: "d4@8 ~ d4@2 ~ d4@11 ~",
  K: "c4@8 ~ c4@2 ~ c4@11 ~", L: "c4@8 ~ c4@2 ~ c4@9 c4@2 ~", M: "bb3@5 ~ bb3@5 ~", N: "a3@23 ~",
  O: "d4@14 ~ a4@3 ~@3 f4@3", P: "bb3@7 ~@2 bb3@6 ~@4 c4@2 ~ a3@2, ~@18 bb3@2 ~ bb3@2 ~", Q: "bb3@8 ~ bb3@9 c4@5 ~",
  R: "d4@15 a4@4 ~@2 f4@3", S: "d4", T: "bb3@7 ~@2 bb3@6 ~@4 c4 ~@2 a3 ~, ~@18 bb3@2 ~ bb3@2 ~",
  U: "bb3@8 ~ bb3@7 ~@2 bb3@6", V: "c4@8 ~ c4@2 ~ c4@8 ~ c4 ~@2", W: "d4@7 ~@2 d4 ~@2 d4@9 d4@2 ~",
  X: "d4@9 d4 ~@2 d4@9 d4@3", Y: "c4@8 ~ c4@2 ~ c4@10 ~@2", Z: "c4@9 c4 ~@2 c4@11 ~",
  AA: "bb3@5 ~ bb3@8 ~ bb3@2 ~ bb3@4 ~@2", AB: "a3", AC: "d4@8 ~ d4@2 ~", AD: "bb3@17 ~ bb3@5 ~",
  AE: "c4@16 ~@2 c4@5 ~", AF: "d4@17 ~ c4@4 ~@2", AG: "e3@17 ~ e3@5 ~", AH: "a3@17 ~ a3@5 ~", AI: "a3@16 ~@2 a3@5 ~",
  AJ: "d4@8 ~ c4@2 ~", AK: "bb3@16 ~@2 bb3@5 ~", AL: "e3@17 ~ e3@4 ~@2", AM: "a3@17 ~ bb3@5 ~",
  AN: "a3@5 ~ g3@5 ~ f3@5 ~ e3@3 ~@3", AO: "d3@13 ~@2 a4@2 ~@4 f4@2 ~", AP: "d4@8 ~@10 d4@5 ~",
  AQ: "c4@11 ~ c4@5 ~ c4@4 ~@2", AR: "bb3@8 ~ bb3 ~@2 bb3@8 ~@4", AS: "a3@5 ~@3", AT: "bb3@15 ~@3 bb3@5 ~",
  AU: "e3@16 ~@2 e3@5 ~", AV: "d4@16 ~@2 c4@5 ~", AW: "c4@8 ~ c4@3", AX: "d4@9 c4@2 ~", AY: "a3@9 a3@2 ~ a3@11 ~",
  AZ: "a3@11 ~", BA: "d4@11 ~", BB: "g3@23 ~", BC: "c4@11 ~", BD: "f3", BE: "bb3@11 ~", BF: "e3@11 ~",
  BG: "a3@19 ~@2 a3@2 ~", BH: "c4@23 ~", BI: "e3@23 ~", BJ: "g3@17 ~ g3@4 ~@2", BK: "c4@17 ~ c4@5 ~",
  BL: "f3@8 ~ f3@2 ~", BM: "e3@17 ~ e3@6", BN: "a3@20 ~ bb3@3", BO: "g3", BP: "f3@23 ~", BQ: "bb3",
})).s("gm_clavinet").gain(0.47)

// drums · kick
const kick = s("bd").struct(`<
  ~@25 A B C D E F C@4 F@2 C G F H E B C D E B C@3 F I J C K@4 C@5 L M C@6 N H E G C D O B C P Q C R C P S I T U S P C V
  C@2 W K F B X B F Q X C@2 L C@3 G Y C@6 D C P@3 C@3 J C@2 P V L C
>`.pickRestart({
  A: "~@7 x", B: "x ~@2 x!3 ~ x", C: "x ~@2 x ~ x ~@2", D: "x ~@2 x ~@4", E: "~@5 x ~ x", F: "x ~@2 x!2 ~@3",
  G: "x ~@3 x!2 ~@2", H: "x", I: "x!2 ~ x ~ x ~ x", J: "x ~@2 x!2 ~@2 x", K: "x ~@4 x ~@2", L: "x!2 ~ x ~ x ~@2",
  M: "x!4", N: "x!8", O: "~@15 x ~@4 x ~@3", P: "x ~@2 x ~ x ~ x", Q: "x!2 ~ x!3 ~ x", R: "x!2 ~@2 x ~@3",
  S: "~ x ~ x!2 ~@3", T: "x ~@3 x ~@4 x ~@2 x ~@3 x ~@4 x ~@2", U: "x ~@3 x ~@2 x", V: "x!2", W: "x ~@2 x ~@2 x ~",
  X: "x!2 ~ x!3 ~@2", Y: "x!2 ~@2 x!2 ~@2",
})).gain(0.52)

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

// drums · low tom
const low_tom = s("lt").struct("<~@56 A ~@7 B ~@6 C D ~@22 E F ~@37>".pickRestart({
  A: "~@2 x!2", B: "~@15 x!2 ~ x ~@5", C: "x!8", D: "x", E: "~ x!3 ~ x!3", F: "~ x!3 ~@4",
})).gain(0.59)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@9 B ~@15 C ~@7 D ~@13 E ~@9 F ~@7 A ~@7 G ~@29>".pickRestart({
  A: "~@18 x!2 ~ x!2 ~", B: "~@3 x!2 ~@3", C: "~@11 x ~@4 x ~@7", D: "~@9 x!2 ~ x ~@11", E: "~@3 x", F: "~@3 x!3",
  G: "~@12 x!2 ~ x!2 ~ x!3 ~ x ~",
})).gain(0.59)

// drums · crash
const crash = s("cr").struct(`<
  ~@25 A B ~@2 C B ~@2 B ~ B ~ B ~ B ~ A B@2 ~ A B@10 ~ B ~ B ~ B ~@3 B@2 ~ D B ~ B ~ A B@3 A B@10 ~ B@6 E B@7 E B F G H
  ~ H ~ B ~ H ~ H ~ H ~ I B@7 I B@6
>`.pickRestart({
  A: "x ~@4 x ~ x", B: "x", C: "x ~@14 x ~@4 x ~@3", D: "~@7 x", E: "x!2", F: "~ x ~ x", G: "~ x ~@2", H: "x ~@2 x",
  I: "x ~@2 x ~@2 x ~",
})).gain(0.59)

// drums · high tom
const high_tom = s("ht").struct("<~@40 A ~@15 B ~@21 C ~@9 D ~@45>".pickRestart({
  A: "~ x!2 ~@5", B: "~ x!3 ~ x ~@2", C: "~ x", D: "x!3 ~@3",
})).gain(0.59)

stack(piano, piano_2, piano_3, piano_4, epiano2, celesta, clavinet, kick, snare, low_tom, mid_tom, crash, high_tom)

More by Ozzy Osbourne