Strudelify

Aces High

Iron Maiden

KeyA majorTempo252 bpm
0:00/0:00
// Aces High — Iron Maiden
// 252 bpm, 4/4, key A major. 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: Full arrangement: all 292 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(252/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 · "Guitar 1"
const distortion_guitar = note(`<
  A B C D E F G H I J K L B M N O P Q R S T U V W X@3 Y Z AA AB Y Z AA AB Y Z AA AB Y Z AA AC AD AE AF AG AD AE AH@2 AD
  AE AF AG AD AE AI@2 AJ AK AL AM AJ AK AN@2 AJ AK AL AM AJ AK AO@2 AP AQ AR AS AP AQ AR AT AP AQ AR AS AP AQ AR AU@8
  AV@8 AW@16 AX AY AZ AY BA AY AZ AY BB AY AZ AY BA AY AZ AY BC@8 BD@8 BE BF BG BH BI BJ BK BL BM@2 BN BO BP@2 BQ BR@2
  AY AZ AY BA AY AZ AY BB AY AZ AY BA AY AZ AY BS AD AE AF AG AD AE AH@2 AD AE AF AG AD AE AI@2 AJ AK AL AM AJ AK AN@2
  AJ AK AL AM AJ AK AO@2 AP AQ AR AS AP AQ AR AT AP AQ AR AS AP AQ AR AU@8 AV@8 AW@16 BT Y Z AA AB Y Z AA AB Y Z AA AB Y
  BU@5 BV@6 BW
>`.pickRestart({
  A: "~@7 g#4 ~@2 a4 ~@2 b4 ~@2", B: "~ a4 ~@2 c#5 ~@5 b4 ~@5", C: "g#4 ~@2 a4 ~@3 b4 ~@2 a4 ~@2 c#5 ~@2",
  D: "~@3 b4 ~@5 g#4 ~@3 a4 ~@2", E: "b4 ~@2 a4 ~@2 c#5 ~@5 b4 ~@3", F: "~@3 g#4 ~@2 a4 ~@2 b4 ~@2 a4 ~@2 c#5",
  G: "~@6 b4 ~@5 g#4 ~@2 a4", H: "~@2 b4 ~@2 a4 ~@2 c#5 ~@6 b4", I: "~@5 g#4 ~@2 a4 ~@2 b4 ~@3 a4",
  J: "~@2 c#5 ~@5 b4 ~@5 g#4 ~", K: "~ a4 ~@3 b4 ~@2 a4 ~@2 c#5 ~@4", L: "~ b4 ~@5 g#4 ~@3 a4 ~@2 b4 ~",
  M: "~ g#4 ~@2 a4 ~@2 b4 ~@2 a4 ~@2 c#5 ~@2", N: "~@4 b4 ~@5 g#4 ~@2 a4 ~@2", O: "b4 ~@2 a4 ~@2 c#5 ~@6 b4 ~@2",
  P: "~@3 g#4 ~@2 a4 ~@2 b4 ~@3 a4 ~@2", Q: "c#5 ~@5 b4 ~@5 g#4 ~@2 a4", R: "~@3 b4 ~@2 a4 ~@2 c#5 ~@5 b4",
  S: "~@5 g#4 ~@3 a4 ~@2 b4 ~@2 a4", T: "~@2 c#5 ~@5 b4 ~@6 g#4", U: "~@2 a4 ~@2 b4 ~@2 a4 ~@2 c#5 ~@4",
  V: "~@2 b4 ~@5 g#4 ~@2 a4 ~@2 b4 ~", W: "~ a4 ~@2 c#5 ~@6 b4 ~@4",
  X: "[~ g#4 ~@2 a4@3 b4@3 ~ a4@3 g#4@27 ~ c5@5 ~]/3", Y: "b4@2 c5@2 b4@2 c5@2 b4@2 e5@3 ~ e5@2",
  Z: "~@2 c5@7 ~ c5@5 ~", AA: "b4 c5 b4 c5 b4!2 d5!2", AB: "d5@2 e5@2 d5@2 c5@2 b4@2 c5@5 ~",
  AC: "d5@2 e5@2 d5@2 c5@2 b4@2 [e4,b4]@5 ~", AD: "[f#4,c#5]@5 ~ [g4,d5]@3 ~ [a4,e5]@5 ~",
  AE: "[g4,d5]@5 ~ [f#4,c#5]@3 ~ [e4,b4]@5 ~", AF: "[g4,d5]@5 ~ [f#4,c#5]@3 ~ [d4,a4]@5 ~",
  AG: "[f#4,c#5]@5 ~ [d4,a4]@3 ~ [e4,b4]@5 ~", AH: "[[g4,d5]@5 ~ [f#4,c#5]@3 ~ [d4,a4]@15 ~ [e4,b4]@5 ~]/2",
  AI: "[[g4,d5]@5 ~ [f#4,c#5]@3 ~ [d4,a4]@15 ~ [a3,e4]@5 ~]/2", AJ: "[b3,f#4]@5 ~ [c4,g4]@3 ~ [d4,a4]@5 ~",
  AK: "[c4,g4]@5 ~ [b3,f#4]@3 ~ [a3,e4]@5 ~", AL: "[c4,g4]@5 ~ [b3,f#4]@3 ~ [g3,d4]@5 ~",
  AM: "[b3,f#4]@5 ~ [g3,d4]@3 ~ [a3,e4]@5 ~", AN: "[[c4,g4]@5 ~ [b3,f#4]@3 ~ [g3,d4]@15 ~ [a3,e4]@5 ~]/2",
  AO: "[[c4,g4]@5 ~ [b3,f#4]@3 ~ [g3,d4]@15 ~ d4@2 e4@2 ~@2]/2", AP: "e4@2 ~@2 e4@2 e4@3 ~ g4@2 e4@2 ~@2",
  AQ: "e4@2 ~@2 e4@2 e4@3 ~ a4@2 e4@2 ~@2", AR: "e4@2 ~@2 e4@2 e4@3 ~ c5@2 b4@2 a4@2", AS: "g4 b4 a4 g4 d4!2 e4 ~",
  AT: "g4@2 a4@7 ~ d4@2 e4@2 ~@2",
  AU: "[g4@2 a4@7 ~ [e4,b4,e5]@31 ~ [c4,g4,c5]@15 ~ [d4,a4,d5]@15 ~ [e4,b4,e5]@31 ~ [c4,g4,c5]@15 ~ [d4,a4,d5]@6]/8", // E5 C5 D5 E5 C5 D5
  AV: "[~@10 [e4,b4,e5]@31 ~ [c4,g4,c5]@15 ~ [d4,a4,d5]@15 ~ [e4,b4,e5]@31 ~ [c4,g4,c5]@15 ~ [d4,a4,d5]@6]/8", // E5 C5 D5 E5 C5 D5
  AW: "[~@10 [g4,d5,g5]@31 ~ [d#4,a#4,d#5]@15 ~ [f4,c5,f5]@15 ~ [g4,d5,g5]@31 ~ [d#4,a#4,d#5]@15 ~ [f4,c5,f5]@6]/8", // G5 D#5 F5 G5 D#5 F5
  AX: "~@10 a3@3 ~ c4@2", AY: "c4@2 ~@2 a3@2 a3@3 ~ c4@2 b3@2 a3@2",
  AZ: "~@2 [d4,a4,d5]@3 ~ [d4,a4,d5]@3 ~ a3@3 ~ c4@2", BA: "g3@2 [a3,e4,a4]@3 ~ [a3,e4,a4]@3 ~ a3@3 ~ c4@2",
  BB: "g3@2 [a3,e4,a4]@2 ~@6 a3@3 ~ c4@2", // A5
  BC: "[g3@2 [a3,e4,a4]@2 ~@6 [a3,e4,a4]@31 ~ [f3,c4,f4]@15 ~ [g3,d4,g4]@15 ~ [a3,e4,a4]@31 ~ [f3,c4,f4]@15 ~ [g3,d4,g4]@6]/8", // A5 F5 G5 A5 F5 G5
  BD: "[~@10 [a3,e4,a4]@31 ~ [f3,c4,f4]@15 ~ [g3,d4,g4]@15 ~ [a3,e4,a4]@31 ~ [f3,c4,f4]@15 ~ [g3,d4,g4]@6]/8", // A5 F5 G5 A5 F5 G5
  BE: "~@5 d6 b5 b4", BF: "d6 c#6 b5 d6 b5 b4 d6 c#6", BG: "b5 d6 b5 b4 d6 c#6 b5 d6", BH: "b5 b4 d6 c#6 b5 d6 b5 b4",
  BI: "d6 c#6 b5 b4!2 b5 b4 a5", BJ: "b4 g5 b4 a5 b4 g5 b4 f#5", BK: "b4 g5 b4 f#5 b4 e5 b4 f#5",
  BL: "b4 g5 b4 f#5 b4 c#5 d5 c#5", BM: "[d5@2 c#5@2 d5@2 c#5@3 ~ b4@11 ~ b4 d5 ~ a5!2 g#5 ~ f#5 e5@2]/2",
  BN: "g#5@3 f#5 e5@2 f#5@3 ~ f5 e5 ~ d5 b4@2", BO: "e5 d5 b4 a4 f4 d4 d#4 d4",
  BP: "[d#4@2 d4@2 b3@2 a3@3 ~ f#5@3 f5@2 d5@3 e5@3 ~ b4@2 a#4@2 a4@3 ~ f#4@2]/2",
  BQ: "f4@2 e4@3 f4 e4@3 ~ b5@3 ~ d6@2", BR: "[e6@2 f#6@3 e6@2 d6@3 b6@15 ~ a3@3 ~ c4@2]/2",
  BS: "g3@2 [a3,e4,a4]@2 ~@6 [e4,b4]@5 ~", BT: "~@10 c5@5 ~",
  BU: "[~@2 c5@7 ~ c5@12 ~@2 b4@5 c5@4 b4@5 c5@5 b4@4 b4@5 d5@5 d5@4 d5@5 e5@5 d5 e5 ~ d5 c5@5]/5",
  BV: "[b4@5 g5@12 ~@2 f5 g5 ~ f5 e5@8 ~@2 d5@8 ~ e5@8 ~ f5@8 ~@2 e5@8 ~ d5@8 ~ c5@16 ~, ~@5 c5@35 ~@56]/6",
  BW: "~ [a3,e4,a4]@4 ~@3", // A5
})).s("gm_distortion_guitar").gain(0.11).pan(0.8)

