Strudelify

Miracle Man

Ozzy Osbourne

KeyA majorTempo138 bpm
0:00/0:00
// Miracle Man — Ozzy Osbourne
// 138 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 67, 4/4 at bar 69, 2/4 at bar 76, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 9 electric bass finger (copy of ch 8 "_reserved" acoustic bass)
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(138/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 · distortion guitar · "_by"
const distortion_guitar = note(`<
  A B A B A B A B C D C D E F G H E F G H I J K L M N O P Q R Q S C D E F G H E F G H I J K L M N O P Q R Q S Q R Q T U
  V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL A B A B AM AN AM AO E F G H E F G H I J K L M N AP AQ AP AQ Q R Q S Q R
  Q S Q R Q S
>`.pickRestart({
  A: "e3 f#3!3 ~@6 [f#4,b4] ~@3 [e4,g#4] ~", B: "~@4 [e5,a5] ~@7 [e4,a4,c#5]@3 ~",
  C: "~@2 [f#3,c#4]!2 ~@2 [e3,b3] [f#3,c#4] ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2", // F#5 E5 F#5
  D: "~@2 [f#3,c#4]!2 ~@2 [e3,b3] [f#3,c#4] ~@2 [f#3,c#4]!2 ~@4", // F#5 E5 F#5
  E: "~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2", // F#5
  F: "~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4] e3", G: "~@3 [b3,f#4,b4,d#5]@2 ~@3",
  H: "~@2 [f#3,c#4]!2 ~@2 [e3,b3] [f#3,c#4] ~@2 [f#4,b4,d6] [g4,c5,d#6] ~@4", I: "[c#4,g#4,c#5]@3 ~@7 [f#5,a#5]@3 ~@3",
  J: "~@6 [a3,e4,a4]@4 ~@4 [b3,f#4,b4] ~", K: "~@2 [c#5,f#5]!2 ~@4 [f#5,b5]@3 ~@5",
  L: "[b4,e5] ~ b4 ~@5 [f#4,b4]@3 ~@5", M: "[c#4,g#4,c#5] ~@3 [f#5,a#5]@3 ~@3 [g#5,b5]@3 ~@3",
  N: "~@4 [b3,e4] ~ [a3,e4,a4]@4 ~@6", O: "[d4,a4]!2 ~@2 [d4,b4] [d4,a4] ~@2 [c#4,g#4]!2 ~@2 [c#4,g#4]!2 ~@2",
  P: "[b3,f#4]!2 ~@2 [b3,f#4]!2 ~@2 [a3,e4]!2 ~@2 [a3,e4] ~ e3 ~", Q: "~@4 [e5,a5]@4 ~@4 [e4,a4] ~@3",
  R: "e3 f#3!3 ~@8 [e4,a4,c#5]@3 ~", S: "e3 f#3!3 [f#3,c#4]!2 ~@6 [c#4,g#4,c#5] ~@3",
  T: "[e3,b3] [f#3,c#4] ~@10 [b3,f#4,b4,d#5]@3 ~", U: "~@6 e3 a3 ~@3 [a3,e4,a4,c#5] ~@4",
  V: "~@4 [f#4,c#5,f#5] ~ [f#4,c#5,f#5]!2 ~@4 [f#4,c#5,f#5] ~@3", // F#5
  W: "[e4,b4,e5] ~ [e4,b4,e5]!2 ~@4 [e4,b4,e5] ~ [e4,b4,e5]!2 ~@2 e4 d4", // E5
  X: "~@4 [d4,a4,d5] ~ [d4,a4,d5]!2 ~@4 [d4,a4,d5]@3 ~", Y: "[b3,f#4,b4] ~ b3!2 ~@4 [b3,f#4,b4]@2 ~@3 g#3@2 ~",
  Z: "[f#4,c#5,f#5] ~ f#4!2 ~@4 [f#4,c#5,f#5] ~ f#4!2 ~@4", AA: "[e4,b4,e5] ~ e4!2 ~@4 [e4,b4,e5] ~ e4!2 ~@4",
  AB: "[d4,a4,d5] ~ d4!2 ~@4 [d4,a4,d5] ~ d4!2 ~@2 [d4,a4,d5] ~", AC: "~@4 [b3,f#4,b4] ~ f#3 ~@4 a3 ~@4",
  AD: "c#4@2 ~@3 a3@2 ~ [c#4,g#4,c#5] ~ c#4!2 ~@4", AE: "[c#4,g#4,c#5] ~ c#4!2 ~@4 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4",
  AF: "[c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@2 [b3,f#4,b4] ~@5 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2", // C#5 B5 C#5
  AG: "~@6 [e3,b3,e4,g#4,b4,e5]@3 ~@7", AH: "~@4 [a3,e4,a4] ~@3 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4",
  AI: "[c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4", // C#5
  AJ: "[c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 [a3,e4,a4] ~@3 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4", // C#5 A5 C#5
  AK: "[c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4 b3@2 ~@3 g#4@2 ~", AL: "~@3 b3 ~@4 d4@2 ~@3 b3@2 ~",
  AM: "e3 f#3!3 ~@6 [f#4,b4] ~@5", AN: "e3 f#3!3 ~@2 [f#4,b4,d#5]@4 ~@6", AO: "e3 f#3!3 ~@12",
  AP: "[d4,a4]!4 ~@4 [c#4,g#4]!4 ~@4", AQ: "[b3,f#4]!4 ~@4 [a3,e4]!4 ~@4",
})).s("gm_distortion_guitar").gain(0.41).pan(0.3)

// chords · distortion guitar · "_Rob"
const distortion_guitar_2 = note(`<
  A B A B A B A B C D C E C F G H C F G H I J K L M N O P Q R Q S C E C F G H C F G H I J K L M N O P Q R Q S Q R Q T U
  V W X Y Z AA AB AC AD AE AF AG@2 AH AI AJ AK A B A B AL AM AL AN C F G H C F G H I J K L M N AO AP AO AQ Q R Q S Q R Q
  S Q R Q S
>`.pickRestart({
  A: "~@4 [e5,a5]@4 ~@4 [e4,a4] ~@3", B: "e3 f#3!3 ~@2 [f#4,b4,d#5]@4 ~@6",
  C: "[e3,b3] [f#3,c#4] ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2", // E5 F#5
  D: "[e3,b3] [f#3,c#4] ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [b4,f#5]@3 ~", // E5 F#5 B5
  E: "[e3,b3] [f#3,c#4] ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [b3,f#4,b4]@3 ~", // E5 F#5 B5
  F: "[f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2", G: "[b3,e4,b4,e5]@3 ~@9 [f#4,b4,b6]@3 ~",
  H: "[e3,b3] [f#3,c#4] ~@2 [f#3,c#4]!2 ~@2 [f#3,c#4]!2 ~@2 [f#4,b4,d6]@3 ~", I: "~ [g5,b5] ~@2",
  J: "[e3,b3,e4]@3 ~@9 [a3,e4,a4] ~@3", K: "[c#4,g#4,c#5] ~@3 [f#5,b5] ~ [f#5,b5] ~@5 e5 ~ g#4 ~",
  L: "~@4 [b4,d#5] ~ f#4 ~@5 a3 ~ [b3,f#4] ~", M: "~@2 [c#5,f#5] f#5 ~@4 [g#5,b5] ~@5 e4 ~",
  N: "[e3,b3,e4]@3 ~@9 [a3,e4,a4] ~ [b3,f#4,b4] ~", O: "~@2 [d4,a4]!2 ~@2 [d4,a4]!2 ~@2 [c#4,g#4]!2 ~@2 [c#4,g#4]!2",
  P: "~@2 [b3,f#4]!2 ~@2 [b3,f#4]!2 ~@2 [a3,e4]!2 ~@4", Q: "e3 f#3!3 ~@6 [f#4,b4] ~@3 [e4,g#4] ~",
  R: "~@4 [e5,a5] ~ [f#4,b4,d#5]@4 ~@6", S: "b3 c#4!3 ~@2 [d4,a4,d5]@4 ~@4 [c#4,g#4,c#5] ~",
  T: "~@6 [e3,b3] [f#3,c#4] ~@8", U: "[e3,b3] [f#3,c#4] ~@6 [b3,f#4,b4,d#5]@2 ~@3 d#4@2 ~",
  V: "[f#4,c#5,f#5] ~ [f#4,c#5,f#5]!2 ~@4 [f#4,c#5,f#5] ~ [f#4,c#5,f#5]!2 ~@2 f#4 e4", // F#5
  W: "~@4 [e4,b4,e5] ~ [e4,b4,e5]!2 ~@4 [e4,b4,e5] ~@3", // E5
  X: "[d4,a4,d5] ~ [d4,a4,d5]!2 ~@4 [d4,a4,d5] ~ [d4,a4,d5]!2 ~@4", Y: "~@4 [b3,f#4,b4] ~ f#3 ~@4 [a3,e4,a4] ~@4",
  Z: "~@4 [f#4,c#5,f#5] ~ f#4!2 ~@4 [f#4,c#5,f#5] ~ f#4 e4", AA: "~@4 [e4,b4,e5] ~ e4!2 ~@4 [e4,b4,e5] ~ e4 d4",
  AB: "~@4 [d4,a4,d5] ~ d4!2 ~@4 [d4,a4,d5] ~@3", AC: "[b3,f#4,b4] ~ b3!2 ~@4 b3@2 ~@3 g#3@2 ~",
  AD: "~@3 b3 ~@8 [c#4,g#4,c#5] ~ c#4!2", AE: "~@4 [c#4,g#4,c#5] ~ c#4!2 ~@4 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2",
  AF: "~@4 [a3,e4,a4] ~@3 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4", // A5 C#5
  AG: "[[c#4,g#4,c#5] ~ [c#4,g#4,c#5] ~@7 b3 ~ a3 ~ [a3,e4,a4,c#5,e5]@4 ~@4 [b3,f#4,b4] ~@5 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2]/2", // C#5 A B5 C#5
  AH: "~@4 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2 ~@4 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2", // C#5
  AI: "~@6 [b3,f#4,b4] ~@5 [c#4,g#4,c#5] ~ [c#4,g#4,c#5]!2", AJ: "~@4 [c#4,g#4,c#5] ~ f#3 ~@4 a3 ~@4",
  AK: "c#4@2 ~@3 a3@2 ~@4 c#4 ~@4", AL: "~@4 [e5,a5]@4 ~@4 [e4,a4] ~ [e4,g#4] ~", AM: "~@4 [e5,a5] ~@7 [e4,a4,c#5]@3 ~",
  AN: "~@4 [e5,a5] ~ [f#4,b4,d#5] ~@9", AO: "~@4 [d4,a4]!4 ~@4 [c#4,g#4]!4", AP: "~@4 [b3,f#4]!4 ~@4 [a3,e4]!4",
  AQ: "~@4 [b3,f#4]!4 ~@4 [a3,e4]@3 ~", // B5 A5
})).s("gm_distortion_guitar").gain(0.41).pan(0.7)

// chords · pad bowed
const pad_bowed = note(`<
  ~@28 A@2 B@2 ~@3 B@2 ~@2 B@2 ~@9 B@8 ~@19 C D E ~@5 A@2 ~@2 B@2 ~@11 A@2 B@2 A@2 B@2 A@2 B@2
>`.pickRestart({
  A: "[~@8 [b4,f5,b5,d#6] ~ [b4,f5,b5,d#6] ~ [a4,e5,a5,c6] ~ [f4,c5] ~@17, ~@7 f5@5 ~@4]/2", // Fm7b5 Am F5
  B: "[~@8 [b3,f4,b4,d#5] ~ [b3,f4,b4,d#5] ~ [a3,e4,a4,c5] ~ [f3,c4] ~@17, ~@7 f4@5 ~@4]/2", // Fm7b5 Am F5
  C: "~@10 [b4,f5,b5,d#6] ~ [b4,f5,b5,d#6]@2 [a4,e5,a5,c6]@2", D: "~@2 [f4,c5,f5]@4 ~@2 f#4!8", E: "f#4!16",
})).s("gm_pad_bowed").gain(0.36)

// other · pad metallic · "_All"
const pad_metallic = note("<~@28 A@4 ~@3 B ~@3 B ~@10 A@8 ~@27 A@2 ~@2 A@2 ~@11 A@12>".pickRestart({
  A: "[~@8 b5 ~ b5 ~ a5 ~ f5@10 ~@8]/2", B: "~@8 b5 ~ b5 ~ a5 ~@3",
})).s("gm_pad_metallic").gain(0.41)

// bass · electric bass pick · "_rights"
const bass = note(`<
  ~@4 A@2 B C D E D E F G H I J K L M N O P Q R S T U V W V X D E F G H I J K L M N O P Q R S T U V W V X V@3 Y Z AA AB
  AC AD AA AB AE AF AG AH AI AJ AK AH AL AM AN AO@3 AP V@3 AQ F G H I J K L M N O P Q R S T AR T AS V W V X V W V X V W
  V X
>`.pickRestart({
  A: "e2 f#2!3 f#3 ~ f#2!6 f#3 ~ f#2!2", B: "e2 f#2!3 f#3 ~ f#2!3 ~ f#2 ~ f#3 ~ f#2!2",
  C: "e2 f#2!3 f#3 ~ f#2!2 f#3 f#2!4 ~ f#3!2", D: "e2 f#2!5 e2 f#2!9", E: "e2 f#2!5 e2 f#2!5 b2@3 ~", F: "e2 f#2!15",
  G: "f#2!16", H: "f#2 ~ f#2!3 ~ f#2 ~ f#2!5 ~ f#2 ~", I: "f#2 ~ f#2!3 ~ f#2!6 b2@3 ~", J: "e3 f#3!15",
  K: "f#3!14 e3!2", L: "f#2 ~ f#3!3 ~ f#3 ~ f#2 ~ f#2!6", M: "e2 f#2!5 e2 f#2!4 ~ a2 ~ b2 ~",
  N: "c#3 ~ c#3!3 ~ c#3!7 ~ c#3 ~", O: "e2@3 ~ e2 ~ a2 ~ a2 ~ a2!3 ~ b2 ~",
  P: "c#3 ~ c#3!3 ~ c#3 ~ c#3 ~ c#3!3 ~ c#3 ~", Q: "a2 ~ a2 ~ a2 ~ b2@3 ~ b2!2 a2 ~ b2 ~",
  R: "c#3 ~ c#3!3 ~ c#3 ~ c#3!5 ~ c#3 ~", S: "e2@2 ~ e2!2 ~ a2@3 ~ a2!3 ~ a2 ~", T: "d3!8 c#3!8",
  U: "b2!8 a2 ~ a2!3 ~ a2 ~", V: "e2 f#2!4 ~ f#2 ~ f#2!5 ~ f#2 ~", W: "f#2!5 ~ f#2@3 ~ f#2 ~ f#2 ~ f#2!2",
  X: "f#2 ~ f#2!3 ~ d3@3 ~ d3 ~ c#3 ~ c#3 ~", Y: "e2 f#2 ~@4 e2 f#2 ~@4 b2@3 ~",
  Z: "e2 f#2 ~@4 e2 f#2 b2@2 ~ a2 ~ g#2@2 ~", AA: "f#2 ~ f#2!3 ~ f#2!3 ~ f#2!3 ~ f#2!2",
  AB: "e2 ~ e2!3 ~ e2!3 ~ e2!3 ~ e2!2", AC: "d3 ~ d3!3 ~ d3 ~ d3!5 ~ d3 ~", AD: "b2 ~ b2!4 f#2 ~ b2@2 ~ a2 ~ g#2@2 ~",
  AE: "d3 ~ d3!3 ~ d3!3 ~ d3!3 ~ d3 ~", AF: "b2 ~ b2!3 ~ f#2 ~ b2@2 ~ a2 ~ g#2@2 ~",
  AG: "c#3@2 ~ b2 ~ a2@2 ~ c#3 ~ c#3!3 ~ c#3!2", AH: "c#3 ~ c#3!3 ~ c#3!3 ~ c#3!3 ~ c#3!2",
  AI: "c#3 ~ c#3!2 a2 ~ b2 ~ c#3 ~ c#3!3 ~ c#3 ~", AJ: "c#3 ~ c#3!3 ~ e2@3 ~ b2 ~ b2 ~ a2@2",
  AK: "~@2 a2!3 ~ b2 ~ c#3 ~ c#3!3 ~ c#3!2", AL: "c#3 ~ c#3!2 a2 ~ b2 ~ c#3 ~ c#3!3 ~ c#3!2",
  AM: "c#3 ~ c#3!3 ~ f#2 ~ b2@2 ~ a2 ~ g#2@2 ~", AN: "c#3@2 ~ b2 ~ a2@2 ~ d3@2 ~ c#3 ~ b2@2 ~", AO: "e2 f#2!3 ~@12",
  AP: "f#3!5 ~ f#4!3 ~ f#4!6", AQ: "e2 f#2!4 ~ f#3 ~@9", AR: "b2!8 a2!7 ~", AS: "b2!8 a2!2 e3 d3 b2@3 ~",
})).s("gm_electric_bass_pick").gain(0.41)

// bass · acoustic bass · "_reserved"
const bass_2 = note(`<
  ~@4 A@2 B C D E D E F G H I J K L M N O P Q R S T U V W V X D E F G H I J K L M N O P Q R S T U V W V X V@3 Y Z AA AB
  AC AD AA AB AE AF AG AH AI AJ AK AH AL AM AN AO@3 AP V@3 AQ F G H I J K L M N O P Q R S T AR T AS V W V X V W V X V W
  V X
>`.pickRestart({
  A: "e1 f#1!3 f#2 ~ f#1!6 f#2 ~ f#1!2", B: "e1 f#1!3 f#2 ~ f#1!3 ~ f#1 ~ f#2 ~ f#1!2",
  C: "e1 f#1!3 f#2 ~ f#1!2 f#2 f#1!4 ~ f#2!2", D: "e1 f#1!5 e1 f#1!9", E: "e1 f#1!5 e1 f#1!5 b1@3 ~", F: "e1 f#1!15",
  G: "f#1!16", H: "f#1 ~ f#1!3 ~ f#1 ~ f#1!5 ~ f#1 ~", I: "f#1 ~ f#1!3 ~ f#1!6 b1@3 ~", J: "e2 f#2!15",
  K: "f#2!14 e2!2", L: "f#1 ~ f#2!3 ~ f#2 ~ f#1 ~ f#1!6", M: "e1 f#1!5 e1 f#1!4 ~ a1 ~ b1 ~",
  N: "c#2 ~ c#2!3 ~ c#2!7 ~ c#2 ~", O: "e1@3 ~ e1 ~ a1 ~ a1 ~ a1!3 ~ b1 ~",
  P: "c#2 ~ c#2!3 ~ c#2 ~ c#2 ~ c#2!3 ~ c#2 ~", Q: "a1 ~ a1 ~ a1 ~ b1@3 ~ b1!2 a1 ~ b1 ~",
  R: "c#2 ~ c#2!3 ~ c#2 ~ c#2!5 ~ c#2 ~", S: "e1@2 ~ e1!2 ~ a1@3 ~ a1!3 ~ a1 ~", T: "d2!8 c#2!8",
  U: "b1!8 a1 ~ a1!3 ~ a1 ~", V: "e1 f#1!4 ~ f#1 ~ f#1!5 ~ f#1 ~", W: "f#1!5 ~ f#1@3 ~ f#1 ~ f#1 ~ f#1!2",
  X: "f#1 ~ f#1!3 ~ d2@3 ~ d2 ~ c#2 ~ c#2 ~", Y: "e1 f#1 ~@4 e1 f#1 ~@4 b1@3 ~",
  Z: "e1 f#1 ~@4 e1 f#1 b1@2 ~ a1 ~ g#1@2 ~", AA: "f#1 ~ f#1!3 ~ f#1!3 ~ f#1!3 ~ f#1!2",
  AB: "e1 ~ e1!3 ~ e1!3 ~ e1!3 ~ e1!2", AC: "d2 ~ d2!3 ~ d2 ~ d2!5 ~ d2 ~", AD: "b1 ~ b1!4 f#1 ~ b1@2 ~ a1 ~ g#1@2 ~",
  AE: "d2 ~ d2!3 ~ d2!3 ~ d2!3 ~ d2 ~", AF: "b1 ~ b1!3 ~ f#1 ~ b1@2 ~ a1 ~ g#1@2 ~",
  AG: "c#2@2 ~ b1 ~ a1@2 ~ c#2 ~ c#2!3 ~ c#2!2", AH: "c#2 ~ c#2!3 ~ c#2!3 ~ c#2!3 ~ c#2!2",
  AI: "c#2 ~ c#2!2 a1 ~ b1 ~ c#2 ~ c#2!3 ~ c#2 ~", AJ: "c#2 ~ c#2!3 ~ e1@3 ~ b1 ~ b1 ~ a1@2",
  AK: "~@2 a1!3 ~ b1 ~ c#2 ~ c#2!3 ~ c#2!2", AL: "c#2 ~ c#2!2 a1 ~ b1 ~ c#2 ~ c#2!3 ~ c#2!2",
  AM: "c#2 ~ c#2!3 ~ f#1 ~ b1@2 ~ a1 ~ g#1@2 ~", AN: "c#2@2 ~ b1 ~ a1@2 ~ d2@2 ~ c#2 ~ b1@2 ~", AO: "e1 f#1!3 ~@12",
  AP: "f#2!5 ~ f#3!3 ~ f#3!6", AQ: "e1 f#1!4 ~ f#2 ~@9", AR: "b1!8 a1!7 ~", AS: "b1!8 a1!2 e2 d2 b1@3 ~",
})).s("gm_acoustic_bass").gain(0.41)

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

// drums · snare
const snare = s("sd").struct("<~@4 A@15 B A@21 B A@15 C D A@17 E@2 F A@4 B A@7 B A@22>".pickRestart({
  A: "~ x ~ x", B: "~ x ~@2", C: "x!2 ~@4 x!2 ~@4 x ~@3", D: "x!2 ~@4 x!3 ~ x!4 ~ x", E: "x!4 ~@12",
  F: "x!4 ~@8 x!2 ~ x",
})).gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@3 A B C@4 D C D C@3 D C@3 D E@6 C@2 B C B C@2 D C@3 D C@3 D E@6 C@2 B C B C@2 D C ~@2 E@8 F C@8 ~@3 B C G C H I C@2
  D C@3 D E@6 C@2 G C B C@3 B C@3 B C@3
>`.pickRestart({
  A: "~@8 x ~ x!6", B: "~@2 x ~ x ~ x!3 ~ x ~ x ~ x!2", C: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2", D: "x ~ x!3 ~ x!3 ~ x!2 ~@4",
  E: "x ~ x!3 ~ x ~ x ~ x!3 ~ x ~", F: "x ~ x!3 ~ x ~ x ~ x!3 ~ x!2", G: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2",
  H: "x ~ x!3 ~@11", I: "~@2 x!3 ~ x!3 ~ x!3 ~ x!2",
})).gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@41 [~@7 x] ~@36 [~@8 x!4 ~@4] ~@35>").gain(0.41)

// drums · high tom
const high_tom = s("ht").struct("<~@19 [~@6 x!2] ~@21 [~@3 x] ~@49 [~@6 x!2] ~@22>").gain(0.41)

// drums · crash
const crash = s("cr").struct("<~@4 A ~@23 A ~ A ~@19 A ~ A ~@26 A ~@4 A ~@17 A ~ A ~ A ~ A ~ A ~ A ~>".pickRestart({
  A: "x",
})).gain(0.41)

stack(
  distortion_guitar, distortion_guitar_2, pad_bowed, pad_metallic, bass, bass_2, kick, snare, hihat, mid_tom, high_tom,
  crash
)

More by Ozzy Osbourne