Strudelify

Fun It

Queen

KeyE minorTempo113 bpm
0:00/0:00
// Fun It — Queen
// 113 bpm, 4/4, key E 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 15 "GuiatrR" distortion guitar (copy of ch 14 "GuitarL" distortion guitar)
// note: Full arrangement: all 99 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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(`<
  ~@17 A B C D E D E D F G@5 H I J K@2 L M N O P Q R O S T U V W@2 X Y@6 Z@3 AA AB AC@2 AD@2 AE AF@2 AG AH AI AJ AK AL
  AK AJ AM AN AO AP AQ@3 AR AS AT AU@2 AV AW AX AY AZ BA ~@4
>`.pickRestart({
  A: "~@21 a1@8 b1@3", B: "~ c2@4 ~@16 a1@8 b1@3", C: "~ c2@4 ~@2 d2@2 ~@3 e2@8 a1@8 b1@4", D: "c2 ~@4 a1@2 b1",
  E: "c2@2 ~ d2 ~@2 e2@4 a1@4 b1@2", F: "c2@2 ~ d2 ~@2 e2@10",
  G: "[e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 a1@2 ~@2 g1@2 ~ a1@2 ~@2 g1@2 g1@2 a1@2 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 a1@2]/5",
  H: "~@2 g1@2 ~@2 a1@2 ~@2 g1@2 g1@2 a1@2 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 ~ e2@2 ~, ~@14 g1 ~",
  I: "~ d2@2 ~@2 e2@2 ~@2 d2@2 d2@2 e2@2 e2@2 d2@2 e2@2 e2@2 d2@2 d2@2 d2@2 e2@2 ~",
  J: "~ d2@2 ~ e2@2 ~@2 d2@2 d2@2 e2@2 e2@2 d2@2 e2@2 e2@2 d2@2 d2@2 d2@2 a1@2 ~@2",
  K: "[g1@2 ~@2 a1@2 ~ g1@2 g1@2 a1@2 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 a1@2 ~@2 g1@2 ~ a1@2 ~@2 g1@2 g1@2 a1@2 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 b1@2 ~@2 b1@2]/2",
  L: "~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 g1@3 g1@4", M: "g1@4 g1@4 g1@4 g1@4 g1@4 g1@3 g1@8 ~",
  N: "~@22 e1@2 ~@4 d2 ~ e2@2", O: "~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~",
  P: "~@2 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2", Q: "~ d2 ~ e2 b1 d2 d2@3 c#2 ~ e1@2 ~@3",
  R: "~@6 b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2",
  S: "~@2 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@3 d2 ~ e2@2 ~",
  T: "~ d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~@2",
  U: "~ a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~",
  V: "d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~@3",
  W: "[a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@3 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1]/2",
  X: "~ a1 ~ b1@2 e1@2 e1@2 a1@6 b1@3 c2@4 ~@10", Y: "[~@7 a1@8 b1@4 c2@4 ~@2 d2@2 ~@4 e2@8 a1@8 b1@4 c2@4 ~@9]/2",
  Z: "[~@7 a1@8 b1@4 c2@4 ~@2 d2@2 ~@4 e2@20 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~ e1@4 ~@4 e1 ~@3 a1 ~]/3",
  AA: "a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2",
  AB: "~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1",
  AC: "[~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 a1@2 ~@2 g1@2 ~@2 a1@2 ~@2 g1@2 g1@2 a1 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 a1@2 ~@2 g1@2 ~@2 a1@2 ~@2 g1@2 g1@2]/2",
  AD: "[a1@2 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 e2@2 ~@2 d2@2 ~ e2@2 ~@2 d2@2 d2@2 e2@2 e2@2 d2@2 e2@2 e2@2 d2@2 d2@2 d2@2 e2@2 ~ d2@2 ~@2 e2@2 ~@2 d2@2 d2@2 e2@2]/2",
  AE: "e2@2 d2@2 e2@2 ~ d2@2 d2@2 d2@2 a1@2 ~@2 g1@2 ~@2 a1@2 ~@2 g1@2 g1@2 a1 a1@2, ~@3 e2 ~@12",
  AF: "[g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 a1@2 ~@2 g1@2 ~@2 a1@2 ~ g1@2 g1@2 a1@2 a1@2 g1@2 a1@2 a1@2 g1@2 g1@2 g1@2 b1@2 ~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2]/2",
  AG: "~@2 b1@2 ~ b1@2 ~@2 g1@4 g1@4 g1@4 g1@3 g1@4 g1@4", AH: "g1!2 g1@2 ~@4",
  AI: "~@6 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@4",
  AJ: "~@2 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@4",
  AK: "~@2 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@4",
  AL: "~@2 c#2@2 ~@6 e1@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@4",
  AM: "~@2 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~ e2@2 b1@2 d2@2 d2@5",
  AN: "~ c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@5",
  AO: "~ a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5",
  AP: "~ c#2@2 ~@2 e1@4 ~@3 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6",
  AQ: "[a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~ e2@2 b1@2 d2@2 d2@6 c#2@2]/3",
  AR: "~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1 e1@2 a1@6 a#1@2 ~",
  AS: "~ e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2",
  AT: "e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2",
  AU: "[e1@2 ~@3 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@3 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2]/2",
  AV: "~@3 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@3",
  AW: "~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~ e1@2 ~@3",
  AX: "~ d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2 e1@4 ~@2",
  AY: "~@2 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@5 a#1@2 ~@2 e1@2 ~@4 d2",
  AZ: "~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2 d2@6 c#2@2 ~@2 e1@4 ~@4", BA: "e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@5 a#1@2 ~@11",
})).s("gm_electric_bass_finger").gain(0.25)

// bass · fretless bass · "Bass Slide"
const bass_2 = note(`<
  ~@2 A@3 ~ B@2 C ~ D ~ D ~ E ~ F ~@3 G ~@5 H I ~ I ~@12 J@2 K@2 L@2 M@2 ~@2 N@2 ~@5 O@2 P@2 ~@8 Q ~ Q ~ Q ~ Q ~ R ~ S ~
  E ~ T ~ U ~ V ~ W ~ X Y@2 Z@2 ~
