Strudelify

Super Smash Bros. Ultimate

Hideki Sakamoto

KeyA majorTempo144 bpm
0:00/0:00
// Super Smash Bros. Ultimate — Hideki Sakamoto
// 144 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5979009; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 60 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · trumpet · "B♭ Trumpet 1"
const trumpet = note(`<
  A B C D E@2 F@6 G H F@6 G H I J@2 K L@2 M@2 N@2 O P N@2 Q R ~@3 S L@2 T@2 U E@2 ~@3 V W X ~@2 Y Z@2
>`.pickRestart({
  A: "e4@3 f#4@3 g4@4 e4@2 g4@2 d5@2", B: "c#5@3 b4@3 c#5@2 e5@6 ~@2", C: "c5@3 b4@3 a4@4 g4@2 a4@2 b4@2",
  D: "a4@3 g4@3 a4@2 f#4@3 a4@3 d5@2", E: "e5/2", F: "c4 ~ c4 ~@3 c4 ~ d4 ~ d4 ~@3 d4 ~",
  G: "c4 ~ c4 ~@5 e4@3 f#4@3 g4@2", H: "a4 b4", I: "e5", J: "[d5 g5@3]/2", K: "g5@2 e5@2 ~ c5 b4 c5",
  L: "[a4@3 a5 a5@2 e5 d#5@4 f#5@2 c6 b5 a5]/2", M: "[a5@5 g#5 a5 b5@7 ~@2]/2", N: "[b4@28 a4 b4 c5 d5]/2",
  O: "b4@12 b4 g4 e4 c4", P: "b3@8 ~@4 e4 f#4 g4 a4", Q: "b4@8 e4@3 f#4@3 g4@2", R: "a4 d5 b4@2", S: "~@5 c5 b4 c5",
  T: "[a5@5 g#5 a5 b5@9]/2", U: "~@12 a4 b4 c5 d5", V: "~ f4 a#4 c#5", W: "g#4 ~@2 g#4 ~@2 a#4@6 a#4 ~ a#4!2",
  X: "c5 ~@2 c5 ~@2 c#5@6 c#5@2 ~@2", Y: "a#4@3 c5@3 c#5@2 c5@3 d#5@3 g#5@2", Z: "a#5/2",
})).s("gm_trumpet").gain(0.32)

// other · trumpet · "B♭ Trumpet 2"
const trumpet_2 = note(`<
  A B C D E@2 ~@6 F G H I J K H L M N O P Q R ~@2 S T U V W X U Y Z AA ~@6 S AB AC E@2 AD K ~ AE AF AG ~@2 AH AI@2
>`.pickRestart({
  A: "b3@3 d4@3 e4@4 b3@2 e4@2 g4@2", B: "a4@3 a4@3 a4@2 c#5@6 ~@2", C: "a4@3 g4@3 f#4@4 e4@2 f#4@2 g4@2",
  D: "f#4@3 e4@3 f#4@2 d4@3 f#4@3 a4@2", E: "b4/2", F: "~@8 e4@3 f#4@3 g4@2", G: "f#4 g#4", H: "g4@4 a4@4 f#4@6 e4 f#4",
  I: "g4@3 a4@3 b4@2 a4@6 ~@2", J: "g4@4 a4@4 f#4@3 e4@3 d4@2", K: "e4@3 ~", L: "g4@3 a4@3 b4@2 a4@3 f#4@3 d4@2",
  M: "e4@8 e4@3 f#4@3 g4@2", N: "a4 b4", O: "a4", P: "g4@3 f#4@3 g4@2 d4@8", Q: "b4@3 b4@3 b4@2 b4@3 g4@3 e4@2",
  R: "d4 c4@2 ~", S: "~ a3 d4 f#4", T: "g#4@2 ~ g#4@2 ~ b4@2 ~ b4@2 ~ g#4@2 ~@2", U: "e4@4 f#4@4 d4@6 c4 d4",
  V: "e4@3 f#4@3 g4@2 f#4@6 ~@2", W: "e4@4 f#4@4 a3@3 a3@3 a3@2", X: "a3@3 ~", Y: "e4@3 f#4@3 g4@2 f#4@3 d4@3 b3@2",
  Z: "a3@8 c4@3 d4@3 e4@2", AA: "a4 g#4", AB: "g4@2 ~ g4@2 ~ f4@2 ~ f4@2 ~ f4 ~ f4 ~",
  AC: "a#4@2 ~ a#4@2 ~ g#4@2 ~ g#4@2 ~ g#4 ~ g#4 ~", AD: "~@4 e5@4 d5@3 g4@3 f#4@2", AE: "~ d4 f4 a#4",
  AF: "f4 ~@2 f4 ~@2 g4@6 g4 ~ g4!2", AG: "g#4 ~@2 g#4 ~@2 a#4@6 a#4@2 ~@2", AH: "f#4@3 g#4@3 a#4@2 g#4@3 c5@3 d#5@2",
  AI: "f5/2",
})).s("gm_trumpet").gain(0.22)