// other · distortion guitar · "Guitar 2"
const distortion_guitar_2 = note(`<
  A B C D E F G H I J K L B M N O P Q R S T U V W X@3 Y Z AA AB Y Z AA AB Y Z AA AB Y Z AA AC ~@38 AD AE ~@6 AD AE ~@20
  AF@2 AG@2 ~@23 AH AI AJ AK AL@2 AM AN@2 AO@2 AP@2 AQ AR@2 AS@16 ~@55 AD AE ~@6 AD AE ~@20 AF@2 AG@2 ~@7 AT Y Z AA AB Y
  Z AA AB Y Z AA AB Y AU@5 AV@6 AW
>`.pickRestart({
  A: "~@7 e4 ~@2 f#4 ~@2 g#4 ~@2", B: "~ f#4 ~@2 a4 ~@5 g#4 ~@5", C: "e4 ~@2 f#4 ~@3 g#4 ~@2 f#4 ~@2 a4 ~@2",
  D: "~@3 g#4 ~@5 e4 ~@3 f#4 ~@2", E: "g#4 ~@2 f#4 ~@2 a4 ~@5 g#4 ~@3", F: "~@3 e4 ~@2 f#4 ~@2 g#4 ~@2 f#4 ~@2 a4",
  G: "~@6 g#4 ~@5 e4 ~@2 f#4", H: "~@2 g#4 ~@2 f#4 ~@2 a4 ~@6 g#4", I: "~@5 e4 ~@2 f#4 ~@2 g#4 ~@3 f#4",
  J: "~@2 a4 ~@5 g#4 ~@5 e4 ~", K: "~ f#4 ~@3 g#4 ~@2 f#4 ~@2 a4 ~@4", L: "~ g#4 ~@5 e4 ~@3 f#4 ~@2 g#4 ~",
  M: "~ e4 ~@2 f#4 ~@2 g#4 ~@2 f#4 ~@2 a4 ~@2", N: "~@4 g#4 ~@5 e4 ~@2 f#4 ~@2", O: "g#4 ~@2 f#4 ~@2 a4 ~@6 g#4 ~@2",
  P: "~@3 e4 ~@2 f#4 ~@2 g#4 ~@3 f#4 ~@2", Q: "a4 ~@5 g#4 ~@5 e4 ~@2 f#4", R: "~@3 g#4 ~@2 f#4 ~@2 a4 ~@5 g#4",
  S: "~@5 e4 ~@3 f#4 ~@2 g#4 ~@2 f#4", T: "~@2 a4 ~@5 g#4 ~@6 e4", U: "~@2 f#4 ~@2 g#4 ~@2 f#4 ~@2 a4 ~@4",
  V: "~@2 g#4 ~@5 e4 ~@2 f#4 ~@2 g#4 ~", W: "~ f#4 ~@2 a4 ~@6 g#4 ~@4",
  X: "[~ e4 ~@2 f#4@3 g#4@3 ~ f#4@3 e4@27 ~ a4@5 ~]/3", Y: "g4@2 a4@2 g4@2 a4@2 g4@2 c5@3 ~ c5@2",
  Z: "~@2 a4@7 ~ a4@5 ~", AA: "g4 a4 g4 a4 g4!2 b4!2", AB: "b4@2 c5@2 b4@2 a4@2 g4@2 a4@5 ~", AC: "b4 c5 b4 a4 g4 ~@3",
  AD: "~@5 e5 d5 c5", AE: "b4@2 c5@7 ~@7", AF: "[~@2 d6@2 g6@17 ~ d6@2 g6 d6 g6@3 ~ d6@2]/2",
  AG: "[g6 d6 g6@5 ~ c6@2 g6@3 f6 g6@11 ~@7]/2", AH: "~@10 d5@5 ~", AI: "d5@4 d5@2 d5!2 ~ d5!3 ~ d5!3",
  AJ: "~ d5!3 ~ d5!3 ~ d5!3 ~ d5!3", AK: "~ d5!3 ~ d5!3 ~ d5 d5@6", AL: "[~@2 e5@3 ~ g5@2 a5@17 ~ g5@3 ~ g5@2]/2",
  AM: "e5 d5 e5 d5 c5 d5 c5 a4", AN: "[c5@2 a4@2 g4@2 a4@2 g4@2 e4@11 ~ e5@3 ~ c6 a5 ~ e5 b5 a5]/2",
  AO: "~ e5 c6 a5 ~ e5 b5 a5 ~ e5 c6 a5 ~ e5 b5 a5",
  AP: "[~ e5 c6 a5 ~ e5 b5 a5 ~ e5 a5@10 c6@2 a5@2 ~ a5 g5 a5 ~ g5 e5 g5]/2",
  AQ: "~ a5 ~ b5 ~ c6 b5@2 a5 [b5,c6] d6@3 ~ f6 e6", AR: "[~ g6 a6@30]/2",
  AS: "[~@10 [b3,f#4,b4]@31 ~ [g3,d4,g4]@15 ~ [a3,e4,a4]@15 ~ [b3,f#4,b4]@31 ~ [g3,d4,g4]@15 ~ [a3,e4,a4]@6]/8", // B5 G5 A5 B5 G5 A5
  AT: "~@10 a4@5 ~", AU: "[~@2 a4@7 ~ a4@12 ~@2 g4@5 a4@4 g4@5 a4@5 g4@4 g4@5 b4@5 b4@4 b4@5 c5@5 b4 c5 ~ b4 a4@5]/5",
  AV: "[g4@5 e5@12 ~@2 d5 e5 ~ d5 c5@8 ~@2 b4@8 ~ c5@8 ~ d5@8 ~@2 c5@8 ~ b4@8 ~ a4@16 ~, ~@5 a4@35 ~@56]/6",
  AW: "~ [a3,e4,a4]@4 ~@3", // A5
})).s("gm_distortion_guitar").gain(0.11).pan(0.3)