>`.pickRestart({
  A: "[~@31 b1@16 ~@16 b1@16 ~@17]/3", B: "[~@30 b1@15 ~@19]/2", C: "~@13 b1@16 ~@3", D: "~@3 b1@4 ~",
  E: "~@11 b1@15 ~@6", F: "~@10 b1@15 ~@7", G: "~ b1@2 ~", H: "b1 ~", I: "~@7 b1@16 ~@9", J: "[~@15 b1@8 ~@9]/2",
  K: "[~@29 b1@16 ~@19]/2", L: "[~@29 b1@15 ~@20]/2", M: "[~@27 b1@15 ~@22]/2", N: "[~@27 b1@16 ~@21]/2",
  O: "[~@26 b1@15 ~@23]/2", P: "[~@25 b1@15 ~@24]/2", Q: "~@7 b1@8 ~", R: "~@13 b1@15 ~@4", S: "~@12 b1@15 ~@5",
  T: "~@9 b1@15 ~@8", U: "~@7 b1@15 ~@10", V: "~@5 b1@15 ~@12", W: "~@3 b1@15 ~@14", X: "~ b1@15 ~@16",
  Y: "[b1@15 ~@16 b1@16 ~@17]/2", Z: "[~@31 b1@16 ~@17]/2",
})).s("gm_fretless_bass").gain(0.4)

// other · synth drum · "SynDrum"
const synth_drum = note(`<
  ~ A B ~@2 C D ~@6 E F ~@2 G ~@6 H ~@4 I ~@20 J ~@29 K L M N O ~ P ~@3 Q ~@2 R ~@5
