Strudelify

Rain Must Fall

Queen

KeyG minorTempo130 bpm
0:00/0:00
// Rain Must Fall — Queen
// 130 bpm, 4/4, key G 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: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 8 "STRINGS" string ensemble 1 (copy of ch 9 "CHOIR AAHS" choir aahs)
// note: Full arrangement: all 152 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/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 · piano · "A.PIANO 1"
const piano = note(`<
  ~ A B@6 C@5 D@8 E F@8 G@8 H@2 I J K L@2 M ~ N O@3 P@5 Q@3 R S@8 T@8 U@2 V W K L@2 M X@2 Y Z AA@2 AB@2 AC@2 AD@2 AE@2
  AF@2 AG@2 AH@2 AI@2 AJ@2 AK@2 AL@2 AM@2 AN@2 AO@2 AP@2 AI@2 AQ@2 AR@2 AS@2 AT@2 AU@2 AV AW AX AY AZ@2 BA@2 BB@2 BC@3
  BD@7
>`.pickRestart({
  A: "~@14 [a4,c5] ~", // Am
  B: "[g2 d3 ~@2 bb3 d4 a3 ~@8 [d3,c5,eb5], [bb4,d5]@7 d4, ~@4 g3@7 ~@5 g3@16, ~@6 a3@5 ~@3 d4@6 bb3@4 a3@8, ~@9 a3@2 d4@2 bb3@3]/2", // Cm Bb
  C: "[g2 d3 ~@2 bb3 d4 a3 ~@8 [d3,c5,a5] g2 ~@22 [d4,c5,a5], bb4@35 [a3,eb5,c6] [bb3,d5,bb5] d4 a3@2, d5@13 bb3 d4@2 [d5,bb5]@13 bb3@2 d3 g2@8, ~@4 g3@7 ~@5 g3@17 ~ d3@16 a3@2 bb3@2 d4@2 a3@6 [c5,a5]@6 g3@12, ~@6 a3@5 ~@3 d4@4 a3@2 bb3@2 d4@2 a3@9 ~@3 g3@2 a3@2 bb3@2 d4@2 a3@2 d4@2 g3@12 d4@4 [d5,bb5]@2 d3@14]/5", // D7 Adim Bb Gm F Gm
  D: "[g3 ~@6 [a4,f5] ~@2 eb3 f3 ~@11 [a4,f5] ~ d3 ~@3 d4 a3 ~@8 [c5,a5] ~@23 [d4,c5,a5], [d5,bb5]@5 bb3 g3@2 [eb2,a4,f5] bb2@2 ~@3 eb4@3 eb3 g3 c4 d4 eb4 g4 c4 [g2,a4,f5]@2 g3@4 [f4,d5]@6 d4 bb3 g3@2 [g2,d5,bb5]@13 bb3@2 d3 g2@3 a3 [bb3,d5,bb5] d4 a3@2, ~@2 a3@20 ~@2 g3@8 c3@21 ~@3 bb3@5 ~ d4@4 a3@14 ~@2 d3@16 a3@2 bb3@2 d4@2 a3@6 [c5,a5]@8 [eb5,c6]@10, ~@4 d4@4 d4@14 ~@4 bb3@4 bb3@23 ~ [a3,g5]@7 ~@3 g3@4 d4@2 eb4@10 ~@4 g3@2 a3@2 bb3@2 d4@2 a3@2 d4@2 g3@12 d4@4 [d5,bb5]@2 d3@14, ~@3 eb4@8 [bb4,g5]@16 bb4@31 g3@6]/8", // Dm F D7 Gm F7 Dm Gm Bb …
  E: "g3 ~@6 [d3,a4,f5], [d5,bb5], ~ a3@3 a3@4, ~@2 bb3@3 bb3@3, ~@3 d4@3 d4@2", // Dm Gm
  F: "[~@2 eb3 ~@12 [a4,f5] ~@5 eb4 ~@9 [f5,d6] ~@3 [eb5,c6] ~@3 [d5,bb5] ~@2 c4 f4 ~@7 [eb5,c6] ~@3 [d5,bb5] ~@7 [a4,f5], [eb2,a4,f5]@6 ~@2 g3@8 c3@16 [g2,a4,f5]@2 d3@2 g3@2 [bb3,bb4,g5]@2 d4@4 [d4,d5]@16 g3@6 c3@2 f3@2 a3@2 [c4,eb5,c6]@2 f4@2 a3@2 c4@2 [f3,d5,bb5]@2 a3@4 [eb5,c6]@8 [c4,f5,d6] eb6@7 c4@2 [d4,eb5,c6]@2 eb4@2 g4@2 d4@2 [c4,d5,bb5]@2 d4@2 eb4@2 g4@2 [d4,c5,a5]@2 eb4 [bb4,g5] g4@4, ~ bb2@2 [f3,bb4,g5]@7 g3 c4 d4@2 g4@8 f4@5 g3 g2 d3@14 ~ f4@4 [c3,d6]@16, ~@5 bb3@2 bb3@6 eb4@2 c4@7 ~ bb3@8 g2@12 ~@2 f3@3 f5@2 g3@14, ~@6 eb4@3 eb3@13 ~@2 g3 d3 bb2@6 [f2,f5,d6]@11 ~@3 a3@3 eb3@15]/8", // Dm Cm Gm Cm Gm Dm F7 Dm …
  G: "[eb2 ~@18 [g3,bb4,g5] bb3 ~@10 [f5,d6] ~@3 [eb5,c6] ~@3 [d5,bb5] ~@11 [eb5,c6] ~@3 [d5,bb5] ~@7 [eb3,a4,f5], [bb4,g5]@20 bb3@8 [f3,eb5,c6]@2 a3@2 [eb2,c5,a5]@2 bb2@2 eb3@4 [bb4,g5]@20 g3@2 eb3@2 c3@16 [d5,bb5]@14 [f5,d6] eb6@9 bb3@2 eb4@2 bb3@2 g3@2 [eb3,d5,bb5]@2 g3@2 bb3@2 eb4@2 [d4,c5,a5]@2 bb3 [bb4,g5] g3@4, ~@2 bb2@20 eb4@19 ~ eb4@10 bb3@2 eb4@12 eb3@16 d4@2 eb4@2 [eb5,c6]@4 eb4@2 g4@6 bb2@30, ~@4 eb3@8 bb3@2 g3@2 eb3@8 f2@17 ~@5 g3@2 eb3@10 bb3@10 g3@18 g4@2 d4@8 f5@4 eb3@2 g3@2 [eb5,c6]@24, ~@6 g3@2 bb3@2 eb4@8 g3@6 [c5,a5]@2 [c3,d5,bb5]@15 ~@3 bb3@6 g3@6 d4@8 [f5,d6]@6 c4@2 [d4,eb5,c6]@2 eb4@2 g4@2 d4@2 c4@16 [eb2,d6]@32]/8", // Gm Dm Cm Gm Cm Gm F7 Eb …
  H: "[~ bb2 ~@13 a3, g5@11 eb4 [f2,c5,a5] [c3,d5,bb5] [f3,eb5,c6]@2, [eb2,bb4]@2 eb3@5 g3 eb3@8, ~@3 g3@3 bb3@3 g3@7, ~@4 bb3 eb4@5 bb3@6]/2", // F Gm F7 Eb5
  I: "~@3 [g3,bb4,g5] bb3 eb4 bb3 g3, [eb2,c5,a5]@4 [bb4,g5]@3 ~, ~@2 bb2@7 ~@7, ~@4 eb3@5 ~@7", // Gm Adim Eb
  J: "eb3 g3 bb3 eb4 g3 bb3 eb3 g3, [bb4,g5]", K: "g2 d3 g3 bb3 d4 g4 d4 bb3", L: "g3 bb3 d4 g4 d4 bb3 d4 bb3",
  M: "g3 bb3 d4 g4 a4 g4 bb4 g4", N: "~@7 [c5,a5]",
  O: "[g3 ~@22 [d3,c5,a5], [d5,bb5]@11 a3 bb3@3 d4 g3@5 bb3 d4@2, ~ a3@3 a3@3 d3 g2@16, ~@2 bb3@3 bb3@4 d3@7 [d5,bb5] a3 bb3 [eb5,c6]@5, ~@3 d4@3 d4@4 g3@3 d4 a3 [c5,a5]@4 d4 [a3,d5,bb5]@4]/3", // D7 Gm Cm F Bbmaj7
  P: "[g2 ~@6 [a4,f5] ~@2 d4 eb4 ~@11 [a4,f5] ~ eb3 ~@3 eb4 g4 ~@8 [d4,c5,a5], [d5,bb5]@18 a3@4 ~@2 d4@12 eb3@2 f3@2 g3@2 bb3@2 eb4@2 bb3@2 [c3,a4,f5]@4 g3@9 ~@3 g2@4 g3@2 a3@2 bb3@2 d4@2 a3@4, ~@2 d3@20 ~@6 g3@4 eb2@21 ~@7 [f4,d5]@20, ~@4 g3@6 d4@2 a3@2 d4@2 [g3,a4,f5]@6 ~@4 bb3@8 bb2@19 ~@3 d4@5 ~@5 d3@14, ~@6 a3@2 bb3@14 [bb4,g5]@31 ~ [c4,bb4,g5]@7 ~ c4@18]/5", // Dm D7 Gm F Dm Eb C7
  Q: "[~@23 [d3,c5,a5], [d5,bb5]@10 g3 a3 bb3 d4 a3 [c5,a5] [d5,bb5] a3 bb3 [eb5,c6]@2 bb3 d4@2, g3@4 d4@5 d3@10 d4 [a3,d5,bb5]@4, ~ a3@4 bb3 g3@2 g2@16, ~@2 d4 eb4@12 d4 g3@8]/3", // D7 Gm F Gm Cm Bbmaj7
  R: "g2 ~@6 [d4,a4,f5], [d5,bb5]@5 d4 a3@2, ~ d3@7, ~ g3@3, ~@3 a3 bb3@4", // Dm Gm
  S: "[~@2 bb3 ~@12 [a4,f5] ~@5 eb4 ~@9 [f5,d6] ~@3 [eb5,c6] ~@3 [d5,bb5] ~@2 f3 ~@8 [f4,eb5,c6] ~@3 [d5,bb5] ~@7 [d4,a4,f5], [g3,a4,f5]@6 d4@6 d4@6 bb2@6 g3@2 bb3@2 eb4@2 bb3@2 [c3,a4,f5]@2 eb3@2 g3@2 [c4,bb4,g5]@2 d4@4 [f4,g4,d5]@18 bb3@2 g3@2 d3@2 bb2@2 g3@2 [g2,eb5,c6]@2 d3@2 g3@2 g2@2 [f2,d5,bb5]@2 c3@4 ~@4 f4@6 f5@10 f3@4 c4@2 [c3,d5,bb5]@2 eb3@2 g3@2 c4@2 [d4,c5,a5]@2 eb4 [bb4,g5] g4@4, ~@2 a3@4 [bb4,g5]@10 eb2@28 ~@4 g2@12 d4@26 a3@6 a3@2 [f5,d6] eb6@13 a3@20, ~@4 a3@6 eb3 f3@11 ~ c4@9 [f5,d6]@11 [eb5,c6]@5 f3 a3 c4@2 [f4,eb5,c6]@12, ~@5 bb3@2 d3@15 ~@3 d3 g3 bb3 d4 eb4@14 ~ c4@3 c4 d6@16]/8", // Dm Cm Gm F7 Gm Dm F C7 …
  T: "[c4 ~@18 [eb4,bb4,g5] f2 ~@10 [f5,d6] ~@3 [eb5,c6] ~@3 [d5,bb5] ~@11 [eb5,c6] ~@3 [d5,bb5] ~@7 [g3,a4,f5], [bb4,g5]@18 bb2@8 eb4@2 [bb3,eb5,c6]@2 g3@2 [eb3,c5,a5]@2 g3@2 bb3@4 [bb4,g5]@8 eb2@24 d4@4 g3@2 eb3@2 c3@16 [c4,d6]@18 bb2@2 eb3@2 g3@2 [bb3,c5,a5]@2 eb4 [bb4,g5] bb3@4, ~@2 d4@6 d4@12 eb3@2 g3@2 [bb3,c5,a5]@2 [d5,bb5]@15 ~@5 a3@18 eb3@2 g3@2 bb3@2 eb4@10 [d5,bb5]@6 [c4,eb5,c6]@2 d4@2 eb4@2 g4@2 [d4,f5,d6] eb6@17 [eb2,d5,bb5]@16, ~@4 eb4@6 eb4@6 eb2@25 ~ c3@8 bb2@22 [eb5,c6]@2 bb3@10 g3@14 d4@2 eb4@2 g4@2 [d4,eb5,c6]@24, ~@6 g4@6 g4@29 ~@3 f3@8 eb3@2 g3@2 bb3@2 eb4@2 bb3@2 g3@2 [f5,d6]@18 eb3@14 f5@10 eb4@2 g4@20]/8", // Eb Dm Cm Gm Cm Gm Dm Eb …
  U: "[~ g3 ~@13 g3, g5@10 eb3 g3 [bb3,c5,a5] [eb4,d5,bb5] [bb3,eb5,c6]@2, [eb3,bb4]@2 bb3@3 bb3 g3 eb3 eb2@8, ~@3 eb4@6 bb2@7, ~ d4@3]/2", // F Ebmaj7 Cm7 Eb5
  V: "~@3 [f3,bb4,g5] g3 bb3 eb4 bb3, [eb2,c5,a5]@4 [bb4,g5]@3 ~, ~@2 bb2@7 ~@7, ~@4 eb3@5 ~@7", // Gm7 Adim Eb
  W: "c3 eb3 g3 eb4 d4 bb3 eb3 d3, [bb4,g5]", // Eb
  X: "[a5 bb5 [d4,g5] g4 ~@2 g4 d4 ~ a5 [d4,bb5] [g4,g5] [d4,a5] [bb3,bb5] g5 a5, g3@2 ~ a5@2 bb5@2 g5@2 ~@7, ~@2 d4 ~ g3 ~@2 g3]/2", // G5 Gm G D5 Bb
  Y: "eb2 bb2 eb3 g3 bb3 eb4 d4 [eb4,c6], ~@12 c6 ~@3", // Cm
  Z: "eb3 [g3,d6] [bb3,eb6] [eb4,f6] [bb3,eb6] [g3,d6] [eb3,c6] bb2, ~@14 bb5 ~", // G5 Eb5 Ebsus2 Eb5 G5 Cm
  AA: "[eb2 ~ eb3 f3 ~@6 g3 bb3 ~@3 [c3,f4], [eb4,g4,bb4,eb5]@7 ~ g3@10 f3@5 ~@3 c3@4 ~@2, ~@2 bb2@5 ~@3 bb3@4 bb3@8 ~@4 bb4@6, ~@12 a3@11 ~@5 [f3,a4]@4, ~@16 eb3@7 ~ [f2,c5]@8]/2", // F5 Eb F F5
  AB: "[eb2 ~@14 c3, [g4,bb4]@7 bb3 eb3 [f3,g5] [g3,f5] [bb3,eb5] [f2,d5] [c3,eb5] [f3,c5]@2, eb5@5 bb3 eb4@10, eb4@2 eb3 g3 a3@12, ~ bb2@15]/2", // Gm Fsus2 G7 Eb5 Dm Cm F5
  AC: "[~@15 c3, [eb4,g4,bb4,eb5]@8 eb3 bb2 g2 eb2 [f2,f4] [c3,a4] [f3,c5]@2, eb2@5 bb3 a3@10, ~ bb2@3 g3@12, ~@2 eb3 f3@4 bb3@9]/2", // Eb F F5
  AD: "[~@15 [bb2,g5], [eb2,g4,bb4,eb5]@10 g3 [bb3,a5] [g3,g5] [f3,f5] [eb3,d5]@2, eb4@3 g3@2 bb3 eb4@10, ~ bb2@6 bb3 eb3 [f3,a5] bb5@6, ~ eb3 a3@6]/2", // Eb Bbmaj7 G F Ebmaj7 F
  AE: "[g2 ~@3 d4 ~@4 g5 [g5,d6]!2 g5 [g5,c6] ~ d3, d6@5 ~ g5@3 ~@2 eb4@5, g5@3 [bb3,g5,c6]@2 bb3@2 bb3@2 bb3@4 bb3@3, ~ d3@4 ~@3 g3@6 [g3,g5,c6]@2, ~@2 g3@3 ~ d4@4 d4@2 [d4,d6]@4]/2", // G5 C5 C7 C5 D
  AF: "[bb5 ~@9 bb3@2 ~@18 g3@2, [eb2,d6]@3 [f3,eb5,c6] g3@2 [eb4,d5,g5]@10, eb5@2 eb3@4 ~ bb3@3 a3 bb3@5, ~ bb5@11 ~@6 g3@6 [a3,bb5]@8, ~ bb2@5 ~@2 eb3@5 g3 [eb3,c6]@2]/2", // Ebmaj7 F7 Ebmaj7 Bbmaj7 Cm
  AG: "[~@14 f4 c4, f2@18 [a3,a5]@2 [c4,bb5]@2 [f4,a5]@2 [a3,g5]@2 [c4,f5]@5 ~, f5@6 g5@2 [a3,a5]@2 c4@2 f4@2 c4@2 f3@15 ~, bb5@3 a5 f3@2 g3@25 ~, ~@2 c3@29 ~]/2", // A C7 F A7 F5 A
  AH: "[~@13 f5 ~ g3, eb2@16 [eb3,eb5]@2 g3 g5 bb3@2 [eb4,f5]@2 [g3,g5]@2 bb3@2 [eb3,eb5] f5@3, [eb5,bb5]@3 f3@13, ~ bb2@15, ~@3 g5 eb3@2 f5@2 [g3,g5]@2 bb3 f5 eb4@2 [bb3,g5]@2 bb5@16]/2", // Eb Ebsus2 G Eb Eb5 G Eb
  AI: "[~@9 [d6,g6]!3 ~ [c6,f6]!2 [d3,c6,f6], g2@13 bb3 g3@2, d6@3 [bb3,g5] d4 bb3 g5@10, g5@2 g3 c6@3 d4 bb3 g3 bb3 d4 eb4@5, ~ d3@11 [d4,d6,g6]@4]/2", // G5 F5 Dm7 Eb G5
  AJ: "[~@4 g3 bb3 ~@9 bb2, [eb2,d6]@11 ~@7 f3@8 g3@2 [eb3,c6]@4, ~@2 bb2@9 ~@5 eb3@8 [a3,f5,bb5]@8, ~@4 eb3@7 ~@3 bb3@6 g3@2 bb3@10, ~@6 [f3,c6]@5 ~ [eb4,d5,g5]@20]/2", // Ebmaj7 Cm Bbmaj7 F5 Ebmaj7
  AK: "[~@14 f3 c3, f2@24 [c4,g5]@2 [a3,f5]@5 ~, f5@6 g5@2 [a3,a5]@2 c4@2 f4@2 c4@2 f3@2 [a3,a5]@2 bb5@11 ~, bb5@3 a5 f3@2 g3@25 ~, ~@2 c3@18 c4@2 [f4,a5]@9 ~]/2", // C5 Dm A F
  AL: "[~@15 f2, bb5@6 eb3@2 bb5@4 [c3,eb5] [bb2,f5] [a2,g5]@2, g5@2 f5 eb2@5, [eb2,bb2,eb3,eb5]@6 eb5@13 g5@2 f5 d3@10, ~@3 f5@3 [eb2,bb2,eb3]@5 g5 bb2@2 f5@4 bb2@2 eb3@12]/2", // Cm Bb5 A7 Eb5
  AM: "[~@6 g5 ~ g3 ~ d4 eb4 ~@3 [d3,g5], [g2,d6]@14 bb3 g5@3 ~@6 g5@6 ~@2, g5@3 c6@6 ~@5 [g3,bb5]@2, ~ d3@8 ~@4 [bb3,db6]@3, ~@4 g3@2 [bb3,g5]@2 d4@2 bb3@2 [d4,bb5]@6 [bb3,g5,db6,d6]@5 ~ [d4,d6]@8]/2", // G5 Gm Bbm Eb Gm D
  AN: "[~@2 f5 ~@12 [g3,c6], [eb2,d6]@6 f5 [bb3,eb5] eb3 [g3,g5] a3 [bb3,f5] [a3,g5] [g3,a5] [eb3,bb5]@2, f5@2 eb3 [f5,c6] g3 [bb3,bb5] eb4@10, ~ bb2@15, ~@3 f3@13]/2", // C5 Ebmaj7 Eb5 G Bb5 A7 Gsus2 Eb5 …
  AO: "[~@15 c4, f2@18 a3 a5 c4@2 [f4,g5]@2 [a3,f5]@2 c4 g5 f4@4, c6@3 g3@13, f5@3 a5 f3@2 f5@2 [a3,g5]@2 c4 a5 f4@2 [c4,g5]@2 [f3,c6]@16, ~ c3@15]/2", // Fsus2 Dm A7 C5 F5
  AP: "[~@11 eb5!2 d6 ~ [g3,g5], eb2@3 [eb5,g5] g3 bb3 [eb4,eb5,g5,eb6] bb3 eb3 [g3,eb5,g5,eb6] bb3 eb4 g3 [bb3,eb5] [eb3,d6]@2, [eb5,g5,c6]@2 eb3 [f3,c6]@13, ~ bb2@15, ~@3 bb5@29]/2", // G Eb Cm Eb5 Ebmaj7 Cm F5
  AQ: "[eb2 ~@3 g3 bb3 ~@5 a5 ~@3 [bb2,bb5], d6@11 ~ g5@6 [f3,d5]@6 [a3,a5]@2 [g3,bb5]@2 [eb3,c6]@4, ~@2 bb2@9 ~@5 eb3@4 g3@2 bb3@10, ~@4 eb3@7 ~@3 bb3@6 g5@12, ~@6 [f3,c6]@5 ~ eb4@20]/2", // Bb Dm A Gm Cm F5
  AR: "[~@15 c3, f2@22 g5@2 [c4,a5]@2 a3 g5 f3 a5@3, [f5,bb5]@3 g3@13, ~@2 c3@14 f3@2 a3 a5 c4@2 f4@10, ~@3 a5 f3@2 g5@2 [a3,a5]@2 c4 g5 f4@2 [c4,a5]@2 [f5,bb5]@16]/2", // F Bb5 A F Bb5
  AS: "[bb5 ~@2 a5 g5 ~ [eb5,bb5] ~ bb5 a5 g5 ~ [eb5,bb5] ~ bb5 a5 g5 ~ bb2@2 eb3@2 d3@2 c3@2 a5 c7 [g5,f6,g6,a6,b6] g5 [e4,f4,g4,a4,b4,c5,g5] [b3,c4,d4], [eb2,bb2,eb3]@6 [eb2,bb2,eb3]@6 [eb2,bb2,eb3]@6 ~@8 bb2@2 [a2,d6,e6]@3 ~, eb5@4 ~@25 [e5,f5,a5,b5,c6]@3, ~@2 bb5@2 ~@14 d6 ~ d6 ~ c6 ~ bb5 ~@5 [f2,d5]@2]/2", // Eb5 G7 Cmaj7 Bm Eb5 Asus4 Fmaj7 Dm
  AT: "[g2 ~@3 d4 bb3 ~@3 [g5,d6]!3 g5 [g5,c6] g5 [d3,g5], d6@11 ~ d5@16 [g3,c6]@4, g5@6 [bb3,g5,c6]@5 ~ d4@8 d4@2 eb4@10, ~@2 d3@9 ~@3 bb3@2 g3@10 bb3@6, ~@4 g3@7 ~ g5@6 bb3@6 [d4,d6]@8]/2", // G5 C5 G5 C5 C7 D
  AU: "[~@6 eb4 bb3 ~@3 eb5 ~@2 [eb3,c6] g3, [eb2,d6]@8 g3@2 [bb3,bb5]@4 g5@17 ~, eb5@6 [f3,eb5,c6]@8 eb5@6 a3@2 bb3@9 ~, ~@2 bb2@13 ~@3 g3@6 [a3,eb5,bb5]@7 ~, ~@4 eb3@11 ~ eb3@10 g3@4 ~@2]/2", // Cm Ebmaj7 Bb F7 Eb
  AV: "~@7 [c4,a5], [f2,f5,bb5]@6 g5@2 [a3,a5]@2 c4 g5 f4@4, ~ c3@7, ~@3 a5@3 g3@10, ~ f3@3", // F Bb5 A
  AW: "~@7 c4, [f3,f5,bb5]@13 a5@2 ~, ~@2 a3@4 [f4,g5]@4 c4@2 f4@3 ~, ~@3 a5@5 a3@7 ~, ~@4 c4@4 a5@3 g5@4 ~", // Bb5 Fsus2
  AX: "[f5,bb5] ~ bb5 a5 eb3@2 f3@2 bb5 a5 bb3@2 eb4@2 bb5 a5, eb2@2 bb2@2 g5 ~ bb5 ~ g3@2 g5 ~ bb5 ~ bb3@2", // Bb5
  AY: "eb3 g3 [bb3,g5] [eb4,a5] [g3,bb5] ~ [eb3,d6] g3, g5 ~ f5 ~@7 [bb3,c6]@5 ~", // Eb Ebdim Gm Ebmaj7 Bbsus2
  AZ: "[g2 ~ g3 ~@2 bb3 ~@2 g3 ~@2 g5 ~@3 d3, [g5,d6]@3 [g5,db6]@3 ~@3 g5@2 eb4@5, ~ d3@2 bb3@2 ~@2 bb3@2 [bb3,db6]@4 [bb3,db6]@3, ~@4 d4@2 [d4,g5,d6]@3 ~ d4@2 [d4,g5,d6]@4, ~@7 [g3,bb5]]/2", // G5 Gdim Bbm G5 Gm
  BA: "[~@14 [eb3,g5] bb2, eb2@14 bb3 eb5 eb3@2 [f3,c6]@2 g3@2 bb3@2 [a3,bb5]@2 g3@5 ~, d6@6 f3@4 d6@21 ~, eb5@4 eb3@2 [eb5,db6]@2 g3@2 [bb3,eb5]@2 eb4@19 ~, ~@2 bb2@12 db6@17 ~]/2", // Eb F5 Bbmaj7 Eb7 Eb5
  BB: "[~@8 [f5,bb5] ~@2 f5 [f5,bb5] ~@2 c3, f2@14 c4@2 f3@2 a3 [f5,bb5] c4@2 f4@2 c4@2 a3 [f5,bb5] f3@4, [f5,bb5]@3 g3@13, ~ c3@5 f4 a5@9, ~@3 a5 f3@2 g5@2 [a3,a5]@2 c4 g5@21]/2", // Bb5 A
  BC: "[[eb2,bb2,eb3,eb5,g5,c6]@6 [eb2,bb2,eb3,eb5,g5,c6]@7 [eb2,bb2,eb3,eb5,g5,c6]@8 ~@7 eb5@4 ~@8 [a2,g5]@5 [f2,eb5]@3, ~@11 g5@7 [bb2,bb5]@4 ~@2, ~@11 bb2@5 [c3,eb5,c6]@6 ~@2, ~@22 c6@6 d3@15 ~@5, ~@22 eb5@3 eb3@19 ~@4]/3", // Cm7 A7 F7 Bb Cm
  BD: "[~@2 d3@3 ~@64 g6@15 ~@28, ~ g2@11 d4@39 ~@5, ~@2 d4@11 a3@5 bb3@84 ~@10, ~@2 bb3@7 g3@93 ~@10, ~@2 g3@3 d3@27 g4@7 bb4@8 d5@9 g5@12 d6@16 ~@28]/7",
})).s("gm_piano").gain(0.23).pan(0.4)