// bass · electric bass finger · "Bass"
const bass = note(`<
  A@2 B C@3 D@3 ~ E@2 ~ F@2 ~ G@3 H@2 I J@5 K L M N K L M N K L M N K L M O P@2 Q R P@2 Q S P@2 Q R P@2 Q T U@2 V W U@2
  V X U@2 V W U@2 V Y Z AA AB AC Z AA AB AD Z AA AB AC Z AA AB AE AF AG AH AI AF AG AH AI AF AG AH AI AF AG AH AJ AK AL
  AM AN AK AL AM AN AK AL AM AN AK AL AM AO AP AQ AP AR AP AQ AP AS AP AQ AP AR AP AQ AP AT AU AV AN AW AU AV AN AW AU
  AV AN AW AU AV AN AX AY AZ AW BA AY AZ AW BA AY AZ AW BA AY AZ AW BB AP AQ AP AR AP AQ AP AS AP AQ AP AR AP AQ AP BC
  P@2 Q R P@2 Q S P@2 Q R P@2 Q T U@2 V W U@2 V X U@2 V W U@2 V Y Z AA AB AC Z AA AB AD Z AA AB AC Z AA AB AE AF AG AH
  AI AF AG AH AI AF AG AH AI AF AG AH AJ AK AL AM AN AK AL AM AN AK AL AM AN AK AL AM BD K L M N K L M N K L M N K BE@5
  BF BG BH@3 BI BJ
>`.pickRestart({
  A: "[~@7 f#3@3 f#3@22]/2", B: "f#3@2 f#3 f#3@3 ~@10", C: "[~@13 d3@22 d3 d3@2 e3@3 ~@7]/3",
  D: "[~@15 f#3@22 f#3@2 f#3 f#3@3 ~@5]/3", E: "[~ d3@22 d3@2 d3@2 e3@3 ~@2]/2", F: "[~@4 f#3@22 f#3 f#3@2 f#3@3]/2",
  G: "[~@6 d3@22 d3@2 ~ e3@3 ~@14, ~@15 d3 ~@8]/3", H: "[~@9 f#3@22 f#3]/2", I: "f#3@2 f#3@3 ~@11",
  J: "[~@11 d3@22 d3@2 ~ e3@36 ~@2 a2@2 a2@3 ~, ~@35 d3@2 ~@43]/5", K: "a2@2 a2@2 a2@2 a2@2 a2@2 a2@3 ~ a2@2",
  L: "~@2 a2@2 a2@2 a2@3 ~ f2@5 ~", M: "f2!5 g2!3", N: "g2@2 g2@2 g2@2 g2@2 g2@2 a2@2 a2@3 ~", O: "g2!5 d3 e3!2",
  P: "e3@3 ~ e3@2 e3@3 ~ d3@2 e3@2 e3@2", Q: "e3@3 ~ e3@2 e3@3 ~ d3@3 ~ d3@2", R: "f#3@3 ~ e3@2 d3@3 ~ d3@2 e3@2 e3@2",
  S: "d3@3 ~ d3@2 d3@3 ~ d3@2 e3@2 e3@2", T: "d3@3 ~ d3@2 d3@3 ~ g2@2 a2@2 a2@2",
  U: "a2@3 ~ a2@2 a2@3 ~ g2@2 a2@2 a2@2", V: "a2@3 ~ a2@2 a2@3 ~ g2@3 ~ g2@2", W: "b2@3 ~ a2@2 g2@3 ~ g2@2 a2@2 a2@2",
  X: "g2@3 ~ g2@2 g2@3 ~ g2@2 a2@2 a2@2", Y: "g2@3 ~ g2@2 g2@3 ~ d3@2 e3@2 ~@2",
  Z: "e3@2 ~@2 e3@2 e3@3 ~ g3@2 e3@2 ~@2", AA: "e3@2 ~@2 e3@2 e3@3 ~ a3@2 e3@2 ~@2",
  AB: "e3@2 ~@2 e3@2 e3@3 ~ c4@2 b3@2 a3@2", AC: "g3 b3 a3 g3 d3!2 e3 ~", AD: "g3@2 a3@7 ~ d3@2 e3@2 ~@2",
  AE: "g3@2 a3@7 ~ e3@3 ~ e3@2", AF: "e3@4 e3@2 e3@3 ~ e3@2 e3@3 ~", AG: "e3@5 ~ d3@3 ~ c3@3 ~ c3@2",
  AH: "c3@4 c3@2 c3@3 ~ d3@3 ~ d3@2", AI: "d3@4 d3@2 d3@3 ~ e3@3 ~ e3@2", AJ: "d3@4 d3@2 d3@3 ~ g2@3 ~ g2@2",
  AK: "g2@4 g2@2 g2@3 ~ g2@2 g2@3 ~", AL: "g2@5 ~ f2@3 ~ d#2@3 ~ d#2@2", AM: "d#2@4 d#2@2 d#2@3 ~ f2@3 ~ f2@2",
  AN: "f2@4 f2@2 f2@3 ~ g2@3 ~ g2@2", AO: "f2@4 f2@2 f2@3 ~ a2@3 ~ c3@2", AP: "c3@2 ~@2 a2@2 a2@3 ~ c3@2 b2@2 a2@2",
  AQ: "~@2 d3@3 ~ d3@3 ~ a2@3 ~ c3@2", AR: "g2@2 a2@3 ~ a2@3 ~ a2@3 ~ c3@2", AS: "g2@2 a2@2 ~@6 a2@3 ~ c3@2",
  AT: "g2@2 a2@2 ~@6 a2@3 ~ a2@2", AU: "a2@4 a2@2 a2@3 ~ a2@2 a2@2 a2@2", AV: "a2@2 a2@3 ~ g2@3 ~ f2@3 ~ f2@2",
  AW: "g2@4 g2@2 g2@3 ~ a2@3 ~ a2@2", AX: "g2@4 g2@2 g2@3 ~ b2@3 ~ b2@2", AY: "b2@4 b2@2 b2@3 ~ b2@2 b2@2 b2@2",
  AZ: "b2@2 b2@3 ~ a2@3 ~ g2@3 ~ g2@2", BA: "a2@4 a2@2 a2@3 ~ b2@3 ~ b2@2", BB: "a2@4 a2@2 a2@3 ~ a2@3 ~ c3@2",
  BC: "g2 a2 ~@3 d3 e3!2", BD: "f2@4 f2@2 f2@3 ~ a2@2 a2@3 ~", BE: "[~@2 a2@2 a2@2 a2@3 ~ f2@35 ~@2 g2@30 ~@3]/5",
  BF: "a2@5 a2@8 ~ a2!2", BG: "a2!2 ~ a2!6 ~ a2!6",
  BH: "[~ a3 g3 ~ e3 a3 ~ g3 e3 ~ a3@26 ~@2 a3 g3 [e3,a3] g3 e3 [e3,g3] d#3 d3 c3 [a2,b2]]/3", BI: "a2 ~ a2!6 ~ a2!6 ~",
  BJ: "a2!2 a2@8 ~@6",
})).s("gm_electric_bass_finger").gain(0.25)

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

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