>`.pickRestart({
  A: "~@28 [g2,a4] ~ [g2,a4] ~", B: "~@2 [g2,a4] ~ [g2,a4] ~@3 [g2,a4] ~@23",
  C: "~@11 [a2,a4] ~@10 [a2,a4] ~@3 [a2,a4] ~ [a2,a4] ~@3", D: "[a2,a4] ~ [a2,a4] ~@3 [a2,a4] ~@25",
  E: "~@23 [a2,a4] ~ [a2,a4] ~@3 [a2,a4] ~ [a2,a4]", F: "~@3 [a2,a4] ~@28",
  G: "~@21 [a2,a4] ~ [a2,a4] ~@3 [a2,a4] ~ [a2,a4] ~@2", H: "~@6 [a2,a4] ~@3 [a2,a4] ~ [a2,a4] ~@3 [a2,a4] ~@15",
  I: "~@21 [a2,a4] ~ [a2,a4] ~@3 [a2,a4] ~@4", J: "~@9 [a2,a4] ~ [a2,a4] ~@3 [a2,a4] ~@2 [a2,a4] ~@13",
  K: "~@28 [a2,a4] ~ [a2,a4] ~", L: "[a2,a4] ~ [a2,a4] ~@29", M: "~@27 [a2,a4] ~ [a2,a4] ~ [a2,a4]",
  N: "~ [a2,a4] ~@30", O: "~@25 [a2,a4] ~ [a2,a4] ~ [a2,a4] ~ [a2,a4]",
  P: "~@24 [a2,a4] ~ [a2,a4] ~ [a2,a4] ~ [a2,a4] ~", Q: "~@16 [a2,a4] ~ [a2,a4] ~ [a2,a4] ~ [a2,a4] ~ [a2,a4]!2 ~@6",
  R: "~@16 [a2,a4] ~ [a2,a4] ~ [a2,a4] ~@11", // A
})).s("gm_synth_drum").gain(0.4)

// other · synth drum · "SynDrum" · soft notes
const synth_drum_soft = note("<~@81 A ~ B ~ C ~ D ~@2 E ~@8>".pickRestart({
  A: "~@2 [a2,a4] ~@13", B: "~@3 [a2,a4]@2 ~@27", C: "~ [a2,a4]@2 ~@29", D: "[a2,a4] ~@15", E: "~@27 [a2,a4]@2 ~@3",
})).s("gm_synth_drum").gain(0.24)

// other · distortion guitar · "GuitarC"
const distortion_guitar = note(`<
  ~@2 A@4 ~@14 B ~@4 C D@2 ~@3 E ~ F ~@4 G ~@2 H I ~ J@2 ~@2 K@2 ~@9 L M N O ~ P ~@4 Q R ~ S ~@4 T U V W X Y@3 Z AA AB
  AC AD AE AF AG AH AI AJ ~ AK ~
