Strudelify

Fallen Kingdom Sax Quintet

CaptainSparklez

KeyF majorTempo140 bpm
0:00/0:00
// Fallen Kingdom Sax Quintet — CaptainSparklez
// 140 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5696674; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 148 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · alto sax · "Alto Saxophone 1"
const alto_sax = note(`<
  ~@15 A B@2 C@4 D E ~@7 A B@2 F G B@2 H I J@2 K@2 B@2 L M N@2 O@2 N@2 P@2 Q@2 R@4 S@2 ~@7 T B@2 U@2 V W L X J@2 K@2 Y@2
  Z@2 N@2 O@2 N@2 AA@2 Q@2 R@4 S@2 ~@7 AB@2 AC@2 AB@2 AD@2 AE N@2 O@2 N@2 P@2 Q@2 R@4 S@2 AF AG AF@3 AG AF@3 AG AF AH
>`.pickRestart({
  A: "~@3 c5 c5@2 c5@2", B: "[c5@6 db5 bb4@5 ~@2 bb4 ab4]/2",
  C: "[bb4@2 bb4!2 c5@2 eb4 f4@2 c5!6 c5@7 db5 bb4@5 ~@2 bb4 ab4]/4", D: "bb4@2 bb4@2 bb4@2 c5 ab4", E: "g4 f4@3 ~@4",
  F: "bb4!2 bb4@2 bb4!2 c5 ab4", G: "g4 f4@2 c5!5", H: "b4 bb4 ab4 ab4@2 b4 bb4 ab4", I: "ab4@2 ~ f5!3 f5@2",
  J: "[f5@6 c5 eb5@5 ~@2 eb5 c5]/2", K: "[eb5@3 eb5 eb5@2 eb4 f4@2 c5!7]/2", L: "b4 bb4 ab4 ab4@2 ab4 b4 bb4",
  M: "ab4 ab4@3 ~@3 f4", N: "[f5@3 ~ f5@3 ~ f5@2 eb5@2 f5@2 eb5@6 bb4@2 c5@4 db5@4 ~@2]/2",
  O: "[eb5@3 ~ eb5@3 ~ eb5@2 db5@2 eb5@2 c5@6 g4@2 g4@4 ab4@4 ~@2]/2",
  P: "[eb5@3 ~ eb5@3 ~ eb5@2 db5@2 eb5@2 c5@6 g4@2 g4@4 ab4@2 ~@2 f4@2]/2",
  Q: "[f5@3 ~ f5@3 ~ f5@2 eb5@2 f5@2 g5@4 g5@4 ab5@8 ~@2]/2",
  R: "[eb5@2 eb5@2 eb5 db5 eb5 c5@3 ~@2 c5!3 c5@7 db5 bb4@5 ~@2 bb4!2]/4", S: "[g4 g4@3 c5@2 g4 ab4@5 ~@4]/2",
  T: "~ c5!7", U: "[bb4@3 bb4 c5@2 eb4 f4@4 c5!5]/2", V: "c5@6 db5 bb4", W: "bb4@4 ~@2 bb4 ab4", X: "ab4 ab4@2 ~ f5!4",
  Y: "[c5@6 db5 bb4@5 ~@3 ab4]/2", Z: "[b4 bb4 ab4 f4 ab4!2 f4 ab4@5 ~@3 f4]/2",
  AA: "[eb5@3 ~ eb5@3 ~ eb5@2 db5@2 eb5@2 c5@6 g4@2 g4@4 ab4@2 ~@4]/2", AB: "[~@2 c5 eb5 ab5@2 g5 f5@8 eb5]/2",
  AC: "[~@2 c5 eb5 ab5@2 g5 eb5@8 c5]/2", AD: "[~@2 c5 eb5 ab5@2 g5 eb5@7 eb5 c5]/2", AE: "~@7 f4", AF: "c5", AG: "db5",
  AH: "[c5,f5]", // F5
})).s("gm_alto_sax").gain(0.44)