// chords · reed organ
const reed_organ = note("<~@128 A@2 B@2 C@2 D@2 E F G@2 H I@8 ~@3>".pickRestart({
  A: "[g5@3 f5@4 g5@4 f5@2 g5 ~@2, c5@7 ~]/2", B: "[g5@6 f5@8 g5@8 f5@4 g5@3 ~@3, [bb4,d5]@29 ~@3]/2",
  C: "[[a4,f5]@29 ~@3]/2", D: "[[bb4,d5,g5]@7 ~]/2", E: "g5@6 f5@9 ~, ~@3 g5@3 ~@2", F: "g5@3 f5@2 g5 ~@2",
  G: "[g5@5 f5@10 g5@7 f5@4 g5@2 ~@4, [bb4,d5]@7 ~]/2", H: "[a4,c5,f5]", I: "[~@3 d5@4 ~ [bb4,g5]@56, ~@15 d5@113]/8",
})).s("gm_reed_organ").gain(0.16)

// other · lead 3 calliope · "CALLIOPE"
const lead_3_calliope = note("<~@6 A@2 B@2 ~@32 C D E F ~@34 G D H I@2 ~ H F ~@64>".pickRestart({
  A: "[a5@25 ~ g5@5 ~]/2", B: "[d5@5 ~@3]/2", C: "a5@9 ~ g5@3 ~ d5@2", D: "a5@9 ~ bb5@5 ~", E: "a5@10 g5@3 ~ f5@2",
  F: "g5", G: "a5@5 g5@2 d5", H: "a5@5 g5@2 f5", I: "g5/2",
})).s("gm_lead_3_calliope").gain(0.24)

