Strudelify

MEGALOVANIA for Jazz Ensemble

Toby Fox

KeyF majorTempo120 bpm
0:00/0:00
// MEGALOVANIA for Jazz Ensemble — Toby Fox
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3330556; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. 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.

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@4 A B C D A B C D A B C D A B C D A B C D E F G H I J K L E F G H I J K L ~@8 M N O P M Q R@2 S T U V S T W@2 S T U
  V S T W@2 ~@6
>`.pickRestart({
  A: "d3!3 ~ d3!2 ~ d3 ~ d3 ~ d3!4 ~", B: "c3!3 ~ c3!2 ~ c3 ~ c3 ~ c3!4 ~", C: "b2!3 ~ b2!2 ~ b2 ~ b2 ~ b2!4 ~",
  D: "bb2!3 ~ bb2!2 ~ c3 ~ c3 ~ c3!4 ~", E: "~@8 d4 bb3 d4 e4 f4 e4 d4 bb3", F: "ab3 [f3,g3] d3@2 e3@9 ab3@2 a3",
  G: "c4 ~ a3 ab3 g3 f3 d3 e3 f3@2 g3@2 a3@2 c4@2", H: "db4@2 ab3 ~ ab3 g3 f3 g3@9", I: "d3 e3 f3 d4 c4@2 a3@2",
  J: "g3 a3 c4 a3", K: "a3@8 a3 ab3 g3 gb3 f3 e3 eb3 d3", L: "ab3 bb3", M: "d3!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3",
  N: "c3!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3", O: "b2!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3",
  P: "b2 g3 d4!2 a3 ~ f4 ab3 d4 g3 ~ f3@2 d3 f3 g3", Q: "e3!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3",
  R: "~@2 f4@2 e4@3 c4@2 e4@2 d4@2 a3 c4 d4", S: "bb2@2 bb3@2 bb2!2 bb3 bb2@2 bb2 bb3 bb2!3 bb3@2",
  T: "c3@2 c4@2 c3!2 c4 c3@2 c3 c4 c3!3 c4@2", U: "d3@2 d4@2 d3!2 d4 db3@2 db3 db4 db3!3 db4@2",
  V: "c3@2 c4@2 c3!2 c4 b2@2 b2 b3 b2!3 b3@2", W: "d3@2 d4@2 d3!2 d4 d3@2 d3 d4 d3!3 d4@2",
})).s("gm_tenor_sax").gain(0.24)

// other · tenor sax · "Alto Saxophone"
const tenor_sax_2 = note(`<
  ~@8 A B C D A B C D ~@2 E F G H I J K L M N O P Q R K L M N O P Q R ~@16 S T U V S T W@2 S T U V S T X@2 ~@6
>`.pickRestart({
  A: "d4!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4", B: "c4!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4",
  C: "b3!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4", D: "bb3!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4",
  E: "f4@2 f4!2 ~ g4 ~ ab4 ~ a4 ~ c5@2 a4@3", F: "d4 ~ d4 ~ d4 a3 d4 c4@4 g4@5", G: "a4@2 a4!2 ~ a4 ~ a4@2 g4 ~ g4@5",
  H: "a4@2 a4!2 ~ a4 ~ g4 ~ a4 ~ d5 ~ a4 g4@2", I: "d5 a4 g4 f4 c5 g4 f4 e4", J: "bb3@2 c4 d4 ~ f4 ~ c5@9",
  K: "~@8 d5 bb4 d5 e5 f5 e5 d5 bb4", L: "ab4 [f4,g4] d4@2 e4@9 ab4@2 a4",
  M: "c5 ~ a4 ab4 g4 f4 d4 e4 f4@2 g4@2 a4@2 c5@2", N: "db5@2 ab4 ~ ab4 g4 f4 g4@9", O: "d4 e4 f4 d5 c5@2 a4@2",
  P: "g4 a4 c5 a4", Q: "a4@8 a4 ab4 g4 gb4 f4 e4 eb4 d4", R: "ab4 bb4", S: "f4@2 f4@2 bb3 f4@2 f4@2 f4@2 bb3!3 f4@2",
  T: "g4@2 g4@2 c4 g4@2 g4@2 g4@2 c4!3 g4@2", U: "a4@2 a4@2 d4 a4@2 ab4@2 ab4@2 db4!3 ab4@2",
  V: "g4@2 g4@2 c4 g4@2 gb4@2 gb4@2 b3!3 gb4@2", W: "a4@2 a4@2 d4 a4@2 a4@2 a4@2 d4!3 a4@2",
  X: "d4@2 d4@2 ~ d4@2 d4@2 d4@2 ~@3 d4@2",
})).s("gm_tenor_sax").gain(0.27)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@8 A B C D A B C D E F ~@2 G H ~ I J K L M N O P Q J K L M N O P Q ~@14 R@2 S T U V S T W@2 S T U V S T ~@8
>`.pickRestart({
  A: "d4!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4", B: "c4!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4",
  C: "b3!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4", D: "bb3!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4",
  E: "f5@2 f5!2 ~ f5 ~ f5@2 d5@2 d5@5", F: "f5@2 f5!2 ~ g5 ~ ab5@2 g5 f5 d5 f5 g5 ~@2",
  G: "f4@2 f4!2 ~ f4@2 f4@2 d4@2 d4@5", H: "c5@2 c5!2 ~ c5@2 a4 ~ c5@2 bb4 ~ a4 g4@2", I: "~@3 bb3 ~ d4@2 e4@9",
  J: "~@8 f5 d5 f5 g5 ab5 g5 f5 d5", K: "ab5 [f5,g5] f5@2 g5@9 ab5@2 a4, ~@2 d5 ~@13",
  L: "c5@2 a4 ab4 g4 f4 d4 e4 f4@2 g4@2 a4@2 c5@2", M: "db5@2 ab4@2 ab4 g4 f4 g4@9", N: "f4 g4 a4 f5 e5@2 d5@2",
  O: "e5 f5 g5 e5", P: "d5 ~", Q: "db5 eb5", R: "~@2 f5@2 e5@3 c5@2 e5@2 d5@2 a4 c5 d5",
  S: "bb4@2 bb4@2 bb3 bb4@2 bb4@2 bb4@2 bb3!3 bb4@2", T: "c5@2 c5@2 c4 c5@2 c5@2 c5@2 c4!3 c5@2",
  U: "d5@2 d5@2 d4 d5@2 db5@2 db5@2 db4!3 db5@2", V: "c5@2 c5@2 c4 c5@2 b4@2 b4@2 b3!3 b4@2",
  W: "d5@2 d5@2 d4 d5@2 d5@2 d5@2 d4!3 d5@2",
})).s("gm_trumpet").gain(0.3)

