Strudelify

Mother Love

Queen

KeyG minorTempo92 bpm
0:00/0:00
// Mother Love — Queen
// 92 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 14 lead 8 bass lead (copy of ch 13 lead 8 bass lead, 0.5 beats late)
// note: Full arrangement: all 104 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 28.
setcpm(92/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 · fretless bass
const bass = note(`<
  ~@4 A B A B A B A B C D E F A B A B A B A B A B G H I J A B A B K L M N O P Q R S T U V W@2 A B A B A B A B A B A B G
  X Y Z I J A B A B A B A B E F E F AA F AB AC A B A B A B AD AE AF J A B A B A B A B A B A AG
>`.pickRestart({
  A: "g1@3 ~ g1@6 ~@2 g1@3 ~ g1@13 ~@3", B: "g1@3 ~ g1@6 ~@2 g1@3 ~ g1@12 ~@4",
  C: "eb2@3 ~ eb2@6 ~@2 eb2@3 ~ eb2@13 ~@3", D: "eb2@3 ~ eb2@6 ~@2 eb2@3 ~ eb2@10 ~@2 eb2@2 d2 ~",
  E: "c2@3 ~ c2@6 ~@2 c2@3 ~ c2@13 ~@3", F: "c2@3 ~ c2@6 ~@2 c2@3 ~ c2@12 ~@4", G: "eb2 bb2 eb3 eb3@2 eb3@2 bb2",
  H: "eb2@4 bb2@8 eb3@11 ~ bb2@4 eb3@2 d3@2", I: "c3@4 g2@4 c2@4 c2@15 ~ c2@4",
  J: "c2 ~@11 c2@12 c2@2 b1@2 a1 ab1 g1 gb1", K: "eb2@2 ~@2 eb2@6 ~@2 eb2@3 ~ eb2@15 ~",
  L: "c2@2 ~@2 c2@7 ~ c2@3 ~ bb1@13 ~@3", M: "a1@2 ~@2 a1@7 ~ a1@3 ~ a1@15 ~",
  N: "bb1@3 ~ bb1@6 ~@2 bb1@3 ~ bb1@14 ~@2", O: "d2@2 ~@2 d2@6 ~@2 d2@3 ~ d2@14 ~@2",
  P: "g1@3 ~ g1@5 ~@3 g1@3 ~ g1@14 ~@2", Q: "c2@3 ~ c2@5 ~@3 c2@3 ~ c2@15 ~", R: "d2@3 ~ d2@6 ~@2 d2@3 ~ d2@14 ~@2",
  S: "eb2@3 ~ eb2@6 ~@2 eb2@3 ~ eb2@7 ~ c2@7 ~", T: "d2@3 ~ d2@7 ~ d2@4 bb1@14 ~@2",
  U: "eb2@3 ~ eb2@6 ~@2 eb2@3 ~ eb2@8 c2@8", V: "db2@15 ~ bb1@14 ~@2", W: "[d2@48 gb2@15 ~]/2",
  X: "eb2@4 bb2@4 eb3@16 eb2 ~@3 bb2 ~ bb2@2", Y: "eb2@3 eb2@3 eb2@2", Z: "eb2 ~@11 eb2@12 bb2@4 eb3@2 d3@2",
  AA: "d2@3 ~ d2@6 ~@2 d2@3 ~ d2@13 ~@3", AB: "d2@3 ~ d2@6 ~@2 d2@3 ~ c2@13 ~@3", AC: "bb1@7 ~ a1@8",
  AD: "eb2 eb2@2 eb2 eb2@3 bb2", AE: "eb3@4 eb2@8 eb2@11 ~ f3@2 eb3@2 bb2@2 eb2@2", AF: "c2@2 c2@3 ~ c2@2 c2@5 ~ c2@2",
  AG: "g1@3 ~ g1@6 ~@2 g1@3 ~ g1@10 ~@6",
})).s("gm_fretless_bass").gain(0.38)

// chords · distortion guitar
const distortion_guitar = note("<~@32 A@2 B@2 C@2 D E F G H I J K ~@48 A@2 L@4 M@4>".pickRestart({
  A: "[g2,d3,g3]/2", B: "[~@3 bb3, eb3, bb3@47 ~@17, ~@11 eb4@5]/2", C: "[g3@15 ~@17 bb2@31 ~, ~@16 f3@45 ~@3]/2",
  D: "[d3,a3]", E: "[g2,d3]", F: "[c3,g3]", G: "[d3,a3]@31 ~", H: "eb3@3 c3", I: "d3@13 db3 c3 b2 bb2@16",
  J: "eb3@22 d3 db3 c3@8", K: "db3@14 c3 b2 bb2@16", L: "[g2,d3,g3]/4", M: "[[g2,d3,g3]@61 ~@3]/4",
})).s("gm_distortion_guitar").gain(0.44)

// chords · synth strings 1
const synth_strings_1 = note(`<
  ~@4 A@4 B@4 C@4 D@2 E ~ F@2 G@4 C@4 H@2 ~@2 I@4 J@4 K@2 L@2 ~@2 M@4 N@4 O@2 F@2 P@2 C@4 H@2 Q@4 R@4 S T@4 U V@2 G@4
  C@4 H@2 ~@10
>`.pickRestart({
  A: "[~@63 g3@64 ~, g2]/4",
  B: "[[bb3,d4,g4]@3 ~ [d4,g4]@2 ~@6 [f4,a4]@16 ~@3 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@2 ~@5 [bb3,eb4,g4]@17 ~@3 [bb3,d4,g4]@3 ~@2 d4@2 ~@5 [c4,f4,a4]@17 ~@3 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~@6 bb3@17 ~@3, [g2,g3], ~@3 bb3@2 ~@6 c4@15 ~@41 [bb3,g4]@3 ~@37 [eb4,g4]@17 ~@4]/4", // Gm G5 F Eb Gm F G Eb
  C: "[eb3@63 c3@64 ~, [g3,bb3,eb4]@63 ~]/4", D: "[g2,g3]/2", E: "[g2,g3] ~@31",
  F: "[[d4,g4,bb4]@3 ~ [d4,g4,bb4]@2 ~@5 [c4,f4,a4]@16 ~@4 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@3 ~@4 [g3,bb3,eb4]@17 ~@4]/2", // Gm F Eb
  G: "[g2 ~@63 [d4,g4,bb4]@3 ~ [d4,g4,bb4]@2 ~@5 [c4,f4,a4]@16 ~@4 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@3 ~@4 [g3,bb3,eb4]@17 ~@4, g3@53 ~@11]/4", // Gm F Eb
  H: "[[g2,g3]@63 g3]/2", // G
  I: "[[eb3,bb3]@32 [c3,c4]@14 [bb2,bb3]@17 ~@33 [bb3,d4]@29 ~@3, g4@79 f4@45 ~@4, eb4@63 [a2,c4]@33 bb2@32, ~@63 a3@30 ~@35]/4", // Eb5 C Bb Am
  J: "[[d3,f4,a4]@31 [g3,bb4]@32 ~@32 [d3,gb4,a4]@32 ~, d4@62 ~ eb4@64 ~, ~@31 g4@64 ~@33, ~@63 c3@32 ~@33, ~ c4]/4", // Dm Gm D
  K: "[eb3@23 c3@8 d3@15 ~ bb2@17, [g4,bb4]@63 ~, [eb4,eb5]@30 ~ [d4,d5]@32 ~]/2", // Gm Eb D
  L: "[eb3@23 c3@8 db3@16 bb2@16 ~, [eb4,gb4,bb4,eb5,gb5]]/2", // Ebm
  M: "[~@63 [bb3,d4,g4]@3 ~@2 d4@2 ~@5 [c4,f4,a4]@17 ~@3 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~@6 bb3@17 ~@3, [g2,g3], ~@67 [bb3,g4]@3 ~@37 [eb4,g4]@17 ~@4]/4", // Gm F G Eb
  N: "[~@64 [d4,g4,bb4]@3 ~ [d4,g4,bb4]@2 ~@5 [c4,f4,a4]@16 ~@4 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@3 ~@4 [g3,bb3,eb4]@17 ~@4, g2, g3@53 ~@11]/4", // Gm F Eb
  O: "[g2 ~@3 [d4,g4,bb4]@2 ~@6 [f4,a4]@16 ~@4 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~@5 [g3,eb4]@17 ~@3, g3@41 ~@23, ~@11 c4@15 ~@17 bb3@17 ~@4]/2", // Gm F Cm
  P: "[[eb3,g3,bb3,eb4]@63 ~]/2", // Eb
  Q: "[[bb3,d4,g4]@3 ~ [d4,g4]@2 ~@6 [f4,a4]@16 ~@3 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@2 ~@5 [bb3,d4,g4]@17 ~@3 [bb3,d4,g4]@3 ~@2 d4@2 ~@5 [c4,f4,a4]@17 ~@3 [a3,c4,f4]@3 ~ [a3,c4,f4]@3 ~@6 bb3@17 ~@3, [g2,g3] ~@2 bb3@2 ~@6 c4@15 ~@41 [bb3,g4]@3 ~@37 [eb4,g4]@17 ~@4]/4", // Gm G5 F Gm F G Eb
  R: "[[bb3,d4,g4]@3 ~ [d4,g4]@2 ~@6 [f4,a4]@16 ~@3 [a3,c4,f4]@3 ~@2 [a3,c4,f4]@2 ~@5 [bb3,eb4,g4]@17 ~@4 [g3,c4,eb4]@3 ~ [g3,c4,eb4]@2 ~@6 [g3,bb3,d4]@16 ~@8 [bb3,d4,f4]@2 ~@6 [g3,c4,eb4]@16 ~@4, g2, g3 ~, ~@3 bb3@2 ~@6 c4@15 ~@102]/4", // Gm G5 F Eb Cm Gm Bb Cm
  S: "[g3,c4,eb4]@3 ~ [g3,c4] ~@7 [g3,bb3,d4]@18 ~@2, ~@2 eb4 ~@13", // Cm C5 Gm
  T: "[~@4 [bb3,d4] ~@6 [g3,eb4]@18 ~@2 [gb3,a3,d4]@32 [c4,eb4]@32 [gb3,a3,d4]@15 ~ [gb3,c4,eb4]@17, ~@4 f4@2 ~@5 c4@15 ~@37 g3@29 ~@18 a3@17 ~]/4", // Bb Cm D Cm D Cdim
  U: "[bb3,d4,g4] [d4,gb4,a4]", V: "[g2,g3,d4,g4,bb4]/2",
})).s("gm_synth_strings_1").gain(0.17)

// chords · electric guitar muted
const electric_guitar_muted = note("<~@16 A@3 ~@11 B@2 C ~@17 D E ~@14 B@2 C ~@23 B@2 C ~@9>".pickRestart({
  A: "[g3@65 ~@31]/3", B: "[d4@31 ~ d4@24 ~@4 g3 ~ f3@2, [g2,g4], g3@59 ~@5]/2", C: "g3 ~@31",
  D: "~@6 a3@9 ~, ~ g3@6 ~, ~@4 d3@11 ~", E: "~@2 c3 [bb2,g3]@5, c4@5 ~@11, ~ a3@2 ~@5",
})).s("gm_electric_guitar_muted").gain(0.17)

// other · string ensemble 1
const string_ensemble_1 = note("<~@41 A@2 B@2 C ~@15 D@4 E F@2 ~@36>".pickRestart({
  A: "[~@16 d3 ~@15 eb3@24 [c3,c5]@8, ~@19 eb5@32 ~@13]/2", // C
  B: "[[d3,d5]@15 [bb2,bb4]@16 ~ eb5@24 [c3,c5]@8, ~@31 eb3@24 ~@9]/2", C: "[db3,db5]@16 [bb2,bb4]@15 ~",
  D: "[~@5 eb6@59, ~@4 eb5@57 ~@3]/4", E: "c6", F: "d6 eb6 d6 eb6 d6 eb6 d6 eb6 d6 eb6 d6 eb6 d6 eb6 d6 eb6",
})).s("gm_string_ensemble_1").gain(0.04).pan(0.6)

// other · electric guitar muted
const electric_guitar_muted_2 = note("<~@68 A B C D E F G H@3 I J K L M@2 ~@20>".pickRestart({
  A: "~@3 g4@5", B: "~@8 d4@20 g4 ~@3", C: "c4@4 d4@2 c4@9 ~", D: "c4@4 bb3@4 a3@4 bb3@15 ~ d4@4",
  E: "f4@6 d4 ~ f4@3 ~ d4@15 ~@5", F: "d4@2 f4 ~ c4@2 bb3@5 ~@5", G: "~@2 [g4,c5] g4 d5 ~ eb5 ~",
  H: "[f5@4 ~@8 g5@12 e5@6 eb5@4 ~@4 c5@4 g4 ~ a4@4 f4@4 f4@4 d4@4 c4@15 ~ f3@4 bb3@2 ~@2 bb3@2 ~@2 f3@8]/3",
  I: "g3@13 ~@3 gb4@2 ~ g4@2 a4@3 gb4@3 g4@2 a4@3", J: "bb4@3 a4@2 g4@23 ~@4",
  K: "~@4 d4@6 gb4@2 g4@2 ~@2 a4@3 bb4@2 a4@3 bb4@2 c5@2 d5@2 c5@2",
  L: "d5@3 eb5@2 f5@2 ~@2 g5@3 ~@4 gb5@3 g5@3 a5@2 gb5@3 g5@2 a5@3", M: "[bb5@5 g5@6 ~ g5@28 ~@24]/2",
})).s("gm_electric_guitar_muted").gain(0.54)

// chords · piano
const piano = note(`<
  ~@6 A ~@3 A ~ B@2 C@2 A ~ D@8 B@2 C@2 ~@2 A ~@17 A ~ D@8 B@4 C@2 ~@2 E@2 F@2 G@2 H I@3 J K L M N@2 D@4 B@2 C@2 ~@2 D@8
  O@2
>`.pickRestart({
  A: "g2 ~@31", B: "[[eb2,eb3]@63 ~]/2", C: "[[c2,c3]@63 ~]/2", D: "[g2@63 ~]/2", E: "[[g2,g3]@61 ~@3]/2",
  F: "[[d4,g4,bb4]@3 ~ [d4,g4] ~@7 [c4,f4,a4]@15 ~@5 [c4,f4]@3 ~ [c4,f4]@2 ~@6 [bb3,eb4,g4]@12 ~@8, g2@63 ~, ~@2 bb4 ~@13 a3@2 ~@14]/2", // Gm G5 F F5 Eb
  G: "[[d4,bb4]@3 ~ [d4,bb4]@2 ~@6 [c4,f4,a4]@17 ~@3 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~@6 [bb3,eb4,g4]@19 ~, g2@31 ~, g4 ~@15]/2", // Gm F Eb
  H: "[g3,c4,eb4]@3 ~ [g3,eb4]@2 ~@6 [f3,bb3,d4]@20, [c2,c3], ~@4 c4 ~@27", // Cm Bb C
  I: "[~@4 [bb3,f4]@2 ~@6 [g3,c4,eb4]@10 ~@2 g3@4 ~@4 [g3,c4,eb4]@4 [g3,eb4]@2 ~@6 [f3,bb3,d4]@20 [bb3,d4,f4]@3 ~ [bb3,d4,f4] ~@7 [g3,c4,eb4]@12 [c3,g3,c4,eb4]@8, c3@11 c3@4 c2@32 ~, ~@4 d4 ~@3 c2@20 g3@4 ~@8 c3@24 c3@24 ~@8, ~@24 [c4,eb4]@8 ~@4 c4 ~@59]/3", // Bb5 Cm Bb Cm
  J: "a3@12 ~@8 [a3,d4,gb4]@11 ~, d2@31 ~, [d4,gb4]@5 ~@3, d3!2, ~@3 a3@2 ~@3", // D
  K: "[c3,g3,c4,eb4,g4]@7 ~ [c4,eb4]@2 g3 ~ g3@2 g3@2, c2, ~@14 c3@7 ~ c3@10, ~@16 g3@3 ~@5 [c4,eb4]@8", // Cm
  L: "[d2,d3,a3,d4,gb4] [gb2,gb3,a3,eb4], ~@2 c4 ~", M: "bb2 ~ bb2@6 [a2,a3,d4,gb4,a4]@8, [g3,bb3,d4,g4] ~",
  N: "[[g2,g3,d4,g4,bb4]@63 ~]/2", O: "[g2@57 ~@7]/2",
})).s("gm_piano").gain(0.28).pan(0.7)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~@4 A@8 B@6 ~@8 C@6 ~@2 D@2 E F G@2 H I J@2 K@2 L@2 M@4 ~@8 N@8 O@2 P@2 Q R S@5 T U V W@2 ~@4 C@6 ~@10
>`.pickRestart({
  A: "[~@12 d3@3 db3 c3@20 ~@8 c3@2 b2 bb2 [bb2,g3]@16, ~ d3@2 ~@6 c3@2 ~@5, ~ bb3 a3@3 a3 ~@2]/2", // Eb
  B: "[~@38 g4@25 ~ [bb3,d4]@32, g3@26 eb4@9 ~ eb4@27 ~@33, [bb3,eb4]@48 bb3@18 ~@2 bb3@58 ~ [g2,g3]@65, eb3@43 ~ eb3@18 ~@2 c3@64 ~@64, ~@20 g4@17 ~@59]/6", // Bb Eb5 G
  C: "[~@38 g4@25 ~ bb3@32, g3@26 eb4@9 ~ eb4@27 ~@33, [bb3,eb4]@48 bb3@18 ~@2 bb3@58 ~ [g2,g3]@65, eb3@43 ~ eb3@18 ~@2 c3@64 ~@64, ~@20 g4@17 ~@59]/6", // Eb5 G
  D: "[eb3@31 ~@9 bb3@3 ~@5 [bb2,bb3]@16, [bb3,eb4,g4]@10 ~ eb4@5, ~@2 c3 ~, ~@9 g3@7]/2", E: "g3 f3, [a2,c3]",
  F: "~@3 bb3 c4@2 bb3@2, bb2, ~ f3@7, ~ f4@3",
  G: "[a3@4 ~@8 f4@12 g4@4 f4@3 ~ bb3@4 ~@8 g4@20, d3@8 g4@3 ~@5, ~@4 a3@27 g3@32 ~, ~@8 d4@22 ~ d4@8 ~ d4@22 ~@2, ~@9 bb3@6 ~]/2",
  H: "[c3,c4,eb4]", I: "~@6 a3 ~, gb3@29 ~@3, ~@4 a3@19 ~@9, ~@2 eb4@3 ~@3, ~@6 d3@9 ~",
  J: "[eb3@17 ~@7 c3@5 ~@3 d3@11 ~@5 bb2@11 ~@5, [bb3,eb4]@57 ~@7]/2", // Eb5
  K: "[eb3@19 ~@5 c3@4 ~@4 db3@12 ~@4 bb2@10 ~@6, [gb3,bb3,eb4]@55 ~@9]/2", L: "[[d3,a3,d4,g4]@3 [gb3,a3,c4,eb4]]/2",
  M: "[~@12 d3@3 db3 c3@20 ~@8 c3@2 b2 bb2 ~@4 d4@8 f4@3 ~@13 d3@3 db3 c3@20 ~@8 c3@2 b2 bb2 [bb2,g3]@16, g2@33 ~@31, ~ d3@2 ~@6 c3@2 ~ [bb2,g3]@4 ~ d3@2 ~@6 c3@2 ~@5, ~ bb3 a3@3 a3 ~@2 bb3!2 a3@3 a3 ~@2]/4", // Eb
  N: "[~@26 eb4@6 ~@38 g4@25 ~ bb3@32, g3@55 ~@9 g3@52 eb4@18 ~@2 eb4@54 ~@66, [bb3,eb4]@48 bb3@16 [bb3,eb4]@48 bb3@18 ~@2 bb3@58 ~ [g2,g3]@65, eb3@43 ~ eb3@18 ~@2 eb3@43 ~ eb3@18 ~@2 c3@64 ~@64, ~@20 g4@17 ~@15 g4@17 ~@59]/8", // Eb5 G
  O: "[~@9 g4@10 ~@4 d4@9]/2", P: "[~@2 g4 ~@3 c4@8 d4@4 c4@18 ~@2 c4@4 bb3@4 a3@4 bb3@14]/2",
  Q: "~@2 d4@4 f4@6 d4 ~ f4@3 ~ d4@14", R: "~@3 d4@2 f4 ~ c4@2 bb3@5 ~@2",
  S: "[~@14 [g4,c5]@4 g4@4 d5@4 ~@4 eb5@4 ~@4 f5@4 ~@8 g5@12 e5@6 eb5@4 ~@4 c5@4 g4 ~ a4@4 f4@4 f4@4 d4@4 c4@15 ~ f3@4 bb3@2 ~@2 bb3@2 ~@2 f3@8 g3@13 ~@3 gb4@2 ~ g4@2 a4@3 gb4@2]/5", // C5
  T: "~ g4@2 a4@3 bb4@3 a4@2 g4@21", U: "~@10 d4@6 gb4@2 g4@2 ~@2 a4@3 bb4@2 a4@3 bb4@2",
  V: "c5@2 d5@2 c5@2 d5@3 eb5@2 f5@2 ~@2 g5@3 ~@4 gb5@3 g5@3 a5@2 gb5@2", W: "[~ g5@2 a5@3 bb5@5 g5@6 ~ g5@28 ~@18]/2",
})).s("gm_electric_guitar_jazz").gain(0.12)

// other · lead 8 bass lead · Gsus2 Bbsus2 Fsus2 Bbmaj7 Fsus2 Bbsus2 Gsus2 Bbsus2 …
const lead_8_bass_lead = note(`<
  ~@32
  [bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6] bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6]]!2
  ~@60
  [bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6] bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6]]!9
  [bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6] bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] ~@8]
