Strudelify

super mario odyssey - wooded kingdom steam gardens

Naoto Kubo

KeyA majorTempo170 bpm
0:00/0:00
// super mario odyssey - wooded kingdom steam gardens — Naoto Kubo
// 170 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (1/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/4835183; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(170/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 · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@2 A@2 B@2 A@2 C@2 D E D E F G H I D E D E F G J K L@2 M@2 L@2 N@2 O@2 P@2 O@2 Q R D E D E F G H I S@2 T@2 S@2 T@2
  S@2 T@2 S@2 C@2 D E D E F G H I D E D E F G J K L@2 M@2 L@2 N@2 O@2 P@2 O@2 Q R D E D E F G H I S@2 T@2 S@2 T@2 S@2
  T@2 S@2 U@2 V@3
>`.pickRestart({
  A: "[~@4 d4 ~@3 d4@2 d4 ~@3 d4@6 d4@2 c#4 ~@3 c#4 ~@5]/2", B: "[~@4 d4 ~@3 d4@2 d4 ~@3 d4@6 d4@2 f#4 ~@3 f#4 ~@5]/2",
  C: "[e4@3 e4@3 e4@3 e4@3 e4 ~@3]/2", D: "~@4 d4 ~@3 d4@2 d4 ~@5", E: "~@4 d4@2 d4 ~@3 d4 ~@5",
  F: "~@4 e4 ~@3 e4@2 e4 ~@5", G: "~@4 f#4@2 f#4 ~@3 f#4 ~@5", H: "~@2 e4@2 g4@2 a4 ~ b4 d5 b4 d5 b4@2 a#4 ~",
  I: "a4 g4 e4 ~ d4 ~ e4@2 [c#4,d4,d#4,e4] [g3,g#3,a3,a#3,b3,c4] [f3,f#3] ~@5, ~@5 e3 ~@2", J: "~@4 b3 ~@3 b3@2 b3 ~@5",
  K: "~@4 b3@2 b3 ~@3 a3@2 b3@2 d4@2", L: "[a#3 b3 ~@2 b3@6 b3@2 b3@2 a3@18]/2",
  M: "[g#3 a3 ~@2 a3@6 a3@2 a3@2 g3@10 ~@2 a3@2 b3@2 d4@2]/2",
  N: "[c#4 d4 ~@2 d4@4 d4@2 d4@2 d4@2 d#4@4 d#4@2 d#4@2 d#4 ~@9]/2", O: "[d#4 e4 ~@4 d4@2 ~@4 b3@12 ~@8]/2",
  P: "[e4@3 f#4 ~@2 g4@6 ~@4]/2", Q: "b3", R: "d#4@4 d#4 ~@3",
  S: "[~@4 g4 ~@3 g4@2 g4 ~@3 g4@6 g4@2 f#4 ~@3 f#4 ~@5]/2", T: "[~@4 g4 ~@3 g4@2 g4 ~@3 g4@6 g4@2 a4 ~@3 a4 ~@5]/2",
  U: "[e4@6 d4@7 c4@9 f#3@10]/2", V: "[b3@47 ~]/3",
})).s("gm_alto_sax").gain(0.4)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@2 A@2 B@2 A@2 C@2 D@2 E@2 F@4 D@2 E@2 G@4 H@2 I@2 H@2 J@2 K@2 L@2 K@2 M N D@2 E@2 O@4 P@2 Q@2 P@2 Q@2 P@2 Q@2 P@2
  C@2 D@2 E@2 F@4 D@2 E@2 G@4 H@2 I@2 H@2 J@2 K@2 L@2 K@2 M N D@2 E@2 O@4 P@2 Q@2 P@2 Q@2 P@2 Q@2 P@2 R@2 S@3
>`.pickRestart({
  A: "[~@4 b3 ~@3 b3@2 b3 ~@3 b3@6 b3@2 a3 ~@3 a3 ~@5]/2", B: "[~@4 b3 ~@3 b3@2 b3 ~@3 b3@6 b3@2 c#4 ~@3 c#4 ~@5]/2",
  C: "[c4@3 c4@3 c4@3 c4@3 ~ e3 g3 a3]/2", D: "[a#3 b3 ~@2 b3@6 d4 ~ a3@2 b3@10 ~@2 e3@2 g3@2 a3@2]/2",
  E: "[a#3 b3 ~@2 b3@6 e4 ~ d4@2 b3@10 ~@2 e3@2 g3@2 a3@2]/2",
  F: "[a#3 b3 ~@2 b3@6 a3 ~ g3@2 e3@10 ~@2 f#3 ~ d3@2 e3@26 ~@2 e3@2 g3@2 a3@2]/4",
  G: "[a#3 b3 ~@2 b3@6 a3 ~ g3@2 e3@10 ~@2 f#3 ~ d3@2 e3@26 ~@2 a2@2 b2@2 d3@2]/4",
  H: "[f#3 g3 ~@2 g3@6 g3@2 g3@2 f#3@18]/2", I: "[f3 f#3 ~@2 f#3@6 f#3@2 f#3@2 e3@10 ~@2 a2@2 b2@2 d3@2]/2",
  J: "[f3 f#3 ~@2 f#3@4 f#3@2 f#3@2 f#3@2 f#3@4 f#3@2 f#3@2 f#3 ~@9]/2", K: "[a#3 b3 ~@4 b3@2 ~@4 g3@12 ~@8]/2",
  L: "[b3@3 d4 ~@2 e4@6 ~@4]/2", M: "f#3", N: "f#3@4 ~ e3 g3 a3",
  O: "[a#3 b3 ~@2 b3@6 a3 ~ g3@2 e3@10 ~@2 f#3 ~ d3@2 e3@26 ~@8]/4",
  P: "[~@4 d4 ~@3 d4@2 d4 ~@3 d4@6 d4@2 c#4 ~@3 c#4 ~@5]/2", Q: "[~@4 d4 ~@3 d4@2 d4 ~@3 d4@6 d4@2 f#4 ~@3 f#4 ~@5]/2",
  R: "[g3@6 f#3@7 e3@9 a2@10]/2", S: "[d3@47 ~]/3",
})).s("gm_tenor_sax").gain(0.4)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D C E C D F@2 G@2 H@2 I J G@4 H@2 I J G@2 K@2 L@2 K@2 M@2 N@2 O@2 P@2 Q R G@2 H@2 I J G@2 C D C E C D C E C D C
  E C D F@2 G@2 H@2 I J G@4 H@2 I J G@2 K@2 L@2 K@2 M@2 N@2 O@2 P@2 Q R G@2 H@2 I J G@2 C D C E C D C E C D C E C D S@2
  T@3