// other · alto sax · "Alto Saxophone 2"
const alto_sax_2 = note(`<
  ~@7 A@2 B@2 A@2 B@2 ~@9 C@2 D@2 C@2 D@2 E@2 F@2 E@2 G@2 H@2 I@2 E@2 J@2 K L M N K L M N O@2 P@4 Q@2 R S T U R S T ~ V
  W V W V W V W V W V W V W V W K L M N K L M N O@2 P@4 Q@2 ~@7 A@2 B@2 A@2 B@2 A@2 X@2 Y@2 X@2 ~ Z@2 AA@2 Z@2 AA@2 AB
  AC AB@3 AC AB@3 AC AB@2
>`.pickRestart({
  A: "[~@2 c4 eb4 ab4@2 g4 f4@8 eb4]/2", B: "[~@2 c4 eb4 ab4@2 g4 eb4@8 c4]/2", C: "[ab4@7 g4@7 ~@2]/2",
  D: "[ab4@7 f4@7 ~@2]/2", E: "[f4@7 eb4@3 ~ eb4 ab4 g4 f4 c4]/2", F: "[eb4@7 c4@3 ~ eb4 ab4 g4 f4 eb4]/2",
  G: "[eb4@7 c4@5 ~@4]/2", H: "[ab4@2 bb4 ab4@3 bb4 ab4@3 bb4 ab4@3 ~@2]/2",
  I: "[ab4@2 bb4 ab4@3 bb4 ab4@3 ~ eb4 ab4 g4 f4 eb4]/2", J: "[eb4@7 f4@2 ~@7]/2", K: "f4@3 ~ f4@3 ~@3 f4@2 ~@2 f4@2",
  L: "~ f4 ~ f4 ~ f4 ~@2", M: "eb4@3 ~ eb4@3 ~@3 eb4@2 ~@2 eb4@2", N: "~ eb4 ~ eb4 ~ eb4 ~@2",
  O: "[f4@3 ~ f4@3 ~@3 f4@2 ~@2 g4@4 g4@4 ab4@8 ~@2]/2",
  P: "[c5@2 c5@2 c5 bb4 c5 ab4@3 ~@2 ab4!3 ab4@7 bb4 g4@5 ~@2 g4!2]/4", Q: "[eb4 eb4@3 eb4@2 eb4 f4@5 ~@4]/2",
  R: "ab4 ~@3 ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4 ~ db5 ~", S: "~@2 db5 ~@3 db5 ~ db5 ~ db5 ~ db5 ~ db5 ~",
  T: "c5 ~@3 c5 ~ c5 ~ c5 ~ c5 ~ c5 ~ ab4 ~", U: "~@2 ab4 ~@3 ab4 ~@3 ab4 ~ ab4 ~ ab4 ~",
  V: "ab4@2 g4 ~ ab4@2 g4 ~ ab4@2 g4 ~ ab4@2 ab4@2", W: "g4 ~ ab4@2 g4 ~ ab4@2 ab4@2 g4 ~ ab4@2 g4 ~",
  X: "[~@3 eb4 ab4@2 g4 eb4@8 c4]/2", Y: "[~@3 eb4 ab4@2 g4 f4@8 eb4]/2", Z: "f4", AA: "eb4", AB: "ab3", AC: "bb3",
})).s("gm_alto_sax").gain(0.4)

// 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 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A
  B C D ~@8 A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D ~@6 E@2 A B C D A B C D A B C D A B C D A B
  C D F G H I ~@12
>`.pickRestart({
  A: "ab3@3 ~ ab3@3 ~ ab3@3 ~ ab3@2 bb3@2", B: "~@2 bb3@2 ~@2 bb3@2 bb3@2 ~@2 bb3@3 ~",
  C: "c4@3 ~ c4@3 ~ c4@3 ~ c4@2 f3@2", D: "~@2 f3@2 ~@2 f3@2 f3@2 ~@2 f3@3 ~", E: "[~@7 bb3@9]/2", F: "ab3", G: "bb3",
  H: "c4", I: "f3",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<~@64 A@2 B@2 A@2 C@2 ~@32 D@6 E ~@25 F G H I F G H I F G H I>".pickRestart({
  A: "[db4@7 db4@9]/2", B: "[c4@7 ab3@9]/2", C: "[c4@7 ab3@7 ~@2]/2", D: "[ab3@7 c4@9]/2", E: "bb3@7 ~", F: "ab2",
  G: "bb2", H: "eb3", I: "c3",
})).s("gm_tenor_sax").gain(0.15)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C
  D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D E F E F E F G B A B C D A B
  C D A B C D A B C D A B C D A B C D H I J K H I J K H I J K
>`.pickRestart({
  A: "db3@3 ~ db3@3 ~ db3@3 ~ db3@2 eb3@2", B: "~@2 eb3@2 ~@2 eb3@2 eb3@2 ~@2 eb3@3 ~",
  C: "ab2@3 ~ ab2@3 ~ ab2@3 ~ ab2@2 f2@2", D: "~@2 f2@2 ~@2 f2@2 f2@2 ~@2 f2@3 ~",
  E: "db3@3 ~ db3@3 ~ db3@3 ~ db3@2 f3@2", F: "~@2 f3@2 ~@2 f3@2 f3@2 ~@2 f3@3 ~",
  G: "eb3@3 ~ eb3@3 ~ eb3@3 ~ eb3@2 eb3@2", H: "db2", I: "eb2", J: "ab2", K: "f2",
})).s("gm_baritone_sax").gain(0.3)

stack(alto_sax, alto_sax_2, tenor_sax, tenor_sax_soft, baritone_sax)