// other · distortion guitar · "DISTORTION"
const distortion_guitar = note(`<
  ~@88 A@8 B@2 C@2 D@2 C@2 E@2 C@2 F@2 G@2 B@2 C@2 D@2 C@2 E@2 C@2 F@2 G@2 B@2 C@2 D@2 C@2 E@2 C@2 F@2 H@4 ~@6
>`.pickRestart({
  A: "[eb4@3 f4]/2", B: "[g3@31 ~]/2", C: "eb3/2", D: "f3/2", E: "g3/2", F: "[f3@15 ~]/2",
  G: "[eb3@2 ~ eb3 ~@2 eb3@10]/2", H: "[eb3@4 ~@2 eb3@2 ~@5 eb3@36 ~@15]/4",
})).s("gm_distortion_guitar").gain(0.2)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  A@2 B@6 C D B@2 E@2 F G H@2 I@2 E@2 J K L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 B@2 U V W@2 B@2 E@2 F G H@2 I@2 E@2 J K
  L@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 X@2 Y Z AA@2 AB@2 AC@2 AD@6 AE@2 AF@2 AG@2 AH@2 AE@2 AF@2 AI@2 AJ AK AE@2 AF@2
  AG@2 AH@2 AE@2 AF@2 AI@2 AJ AK AE@2 AF@2 AG@2 AH@2 AE@2 AF@2 AI@2 AL@2 AM@8