>`.pickRestart({
  A: "[~@8 e2 ~@6 e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@7 e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2 ~@3 [d4,e4,g4]@2 ~@2 [d4,e4,g4]@2 [d4,e4,g4]@2 ~@13]/4", // Em7
  B: "~@3 e5@5", C: "~@6 a3 d4", D: "[e3@2 ~@18 a3 ~@4 a#3@2 b3@2 d4@6 ~@4 g3@4 e3@4 ~@17, ~@12 a3 ~@19]/2",
  E: "~@14 a3 ~ [c4,e4]@6 a3@2 g3@2 e3@4 ~@2", F: "~@12 e3 ~ g3@4 g3@2 e3@2 d3@2 e3@4 ~@4",
  G: "~@9 b3@2 c4@2 ~@2 d4@2 ~ e4@2 ~@2 e3@2 ~@8", H: "~@13 [g4,b4,d5,e5] ~ [g4,b4,d5,e5]", I: "[g4,b4,e5] ~@15",
  J: "[~@29 a3@2 a#3@2 b3@2 d4@10 b3@2 ~@17]/2", K: "[~@27 [e4,b4]@16 ~@21]/2", L: "~@9 g3@2 ~@5",
  M: "~@2 a3 g3 e3 g3@2 e3 ~ e3@4 ~@3", N: "~@4 e3@2 ~@3 e3@2 ~@2 g3@2 ~@2 g3@8 ~@7",
  O: "~@3 a3@2 g3@2 e3@2 g3@4 e3@2 ~@17", P: "e3 ~ [b4,e5]@6 e3 ~@23",
  Q: "~@9 a#3@4 d4@2 a#3@4 d4@2 a#3@3 d4@2 a#3@4 d4@2", R: "e4 d4 b3 a3 g3 ~@11", S: "~@10 [g3,d4,e4] ~@21",
  T: "~@18 [d4,g4,b4] ~@2 [d4,g4,b4]@4 ~@4 d4 ~@2", U: "~ d4 ~@19 a3@2 a#3@2 b3@2 d4@4 ~",
  V: "~ e4@2 ~@18 a3@2 a#3@2 b3@2 d4@4 ~", W: "~ e4@2 ~@2 [g4,b4]@2 ~@13 a3@2 a#3@2 b3@2 d4@4 ~@2",
  X: "e4@2 ~@18 a3@2 b3@2 ~@5 e4@2 ~, ~@14 d4 ~",
  Y: "[~ g4@6 e4@2 ~@14 e5@12 ~@8 a3@2 a#3@2 ~ d4@6 b3@2 ~@2 g3@4 e3@4 d3@2 e3@2 ~@2 g3@6 e3@2 ~@2 d3@2 ~ e3@2 ~@2 g3@4 e3@3, ~@47 b3@2 ~@47]/3",
  Z: "~@9 g3@8 e3@8 [e2,g3] ~@6", AA: "[e2,g3] ~@7 [e2,g3] ~@3 [e2,g3] ~@3 [e2,g3] ~ [a3,e4]@6 [g3,d4]@4 [e3,b3]@4",
  AB: "~@11 [e2,g3] ~@3 [e2,g3] ~ [a3,e4]@6 [g3,d4]@4 [e3,b3]@4 ~", // Em A5 G5 E5
  AC: "~@10 [e2,g3] ~@3 [e2,g3] ~ [a3,e4]@6 [g3,d4]@4 [e3,b3]@4 ~@2", // Em A5 G5 E5
  AD: "~@13 b3@2 a3@2 g3@2 a3@2 g3@2 e3@2 d3@2 e3@2 ~ e3 ~, ~@29 d3@2 ~",
  AE: "~@2 g3@6 e3@2 ~@2 d3@2 e3 ~@3 g3@6 e3@2 ~ d3@2 e3 ~@2",
  AF: "~ g3@6 a#3@2 b3@2 d4@2 ~@4 e4@6 ~@3 [g4,b4] ~ [g4,b4]@4", // G
  AG: "~@2 e4@2 ~@6 [g4,b4] ~ [g4,b4]@5 e4@2 ~@6 [g4,b4] ~ [g4,b4]@5", // G
  AH: "~ e4@2 ~@6 [g4,b4] ~ [g4,b4]@5 e4@2 [a4,c#5]@6 g4@4 e4@2 d4@2", // G A
  AI: "e4@2 ~@4 a3@2 a#3@2 b3@2 ~@4 d4@2 ~ e4@2 ~@11", AJ: "~@27 [g#3,d4,e4] ~@4", AK: "~@13 [g#3,d4,e4] ~@2",
})).s("gm_distortion_guitar").gain(0.32)

// other · distortion guitar · "GuitarL"
const distortion_guitar_2 = note(`<
  ~@17 A B C D E F E F G H@2 I@3 J K L M@2 N@2 O P Q P R P S T U V W@2 X Y@2 Z@2 AA@2 AB@3 AC AD AE@2 AF@2 AG AH@4 AI AJ
  AK AL AK AJ AM AN AO AP AQ@3 AR AS AT AU@2 AV AW AX AY AZ BA@2 BB@2 ~