// other · trombone
const trombone = note(`<
  ~@8 A B C D A B C D ~@4 A B C D E F G H E F G H E F G H E F G H I J K@2 I J L@2 I J K@2 I J L@2 M N O P M N Q@2 M N O
  P M N A@2 ~@6
>`.pickRestart({
  A: "d3!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3", B: "c3!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3",
  C: "b2!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3", D: "bb2!2 d4@2 a3 ~@2 ab3 ~ g3 ~ f3@2 d3 f3 g3",
  E: "bb2 ~ bb2 ~ bb2!4 ~ bb2!6 ~", F: "c3 ~ c3 ~ c3!4 ~ c3!6 ~", G: "d3 ~ d3 ~ d3!4 ~ d3!6 ~",
  H: "db3 ~ db3 ~ db3!3 eb3 ~ eb3!6 ~", I: "bb2 ~ bb2 ~ bb2!2 ~ bb2 ~ bb2 ~ bb2!4 ~",
  J: "c3 ~ c3 ~ c3!2 ~ c3 ~ c3 ~ c3!4 ~", K: "b2 ~ b2 ~ b2!2 ~ b2 ~ b2 ~ b2!4 ~",
  L: "d3 ~ d3 ~ d3!2 ~ d3 ~ d3 ~ d3!4 ~", M: "bb2@2 bb3@2 bb2!2 bb3 bb2@2 bb2 bb3 bb2!3 bb3@2",
  N: "c3@2 c4@2 c3!2 c4 c3@2 c3 c4 c3!3 c4@2", O: "d3@2 d4@2 d3!2 d4 db3@2 db3 db4 db3!3 db4@2",
  P: "c3@2 c4@2 c3!2 c4 b2@2 b2 b3 b2!3 b3@2", Q: "d3@2 d4@2 d3!2 d4 d3@2 d3 d4 d3!3 d4@2",
})).s("gm_trombone").gain(0.3)

