Strudelify

Into the Great Unknown

Jacob Pedigo

KeyE♭ majorTempo172 bpm
0:00/0:00
// Into the Great Unknown — Jacob Pedigo
// 172 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5935141; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 158 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(172/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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"
const alto_sax = note(`<
  ~@4 A@5 B C D E F G H@2 ~ I J@2 ~@5 K L M N O P Q R S@3 ~@3 T U T U T U V W@2 X Y Z AA@5 AB@7 AC@4 AD@2 ~@3 AE@6 AF AG
  AH AI AJ AK AL AM AN ~ AO AP ~@6 AQ AR AS AT AU AV AW AX AY AZ BA ~@3 BB BC BB BC BB BC BD@2 BE BF BG BH@6 BI@7 BJ@6
  ~@3 BK@6 ~ BL@7
>`.pickRestart({
  A: "[~@6 eb4@29 ~ eb4@29 bb3@2 ~@2 eb4@2 ~@2 bb3@2 ~@2 f4@2 ~]/5", B: "~ bb3@2 ~@2 g4@2 ~@2 f3@2 ~@2 f4@2 ~",
  C: "~ g3@2 ~@2 c4@2 ~@2 g4@2 ~@2 ab4@2 ~", D: "~ ab4@4 g4@4 f4@4 eb4@3", E: "~ ab3@2 ab3@2 ~@4 ab3@2 ab3@2 ~@3",
  F: "~ eb4@4 bb3@4 c4@4 d4@3", G: "~ f4@2 d4@2 ~@4 a4@2 f4@2 ~@3", H: "[~ f4@12 eb4@2 g4@2 c4@2 ~@13]/2",
  I: "~ g3@2 ~@2 d4@2 f4@2 ab4@2 ~@2 ab4@2 ~", J: "[~ c4@2 f4@2 ab4@2 ~@2 ab4@2 ~@2 ab4@2 g4@2 ~@15]/2",
  K: "~ ab4@8 g4@7", L: "~ ab4@15", M: "~ bb4 ~@3 bb4 ~ c5 ~ bb4 ~@3 f4 ~@2", N: "~ f4 ~@3 f4 ~ g4 ~ f4 ~@3 c4 ~@2",
  O: "~ c4 ~@3 d4 ~ eb4 ~ d4 ~@3 bb3 ~@2", P: "~ bb3 ~@3 c4 ~ d4 ~ c4 ~@3 g3 ~@2",
  Q: "~ g3 ~@3 g3 ~ ab3 ~ g3 ~@3 f3 ~@2", R: "~ f3 ~@3 g3 ~@3 f3 ~@3 ab3 ~@2",
  S: "[~ g3@2 bb3@2 ab3@2 c4@2 bb3@2 d4@2 c4@2 eb4@2 f4@2 d4@2 eb4@2 c4@2 d4@2 bb3@2 c4@2 ab3@2 g3@15]/3",
  T: "~ ab4@4 f4@4 g4@4 eb4@3", U: "~ f4@4 d4@4 eb4@4 f4@3", V: "~ c4@4 ~@3 c4@4 d4@4",
  W: "[c4@4 ~@3 c4@4 ~@3 d4@4 ~@4 d4@3 eb4@4 d4@3]/2", X: "~ d4 ~ eb4", Y: "~@3 eb4@4 f4@3 eb4@4 ~@2",
  Z: "~@2 eb4@4 ~@3 f4@4 ~@3", AA: "[f4@4 g4@3 f4@4 ~@4 f4@4 ~@3 f3@29 eb3@29]/5",
  AB: "[~ g3@29 f3@29 eb3@29 ~ g3@23]/7", AC: "[~@6 d4@29 bb3@29]/4", AD: "[bb3@29 ~@3]/2",
  AE: "[~@8 eb4@29 eb4@29 ~ eb4@29]/6", AF: "bb3 ~ eb4 ~ bb3 ~ f4 ~", AG: "bb3 ~ g4 ~ f3 ~ f4 ~",
  AH: "g3 ~ c4 ~ g4 ~ ab4 ~", AI: "ab4 g4 f4 eb4", AJ: "ab3!2 ~@2 ab3!2 ~@2", AK: "eb4 bb3 c4 d4",
  AL: "f4 d4 ~@2 a4 f4 ~@2", AM: "f4@6 eb4 g4", AN: "c4 ~@7", AO: "g3 ~ d4 f4 ab4 ~ ab4 ~",
  AP: "c4 f4 ab4 ~ ab4 ~ ab4 g4", AQ: "ab4 g4", AR: "ab4", AS: "bb4 ~@3 bb4 ~ c5 ~ bb4 ~@3 f4 ~@3",
  AT: "f4 ~@3 f4 ~ g4 ~ f4 ~@3 c4 ~@3", AU: "c4 ~@3 d4 ~ eb4 ~ d4 ~@3 bb3 ~@3", AV: "bb3 ~@3 c4 ~ d4 ~ c4 ~@3 g3 ~@3",
  AW: "g3 ~@3 g3 ~ ab3 ~ g3 ~@3 f3 ~@3", AX: "f3 ~@3 g3 ~@3 f3 ~@3 ab3 ~@3", AY: "g3 bb3 ab3 c4 bb3 d4 c4 eb4",
  AZ: "f4 d4 eb4 c4 d4 bb3 c4 ab3", BA: "g3", BB: "ab4 f4 g4 eb4", BC: "f4 d4 eb4 f4",
  BD: "[c4@4 ~@3 c4@4 d4@4 c4@4 ~@3 c4@4 ~@3 d4@3]/2", BE: "~@5 d4@3 eb4@4 d4@4", BF: "~@3 d4@4 ~@4 eb4@4 ~",
  BG: "~@2 eb4@4 f4@3 eb4@4 ~@3", BH: "[~ eb4@4 ~@3 f4@4 ~@3 f4@4 g4@3 f4@4 ~@4 f4@4 ~@3 f3@29 eb3@29 ~]/6",
  BI: "[g3@29 f3@29 eb3@29 g3@25]/7", BJ: "[~@5 d4@29 bb3@29 bb3@29 ~@4]/6", BK: "[~@7 eb4@29 eb4@29 ~ eb4@29 ~]/6",
  BL: "[~@15 f4@4 eb4@4 d4@4 g4@4 f4@4 eb4@4 d4@4 g4@4 ab4@30 bb4@30 ~@5]/7",
})).s("gm_alto_sax").gain(0.25)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@2 A@7 ~@4 B ~ C@2 ~@2 D@2 E F E G H ~ I@2 J K L M N O P@2 ~ Q R Q R Q R Q R S ~@24 T@8 ~@5 U ~ V W ~@2 X Y Z AA Z Y
  AB ~ AC AD AE AF AG AH AI AJ AK ~@2 AL AM AL AM AL AM AL AM AN ~@24 AO@8 AP@8