>`.pickRestart({
  A: "~@12 b2 c3 [c#3,d3] d#3", B: "e3@4 e3@2 d3 ~@3 b2@2 a2@2 g2@2", C: "e2@3 g2@2 e2 g2 g#2",
  D: "a2@2 a2 ~@3 a2 ~@3 a2@2 g2@2 a2@2", E: "a2@2 a2 ~@3 a2 ~@3 a2 ~@3 a2 ~", F: "[c3@3 c3@3 c3@3 c3@3 c3 ~@3]/2",
  G: "e2@2 e2@2 e2@2 b2@4 e2 ~ b2@4", H: "g2@2 g2@2 g2@2 d3@4 g2 ~ d3@4", I: "c3@2 c3@2 c3@2 g3@4 c3 ~ g3@4",
  J: "d3@2 d3@2 d3@2 a3@4 d3 ~ a3@4", K: "[c3 ~@3 c2@3 d3@4 d2@5]/2", L: "[d2 ~@3 b2@3 e3@4 e2@5]/2",
  M: "[d2@2 ~@6 b2@6 b2@4 b2@2 b2@2 b2 ~@9]/2", N: "[e2 ~ e2 d2 ~ d2 c2@6 ~@4]/2", O: "[e2@3 d2 ~@2 c2@6 ~@4]/2",
  P: "[e2 ~ e2 d2 ~ d2 c2@6 c2@2 c3@2]/2", Q: "a#2 b2!2 a#2 b2!2 a#2 b2", R: "b2 a#2 b2!3 ~@3",
  S: "[c3@6 b2@7 a2@9 d2@10]/2", T: "[g2@47 ~]/3",
})).s("gm_baritone_sax").gain(0.36)

stack(alto_sax, tenor_sax, baritone_sax)