>`.pickRestart({
  A: "[eb3@3 d3@4 c3@2 bb2 c3 d3 c3 bb2 a2 bb2]/2", B: "[g2@15 d3]/2", C: "g2", D: "~@5 d3 eb3 f3", E: "g2/2",
  F: "eb3@15 ~", G: "c4@12 bb3@2 a3 ~", H: "[~@15 f3, g2, ~@13 d3@3, ~@7 eb3]/2", I: "[~@15 d3, g2]/2",
  J: "~@7 g3, eb3", K: "c4", L: "[g2@15 g2]/2", M: "f3/2", N: "[~@7 d3, c3]/2", O: "[eb3@3 f2]/2", P: "[eb3@15 d3]/2",
  Q: "[c3@15 d3]/2", R: "[~@7 d3, eb3]/2", S: "[~@7 f2, eb2]/2", T: "eb3/2", U: "g2@15 ~",
  V: "~@2 a2@2 bb2@4 c3@4 d3@3 ~", W: "[a3@3 g3@3 f3 g3@4 eb3 d3 c3 bb2 a2]/2", X: "[g2@25 ~ bb2@6]/2", Y: "g2@13 ~@3",
  Z: "~ a2 bb2@2 c3@2 d3 ~", AA: "[a3@3 g3@13]/2", AB: "[eb2@13 ~@3]/2", AC: "[eb2@24 f2@7 ~]/2", AD: "[eb2@3 f2]/2",
  AE: "[g2@31 ~]/2", AF: "[eb2@31 ~]/2", AG: "[f2@29 ~@3]/2", AH: "eb2/2", AI: "[f2@31 ~]/2",
  AJ: "eb2@4 ~@2 eb2@3 ~@3 eb2@4", AK: "~@2 bb2@2 eb3@2 d3@2 c3@2 bb2 ~ a2@2 f2@2",
  AL: "[eb2@4 ~@2 eb2@3 ~@4 eb2@8 ~ bb2@3 eb3@3 d3@3 ~]/2", AM: "[c3@3 ~ bb2@2 ~@2 a2@5 f2@5 g2@100 ~@10]/8",
})).s("gm_fretless_bass").gain(0.18)

// drums · kick
const kick = s("bd").struct(`<
  ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@2 B ~@6
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "~ x ~@6",
})).gain(0.22)

