Strudelify

super mario bros 2 boss

Koji Kondo

KeyG majorTempo200 bpm
0:00/0:00
// super mario bros 2 boss — Koji Kondo
// 200 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/4353291; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(200/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 · bassoon · "Bassoon II"
const bassoon = note(`<
  A B C D E F G H I@2 J K L@5 M J K N@4 O P Q@2 R@4 S T C D E U@2 V@2 W@2 X Y Z@2 AA
>`.pickRestart({
  A: "~@2 d4@2 c#4 ~ c4@2 b3 ~ g3@2 f3 ~ e3@2", B: "d3 ~ d4 ~ d3@2 ~@2", C: "c4 ~ e3@2 g3 ~ c4@4 e3@2 g3 ~ c4@2",
  D: "d#3 f#3 ~ b3 e4 ~ b3@10", E: "a#3 ~ d3@2 g3 ~ a#3@4 d3@2 g3 ~ a#3@2", F: "e3 a3 ~ d4 e4 ~ d4@8 e4@2",
  G: "a4 ~ g4@2 a4 ~ f4@4 a4@2 g4 ~ f#4@2", H: "e4 ~ d#4@2 e4 ~ c4@4 a3@2 b3 ~ c#4@2",
  I: "[d4 ~ c4@2 d4 ~ g3@4 c4@2 b3 ~ g3@10 ~@8]/2", J: "~@2 c4@6 e4@2 ~@2 e4 ~ g4@2", K: "~@8 e4 ~ e4@2 c4 ~ g3@2",
  L: "[a3 ~ b3@2 a3 ~ b3@2 a3 ~ f#3@2 ~@2 a3@4 f#3@2 a3 f#3 a3 f#3 a3 f#3 a3 f#3 a3@2 a3@4 b3@2 a3 ~ b3@2 a3 ~ b3@4 e4@4 d4@2 e4 ~ d4@2 c4 ~ b3@2 a3 ~ c4@4 e3@2 c4 e3 c4 e3 c4 e3 c4 e3 c4 e3 c4@2]/5",
  M: "~@3 e4@2 c4@3 g3@3 f3@2 d#3@3",
  N: "[a3 ~ b3@2 a3 ~ b3@2 a3 ~ f#3@2 ~@2 a3@4 f#3@2 a3 f#3 a3 f#3 a3 f#3 a3 f#3 a3@2 a3@4 b3@2 a3 ~ b3@2 a3 ~ b3@4 e4@4 d4@2 e4 ~ d4@2 e4 ~ d4@2 b3 ~ g3@2]/4",
  O: "~@6 f#3@2 g3 ~ g#3@2 f3 ~ g3@2", P: "~@3 g3 ~@3 a3",
  Q: "[~@2 f3@2 d#3 ~ e3@2 f3 ~ d#3@2 e3 ~ b3@6 g#3@2 ~@2 f3@2 ~@2 e3@2 ~@2]/2",
  R: "[d3 e3 d3 c3 b2 ~ c3@2 d3 ~ c3@2 b2 ~ c3@8 c3@2 b2@2 ~@2 c3@6 d3@6 c#3@2 ~@2 d3 ~ a3@6 f#3@2 ~@2 g3@2 ~@2 a3@2 ~@2]/4",
  S: "b3 ~@5 b3@2 a3 ~@5 a3@2", T: "g#3 ~@5 g#3@2 g3 ~ d3@2 b2 ~ g2@2", U: "[a3 c4 ~ d4 g4 ~ d4@22 g4@4]/2",
  V: "[a4 g4 a4 f4@2 a4 g4 f#4]/2", W: "[e4 f4 g4 b4@5]/2", X: "~@10 a3@2 b3 ~ c#4@2", Y: "d4@5 c4 d4 ~",
  Z: "[g3@4 c4 ~ b3@10]/2", AA: "c4 ~@7",
})).s("gm_bassoon").gain(0.3)