>`).s("gm_lead_8_bass_lead").gain(0.12).pan(0.4)

// other · lead 8 bass lead · soft notes · Gsus2 Bbsus2 Fsus2 Bbmaj7 Fsus2 Bbsus2 Gsus2 Bbsus2 …
const lead_8_bass_lead_soft = note(`<
  ~@31
  [bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6] bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6]]
  ~@61
  [bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6] bb6 [g6,a6] d6 [bb5,c6] a5 [f5,g5] d5 [a4,bb4] g4 [a4,bb4] d5 [f5,g5] a5 [bb5,c6] d6 [g6,a6]]
  ~@10
>`).s("gm_lead_8_bass_lead").gain(0.05).pan(0.4)

// drums · kick
const kick = s("bd").struct("<[x!2 ~ x!2 ~@3]!46 x ~ [x!2 ~ x!2 ~@3]!56>").gain(0.53)

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!46 ~@2 [~ x ~ x]!56>").gain(0.69)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~@3 A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~@3 A ~ A ~@3 A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
>`.pickRestart({
  A: "~@5 x ~@2",
})).gain(0.38)

// drums · clap
const clap = s("cp").struct("<~@11 A ~@39 A ~@19 A ~@5 A ~@5 A ~@20>".pickRestart({
  A: "~@5 x ~@2",
})).gain(0.38)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@37 [~@5 x ~ x ~@8] ~@7 [~@5 x ~ x ~@8] ~@58>").gain(0.23)