// drums · rim
const rim = s("rim").struct("<~@2 A@40 ~@6 A@32 ~@8 A@54 B C D ~@7>".pickRestart({
  A: "x!4", B: "x ~@3 x ~@3 x ~@4 x ~@2", C: "~@3 x ~@5 x ~@6", D: "x!2",
})).gain(0.13)

// drums · snare
const snare = s("sd").struct(`<
  ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~
  A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A B C ~ A ~
  A ~ A ~ A ~ A ~ A ~ A D E F ~@7
>`.pickRestart({
  A: "~ x", B: "x", C: "~@2 x ~@3 x ~ x ~ x ~ x!3 ~", D: "x ~@5 x ~@6 x ~@2", E: "~@3 x ~@2 x ~",
  F: "x ~ x ~@3 x ~@3 x ~@4 x",
})).gain(0.16)

// drums · hihat
const hihat = s("hh").struct("<~@88 A@22 ~@2 B A@13 C ~ A@14 C ~@9>".pickRestart({
  A: "x!4", B: "~ x!3", C: "x",
})).gain(0.16)

// drums · low tom
const low_tom = s("lt").struct("<~@41 A ~@5 B ~@31 A ~@7 B ~@7 C ~@14 D E ~@14 F ~@15 G H I ~@7>".pickRestart({
  A: "~@3 x", B: "~@6 x!2", C: "~@5 x!3", D: "~@2 x ~@2 x ~@2", E: "x ~@5 x ~@3 x ~ x ~ x!2", F: "~@3 x ~@4",
  G: "~@4 x ~@6 x ~@4", H: "~@3 x ~@12", I: "x ~@3 x ~@3 x ~@4 x ~@2",
})).gain(0.16)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@91 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A ~@3 B ~@4 C ~@4 A ~ A ~@3 A ~@3 A ~@12
>`.pickRestart({
  A: "~@7 x", B: "~ x ~@5 x", C: "~@3 x ~@4",
})).gain(0.16)

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

// drums · crash
const crash = s("cr").struct("<~@42 A ~@3 A ~ A ~@31 A ~@5 A ~ A ~@7 A ~@15 A ~@15 A ~@16 B ~@6>".pickRestart({
  A: "x", B: "~ x ~@6",
})).gain(0.13)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@2 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A B A ~ A ~@2 C A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A B A ~ A ~ A ~ A C A ~ A ~ A ~ A D A ~ A ~ A ~ A ~ A ~ A ~ A ~ E D A ~ A ~ A ~
  A ~ A ~ A ~ A ~ F ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ G H ~@8
>`.pickRestart({
  A: "~ x", B: "~@5 x ~@2", C: "~@3 x ~@4", D: "~ x ~@6", E: "x!2 ~ x!2 ~ x!2", F: "~ x ~@2 x ~ x!2",
  G: "~ x ~@2 x ~@3", H: "x ~@8 x ~@6",
})).gain(0.13)