// other · trumpet · "B♭ Trumpet 2" · soft notes
const trumpet_soft = note("<~@6 [g3 ~ g3 ~@3 g3 ~ a3 ~ a3 ~@3 a3 ~]!6 [g3 ~ g3 ~@13] ~@47>").s("gm_trumpet").gain(0.15)

// other · trombone
const trombone = note(`<
  ~ A B C D@2 E F E F E F E G E F E F E F E G ~@3 H I@2 J K L@6 M N O P Q R I@2 J S@2 T@2 U@2 V@2 W X Y Z AA AB@2
>`.pickRestart({
  A: "~@4 a3@4 g3@3 f#3@3 e3@2", B: "e3@3 f#3@5", C: "g3@3 a3@5", D: "[~ e3@7]/2", E: "g3 ~ g3 ~@13",
  F: "g3 ~ g3 ~@5 a3 ~ a3 ~@5", G: "d4 ~@3 d4 ~@7 d4@4", H: "~@3 g2", I: "[f#2@7 b2@9]/2", J: "~ d3 f#3 a3",
  K: "b3@2 ~ b3@2 ~ e4@2 ~ e4@2 ~ b3@2 ~@2", L: "c4 ~ c4 ~@3 c4 ~ d4 ~ d4 ~@3 d4 ~", M: "c4 ~ c4 ~@5 e4@3 f#4@3 g4@2",
  N: "a4 g#4", O: "e3", P: "e3@3 d3@3 e3@2 b2@8", Q: "g3@3 g3@3 g3@2 g3@3 d3@3 b2@2", R: "a2 a2@2 g2",
  S: "d4@2 ~ d4@2 ~ c4@2 ~ c4@2 ~ c4 ~ c4 ~", T: "e4/2", U: "[b2@7 ~]/2", V: "f3/2",
  W: "g#3 ~@2 g#3 ~@2 a#3@6 a#3 ~ a#3!2", X: "c4 ~@2 c4 ~@2 c#4@6 c#4@2 ~@2", Y: "g3 a3 f3@2",
  Z: "g3@3 g#3@3 a#3@2 g#3@3 c4@3 g#3@2", AA: "f#4 d#4", AB: "f4/2",
})).s("gm_trombone").gain(0.2)

// bass · tuba
const bass = note(`<
  A B C@2 D E F@5 G H I F@5 G H I J ~@2 K L@2 A M F@5 G H I F N@2 O L@2 A P Q ~@2 R@2 ~@2 S T U V W X@2
>`.pickRestart({
  A: "e2", B: "a1", C: "c2@3 d2@5", D: "~ e2@3", E: "e1", F: "a2 ~@3 a2 ~@3 a2 ~@3 a2 ~@3",
  G: "f2 ~@3 f2 ~@3 e2 ~@3 e2 ~@3", H: "d2 ~@3 d2 ~@3 d2 ~@3 d2 ~@3", I: "e2 ~@3 e2 ~@7 g#2@4", J: "a2@3 ~@13",
  K: "~@3 g2", L: "[f#2@7 b2@9]/2", M: "e2@3 e2@3 b2 ~", N: "g2 ~@3 g2 ~@3 g2 ~@3 g2 ~@3",
  O: "a2 ~@3 a2 ~@3 a2 ~@3 g2@4", P: "g2@2 ~ g2@2 ~ f2@2 ~ f2@2 ~ f2 ~ f2 ~",
  Q: "a#2@2 ~ a#2@2 ~ g#2@2 ~ g#2@2 ~ g#2 ~ g#2 ~", R: "[e2@7 ~]/2", S: "a#2 ~@2 a#2 ~@2 g#2@6 g#2@2 ~@2",
  T: "f#2 ~@2 f#2 ~@2 e2@6 e2@2 ~@2", U: "d#2", V: "g#1@6 g#1@2 g#1@3 c2@3 d#2@2", W: "f#1 g#1", X: "a#1/2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, trumpet_2, trumpet_soft, trombone, bass)