Strudelify

SUPER MARIO WORLD! - Overworld

Koji Kono

KeyF majorTempo130 bpm
0:00/0:00
// SUPER MARIO WORLD! - Overworld — Koji Kono
// 130 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/2226501; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 51 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(130/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · shamisen
const shamisen = note(`<
  ~ A B C D C E C D C E F G F H I@2 J I ~@4 C D C E C D C E F G F H I@2 J I ~@4 C D C E I@2 J ~
>`.pickRestart({
  A: "a4@3 a4@2 a4 a4@3 a4@2 a4 bb4@3 bb4@2 bb4 bb4@3 bb4@2 bb4", B: "a4@3 a4@2 a4 a4@3 a4@2 a4 bb4@3 bb4@9",
  C: "a3@3 a3@2 a3 a3@3 a3@2 a3 bb3@3 bb3@2 bb3 b3@3 b3@2 b3",
  D: "a3@3 a3@2 a3 ab3@3 ab3@2 ab3 g3@3 g3@2 g3 bb3@3 bb3@2 bb3",
  E: "bb3@3 bb3@2 bb3 bb3@3 bb3@2 bb3 a3@3 a3@2 a3 a3@3 a3@2 a3",
  F: "bb3@3 bb3@2 bb3 bb3@3 bb3@2 bb3 a3@3 a3@2 a3 a3@2 a3 a3@2 a3",
  G: "ab3@3 ab3@2 ab3 ab3@3 ab3@2 ab3 g3@3 g3@2 g3 g3@2 g3 g3@2 g3",
  H: "ab3@3 ab3@2 ab3 ab3@3 ab3@2 ab3 g3@3 g3@2 g3 g3@2 g3!4", I: "a3@3 a3@2 a3 a3@3 a3@2 a3 a3@3 a3@2 a3 a3@3 a3@2 a3",
  J: "[c3,g3] ~@7", // C5
})).s("gm_shamisen").gain(0.22)

// other · shamisen
const shamisen_2 = note(`<
  ~ A B C D C E C D C E F G F H I@2 J I ~@4 C D C E C D C E F G F H I@2 J I ~@4 C D C E I@2 J ~
>`.pickRestart({
  A: "f4@3 f4@2 f4 f4@3 f4@2 f4 g4@3 g4@2 g4 gb4@3 gb4@2 gb4", B: "f4@3 f4@2 f4 f4@3 f4@2 f4 g4@3 gb4@9",
  C: "a4@3 a4@2 a4 a4@3 a4@2 a4 bb4@3 bb4@2 bb4 b4@3 b4@2 b4",
  D: "a4@3 a4@2 a4 ab4@3 ab4@2 ab4 g4@3 g4@2 g4 bb4@3 bb4@2 bb4",
  E: "bb4@3 bb4@2 bb4 bb4@3 bb4@2 bb4 a4@3 a4@2 a4 a4@3 a4@2 a4",
  F: "bb4@3 bb4@2 bb4 bb4@3 bb4@2 bb4 a4@3 a4@2 a4 a4@2 a4 a4@2 a4",
  G: "ab4@3 ab4@2 ab4 ab4@3 ab4@2 ab4 g4@3 g4@2 g4 g4@2 g4 g4@2 g4",
  H: "ab4@3 ab4@2 ab4 ab4@3 ab4@2 ab4 g4@3 g4@2 g4 g4@2 g4!4", I: "a4@3 a4@2 a4 a4@3 a4@2 a4 a4@3 a4@2 a4 a4@3 a4@2 a4",
  J: "[c4,g4] ~@7", // C5
})).s("gm_shamisen").gain(0.72)

// bass · acoustic bass
const bass = note(`<
  ~ A B C D C E C D C E F G H I ~@4 J K J L C D C E C D C E F G H I ~@4 J K J L C D C E ~@4
>`.pickRestart({
  A: "f2 ~ d2 ~ g2 ~ c2 ~", B: "f2@3 ~@3 d2@3 ~@3 g2 ~@2 gb2@9", C: "f2 ~ a2 ~ bb2 ~ b2 ~",
  D: "a2@3 ~@3 ab2@3 ~@3 g2 ~@2 c2@3 d2@3 e2@3", E: "c3 ~@2 c2@3 e2@3 g2@3 f2@3 c2@3 f2@3 ~@3",
  F: "bb2 b2 c3 d3 c3 a2 f2 g2", G: "ab2 c3 d3 f3 g3 f3 e3 c3", H: "bb2 a2 bb2 d3 f3 e3 c3 a2",
  I: "bb2 d3 f3 c3 bb2 d3 c3 e3", J: "f2 d2 f2 g2 a2 bb2 c3 g2", K: "f2 bb2 a2 g2 f2 d2 c2 f2",
  L: "f2 bb2 a2 g2 f2 d2 f2@2",
})).s("gm_acoustic_bass").gain(0.64)

// bass · tuba
const bass_2 = note(`<
  ~ A B C D C E C D C E ~@4 F G H I ~@4 C D C E C D C E ~@4 F G H I ~@4 C D C E F G H J
>`.pickRestart({
  A: "f2 ~ d2 ~ g2 ~ c2 ~", B: "f2@3 ~@3 d2@3 ~@3 g2 ~@2 gb2@9", C: "f2 ~ a2 ~ bb2 ~ b2 ~",
  D: "a2@3 ~@3 ab2@3 ~@3 g2 ~@2 c2@3 d2@3 e2@3", E: "c3 ~@2 c2@3 e2@3 g2@3 f2@3 c2@3 f2@3 ~@3",
  F: "f2 ~ f2 ~ eb2 ~ eb2 ~", G: "d2 ~ d2 ~ db2 ~ db2 ~", H: "c2 ~@5 d2 e2", I: "f2 ~ c2 ~ f2 ~ f2 ~", J: "f2 ~@7",
})).s("gm_tuba").gain(0.49)

// other · steel drums
const steel_drums = note(`<
  ~@3 A B A C A B A C D E D F G H I J ~@4 A B A C A B A C D E D F G H I J ~@4 A B A C G H I K
>`.pickRestart({
  A: "a4@3 ~@3 f4@2 ~@2 c4 ~ d4 f4 ~@2 f4@3 ~@3 d4 ~", B: "c4 ~@2 f4 ~@2 f4 ~@2 c5 ~@2 g4 a4@3 g4@4 ~@2 c4 ~",
  C: "c4 ~@2 f4 ~@2 bb4 a4 ~ g4 f4 ~@13", D: "a4@4 f4@4 ~ c4@3 a4@4 f4@4 ~@4", E: "ab4 f4 ~ c4@3 ab4@4 g4@7 ~@7",
  F: "ab4 f4 ~ c4@3 c5@12 ~@6", G: "a4@3 ~@3 f4@2 ~@2 c4 ~ d4 f4 ~@2 f4@3 ~@3 g4 ~",
  H: "a4 f4 ~ c4@3 d4@4 f4@7 ~@5 d4 ~", I: "c5@3 d5@3 c5@3 d5@3 c5@4 c4 ~ bb4 a4 ~ g4@3", J: "f4 ~@3", K: "f4 ~ f5 ~",
})).s("gm_steel_drums").gain(0.5)

stack(shamisen, shamisen_2, bass, bass_2, steel_drums)