Strudelify

super mario world - athletic theme

Koji Kondo / xMrPianox

KeyC majorTempo150 bpm
0:00/0:00
// super mario world - athletic theme — Koji Kondo / xMrPianox
// 150 bpm, 4/4, key C 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 (4/4 at bar 1, 2/2 at bar 58) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/143877; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 61 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(150/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 · piano
const piano = note(`<
  A B C D E B C F G H I H J H I H J K L K M N O P Q R C S E R C T U H I H J H I H J K L K M N O P Q R C S E R C T U V@4
>`.pickRestart({
  A: "[f4,b4] a4 f4 [f4,b4]@3 a4 f4 e4@2 [g#4,b4,e5]@2 [g#4,b4,e5]@4, ~@2 g#3 ~", // Fdim E
  B: "~@2 [c#4,a4] e4 g4 [c#4,a4]@2 d4 [c#4,a4] c#4 e4 ~@3 a3@2, ~ a3@3 ~@7 [c#4,a4]@5", // F#m
  C: "~@2 [f4,a4]@2 d4 [f4,a4]@2 a3 ~@2 d4 ~@3 a3@2, ~ a3@3 ~@4 [f4,a4]@2 ~ [f4,a4]@5, ~@9 a3@3 ~@4", // F
  D: "~@2 [b3,a4] d4 f4 [b3,g4]@2 d4 [b3,g4] b3 d4 ~@3 g3@2, ~ g3@3 ~@7 [b3,g4]@5", // B7 Em
  E: "~@2 [c4,g4]@2 e4 [c4,g4]@2 c4 g4@2 g4@2 f#4@2 f4@2, ~ g3@3 ~@12", // C5
  F: "~ b3 [f4,b4] b3 d4 [f4,b4]@2 b3 [f4,b4] b3 c4 [f4,b4]@3 b3@2", // Fdim
  G: "~ c4 [e4,c5] c4@2 [c4,g4] [c4,a4] [d4,b4] [e4,g4,c5]@2 [d4,g4,b4]@2 ~@2 [e3,g3]@2, ~@3 g3@6 ~@3 [e4,g4,c5]@4", // C C5 F G C G Em C
  H: "e5@4 c5@3 g4 a4 c5@2 c5@4 a4", I: "g4@2 c5@2 c5@2 g5@2 e5@3 d5@4 g4", J: "g4@2 c5@2 f5 e5 d5 c5@6 ~@3",
  K: "e5@3 c5@3 g4@2 e5@3 c5@5", L: "d#5 c5 g4@2 d#5@3 d5@6 ~@3", M: "d#5 c5 g4@2 g5@8 ~@4",
  N: "e5@4 c5@3 g4 a4 c5@2 c5@4 d5", O: "e5 c5 g4@2 a4@3 c5@5 ~@3 a4", P: "g5@2 a5@2 g5@2 a5@2 g5@3 g4 f5 e5 d5@2",
  Q: "c5@2 g3 [c3,e3]@2 g3 [c3,e3]@2 g3 [c3,e3]@2 [g3,c4]@5, ~@2 c4@2 ~ c4@3 c4@3 ~@5", // C C5
  R: "~@2 [c#4,a4] e4 g4 [c#4,a4]@2 e4 [c#4,a4] c#4 e4 ~@3 a3@2, ~ a3@3 ~@7 [c#4,a4]@5", // F#m
  S: "~@2 [b3,g4] d4 f4 [b3,g4]@2 d4 [b3,g4] b3 d4 ~@3 g3@2, ~ g3@3 ~@7 [b3,g4]@5", // Em
  T: "~ b3 [f4,b4] b3 d4 [f4,b4]@2 b3 [f4,b4] b3 d4 [f4,b4]@3 b3@2", // Fdim
  U: "~ c4 [e4,c5] c4@2 [c4,g4] [c4,a4] [d4,b4] [e4,g4,c5]@2 [d4,g4,b4]@2 ~@2 [e3,g3]@2, ~@3 g3@5 ~@4 [e4,g4,c5]@4", // C C5 F G C G Em C
  V: "[[e4,c5]@2 ~@6 [c4,g4]@2 ~@5 [g3,e4]@5 a4@3 b4@3 ~ a4@3 g#4@5 a#4@5 g#4@5 e4@2 ~ d4@2 e4@10 ~@4, ~@20 f4@15 ~@10 g4@15 ~@4]/4", // C C5 C
})).s("gm_piano").gain(0.45)

// chords · piano
const piano_2 = note(`<
  A B C D E B C F G H I H J H I H J K L K L M N O P B C D E B C D G H I H J H I H J K L K L M N O P B C D E B C D G Q@4
>`.pickRestart({
  A: "[f2,c#3]@3 f2 f2@4 e2@8, ~@3 c#3@5 d3@4 ~@4", B: "~ [c#3,a3] ~ [c#3,a3] ~ [c#3,a3] ~ [c#3,a3], a1 e2 a1 e2",
  C: "~ [f3,a3] ~ [f3,a3] ~ [f3,a3] ~ [f3,a3], d2 a1 d2 a1", D: "~ [b2,g3] ~ [b2,g3] ~ [b2,g3] ~ [b2,g3], g1 d2 g1 d2",
  E: "~ [c3,g3] ~ [c3,g3] [c3,e3,a#3]!2 [b2,d#3,a3] [a#2,d3,g#3], c2 g1 ~@2", // C5 C7 B7 A#7
  F: "~ [b2,g3] ~ [b2,g3] ~ [b2,g3] ~ [b2,g3], g1 c2 g1 d2", G: "~ [c3,g3] ~ [c3,g3] c2 g1 c2!2, c2 g1 ~@2",
  H: "~ [e3,g3,c4] ~ [e3,g3,c4] ~ [f3,a3,c4] ~ [f#3,a3,c4], c2 e2 f2!2", // C F F#dim
  I: "~ [e3,g3,c4] ~ [d#3,g3,c4] ~ [f3,a3,c4] ~ [f3,g3,b3], e2 d#2 d2 g1", // C Cm F G7
  J: "~ [f3,a3,c4] ~ [g3,b3,d4] ~ [e3,g3,c4] ~ [e3,g3,c4], d2 g2 c2!2", // F G C
  K: "~ [f3,a3,c4] ~ [f3,a3,c4] ~ [e3,g3,c4] ~ [e3,g3,c4], f2!2 e2!2", // F C
  L: "~ [d#3,g3,c4] ~ [d#3,g3,c4] ~ [f3,a3,c4] ~ [f3,g3,b3], d#2!2 d2 g1", // Cm F G7
  M: "~ [e3,g3,c4] ~ [e3,g3,c4] ~ [f3,g3,d4] ~ [f3,g3,d4], c2!2 a#1!2", // C G7
  N: "~ [e3,g3,c4] ~ [e3,g3,c4] ~ [d#3,f#3,c4] ~ [d#3,f#3,c4], a1!2 g#1!2", O: "[g1,f3,b3]@6 a1!2",
  P: "~ g3 ~ g3 ~ g3 ~ g3, c2!4",
  Q: "[[e3,c4]@2 ~@6 [c3,g3]@2 ~@5 [g2,e3]@5 c4@3 d4@3 ~ c4@3 b3@5 c#4@5 b3@5 g3@2 ~ f3@2 g3@10 ~@4, ~@20 [f1,f2]@10 [c#2,c#3]@15 [c2,c3]@15 ~@4]/4", // C C5 C F C# C
})).s("gm_piano").gain(0.45)

stack(piano, piano_2)