Strudelify

pokemon ruby sapphire - champion battle

Rwarcards762 / CSR

KeyD majorTempo214 bpm
0:00/0:00
// pokemon ruby sapphire - champion battle — Rwarcards762 / CSR
// 214 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1955061; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 100 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(214/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 · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@2 B C D E B C F G H I J K L M N O P Q@4 R Q@7 R S T U V Q@3 ~@8 W X Y Z AA AB AC AD H I J K L M N O P Q@4 R Q@7 R S
  T U V Q@3 ~@8 W X Y Z AA AB AC AD
>`.pickRestart({
  A: "[d4 ~@3 a#4@12]/2", B: "a4 ~@7", C: "a4 ~@5 a#4@2", D: "c5 ~@5 a#4 ~", E: "a4 ~@3 a#4@4", F: "c5 ~@5 a#4@2",
  G: "a4 ~@2 g4 ~@2 a#4@2", H: "d4@3 a3@2 b3 c4 c#4", I: "d4 ~@7", J: "d4@3 d#4@2 f4 g4 d#4", K: "f#4 ~@7",
  L: "d4 e4 f4 f#4@2 f4 e4 d4", M: "d#4 f4 f#4 g4@2 f#4 f4 d#4", N: "f4 g4 g#4 a4@2 g#4 g4 f4",
  O: "d#4 d#3 a#3 d#4 d4 d3 a3 d4", P: "c4!2 f3 c4!3 f3 c#4", Q: "d4 d3 a3 d4!2 d3 a3 d4", R: "d4 ~ a3 d4!2 d3 a3 d4",
  S: "g5 ~ f#5 ~ e5 ~ f#5 ~ g5 ~ a5 ~ g5 ~ a5 ~", T: "g5 ~ a5 ~ g5 ~ a5 ~@9",
  U: "a5 ~ g5 ~ f#5 ~ g5 ~ a5 ~ b5 ~ a5 ~ b5 ~", V: "a5 ~ b5 ~ a5 ~ b5 ~@9", W: "c4 e4 g4 c5 e4 g4 c5 e5",
  X: "g4 c5 e5 g5 c5 e5 g5 c6", Y: "d6 e6 c6 d6 b5 c6 a5 b5", Z: "g5 a5 f#5 g5 e5 f#5 d5 e5",
  AA: "g5 b4 d5 g5 b4 d5 g5 b5", AB: "d4 g4 b4 d5 g4 b4 d5 g5", AC: "a5 b5 g5 a5 f#5 g5 e5 f#5",
  AD: "d5 e5 c5 d5 b4 c5 a4 b4",
})).s("gm_clarinet").gain(0.4)

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

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

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@2 B C D E B C F G H I J K L M N O P Q R S T U@2 V@2 W@2 X@2 U@2 V@2 W@2 X@2 ~@4 Y Z AA AB AC@2 AD@2 AE@4 H I J K L M
  N O P Q R S T U@2 V@2 W@2 X@2 U@2 V@2 W@2 X@2 ~@4 Y Z AA AB AC@2 AD@2 AE@4
>`.pickRestart({
  A: "[a4 ~@3 d#5@12]/2", B: "d5 ~@7", C: "d5 ~@5 d#5@2", D: "f5 ~@5 d#5 ~", E: "d5 ~@3 d#5@4", F: "f5 ~@5 d#5@2",
  G: "d5 ~@2 c5 ~@2 d#5@2", H: "a4 ~ a4 ~ a4 ~ a#4@4 a4@2 g4@2 a#4@2", I: "a4 ~ d#4@2 f4@2 c4@2 d#4@2 a3@2 c4@2 g3@2",
  J: "a4 ~ a4 ~ a4 ~ a#4@4 c5@2 d5@2 a#4@2", K: "a4 ~ d#4@2 g4@2 f4@2 a#4@2 g4@2 c5@2 a4@2", L: "a4@3 d4@3 a4@2",
  M: "a#4@3 d#4@3 a#4@2", N: "c5@3 f4@3 c5@2", O: "d#5 d5", P: "a4 g4 f#4 g4 a4 g4 f#4 e4", Q: "f#4 a4", R: "d4 f#4",
  S: "a3 d4", T: "f#3 a3", U: "[~ g4@7]/2", V: "[~ f#4@7]/2", W: "[~ g4@5 d#5!2]/2", X: "a4/2", Y: "b4@3 a4@3 g4@2",
  Z: "a4@3 g4@3 f#4@2", AA: "g4@3 f#4@3 e4@2", AB: "f#4@3 g4@3 a4@2", AC: "g4/2", AD: "f#4/2", AE: "d4/2",
})).s("gm_french_horn").gain(0.4)

// bass · tuba · "B♭ Tuba"
const bass = note(`<
  A@2 B C B D B C B D E F E G E H I J K L M L M N M L M L M L M N M L M N M L M E O P Q E@8 R@2 E@3 F E G E H I J K L M
  L M N M L M L M L M N M L M N M L M E O P Q E@8 R@2 E@2
>`.pickRestart({
  A: "d2 ~@3 d2 ~@3", B: "d2 c2 d2 d#2 d2 c2 d2 d#2", C: "d2 c2 d2 d#2 d2 g2 a2@2", D: "d2 c2 d2 d#2 d2 g2 c3@2",
  E: "d2 a2 d2 a2 d2 a2 d2 a2", F: "d2 a2 f2 a2 c3 a2 d2 a2", G: "d2 a2 f2 a2 c3 a2 d#3 c3",
  H: "d#2 a#2 d#2 a#2 d#2 a#2 d#2 a#2", I: "f2 c3 f2 c3 f2 c3 f2 c3", J: "f2 g#2 f2 d#3 f2 g2 f2 d3",
  K: "c2 f2 c2 f2 c2 f2 c2 f2", L: "d2 a2 d3 d2 a2 d3 d2 a2", M: "d2 a2 d3 d2 a2 d3 d2 d3", N: "d2 ~ d3 d2 a2 d3 d2 a2",
  O: "d2 a2 d3 a2 c3 a2 b2 a2", P: "d2 a2!3 b2 a2 g2 a2", Q: "d2 a2 d2 b2 d2 c3 d2 e3", R: "d2 g2 d2 g2 d2 g2 d2 g2",
})).s("gm_tuba").gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A B@3 C B@8 D B@15 E ~@4 B@3 C B@3 C B@3 C B@3 C B@8 D B@15 E ~@4 B@3 C B@3 C B@3 C
>`.pickRestart({
  A: "x!13 ~ x ~", B: "~ x ~ x", C: "~@2 x ~@2 x ~ x", D: "x ~@3 x ~@2 x", E: "~@2 x ~@3 x!2",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@39 [~ x ~ x]!3 [~@2 x ~@3 x!2] ~@41 [~ x ~ x]!3 [~@2 x ~@3 x!2] ~@12>").gain(0.45)

stack(clarinet, trumpet, trumpet_2, french_horn, bass, snare, clap)

More by Rwarcards762 / CSR