// drums · clap
const clap = s("cp").struct("<~@81 A B ~@6 A B ~@38 A B ~@6 A B ~@38 A B ~@6 A B ~@38 A B ~@6 A B ~@57>".pickRestart({
  A: "~@5 x!3", B: "x!2 ~@6",
})).gain(0.72)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@42 A B@38 C A B@6 C A B@38 C A B@6 C A B@38 C A B@6 C A B@38 C A B@6 C A B@31 D E@14 ~ F ~@9
>`.pickRestart({
  A: "~@5 x!3", B: "x!8", C: "x!5 ~@3", D: "x!6 ~@2", E: "~ x ~@3 x ~@2", F: "~@15 x",
})).gain(0.72)

// drums · low tom
const low_tom = s("lt").struct("<~@26 [~@5 x ~ x] [~ x ~ x ~ x ~ x]!15 [~ x ~ x ~@4] ~@249>").gain(0.72)

// drums · high tom
const high_tom = s("ht").struct("<~@82 A ~@7 A ~@39 A ~@7 A ~@39 A ~@7 A ~@39 A ~@7 A ~@57>".pickRestart({
  A: "~ x ~@6",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  A ~ B C ~ D E ~ F ~ G H ~ I C ~ D E ~ J ~ K H ~ I ~ L ~ L ~ L ~ L ~ L ~ L ~ L ~ L ~@225 L ~@3 L ~@3 L ~@3 L ~ L ~ E
  ~@8 K
>`.pickRestart({
  A: "~@7 x ~@2 x ~@5", B: "~@3 x ~@12", C: "~@13 x ~@2", D: "~@3 x ~@4", E: "~@15 x", F: "~ x", G: "~ x ~@14",
  H: "~@11 x ~@4", I: "~ x ~@2", J: "~@9 x ~@6", K: "~ x ~@6", L: "~@5 x ~@2",
})).gain(0.72)

// drums · tambourine
const tambourine = s("tb").struct("<~@266 [~@7 x] [~@3 x ~@3 x]!13 [~@3 x ~@4] ~@10 [~ x ~@6]>").gain(0.72)

stack(distortion_guitar, distortion_guitar_2, bass, kick, snare, clap, hihat, low_tom, high_tom, crash, tambourine)

More by Iron Maiden