>`.pickRestart({
  A: "[~@9 ab3@29 ab3@29 ~ ab3@29 ~@15]/7", B: "~ g3@4 eb3@4 f3@4 d3@3", C: "[~ f3@12 eb3@2 g3@2 g3@2 ~@2 d4@2 ~@9]/2",
  D: "[~@5 d4@2 ab3@2 f3@2 ab3@2 g3@2 ab3@2 g3@15]/2", E: "~ ab3@15", F: "~ bb3@15", G: "~ g3@15",
  H: "~ eb4@8 d4@4 c4@3", I: "[~@9 eb4@2 g4@2 f4@2 ab4@2 bb4@4 g4@4 ab4@4 f4@3]/2", J: "~ bb3@4 eb4@4 d4@4 f4@3",
  K: "~ g4@4 eb4@4 f4@4 c4@3", L: "~ d4@4 c4@4 eb3@4 f3@3", M: "~ c4@4 bb3@4 g3@4 bb3@3", N: "~ ab3@8 ab3@7",
  O: "~ eb3@15", P: "[~@3 eb3@2 ~@2 eb3@2 ~@2 eb3@2 ~@2 eb3@2 ~@15]/2", Q: "~ c3@4 d3@4 eb3@4 f3@3",
  R: "~ g3@4 f3@4 eb3@4 d3@3", S: "~ eb3@4 ~@11", T: "[~@11 ab3@29 ab3@29 ab3@29 ~ ab3@29]/8", U: "g3 eb3 f3 d3",
  V: "f3@6 eb3 g3", W: "g3 ~ d4 ~@5", X: "~@2 d4 ab3 f3 ab3 g3 ab3", Y: "g3", Z: "ab3", AA: "bb3", AB: "eb4@2 d4 c4",
  AC: "~@4 eb4 g4 f4 ab4", AD: "bb4 g4 ab4 f4", AE: "bb3 eb4 d4 f4", AF: "g4 eb4 f4 c4", AG: "d4 c4 eb3 f3",
  AH: "c4 bb3 g3 bb3", AI: "ab3!2", AJ: "eb3", AK: "~ eb3 ~ eb3 ~ eb3 ~ eb3", AL: "c3 d3 eb3 f3", AM: "g3 f3 eb3 d3",
  AN: "eb3 ~@3", AO: "[~@10 ab3@29 ab3@29 ab3@29 ~ ab3@29 ~]/8",
  AP: "[~@15 g3@2 f3@2 eb3@2 d3@2 g3@2 f3@2 eb3@2 d3@2 g3@2 f3@2 eb3@2 d3@2 g3@2 f3@2 eb3@2 d3@2 g3@2 f3@2 eb3@2 d3@2 g3@2 f3@2 eb3@2 d3@2 c4@30 eb4@30 ~@5]/8",
})).s("gm_tenor_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note(`<
  ~@16 A@4 ~@26 B C@2 D E F G@5 H@7 I@4 J@2 ~@17 K L@2 M ~@26 N@2 O P Q R@6 S@7 T@6 ~@17
