Strudelify

supremacy

Matthew Bellamy

KeyA minorTempo120 bpm
0:00/0:00
// supremacy — Matthew Bellamy
// 120 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/4 at bar 1, 4/4 at bar 7) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 1 "Flute" named as a pipe, played on flute (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/103666; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · flute
const flute = note(`<
  A B C D E F ~@8 G H@2 I J K L@2 G H@2 I J M N@2 O ~@3 P@4 Q@4 R@2 S@2 P@4 T U V W X@4 T U Y@2 Z@3 ~@9 G H@2 I J M N@2
  O ~@3 P@4 Q@4 R@2 S@2 P@4 T U V W X@4 T U Y@2 Z@3
>`.pickRestart({
  A: "~@6 a5!2", B: "a5 a5@2 ~@5", C: "~@2 b5!3 b5@2 ~", D: "~@6 c6!2", E: "c6 c6@2 ~@5", F: "~@2 d6!3 d6@2 ~",
  G: "a5!3 a5@3 g#5!2", H: "[g#5 g#5@3 f5!3 f5@3 e5!3 e5@3]/2", I: "f5!2 ~ f5 d5 d#5 e5!2", J: "~@2 a5!3 a5@3",
  K: "g#5!3 g#5@3 f5!2", L: "[f5 f5@3 e5!3 e5@3 g5 g#5 a5 c6@2 ~]/2", M: "b5!3 b5@3 c6!2",
  N: "[c6 c6@3 d6!3 d6@3 d#6!6]/2", O: "e6", P: "[a5 e5 c5 a4 a5 e5 c5 a4 a5 e5 c5 a4 a5 e5 c5 a4, a2@7 e2]/2",
  Q: "[g#5 e5 b4 g#4 g#5 e5 b4 g#4 g#5 e5 b4 g#4 g#5 e5 b4 g#4, e3@7 b2]/2",
  R: "[f5 d5 a4 f4 f5 d5 a4 f4 f5 d5 a4 f4 f5 d5 a4 f4, d3@7 a2]/2",
  S: "[f5 d5 a4 f4 f5 d5 a4 f4 f5 d5 a4 f4 f5 d5 a4 f4, d3@7 d3]/2", T: "f5 c5 a4 f4 f5 c5 a4 f4, c6",
  U: "f5 c5 a4 f4 f5 c5 a4 f4, d6 e6", V: "c6 g5 e5 c5 c6 g5 e5 c5, e6", W: "c6 g5 e5 c5 ~ g5 e5 c5, d6 c6",
  X: "[a5 e5 c5 a4 a5 e5 c5 a4 a5 e5 c5 a4 ~ e5 c5 a4 g#5 e5 b4 g#4 g#5 e5 b4 g#4 g#5 e5 b4 g#4 g#5 e5 b4 [g#4,g5], c6@6 a5 b5@8 ~]/4", // G#maj7
  Y: "[f5 d5 a4 f4 f5 d5 a4 f4 f5 d5 a4 f4 f5 d5 [a4,d6] [f4,d#6], e6@5 d6 c6 ~]/2", // D5 F7
  Z: "[a5 e5 c5 a4 a5 e5 c5 a4 a5 e5 c5 a4 a5 e5 c5 a4 g#5@2 ~@6, e6@3 ~]/3",
})).s("gm_flute").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C D E F ~@44 G H I J K@4 G H L M N@2 O ~@21 P@4 Q@2 R S T@4 P@4 G H I J K@4 G H L M N@2 O
>`.pickRestart({
  A: "~@6 a4!2", B: "a4 a4@2 ~@5", C: "~@2 g#4!3 g#4@2 ~", D: "~@6 c5!2", E: "c5 c5@2 ~@5", F: "~@2 c5!3 c5@2 ~",
  G: "a4@3 e4", H: "a4@4 e4@4 g4@3 b4@2 d5@3", I: "c5@3 a4", J: "d5 c5", K: "[e5@6 e5 e5@9]/4", L: "e5 d5", M: "c5 a4",
  N: "c5/2", O: "b4 ~@3", P: "a4/4", Q: "b4/2", R: "c5", S: "b4", T: "f4/4",
})).s("gm_alto_sax").gain(0.25)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note("<~@34 A@4 B@2 C D E@4 A@4 ~@67>".pickRestart({
  A: "a4/4", B: "b4/2", C: "c5", D: "b4", E: "f4/4",
})).s("gm_alto_sax").gain(0.15)

// other · alto sax · "Alto Saxophone"
const alto_sax_2 = note(`<
  A B C D E F ~@44 G H I J K@4 G H ~ L M@2 N ~@21 O@4 P@2 Q R S@4 T U V U G H I J K@4 G H ~ L M@2 N