>`.pickRestart({
  A: "~@21 a2@8 b2@3", B: "~ c3@2 ~@12 a2 ~ a2 ~@3 [a2,a3]@8 [b2,g3]@3",
  C: "~ [c3,g3]@2 ~@4 [d3,a3]@2 ~@3 [e3,b3]@8 [a2,a3]@8 [b2,g3]@4", // C5 D5 E5 A Em
  D: "[c3,g3]@2 ~@6 [c3,c4] ~@7 [c3,c4] ~ [c3,c4] ~ [a2,a3]@8 [b2,g3]@4", // C5 C A Em
  E: "[c3,g3] ~@2 [d3,a3] ~@2 [e3,b3]@4 [a2,a3]@4 [b2,g3]@2", F: "[c3,g3] ~@9 [a2,a3]@4 [b2,g3]@2",
  G: "[c3,g3] ~@2 [d3,a3] ~@2 [e3,b3]@10", // C5 D5 E5
  H: "[e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2]/2",
  I: "[~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2 a2@2 ~@2 g2@2 ~ a2@2 ~@2 g2@2 g2@2 a2@2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 a2@2]/3",
  J: "~@2 g2@2 ~@2 a2@2 ~@2 g2@2 g2@2 a2@2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 ~ e3@2 ~, ~@14 g2 ~",
  K: "~ d3@2 ~@2 e3@2 ~@2 d3@2 d3@2 e3@2 e3@2 d3@2 e3@2 e3@2 d3@2 d3@2 d3@2 e3@2 ~",
  L: "~ d3@2 ~ e3@2 ~@2 d3@2 d3@2 e3@2 e3@2 d3@2 e3@2 e3@2 d3@2 d3@2 d3@2 a2@2 ~@2",
  M: "[g2@2 ~@2 a2@2 ~ g2@2 g2@2 a2@2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 a2@2 ~@2 g2@2 ~ a2@2 ~@2 g2@2 g2@2 a2@2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 [b2,f#3]@2 ~@2 [b2,f#3]@2]/2", // B5
  N: "[~ [b2,f#3]@2 ~@2 [b2,f#3]@4 [b2,f#3]@2 ~@2 [b2,f#3]@4 [b2,f#3]@2 ~@2 [b2,f#3]@4 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@8 ~]/2", // B5 G5
  O: "~@15 e3@7 e2 ~@5 d3 ~ e3@2", P: "~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~",
  Q: "~@2 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2",
  R: "~@2 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2",
  S: "~@2 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@4 d3 ~ e3@2 ~",
  T: "~ d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@2",
  U: "~ a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~",
  V: "d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@3",
  W: "[a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@4 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2]/2",
  X: "~ a2 ~ b2@2 e2@2 a2@8 b2@3 c3@2 ~@12, ~@7 e2@2 ~@23",
  Y: "[~ a2 ~ a2 ~@3 [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@4 [d3,a3]@2 ~@4 [e3,b3]@8 [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@6 [c3,c4,a4] ~@4]/2", // A Em C5 D5 E5 A Em C5 …
  Z: "[~@3 [c3,c4] ~ [c3,c4] ~ [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@4 [d3,a3]@2 ~@4 [e3,b3]@8 [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@11]/2", // C A Em C5 D5 E5 A Em …
  AA: "[~@7 [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@4 [d3,a3]@2 ~@4 [e3,b3]@8 [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@11]/2", // A Em C5 D5 E5 A Em C5
  AB: "[~@7 [a2,a3]@8 [b2,g3]@4 [c3,g3]@2 ~@4 [d3,a3]@2 ~@4 [e3,b3]@20 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~ e2@2 ~@6 e2 ~@3 a2 ~]/3", // A Em C5 D5 E5
  AC: "a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2",
  AD: "~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2",
  AE: "[~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2 a2@2 ~@2 g2@2 ~@2 a2@2 ~@2 g2@2 g2@2 a2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 a2@2 ~@2 g2@2 ~@2 a2@2 ~@2 g2@2 g2@2]/2",
  AF: "[a2@2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 e3@2 ~@2 d3@2 ~ e3@2 ~@2 d3@2 d3@2 e3@2 e3@2 d3@2 e3@2 e3@2 d3@2 d3@2 d3@2 e3@2 ~ d3@2 ~@2 e3@2 ~@2 d3@2 d3@2 e3@2]/2",
  AG: "e3@2 d3@2 e3@2 ~ d3@2 d3@2 d3@2 a2@2 ~@2 g2@2 ~@2 a2@2 ~@2 g2@2 g2@2 a2 a2@2, ~@3 e3 ~@12",
  AH: "[g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 a2@2 ~@2 g2@2 ~@2 a2@2 ~ g2@2 g2@2 a2@2 a2@2 g2@2 a2@2 a2@2 g2@2 g2@2 g2@2 [b2,f#3]@2 ~ [b2,f#3]@4 [b2,f#3]@2 ~@2 [b2,f#3]@4 [b2,f#3]@2 ~@2 [b2,f#3]@4 [b2,f#3]@2 ~ [b2,f#3]@4 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@5 ~ [g3,d4,g4]@5 [g3,d4,g4]@5 [g3,d4,g4]@8 ~@16]/4", // B5 G5
  AI: "~@6 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@4",
  AJ: "~@2 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@4",
  AK: "~@2 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@4",
  AL: "~@2 c#3@2 ~@10 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@4",
  AM: "~@2 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~ e3@2 b2@2 d3@2 d3@5",
  AN: "~ c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@5",
  AO: "~ a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5",
  AP: "~ c#3@2 ~@2 e2@2 ~@5 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6",
  AQ: "[a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~ e3@2 b2@2 d3@2 d3@6 c#3@2]/3",
  AR: "~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2 e2@2 a2@6 a#2@2 ~",
  AS: "~ e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2",
  AT: "e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2",
  AU: "[e2 ~@4 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@5 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~]/2",
  AV: "~@3 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~",
  AW: "~@4 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~ e2 ~@4",
  AX: "~ d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2 e2@2 ~@4",
  AY: "~@2 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@5 a#2@2 ~@2 e2 ~@5 d3",
  AZ: "~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3 d3@6 c#3@2 ~@2 e2@2 ~@6",
  BA: "[e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@5 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2]/2",
  BB: "[~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@12]/2",
})).s("gm_distortion_guitar").gain(0.25).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  A B C D@2 E F G H@2 I J I K L M N O P Q R@2 S R@2 T U D@2 V M W X Y Z F AA AB AC F@2 AD AE F AF H@2 I AG L AH AI@3 AJ
  AI AK AL AK AM W AN AO I AG AM AN AP AQ AA AR F@3 AS F@2 AT AU H AV I L AM AW AX AY Z F H AG AZ BA BB BC D@2 BD ~
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x ~@7 x ~@6 x ~@7 x ~@7 x", D: "~@7 x ~@7 x ~@7 x ~@7 x", E: "~@7 x ~@3 x ~@20",
  F: "~@3 x ~@3 x ~@3 x ~@3 x", G: "~@6 x ~@6 x ~@7 x ~@7 x ~@2", H: "~@5 x ~@7 x ~@7 x ~@7 x ~@2",
  I: "~ x ~ x ~ x ~ x", J: "~@2 x ~@3 x ~@3 x ~@2 x!2 ~", K: "x ~@3 x ~@6 x ~@7 x ~@7 x ~@4",
  L: "~@3 x ~@7 x ~@7 x ~@7 x ~@4", M: "~@3 x ~@6 x ~@7 x ~@7 x ~@5", N: "~@2 x ~@7 x ~@7 x ~@7 x ~@2 x ~@2",
  O: "~ x ~@7 x ~@7 x ~@3 x ~@5 x ~@4", P: "~ x ~@15 x ~@14", Q: "~ x ~@14 x ~@15", R: "x!2", S: "x ~@2 x!2 ~@3 x ~@7",
  T: "x", U: "x ~@7 x ~@7 x ~@7 x ~@6 x", V: "~@7 x ~@7 x ~@7 x ~@8", W: "~ x ~@3 x ~@3 x ~@3 x ~@2",
  X: "~ x ~@7 x ~@7 x ~@7 x ~@6", Y: "~ x ~@6 x ~@7 x ~@7 x ~@7", Z: "x ~@6 x ~@7 x ~@7 x ~@7 x",
  AA: "~@5 x ~@7 x ~@7 x ~@6 x ~@3", AB: "~@4 x ~@7 x ~@7 x ~@2 x ~@8", AC: "~@11 x ~@3 x", AD: "~@3 x ~@3 x ~@5 x ~@2",
  AE: "~@3 x ~ x!2 ~@4 x ~@3 x", AF: "~@6 x ~@7 x ~@7 x ~@6 x ~@2", AG: "~@4 x ~@7 x ~@7 x ~@6 x ~@4",
  AH: "~@3 x ~@3 x ~ x ~@3 x ~@4 x ~@13", AI: "~@3 x ~@15 x ~@12", AJ: "~@3 x ~@15 x ~@5 x ~ x ~@4",
  AK: "~@3 x ~@15 x ~@7 x ~@4", AL: "~ x ~@9 x ~@7 x ~@12", AM: "~@3 x ~@7 x ~@6 x ~@7 x ~@5",
  AN: "~@2 x ~@6 x ~@7 x ~@7 x ~@6", AO: "~ x ~@7 x ~@11 x ~@7 x ~@2", AP: "x ~@7 x ~@7 x ~@6 x ~@7 x",
  AQ: "~@7 x ~@6 x ~@7 x ~@7 x ~", AR: "~ x!2 ~@5", AS: "~@5 x ~@5 x ~ x!2 ~", AT: "~@6 x ~@7 x ~@6 x ~@7 x ~@2",
  AU: "~@5 x ~@7 x ~@7 x ~@5 x ~@3 x", AV: "~@5 x ~@6 x ~@7 x ~@7 x ~@3", AW: "~ x ~@3 x ~@3 x ~@6",
// … 126 more lines

More by Queen