Strudelify

Castle Remix New Super Mario Bros

Jordan Jennings

KeyE majorTempo120 bpm
0:00/0:00
// Castle Remix New Super Mario Bros — Jordan Jennings
// 120 bpm, 3/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flute" named as a pipe, played on flute (its pizzicato strings patch is not one); ch 3 "Violins" named as a string part, played on violin (its harpsichord patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/4191416; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 454 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/3)

// 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 · flute
const flute = note(`<
  ~@14 A B C D E F G H I J K L M N H D O P Q R S T@2 ~@32 A B C D E F G H I J K L M N H D O P Q R S T@2 ~@32 A B C D E F
  G H I J K L M N H D O P Q R S T@2 ~@32 A B C D E F G H I J K L M N H D O P Q R S T@2 ~@32 A B C D E F G H I J K L M N
  H D O P Q R S T@2 ~@32 A B C D E F G H I J K L M N H D O P Q R S T@2 ~@32 A B C D E F G H I J K L M N H D O P Q R S
  T@2 ~@32 A B C D E F G H I J K L M N H D O P Q R S T@2 ~@32
>`.pickRestart({
  A: "c#5@8 d#5@3 e5@2 f#5@3", B: "g#5@10 ~ c#6@5", C: "c#6@10 ~ a#5@5", D: "c6@15 ~", E: "a5@8 g#5@3 a5@2 b5@3",
  F: "c#6@10 ~ f#6@5", G: "d#6@10 ~ c6@5", H: "c#6@15 ~", I: "f#6@8 f#6@3 g#6@2 a6@3", J: "g#6@5 c#6@5 ~ e6@5",
  K: "d#6@8 g#5@3 e6@2 f#6@3", L: "e6@5 c#6@5 ~ e6@5", M: "d#6@8 d#6@3 a#5@2 d#6@3", N: "d6@5 f#5@3 a5@3 d6@2 c#6@3",
  O: "[c#5,e5]@15 ~", P: "[a#4,d#5]@15 ~", Q: "[a4,d5]@15 ~", R: "[g#4,c#5]@10 ~ [g#4,c5]@5", S: "[f#4,a4]@15 ~",
  T: "[[c#5,d#5,g#5]@15 ~]/2", // C#sus2
})).s("gm_flute").gain(0.3)

// other · tremolo strings · "Harp"
const tremolo_strings = note(`<
  ~@9 A B ~@3 C@2 D E F G D C H C I C J H K@2 L@3 M N O@2 ~@32 C@2 D E F G D C H C I C J H K@2 L@3 M N O@2 ~@32 C@2 D E
  F G D C H C I C J H K@2 L@3 M N O@2 ~@32 C@2 D E F G D C H C I C J H K@2 L@3 M N O@2 ~@32 C@2 D E F G D C H C I C J H
  K@2 L@3 M N O@2 ~@32 C@2 D E F G D C H C I C J H K@2 L@3 M N O@2 ~@32 C@2 D E F G D C H C I C J H K@2 L@3 M N O@2 ~@32
  C@2 D E F G D C H C I C J H K@2 L@3 M N O@2 ~@32
>`.pickRestart({
  A: "a4", B: "g#4", C: "c#3@5 c#3@5 ~ c#3@5", D: "g#3@5 g#3@5 ~ g#3@5",
  E: "g#3@5 ~@3 f#4@3 g#4@2 g#4@3, ~@5 g#3@5 ~ g#3@5", F: "f#3@5 f#3@5 ~ f#3@5, a4@11 ~@5", G: "f#3@5 f#3@5 ~ f#3@5",
  H: "a2@5 a2@5 ~ a2@5", I: "c3@5 c3@5 ~ c3@5", J: "a#2@5 a#2@5 ~ a#2@5", K: "g#2@5 g#2@5 ~ g#2@5",
  L: "c#2@5 c#2@5 ~ c#2@5", M: "a2@11 ~@5", N: "f#2@11 a2@5", O: "g#2/2",
})).s("gm_tremolo_strings").gain(0.3)