// drums · ride
const ride = s("rd").struct("<~@46 [~ x] [x!2] ~@38 [~ x] [x!2] ~@64>").gain(0.13)

// drums · bongos
const bongos = s("bongo:4").struct(`<
  ~@7 A ~@5 B ~ C ~@3 C ~@3 B ~ D ~@3 B ~@2 B ~@2 D E ~@4 A ~@3 D ~@5 C ~@9 C ~@15 C ~ C ~@3 B ~@3 F G H G ~ I ~@2 G@2 ~
  G ~ G ~ D G@2 ~ G ~ G ~@2 F ~ G@2 ~ G ~ G ~ G ~@3 G ~ J G@2 ~ G ~ G ~@3 G ~ G ~ G ~@3 K ~@7
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@3 x!2 ~@3", C: "~@3 x", D: "~@7 x", E: "x", F: "~ x ~@6", G: "~@5 x ~@2", H: "~@5 x ~ x",
  I: "x ~@4 x ~@2", J: "~@5 x!2 ~", K: "~@13 x ~@2",
})).gain(0.5)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  ~@7 A ~@6 B ~@4 C ~@7 B ~@3 D ~ E ~@7 A ~@4 D ~@6 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@4 E ~@2 F ~@2 E@3 ~ E ~ E ~
  E ~ E ~ E ~@2 D E ~ E ~ E ~@4 E@2 ~ E ~ E ~ E ~ E ~ E ~@2 G E ~ E ~ E ~ H ~ E ~ E ~ E ~@11
>`.pickRestart({
  A: "~ x", B: "~@7 x", C: "~@3 x!2 ~@3", D: "x", E: "~@3 x", F: "~ x ~@6", G: "~@2 x!3 ~@6 x!3 ~@2", H: "~@13 x ~@2",
})).gain(0.5)

// drums · congas
// … 29 more lines

More by Queen