>`.pickRestart({
  A: "~@6 c5!2", B: "c5 c5@2 ~@5", C: "~@2 b4!3 b4@2 ~", D: "~@6 a4!2", E: "a4 a4@2 ~@5", F: "~@2 a4!3 a4@2 ~",
  G: "f4@3 e4", H: "f4@4 c4@4 e4@3 g4@2 b4@3", I: "g4@3 a4", J: "c5!2", K: "[a4@6 a4 g#4@9]/4", L: "e4 f4", M: "a4/2",
  N: "g#4 ~@3", O: "e4/4", P: "g#4/2", Q: "a4", R: "g#4", S: "d4/4", T: "e4", U: "f4", V: "f#4",
})).s("gm_alto_sax").gain(0.25)

// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft_2 = note("<~@34 A@4 B@2 C D E@4 F G H G ~@67>".pickRestart({
  A: "e4/4", B: "g#4/2", C: "a4", D: "g#4", E: "d4/4", F: "e4", G: "f4", H: "f#4",
})).s("gm_alto_sax").gain(0.15)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B C A B D ~@28 E@4 F@2 G H I@2 J K L@4 M N O P Q@4 M N K R S@2 T ~@21 E@4 F@2 G H I@2 J K L@4 M N O P Q@4 M N K R
  S@2 T
>`.pickRestart({
  A: "~@6 e4!2", B: "e4 e4@2 ~@5", C: "~@2 e4!3 e4@2 ~", D: "~@2 d4!3 d4@2 ~", E: "c4/4", F: "d4/2", G: "e4", H: "d4",
  I: "a3/2", J: "b3", K: "c4 b3", L: "a3/4", M: "c4@3 g3", N: "c4@4 g3@4 c4@3 d4@2 e4@3", O: "e4@3 a3", P: "d4 c4",
  Q: "[c4@6 a3 b3@9]/4", R: "a3 b3", S: "c4/2", T: "b3 ~@3",
})).s("gm_tenor_sax").gain(0.15)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D E F ~@28 G ~@15 H I J K H@2 L@2 H I M N O@3 ~@21 P H P H Q@2 R@2 S T S T U P@3 V W X Y Z@4 V W AA@2 AB@3
>`.pickRestart({
  A: "~@6 a3!2", B: "a3 a3@2 ~@5", C: "~@2 b3!3 b3@2 ~", D: "~@6 c4!2", E: "c4 c4@2 ~@5", F: "~@2 d4!3 d4@2 ~", G: "a3",
  H: "a3 e3 a3 e3", I: "a3@4 e3@4 g3@3 b3@2 d4@3", J: "c4 g3 c4 g3", K: "c4 g3 b3 g3", L: "b3 g#3 b3 g#3",
  M: "d4 g3 c4 g3", N: "b3 g3 a3 g3", O: "[e4@3 ~]/3", P: "a3@3 e3", Q: "[e3@7 b3]/2", R: "e4/2", S: "d4@3 a3",
  T: "d4 a3 d4 a3", U: "c4@3 e3", V: "c3", W: "d3 e3", X: "e3", Y: "d3 c3", Z: "[c3@12 a2@2 b2@16 ~ g2]/4",
  AA: "[e3@10 d3@2 c3@2 d3 d#3]/2", AB: "[e3@3 ~]/3",
})).s("gm_baritone_sax").gain(0.3)

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  A B C D E F ~@8 G H@2 I J K L@2 G H@2 I J M N@2 O ~@19 P Q O R S@4 P Q T@2 U@3 ~@9 G H@2 I J M N@2 O ~@34
>`.pickRestart({
  A: "~@6 c5!2", B: "c5 c5@2 ~@5", C: "~@2 b4!3 b4@2 ~", D: "~@6 e5!2", E: "e5 e5@2 ~@5", F: "~@2 c5!3 c5@2 ~",
  G: "a4!3 a4@3 g#4!2", H: "[g#4 g#4@3 f4!3 f4@3 e4!3 e4@3]/2", I: "f4!2 ~ f4 d4 d#4 e4!2", J: "~@2 a4!3 a4@3",
  K: "g#4!3 g#4@3 f4!2", L: "[f4 f4@3 e4!3 e4@3 g4 g#4 a4 c5@2 ~]/2", M: "b4!3 b4@3 c5!2",
  N: "[c5 c5@3 d5!3 d5@3 d#5!6]/2", O: "e5", P: "c5", Q: "d5 e5", R: "d5 c5", S: "[c5@12 a4@2 b4@16 ~ g4]/4",
  T: "[e5@10 d5@2 c5@2 d5 d#5]/2", U: "[e5@3 ~]/3",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "Bb Trumpet"
const trumpet_2 = note(`<
  A B C D E F ~@8 G H@2 I J K L@2 G H@2 I J M N@2 O ~@19 P Q R S T@4 P Q U@2 V@3 ~@9 G H@2 I J M N@2 O ~@34
>`.pickRestart({
  A: "~@6 a4!2", B: "a4 a4@2 ~@5", C: "~@2 a4!3 a4@2 ~", D: "~@6 c5!2", E: "c5 c5@2 ~@5", F: "~@2 d5!3 d5@2 ~",
  G: "a4!3 a4@3 g#4!2", H: "[g#4 g#4@3 f4!3 f4@3 e4!3 e4@3]/2", I: "f4!2 ~ f4 d4 d#4 e4!2", J: "~@2 a4!3 a4@3",
  K: "g#4!3 g#4@3 f4!2", L: "[f4 f4@3 e4!3 e4@3 g4 g#4 a4 c5@2 ~]/2", M: "g#4!3 g#4@3 e4!2",
  N: "[e4 e4@3 f#4!3 f#4@3 g#4!6]/2", O: "a4", P: "c5", Q: "d5 e5", R: "e5", S: "d5 c5", T: "[c5@12 a4@2 b4@16 ~ g4]/4",
  U: "[e5@10 d5@2 c5@2 d5 d#5]/2", V: "[e5@3 ~]/3",
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note(`<
  ~@34 A B C D E F@2 ~ G H I J K@2 ~@2 B L M N O@4 B L P Q R@2 S@6 ~@16 A B C T U V ~@2 G H I T R@2 ~@2 B L M N O@4 B L
  P Q R@2 W
>`.pickRestart({
  A: "e4@3 c4", B: "a3@3 e3", C: "a3 b3 c4 e4", D: "d4@2 c4@2 ~@2 b3 a3", E: "b3@3 e3", F: "e3/2", G: "d4@3 a3",
  H: "f3@3 d3", I: "f3 a3 c4 e4", J: "d4 c4 b3 a3", K: "[~ c4@7]/2", L: "a3@4 e3@4 g3@3 b3@2 d4@3", M: "c4@3 a3",
  N: "d4 c4", O: "[c4@6 a3 b3@9]/4", P: "e4 d4", Q: "c4 a3", R: "c4/2",
  S: "[b3@2 ~@2 a3@2 e4@6 d4 c4 d4@3 e4@27 ~@4]/6", T: "d4@4 c4@4 b3 c4 ~ b3 a3@4", U: "b3@3 g#3", V: "e3", W: "b3 ~@3",
})).s("gm_trombone").gain(0.4)

// other · trombone
const trombone_2 = note("<~@50 A B C D E@4 A B ~ F G@2 H ~@37 A B C D E@4 A B ~ F G@2 H>".pickRestart({
  A: "f3@3 e3", B: "f3@4 c3@4 e3@3 g3@2 b3@3", C: "g3@3 a3", D: "c4!2", E: "[a3@6 a3 g#3@9]/4", F: "e3 f3", G: "a3/2",
  H: "g#3 ~@3",
})).s("gm_trombone").gain(0.3)

// other · electric guitar clean · "Electric Guitar"
const electric_guitar_clean = note(`<
  A B@2 C D@2 E@3 F@2 G@3 E@3 F@2 H@3 E@3 I@2 J K@2 L ~@35 E@3 F@2 G@3 E@3 I@2 J K@2 L ~@34
>`.pickRestart({
  A: "a2!3 a2@2 ~ [a3,c4,e4,g#4]!2", // Am
  B: "[[a3,c4,e4,g#4] [a3,c4,e4,g#4]@2 ~ a2!3 a2@2 ~ [b3,e4,g#4,b4]!3 [b3,e4,g#4,b4]@2 ~]/2", // Am E
  C: "a2!3 a2@2 ~ [c4,e4,a4,c5]!2", D: "[[c4,e4,a4,c5] [c4,e4,a4,c5]@2 ~ a2!3 a2@2 ~ [d4,a4,c5]!3 [d4,a4,c5]@2 ~]/2",
  E: "[a2 c3 a2 e3 a2 f3 a2 e3]/3", F: "[a2@3 a2 g3 g#3 a3 a2@3 c3@3 a2@3]/2",
  G: "[e3@3 a2@3 f3@3 a2@3 e3@3 a2@3 g3 g#3 a3 c4@3]/3", H: "[e3@3 a2@3 f3@3 a2@3 e3@3 a2@3 g3 g#3 a3 c4@2 ~]/3",
  I: "[a2@3 a2 g3 g#3 a3 a2@3 a3!3 a3@3]/2", J: "b3!3 b3@3 c4!2", K: "[c4 c4@3 d4!3 d4@3 d#4!3 d#4@3]/2", L: "e4",
})).s("gm_electric_guitar_clean").gain(0.4)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  A B C D E F G@3 H@2 I@3 G@3 H@2 J@3 G@3 K@2 L M N O@8 P@4 Q@2 R@2 O@4 S T U V W X Y Z S AA AB AC Y AD AE ~ G@3 H@2 I@3
  G@3 K@2 L M N AF AG O@6 P@4 Q@2 R@2 O@4 S T U V W X Y Z S AA AB AC Y AD AE
>`.pickRestart({
  A: "~@6 a1!2", B: "a1 a1@2 ~@5", C: "~@2 b1!3 b1@2 ~", D: "~@6 c2!2", E: "c2 c2@2 ~@5", F: "~@2 d2!4 ~@2",
  G: "[a1 c2 a1 e2 a1 f2 a1 e2]/3", H: "[a1@3 a1 g2 g#2 a2 a1@3 c2@3 a1@3]/2",
  I: "[e2@3 a1@3 f2@3 a1@3 e2@3 a1@3 g2 g#2 a2 c3@3]/3", J: "[e2@3 a1@3 f2@3 a1@3 e2@3 a1@3 g2 g#2 a2 c3@2 ~]/3",
  K: "[a1@3 a1 g2 g#2 a2 a1@3 a2!4 a1@2]/2", L: "b2!4 a1@2 c3!2", M: "c3!2 a1@2 d3!4", N: "a1@2 d#3!6",
  O: "[a1@7 e1]/2", P: "[e2@7 b1]/2", Q: "[d2@7 a1]/2", R: "[d2@7 d2]/2", S: "f1@2 f1!2 f1@2 f1@2",
  T: "f1!2 f1@2 g1 a1 b1 c2", U: "c2@2 c2!2 c2@2 c2@2", V: "c2!2 c2@2 b1!4", W: "a1@2 a1!2 a1@2 a1@2",
  X: "a1!2 a1@2 a1!4", Y: "e2@2 e2!2 e2@2 e2@2", Z: "e2!2 e2@2 e2!3 b1", AA: "f1!2 f1@2 f1 g1 a1 c2",
  AB: "d2@2 d2!2 d2@2 d2@2", AC: "d2!2 d2@2 d2!4", AD: "e2!2 e2@2 e2!4", AE: "e2 ~@3", AF: "a1", AG: "a1@3 e1",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@6 A@8 B@7 C B@3 D E F G B ~@36 A@4 B@3 C B@3 D E F G B ~@35>".pickRestart({
  A: "x!2", B: "x", C: "x ~@2 x ~@4", D: "x ~@2 x ~ x ~ x", E: "~@3 x", F: "~ x", G: "~ x ~@2",
})).gain(0.4)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@31 A B A B A B A B A B A B A B A B A B A B A B A B ~ B A B A B A B A ~@19 A B A B A B A B A B A B A B A B A B A B A
  B A B ~ B A B A B A B A ~
>`.pickRestart({
  A: "~@3 x", B: "x",
})).gain(0.2)

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

// drums · hihat
const hihat = s("hh").struct("<~@14 A@7 B A@3 B ~@44 A@3 B A@3 B ~@39>".pickRestart({
  A: "x!4", B: "x!2 ~@2",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@28 [~@4 x!4] ~@51 [~@4 x!4] ~@36>").gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@27 [x!4 ~@2 x!2] [x!2 ~@6] ~@50 [x!4 ~@2 x!2] [x!2 ~@6] ~@36>").gain(0.4)

// drums · crash
const crash = s("cr").struct("<~@14 A ~@6 B A ~@2 C D E F A@2 ~@42 B ~@3 C D E F A@2 ~@34>".pickRestart({
  A: "x", B: "~@5 x ~@2", C: "~@7 x", D: "~@3 x", E: "~ x", F: "~ x ~@2",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct("<~@13 [x!4 ~@12] ~@103>").gain(0.45)

stack(
  flute, alto_sax, alto_sax_soft, alto_sax_2, alto_sax_soft_2, tenor_sax, baritone_sax, trumpet, trumpet_2, trombone,
  trombone_2, electric_guitar_clean, bass, kick, kick_soft, snare, hihat, low_tom, mid_tom, crash, ride
)