// other · bassoon · "Bassoon III"
const bassoon_2 = note(`<
  A B C@4 D E F G H I J@5 K H I L@4 M N O P@2 Q R S T U C@3 V@2 W@2 X@2 Y Z AA@2 AB
>`.pickRestart({
  A: "~@2 b3@2 a#3 ~ a3@2 f3 ~ d3@2 c3 ~ b2@2", B: "b2 ~ b3 ~ b2@2 ~@2", C: "~@2 g3 ~@3 g3 ~", D: "~@2 f3 ~@3 f#3 ~",
  E: "~@2 g3 ~@3 a3 ~", F: "~@2 f3 ~@3 d3 ~", G: "~@2 g3 ~@5", H: "~@2 g3@6 c4@2 ~@2 c4 ~ e4@2",
  I: "~@8 c4 ~ c4@2 a3 ~ e3@2",
  J: "[f#3 ~ g3@2 f#3 ~ g3@2 f#3 ~ d3@2 ~@2 f#3@4 d3@2 f#3 d3 f#3 d3 f#3 d3 f#3 d3 f3@2 f3@4 g3@2 f3 ~ g3@2 f3 ~ g3@4 c4@4 b3@2 c4 ~ b3@2 a3 ~ f3@2 e3 ~ g3@4 c3@2 g3 c3 g3 c3 g3 c3 g3 c3 g3 c3 g3@2]/5",
  K: "~@3 b3@2 a3@3 d3@3 c3@2 a#2@3",
  L: "[f#3 ~ g3@2 f#3 ~ g3@2 f#3 ~ d3@2 ~@2 f#3@4 d3@2 f#3 d3 f#3 d3 f#3 d3 f#3 d3 f3@2 f3@4 g3@2 f3 ~ g3@2 f3 ~ g3@4 c4@4 b3@2 c4 ~ b3@2 c4 ~ b3@2 g3 ~ e3@2]/4",
  M: "~@6 f#3@2 g3 ~ g#3@2 d3 ~ e3@2", N: "~@3 e3 ~@4", O: "b3",
  P: "[e4@8 d4@2 ~@2 d4 ~ g4@6 e4@4 e4 d4 c4 b3 a3@2 ~@2]/2", Q: "g3 ~ f3 ~ e3 ~ d3 ~", R: "a3 ~ b3 ~ a3 ~ d4 ~",
  S: "a3 ~ d3 ~ a3 ~ d4 ~", T: "~@2 a#3@2 b3 ~@5 g#3@2 a3 ~@3", U: "~@2 g3@2 a3 ~@11",
  V: "[e3 a3 ~ b3 e4 ~ a3@22 e4@4]/2", W: "[f4 e4 f4 d4@2 f4 e4 d4]/2", X: "[c4 d4 e4 g4@5]/2",
  Y: "~@10 e3@2 f#3 ~ g3@2", Z: "a3@5 g3 a3 ~", AA: "[d3@4 a3 ~ g3@10]/2", AB: "g3 ~@7",
})).s("gm_bassoon").gain(0.3)

// bass · bassoon · "Contrabassoon"
const bass = note(`<
  ~ A B C D E F G H I J K L M N O P Q J K L M N O R S T U V W X Y Z AA B C D AB@2 AC@2 AD@2 ~ AE AF AG AH
>`.pickRestart({
  A: "~@6 g2 ~", B: "c2 ~@3 c2 ~@3", C: "b1 ~@3 b1 ~@3", D: "a#1 ~@3 a#1 ~@3", E: "a1 ~@3 a1 ~@3", F: "f1 ~@3 f#1 ~@3",
  G: "g1 ~@3 a1 ~@3", H: "d2 ~@3 g1 ~@3", I: "c2@2 ~@2 g1@2 ~@2 c2@2 ~@2 g2 [f2,f#2] [d#2,e2] [c#2,d2]",
  J: "c2 ~ d2 ~ e2 ~ g2 ~", K: "a2 ~ g2 ~ e2 ~ c2 ~", L: "d2 ~ e2 ~ f#2 ~ a1 ~",
  M: "d2 ~ d2 ~ c2@2 ~@2 b1@2 ~@2 a1@2 ~@2", N: "g1 ~ g2 ~ f2 ~ d2 ~", O: "b1 ~ g1 ~ a1 ~ b1 ~",
  P: "c2 ~ c#2 ~ d2 ~ d#2 ~", Q: "e2 ~ b1@2 a1@2 ~@2 g1@2 ~@2 b1@2 ~@2", R: "c2 ~ g1 ~ a1 ~ b1 ~", S: "c2 ~@2 c1 ~@4",
  T: "e2 ~ b2 ~ g#2 ~ f2 ~", U: "e2 ~ d2 ~ b1 ~ g#1 ~", V: "a1 ~ b1 ~ c2 ~ d2 ~", W: "e2 ~ c2 ~ b1 ~ a1 ~",
  X: "d2 ~ e2 ~ f#2 ~ a2 ~", Y: "d2 ~ a1 ~ d2 ~ f#2 ~", Z: "g2 ~ f2 ~ d2 ~ b1 ~", AA: "d2 ~ b1 ~ a1 ~ g1 ~",
  AB: "[a2@7 e3]/2", AC: "[c3 b2 a2 f2@2 a2 b2 d3]/2", AD: "[e3 d3 b2 e2@5]/2", AE: "f3 ~ e3 ~ d3 ~ c3 ~",
  AF: "b2 ~ a2 ~ g2 ~ d2 ~", AG: "e2 ~ f2 ~ e2 ~ d2@2", AH: "c2 ~@7",
})).s("gm_bassoon").gain(0.24)

stack(bassoon, bassoon_2, bass)

More by Koji Kondo