// drums · open hat
const open_hat = s("oh").struct("<~@3 A B ~@25 B ~@10 A B ~@23 B ~@10 A B ~@2 A B ~@9 B ~@11>".pickRestart({
  A: "~@25 x!7", B: "x",
})).gain(0.15)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@3 A ~@37 A ~@35 A ~@3 A ~@22>".pickRestart({
  A: "~@3 x",
})).gain(0.08)

// drums · crash
const crash = s("cr").struct(`<
  ~@3 A B ~@4 C B C B ~@2 C B ~@12 C B ~@2 C B ~@3 B ~@2 A B ~@6 C B C ~@13 C B ~@2 C B C ~ C ~@3 A B ~@2 A B ~@8 C B
  ~@2 C ~ C ~ C ~ C ~@2
>`.pickRestart({
  A: "~@27 x!5", B: "x", C: "~@28 x!4",
})).gain(0.15)

// drums · ride
const ride = s("rd").struct(`<
  ~@9 A B C ~@3 A B ~@12 A ~@3 A B ~@11 B ~@2 A B C ~@13 A ~@3 A B C ~ A ~@17 A ~@3 A ~ A ~ A ~ A ~ D
>`.pickRestart({
  A: "~@24 x!8", B: "x", C: "~@20 x!12", D: "~@24 x!4 ~@4",
})).gain(0.15)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x!8]!42 [~ x!7] [x!8]!3 ~@2 [x!8]!55 [x!7 ~]>").gain(1.93)

stack(
  bass, distortion_guitar, synth_strings_1, electric_guitar_muted, string_ensemble_1, electric_guitar_muted_2, piano,
  electric_guitar_jazz, lead_8_bass_lead, lead_8_bass_lead_soft, kick, snare, snare_soft, clap, clap_soft, open_hat,
  open_hat_soft, crash, ride, cabasa
// … 1 more lines

More by Queen