>`.pickRestart({
  A: "[~@7 ab3@2 f3@2 ab3@2 g3@2 ab3@2 g3@2 ~@2 d4@2 ab3@2 f3@2 ab3@2 g3@2 ab3@2 g3@2 ~@2 d4@2 ab3@2 f3@2 ab3@2 g3@2 ab3@2 g3@2 ~@13]/4",
  B: "~@2 eb3 f3", C: "[eb3@4 ~@3 eb3@4 ~@3 f3@4 ~@4 f3@3 g3@4 f3@3]/2", D: "~ f3 ~ g3", E: "~@3 g3@4 ab3@3 g3@4 ~@2",
  F: "~@2 g3@4 ~@3 ab3@4 ~@3", G: "[ab3@4 bb3@3 ab3@4 ~@4 ab3@4 ~@3 d3@29 c3@29]/5",
  H: "[~ eb3@29 d3@29 c3@29 ~ eb3@23]/7", I: "[~@6 f3@29 c3@29]/4", J: "[c3@29 ~@3]/2", K: "~@3 ab3 f3 ab3 g3 ab3",
  L: "g3 ~ d4 ab3 f3 ab3 g3 ab3", M: "g3 ~@7", N: "[~@7 eb3@4 f3@4 eb3@4 ~@3 eb3@4 ~@3 f3@3]/2",
  O: "~@5 f3@3 g3@4 f3@4", P: "~@3 f3@4 ~@4 g3@4 ~", Q: "~@2 g3@4 ab3@3 g3@4 ~@3",
  R: "[~ g3@4 ~@3 ab3@4 ~@3 ab3@4 bb3@3 ab3@4 ~@4 ab3@4 ~@3 d3@29 c3@29 ~]/6", S: "[eb3@29 d3@29 c3@29 eb3@25]/7",
  T: "[~@5 f3@29 c3@29 c3@29 ~@4]/6",
})).s("gm_tenor_sax").gain(0.2)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@8 B C D E ~ C ~ F@2 ~@2 G@2 H I H J K ~ L M N O P Q R J S B C B C B C B C B C T@8 U@3 V@6 W@5 X@7 Y@4 Z AA AB AC ~
  AA ~ AD AE ~@2 AF AG AH AI AH AG AJ ~ AK AL AM AN AO AP AQ AG AR Z AA Z AA Z AA Z AA Z AA AS@8 AT@2 AU AV@8 AW@2 AX@8
  AY@2 AZ@5 BA@5
>`.pickRestart({
  A: "[~@12 ab2@29 ab2@29 ab2@29 ~ ab2@28]/8", B: "~ g2@4 eb2@4 g2@4 ab2@3", C: "~ g2@4 eb2@4 f2@4 d2@3",
  D: "~ g2@4 f2@4 bb2@4 db3@3", E: "~ eb3@4 bb2@4 eb2@7", F: "[~ f2@12 g2@2 bb2@2 eb3@2 ~@13]/2",
  G: "[~@7 f2@2 g2@2 f2@2 ab2@2 f2@2 eb2@15]/2", H: "~ f2@15", I: "~ g2@15", J: "~ eb2@15", K: "~ db3@8 c3@4 ab2@3",
  L: "~@9 eb2@7", M: "~ eb2@8 g2@7", N: "~ f2@8 bb2@7", O: "~ c3@8 ab2@7", P: "~ bb2@8 g2@7", Q: "~ ab2@8 f2@7",
  R: "~ ab2@15", S: "~ eb2@2 ~@2 eb2@2 ~@2 eb2@2 ~@2 eb2@2 ~", T: "[~ eb2@29 f2@29 ~ g2@29 ab2@29 bb2@10]/8",
  U: "[~@5 eb3@7 d3@7 c3@15 f3@7 bb2@7]/3", V: "[~ eb3@22 d3@3 c3@4 bb2@15 d3@14 c3@15 eb3@15 bb3@7]/6",
  W: "[ab3@7 g3@7 f3@7 ~ bb3@14 ab3@4 g3@4 f3@3 eb3@4 eb3@15 d3@7 c3@7]/5",
  X: "[eb2@22 f2@4 g2@4 ab2@29 ab2@29 ab2@24]/7", Y: "[~@5 ab2@29 ~ ab2@29]/4", Z: "g2 eb2 g2 ab2", AA: "g2 eb2 f2 d2",
  AB: "g2 f2 bb2 db3", AC: "eb3 bb2 eb2@2", AD: "f2@6 g2 bb2", AE: "eb3 ~@7", AF: "~@3 f2 g2 f2 ab2 f2", AG: "eb2",
  AH: "f2", AI: "g2", AJ: "db3@2 c3 ab2", AK: "~ eb2", AL: "eb2 g2", AM: "f2 bb2", AN: "c3 ab2", AO: "bb2 g2",
  AP: "ab2 f2", AQ: "ab2", AR: "eb2 ~ eb2 ~ eb2 ~ eb2 ~", AS: "[eb2@29 f2@29 ~ g2@29 ab2@29 bb2@11]/8",
  AT: "[~@4 eb3@7 d3@7 c3@14]/2", AU: "~ f3@7 bb2@7 ~",
  AV: "[eb3@22 d3@3 c3@4 bb2@15 d3@14 c3@15 eb3@14 bb3@7 ~ ab3@7 g3@7 f3@7 ~ bb3@11]/8",
  AW: "[~@3 ab3@4 g3@4 f3@3 eb3@4 eb3@14]/2", AX: "[~ d3@7 c3@7 eb2@22 f2@4 g2@4 ab2@29 ab2@29 ab2@25]/8",
  AY: "[~ ab2@7]/2", AZ: "[~@2 ab2@29 g2@4 eb2@4 f2@4 d2@4 g2@4 eb2@4 f2@4 d2@4 g2@4 eb2@4 f2@4 d2@4 g2]/5",
  BA: "[~@3 eb2@4 f2@4 d2@4 ab2@30 eb3@30 ~@5]/5",
})).s("gm_baritone_sax").gain(0.35)

// other · baritone sax · "Baritone Saxophone" · soft notes
const baritone_sax_soft = note("<~@16 A@4 ~@67 B C@2 D ~@67>".pickRestart({
  A: "[~@5 ab2@2 f2@2 g2@2 f2@2 ab2@2 f2@2 eb3@2 ~@2 ab2@2 f2@2 g2@2 f2@2 ab2@2 f2@2 eb3@2 ~@2 ab2@2 f2@2 g2@2 f2@2 ab2@2 f2@2 eb3@2 ~@2 ab2@2 ~@9]/4",
  B: "~@2 ab2 f2 g2 f2 ab2 f2", C: "eb3 ~ ab2 f2 g2 f2 ab2 f2", D: "eb3 ~ ab2 ~@5",
})).s("gm_baritone_sax").gain(0.2)

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