Strudelify
Fun It cover art

Jazz

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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@17 A B C D C D C D E F@5 G H I J@2 K L M N O P Q N O R S T U@2 V W@6 X@3 Y Z AA@2 AB@2 AC AD@2 AE AF AG AH AI AJ AI
  AH AI AK AL AM AN@3 AO AP AQ AR@2 AS AT AU AV AW AX ~@4
>`.pickRestart({
  A: "~@21 a1@8 b1@3", B: "~ c2@4 ~@16 a1@8 b1@3", C: "c2@2 ~ d2 ~@2 e2@4 a1@4 b1@2", D: "c2 ~@4 a1@2 b1",
  E: "c2@2 ~ d2 ~@2 e2@10",
  F: "[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",
  G: "~@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 ~",
  H: "~ 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 ~",
  I: "~ 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",
  J: "[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",
  K: "~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 g1@3 g1@4", L: "g1@4 g1@4 g1@4 g1@4 g1@4 g1@3 g1@8 ~",
  M: "~@22 e1@2 ~@4 d2 ~ e2@2", N: "~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~",
  O: "~@2 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2", P: "~ d2 ~ e2 b1 d2 d2@3 c#2 ~ e1@2 ~@3",
  Q: "~@6 b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2",
  R: "~ d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~@2",
  S: "~ a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~",
  T: "d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@4 ~@4 e1 ~@3",
  U: "[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",
  V: "~ a1 ~ b1@2 e1@2 e1@2 a1@6 b1@3 c2@4 ~@10", W: "[~@7 a1@8 b1@4 c2@4 ~@2 d2@2 ~@4 e2@8 a1@8 b1@4 c2@4 ~@9]/2",
  X: "[~@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",
  Y: "a1 ~ b1@2 e1@2 e1@2 a1@6 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2",
  Z: "~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1",
  AA: "[~ 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",
  AB: "[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",
  AC: "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",
  AD: "[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",
  AE: "~@2 b1@2 ~ b1@2 ~@2 g1@4 g1@4 g1@4 g1@3 g1@4 g1@4", AF: "g1!2 g1@2 ~@4",
  AG: "~@6 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@4",
  AH: "~@2 c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@4",
  AI: "~@2 a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@4",
  AJ: "~@2 c#2@2 ~@6 e1@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@4",
  AK: "~ c#2@2 ~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@5",
  AL: "~ a#1@2 ~@2 e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5",
  AM: "~ c#2@2 ~@2 e1@4 ~@3 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@6",
  AN: "[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",
  AO: "~@2 e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1 e1@2 a1@6 a#1@2 ~",
  AP: "~ e1@2 ~@4 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2",
  AQ: "e1@4 ~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~@2",
  AR: "[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",
  AS: "~@3 d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@6 c#2@2 ~@2 e1@3",
  AT: "~@4 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 b1@6 a#1@2 ~ e1@2 ~@3",
  AU: "~ d2 ~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2@2 d2@5 c#2@2 ~@2 e1@4 ~@2",
  AV: "~@2 e1 ~@3 a1 ~ a1 ~ b1@2 e1@2 e1@2 a1@5 a#1@2 ~@2 e1@2 ~@4 d2",
  AW: "~ e2@2 ~@2 d2@2 ~@2 e2@2 b1@2 d2 d2@6 c#2@2 ~@2 e1@4 ~@4", AX: "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 B@4 J@2 K@2 ~@2 K@2 ~@5 L@2 M@2 ~@8 N ~ N ~ N ~ N ~ C ~ D ~ E ~
  O ~ I ~ P ~ Q ~ R S@2 T@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: "[~@29 b1@16 ~@19]/2",
  K: "[~@27 b1@15 ~@22]/2", L: "[~@26 b1@15 ~@23]/2", M: "[~@25 b1@15 ~@24]/2", N: "~@7 b1@8 ~", O: "~@9 b1@15 ~@8",
  P: "~@5 b1@15 ~@12", Q: "~@3 b1@15 ~@14", R: "~ b1@15 ~@16", S: "[b1@15 ~@16 b1@16 ~@17]/2", T: "[~@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 C E C E F G@2 H@3 I J K L@2 M@2 N O P O Q O P R S T U@2 V W@2 X@2 Y@2 Z@3 AA AB AC@2 AD@2 AE AF@4 AG AH
  AI AJ AI AH AI AK AL AM AN@3 AO AP AQ AR@2 AS AT AU AV AW AX@2 AY@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 [d3,a3] ~@2 [e3,b3]@4 [a2,a3]@4 [b2,g3]@2", // C5 D5 E5 A Em
  D: "[c3,g3]@2 ~@6 [c3,c4] ~@7 [c3,c4] ~ [c3,c4] ~ [a2,a3]@8 [b2,g3]@4", E: "[c3,g3] ~@9 [a2,a3]@4 [b2,g3]@2",
  F: "[c3,g3] ~@2 [d3,a3] ~@2 [e3,b3]@10", // C5 D5 E5
  G: "[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",
  H: "[~@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",
  I: "~@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 ~",
  J: "~ 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 ~",
  K: "~ 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",
  L: "[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
  M: "[~ [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
  N: "~@15 e3@7 e2 ~@5 d3 ~ e3@2", O: "~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~",
  P: "~@2 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2",
  Q: "~@2 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2",
  R: "~ d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@2",
  S: "~ a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~",
  T: "d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~@6 e2 ~@3",
  U: "[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",
  V: "~ a2 ~ b2@2 e2@2 a2@8 b2@3 c3@2 ~@12, ~@7 e2@2 ~@23",
  W: "[~ 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 …
  X: "[~@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 …
  Y: "[~@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
  Z: "[~@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
  AA: "a2 ~ b2@2 e2@2 e2@2 a2@6 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2",
  AB: "~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2",
  AC: "[~ 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",
  AD: "[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",
  AE: "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",
  AF: "[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
  AG: "~@6 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@4",
  AH: "~@2 c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@4",
  AI: "~@2 a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@4",
  AJ: "~@2 c#3@2 ~@10 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@4",
  AK: "~ c#3@2 ~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@5",
  AL: "~ a#2@2 ~@2 e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5",
  AM: "~ c#3@2 ~@2 e2@2 ~@5 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@6",
  AN: "[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",
  AO: "~@2 e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2 e2@2 a2@6 a#2@2 ~",
  AP: "~ e2 ~@5 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2",
  AQ: "e2@2 ~@6 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~@2",
  AR: "[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",
  AS: "~@3 d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@6 c#3@2 ~@2 e2@2 ~",
  AT: "~@4 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 b2@6 a#2@2 ~ e2 ~@4",
  AU: "~ d3 ~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3@2 d3@5 c#3@2 ~@2 e2@2 ~@4",
  AV: "~@2 e2 ~@3 a2 ~ a2 ~ b2@2 e2@2 e2@2 a2@5 a#2@2 ~@2 e2 ~@5 d3",
  AW: "~ e3@2 ~@2 d3@2 ~@2 e3@2 b2@2 d3 d3@6 c#3@2 ~@2 e2@2 ~@6",
  AX: "[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",
  AY: "[~@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@3 H I H J K L M N O P@3 Q P@2 R C D@2 S L T U B C F G V W F@2 X Y F@2 G@2 H@2 K Z AA@3 AB AA AC AD AC
  L T U AE H AF L U AG AH AI AJ F@3 AK F@3 AL G H@2 K L AM AN AO C F G H L AP AQ AR D@2 X ~
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x ~@6 x ~@7 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: "~@5 x ~@7 x ~@7 x ~@7 x ~@2", H: "~ x ~ x ~ x ~ x",
  I: "~@2 x ~@3 x ~@3 x ~@2 x!2 ~", J: "x ~@3 x ~@6 x ~@7 x ~@7 x ~@4", K: "~@3 x ~@7 x ~@7 x ~@7 x ~@4",
  L: "~@3 x ~@7 x ~@6 x ~@7 x ~@5", M: "~@2 x ~@7 x ~@7 x ~@7 x ~@2 x ~@2", N: "~ x ~@7 x ~@7 x ~@3 x ~@5 x ~@4",
  O: "~ x ~@15 x ~@14", P: "x!2", Q: "x ~@2 x!2 ~@3 x ~@7", R: "x", S: "~@7 x ~@7 x ~@7 x ~@8",
  T: "~ x ~@3 x ~@3 x ~@3 x ~@2", U: "~@2 x ~@6 x ~@7 x ~@7 x ~@6", V: "~@4 x ~@7 x ~@7 x ~@2 x ~@8", W: "~@11 x ~@3 x",
  X: "~@3 x ~@3 x ~@5 x ~@2", Y: "~@3 x ~ x!2 ~@4 x ~@3 x", Z: "~@3 x ~@3 x ~ x ~@3 x ~@4 x ~@13",
  AA: "~@3 x ~@15 x ~@12", AB: "~@3 x ~@15 x ~@5 x ~ x ~@4", AC: "~@3 x ~@15 x ~@7 x ~@4", AD: "~ x ~@9 x ~@7 x ~@12",
  AE: "~ x ~@7 x ~@11 x ~@7 x ~@2", AF: "~@4 x ~@7 x ~@7 x ~@6 x ~@4", AG: "x ~@7 x ~@7 x ~@7 x ~@6 x",
  AH: "~@7 x ~@6 x ~@7 x ~@7 x ~", AI: "~@5 x ~@7 x ~@7 x ~@6 x ~@3", AJ: "~ x!2 ~@5", AK: "~@5 x ~@5 x ~ x!2 ~",
  AL: "~@5 x ~@7 x ~@7 x ~@5 x ~@3 x", AM: "~ x ~@3 x ~@3 x ~@6", AN: "~ x ~@7 x ~@7 x ~@9 x ~@4",
  AO: "x ~@2 x ~ x ~@2 x ~@3 x ~@3", AP: "~@2 x ~@7 x ~@14 x ~@6", AQ: "~ x ~@7 x ~@6 x ~@7 x ~@7",
  AR: "x ~@7 x ~@14 x ~@7 x",
})).gain(0.64)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@2 A@3 ~@2 B C@3 D ~ E@2 F ~ G ~@4 H ~@3 I@3 J K@2 L M N O P Q ~ R@3 S R@2 T@2 S@2 U@2 ~@3 V ~ W X ~ U Y@2 Z AA AB AC
  L AD AE P AF ~ B@3 AF B@2 AG C@2 AH E F ~ G ~ I AI AJ G@2 ~ AK ~ AL@2 R ~
>`.pickRestart({
  A: "~@3 x ~@28", B: "~ x ~@14", C: "~ x ~@30", D: "x ~@14 x", E: "~@31 x", F: "~@15 x", G: "~@23 x ~@8",
// … 105 more lines

More by Queen