// chords · violin · "Violins"
const violin = note(`<
  A B C@2 A D E@2 F G H I J@2 ~@30 K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB C@2 ~@32 K@2 L@2 M@2 N O P Q R S T U V W
  X Y Z AA AB C@2 ~@32 K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB C@2 ~@32 K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB
  C@2 ~@32 K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB C@2 ~@32 K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB C@2 ~@32 K@2
  L@2 M@2 N O P Q R S T U V W X Y Z AA AB C@2 ~@32 K@2 L@2 M@2 N O P Q R S T U V W X Y Z AA AB C@2 ~@2
>`.pickRestart({
  A: "f#5", B: "~@11 a4@5", C: "g#4/2", D: "f#4@5 a4@5 ~ c#5@5", E: "[c5@4 c#5 d#5@27]/2", F: "~@11 f#4@5, d5",
  G: "~@11 f#4@5, c#5", H: "~@11 d4@5, b4", I: "~@11 c#4@5, a4", J: "[~@11 c4@5 ~@16, g#4@27 ~@5]/2",
  K: "[c#5@8 d#5@3 e5@2 f#5@3 g#5@11 c#6@5, c#2]/2", L: "[c#6@11 a#5@5 c6@16, g#2]/2",
  M: "[a5@8 g#5@3 a5@2 b5@3 c#6@11 f#6@5, f#2]/2", N: "d#6@11 c6@5, g#2", O: "[c#2,c#6]",
  P: "f#6@8 f#6@3 g#6@2 a6@3, a1", Q: "g#6@5 c#6@5 ~ e6@5, c#2", R: "d#6@8 g#5@3 e6@2 f#6@3, c2",
  S: "e6@5 c#6@5 ~ e6@5, c#2", T: "d#6@8 d#6@3 a#5@2 d#6@3, a#1", U: "d6@5 f#6@3 a6@3 d7@2 c#7@3, a1", V: "[g#2,c#7]",
  W: "[g#2,c7]", X: "[c#2,e5]", Y: "[c#2,d#5]", Z: "[f#2,d5]", AA: "c#5@11 c5@5", AB: "a4",
})).s("gm_violin").gain(0.3)

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note(`<
  A B C@2 A D E@2 F@2 A@2 G@2 ~@30 H I J K L M N O P Q R S T U V W O X Y Z A AA@2 ~@32 H I J K L M N O P Q R S T U V W O
  X Y Z A AA@2 ~@32 H I J K L M N O P Q R S T U V W O X Y Z A AA@2 ~@32 H I J K L M N O P Q R S T U V W O X Y Z A AA@2
  ~@32 H I J K L M N O P Q R S T U V W O X Y Z A AA@2 ~@32 H I J K L M N O P Q R S T U V W O X Y Z A AA@2 ~@32 H I J K L
  M N O P Q R S T U V W O X Y Z A AA@2 ~@32 H I J K L M N O P Q R S T U V W O X Y Z A AA@2 ~@2
>`.pickRestart({
  A: "f#4", B: "~@11 e4@5", C: "d#4/2", D: "c#4@5 f#4@5 ~ a4@5", E: "[g#4@5 b4@27]/2", F: "b4", G: "[d#4@27 ~@5]/2",
  H: "c#4@8 d#4@3 e4@2 f#4@3", I: "g#4@11 c#5@5", J: "c#5@11 a#4@5", K: "c5", L: "a4@8 g#4@3 a4@2 b4@3",
  M: "c#5@11 f#5@5", N: "d#5@11 c5@5", O: "c#5", P: "f#5@8 f#5@3 g#5@2 a5@3", Q: "g#5@5 c#5@5 ~ e5@5",
  R: "d#5@8 g#4@3 e5@2 f#5@3", S: "e5@5 c#5@5 ~ e5@5", T: "d#5@8 d#5@3 a#4@2 d#5@3", U: "d5@5 f#5@3 a5@3 d6@2 c#6@3",
  V: "c#6", W: "c6", X: "a#4", Y: "a4", Z: "g#4@11 g#4@5", AA: "c#4/2",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Violins"
const string_ensemble_1_2 = note(`<
  ~ A B@2 ~ C D@2 E@2 F G H@2 ~@51 I@2 ~@53 I@2 ~@53 I@2 ~@53 I@2 ~@53 I@2 ~@53 I@2 ~@53 I@2 ~@53 I@2 ~@2
>`.pickRestart({
  A: "~@11 c#4@5", B: "c4/2", C: "a3@5 c#4@5 ~ f#4@5", D: "[d#4@5 g#4@27]/2", E: "f#4", F: "d4", G: "c#4",
  H: "[c4@27 ~@5]/2", I: "d#4/2",
})).s("gm_string_ensemble_1").gain(0.3)

// other · string ensemble 1 · "Violoncellos"
const string_ensemble_1_3 = note(`<
  A@13 B ~@16 C@3 D E F@2 G@2 H@2 I J@2 G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2
  G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2 G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E
  Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2 G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2
  G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2 G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E
  Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2 G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E Q@2 J@2 ~@16 C@3 D E F@2 G@2 H@2 I J@2
  G@2 H@2 K@2 H G L G M G N L O@2 C@3 P E Q@2 J@2
>`.pickRestart({
  A: "f#2@3 ~@2 f#2@3 ~@3 f#2@3 ~@2", B: "f#2@5 f#2@5 ~@6", C: "c#2 ~@2 c#2 ~ c#2 ~@2 c#2 ~@2 c#2 ~ c#2 ~@2",
  D: "a2@11 ~@5", E: "f#2@11 a2@5", F: "g#2/2", G: "c#3 ~@2 c#3 ~ c#3 ~@2 c#3 ~@2 c#3 ~ c#3 ~@2",
  H: "g#3 ~@2 g#3 ~ g#3 ~@2 g#3 ~@2 g#3 ~ g#3 ~@2", I: "a3 ~@2 a3 ~ a3 ~@2 a3 ~@2 a3 ~ c#4 ~@2", J: "[g#2,c4]/2",
  K: "f#3 ~@2 f#3 ~ f#3 ~@2 f#3 ~@2 f#3 ~ f#3 ~@2", L: "a2 ~@2 a2 ~ a2 ~@2 a2 ~@2 a2 ~ a2 ~@2",
  M: "c3 ~@2 c3 ~ c3 ~@2 c3 ~@2 c3 ~ c3 ~@2", N: "a#2 ~@2 a#2 ~ a#2 ~@2 a#2 ~@2 a#2 ~ a#2 ~@2",
  O: "g#2 ~@2 g#2 ~ g#2 ~@2 g#2 ~@2 g#2 ~ g#2 ~@2", P: "g#2@11 ~@5", Q: "[~ g#3, g#2]/2",
})).s("gm_string_ensemble_1").gain(0.3)

// bass · string ensemble 1 · "Contrabasses"
const bass = note(`<
  ~@30 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2 H@2 E A I A J A K I L@2 A@3 M C N@2 G@2 ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2
  H@2 E A I A J A K I L@2 A@3 M C N@2 G@2 ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2 H@2 E A I A J A K I L@2 A@3 M C N@2 G@2
  ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2 H@2 E A I A J A K I L@2 A@3 M C N@2 G@2 ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2
  H@2 E A I A J A K I L@2 A@3 M C N@2 G@2 ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2 H@2 E A I A J A K I L@2 A@3 M C N@2 G@2
  ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2 H@2 E A I A J A K I L@2 A@3 M C N@2 G@2 ~@16 A@3 B C D@2 A@2 E@2 F G@2 A@2 E@2
  H@2 E A I A J A K I L@2 A@3 M C N@2 G@2
>`.pickRestart({
  A: "c#2 ~@2 c#2 ~ c#2 ~@2 c#2 ~@2 c#2 ~ c#2 ~@2", B: "a1@11 ~@5", C: "f#1@11 a1@5", D: "g#1/2",
  E: "g#2 ~@2 g#2 ~ g#2 ~@2 g#2 ~@2 g#2 ~ g#2 ~@2", F: "a2 ~@2 a2 ~ a2 ~@2 a2 ~@2 a2 ~ c#3 ~@2", G: "[g#1,c3]/2",
  H: "f#2 ~@2 f#2 ~ f#2 ~@2 f#2 ~@2 f#2 ~ f#2 ~@2", I: "a1 ~@2 a1 ~ a1 ~@2 a1 ~@2 a1 ~ a1 ~@2",
  J: "c2 ~@2 c2 ~ c2 ~@2 c2 ~@2 c2 ~ c2 ~@2", K: "a#1 ~@2 a#1 ~ a#1 ~@2 a#1 ~@2 a#1 ~ a#1 ~@2",
  L: "g#1 ~@2 g#1 ~ g#1 ~@2 g#1 ~@2 g#1 ~ g#1 ~@2", M: "g#1@11 ~@5", N: "[~ g#2, g#1]/2",
})).s("gm_string_ensemble_1").gain(0.3)

// other · timpani
const timpani = note(`<
  A@13 ~@23 B C@2 D@2 E F ~ C@2 F@2 E@2 F C G C H C I G F@2 J@3 K L M N M ~@23 B C@2 D@2 E F ~ C@2 F@2 E@2 F C G C H C I
  G F@2 J@3 K L M N M ~@23 B C@2 D@2 E F ~ C@2 F@2 E@2 F C G C H C I G F@2 J@3 K L M N M ~@23 B C@2 D@2 E F ~ C@2 F@2
  E@2 F C G C H C I G F@2 J@3 K L M N M ~@23 B C@2 D@2 E F ~ C@2 F@2 E@2 F C G C H C I G F@2 J@3 K L M N M ~@23 B C@2
  D@2 E F ~ C@2 F@2 E@2 F C G C H C I G F@2 J@3 K L M N M ~@23 B C@2 D@2 E F ~ C@2 F@2 E@2 F C G C H C I G F@2 J@3 K L M
  N M ~@23 B C@2 D@2 E F ~ C@2 F@2 E@2 F C G C H C I G F@2 J@3 K L M N M ~
>`.pickRestart({
  A: "f#2@5 f#2@5 ~@6", B: "g#2@5 g#2 ~ g#2!3 ~ g#2!3 ~ g#2", C: "c#3!2", D: "e2!2", E: "f#2!2", F: "g#2!2", G: "a2!2",
  H: "c3!2", I: "a#2!2", J: "c#3@5 c#3@5 ~ c#3@5", K: "g#2@5 g#2@5 ~@6", L: "f#2@5 f#2@5 ~ a2@5",
  M: "g#2@5 g#2@5 ~ g#2@5", N: "g#2@3 g#2@2 g#2@3 g#2@3 g#2!5",
})).s("gm_timpani").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~@14 A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23 B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23
  B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23 B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23
  B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23 B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23
  B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23 B ~ A B@2 A B A B A B A B A B A B A B A B A B C D ~@7 E@23
  B ~
>`.pickRestart({
  A: "x ~@4 x ~@5 x ~@3 x", B: "x ~@4 x ~@5 x ~@4", C: "x!2 ~ x!3 ~ x!3 ~ x ~ x ~@2", D: "x ~@2 x ~ x ~ x!3 ~ x!3 ~ x",
  E: "x ~@4 x ~@3 x ~ x ~ x ~@2",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  ~@14 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@3
  ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A ~@3
  A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@6 ~@3 A ~@3 A ~@3 A ~@3 A
  ~@3 A@3 ~@7 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A@5
>`.pickRestart({
  A: "x",
})).gain(0.3)

stack(
  flute, tremolo_strings, violin, string_ensemble_1, string_ensemble_1_2, string_ensemble_1_3, bass, timpani, snare,
  crash
)

More by Jordan Jennings