// other · trombone
const trombone_2 = note(`<
  ~@8 A B C D A B C D A B C D A B C D E F G H E F G H E F G H E F G H I J K@2 I J L M I J K@2 I J L M N O P Q N O R@2 N
  O P Q N O ~@8
>`.pickRestart({
  A: "d3!3 ~ d3!2 ~ d3 ~ d3 ~ d3!4 ~", B: "c3!3 ~ c3!2 ~ c3 ~ c3 ~ c3!4 ~", C: "b2!3 ~ b2!2 ~ b2 ~ b2 ~ b2!4 ~",
  D: "bb2!3 ~ bb2!2 ~ c3 ~ c3 ~ c3!4 ~", E: "d3 ~ d3 ~ d3!4 ~ d3!6 ~", F: "e3 ~ e3 ~ e3!4 ~ e3!6 ~",
  G: "f3 ~ f3 ~ f3!4 ~ f3!6 ~", H: "f3 ~ f3 ~ f3!3 g3 ~ g3!6 ~", I: "bb2@3 f3", J: "e3 d3", K: "f3/2",
  L: "d3@8 d3 [c3,db3] b2 [a2,bb2] ab2 [gb2,g2] f2 [eb2,e2]", M: "d2",
  N: "bb2@2 bb3@2 bb2!2 bb3 bb2@2 bb2 bb3 bb2!3 bb3@2", O: "c3@2 c4@2 c3!2 c4 c3@2 c3 c4 c3!3 c4@2",
  P: "d3@2 d4@2 d3!2 d4 db3@2 db3 db4 db3!3 db4@2", Q: "c3@2 c4@2 c3!2 c4 b2@2 b2 b3 b2!3 b3@2",
  R: "d3@2 d4@2 d3!2 d4 d3@2 d3 d4 d3!3 d4@2",
})).s("gm_trombone").gain(0.3)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~@8 A B C D A B C D E F G H A B C D I J K L I J K L I J K L I J K L ~@8 M N O@2 M N P@2 ~@22
>`.pickRestart({
  A: "d4!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4", B: "c4!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4",
  C: "b3!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4", D: "bb3!2 d5@2 a4 ~@2 ab4 ~ g4 ~ f4@2 d4 f4 g4",
  E: "d5!3 ~ d5!2 ~ d5 ~ d5 ~ d5!4 ~", F: "c5!3 ~ c5!2 ~ c5 ~ c5 ~ c5!4 ~", G: "b4!3 ~ b4!2 ~ b4 ~ b4 ~ b4!4 ~",
  H: "bb4!3 ~ bb4!2 ~ c5 ~ c5 ~ c5!4 ~", I: "bb4 ~ bb4 ~ bb4!4 ~ bb4!6 ~", J: "c5 ~ c5 ~ c5!4 ~ c5!6 ~",
  K: "d5 ~ d5 ~ d5!4 ~ d5!6 ~", L: "db5 ~ db5 ~ db5!3 eb5 ~ eb5!6 ~", M: "bb4@3 f5", N: "e5 d5", O: "f5/2",
  P: "[d5 d5@3]/2",
})).s("gm_clarinet").gain(0.3)

// other · xylophone
const xylophone = note(`<
  ~@8 A B C D A B C D E F G H I J K L M N O P Q R S T M N O P Q R S T U V W@2 U V X Y U V W@2 U V Z@2 ~@14 A@2 ~@6
>`.pickRestart({
  A: "d5!2 d6@2 a5 ~@2 ab5 ~ g5 ~ f5@2 d5 f5 g5", B: "c5!2 d6@2 a5 ~@2 ab5 ~ g5 ~ f5@2 d5 f5 g5",
  C: "b4!2 d6@2 a5 ~@2 ab5 ~ g5 ~ f5@2 d5 f5 g5", D: "bb4!2 d6@2 a5 ~@2 ab5 ~ g5 ~ f5@2 d5 f5 g5",
  E: "f5@2 f5!2 ~ f5 ~ f5@2 d5@2 d5@5", F: "f5@2 f5!2 ~ g5 ~ ab5@2 g5 f5 d5 f5 g5 ~@2",
  G: "f5@2 f5!2 ~ g5 ~ ab5 ~ a5 ~ c6@2 a5@3", H: "d5 ~ d5 ~ d5 a4 d5 c5@4 g5@5", I: "a5@2 a5!2 ~ a5 ~ a5@2 g5 ~ g5@5",
  J: "a5@2 a5!2 ~ a5 ~ g5 ~ a5 ~ d6 ~ a5 g5@2", K: "d6 a5 g5 f5 c6 g5 f5 e5", L: "bb4@2 c5 d5 ~ f5 ~ c6@9",
  M: "~@8 f5 d5 f5 g5 ab5 g5 f5 d5", N: "ab5 [f5,g5] f5@2 g5@9 ab5@2 a5, ~@2 d5 ~@13",
  O: "c6@2 a5 ab5 g5 f5 d5 e5 f5@2 g5@2 a5@2 c6@2", P: "db6@2 ab5@2 ab5 g5 f5 g5@9", Q: "f5 g5 a5 f6 e6@2 d6@2",
  R: "e6 f6 g6 e6", S: "a6@8 a5 ab5 g5 gb5 f5 e5 eb5 d5", T: "db5 eb5", U: "bb4@3 f5", V: "e5 d5", W: "f5/2",
  X: "d5@8 d5 [c5,db5] b4 [a4,bb4] ab4 [gb4,g4] f4 [eb4,e4]", Y: "d4", Z: "~@2 f6@2 e6@3 c6@2 e6@2 d6@2 a5 c6 d6",
})).s("gm_xylophone").gain(0.45)

// drums · kick
const kick = s("bd").struct("<~@4 [x!4]!68 ~@6>").gain(0.48)

stack(tenor_sax, tenor_sax_2, trumpet, trombone, trombone_2, clarinet, xylophone, kick)

More by Toby Fox