Strudelify

Pokemon Selection Pokemon Stadium

arrrangement by Michael Fagerstedt

KeyE♭ majorTempo120 bpm
0:00/0:00
// Pokemon Selection Pokemon Stadium — arrrangement by Michael Fagerstedt
// 120 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: duplicate parts dropped: ch 12 "Trombone" trombone (copy of ch 11 "Euphonium" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/2442791; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 60 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// 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 · piccolo
const piccolo = note(`<
  A B C@2 D@2 ~@2 E@2 F@2 G@2 F@2 E@2 H@2 I@2 J K L@2 M@2 N@2 O@2 E@2 F@2 G@2 F@2 E@2 H@2 I@2 J K L@2 M@2 N@2 O@2 P Q
  R@2
>`.pickRestart({
  A: "eb5!2 bb5@2 eb5!2 b5@2 eb5!2 bb5@2", B: "eb5 f5 g5@2 eb5!2 bb5@2 eb5!2 d6@2",
  C: "[eb6@8 db6@8 eb5!2 bb5@2 eb5!2 b5@2]/2", D: "[eb5!2 db6@2 eb5!2 d6@2 eb6@12 ~@4]/2",
  E: "[g5@9 b5@3 d6@21 a5@3 f6@9 f6 e6 eb6]/2", F: "d6/2", G: "[g5@3 b5@3 d6@12 c6@2 a5@2 c6@2]/2",
  H: "[d6@9 c6 b5 c6]/2", I: "[g5@9 b5@3 d6@24 f6@4 d6@4 f6@4]/2", J: "g6@3 bb6 g6@4", K: "g6 a6",
  L: "[bb6@3 f6 f6@8 bb6@2 b6@2]/2", M: "[c7@3 g6 g6@8 c7@2 db7@2]/2", N: "[d7@9 c7!2 db7]/2", O: "[d7@9 c7!2 b6]/2",
  P: "~ g6", Q: "f6 ~", R: "[g6@5 ~@3]/2",
})).s("gm_piccolo").gain(0.3)

// other · flute
const flute = note(`<
  A B C@2 D@2 ~@2 E@2 F@2 G@2 F@2 H@2 I@2 J@2 K L M@2 N@2 O@2 P@2 E@2 F@2 G@2 F@2 H@2 I@2 J@2 K L M@2 N@2 O@2 P@2 Q R
  S@2
>`.pickRestart({
  A: "eb5!2 bb5@2 eb5!2 b5@2 eb5!2 bb5@2", B: "eb5 f5 g5@2 eb5!2 bb5@2 eb5!2 d5@2",
  C: "[eb5@15 ~ db5@15 ~ eb5@2 eb5@2 bb5@4 eb5@2 eb5@2 b5@4]/2",
  D: "[eb5@2 eb5@2 db6@4 eb5@2 eb5@2 d5@4 ~@4 eb4@4 g4@4 bb4@4 eb5@7 ~@9, ~ eb5 ~]/2",
  E: "[g4@9 b4@3 d5@20 ~ a4@3 f5@9 f5 e5 eb5]/2", F: "[d5@23 ~]/2", G: "[g4@6 b4@6 d5@23 ~ c5@4 a4@4 c5@4]/2",
  H: "[[g4,b4]@9 [b4,d5]@3 g5@11 ~ f5@9 a4@3 [d5,f5]@9 [d5,f5] [c5,e5] [c5,eb5,f5], ~@3 d5@5 ~@4]/2", // G Bm Dm C F7
  I: "[[d5,g5]@17 ~ c5@2 b4@2 c5@2]/2", J: "[g4@9 b4@3 d5@23 ~ f5@4 d5@4 f5@4]/2", K: "g5@9 bb5@3 g5@11 ~",
  L: "g5@11 ~ a5@11 ~", M: "[bb5@9 f5@3 f5@23 ~ bb5@6 b5@6]/2", N: "[c6@9 g5@3 g5@23 ~ [g5,c6]@6 [ab5,db6]@6]/2",
  O: "[[a5,d6]@17 ~ [g5,c6]@2 [g5,c6]@2 [ab5,db6]@2]/2", P: "[[a5,d6]@17 ~ [g5,c6]@2 [g5,c6]@2 [gb5,b5]@2]/2",
  Q: "~@12 [d5,g5]@11 ~", R: "[d5,f5]@11 ~@13", S: "[[d5,g5]@7 ~@5]/2",
})).s("gm_flute").gain(0.3)

// chords · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C@2 D@2 ~@2 E@2 F@2 G@2 F@2 H@2 I@2 J@2 K L M@2 N@2 O@2 P@2 E@2 F@2 G@2 F@2 H@2 I@2 J@2 K L M@2 N@2 O@2 P@2 Q R
  S@2
>`.pickRestart({
  A: "eb4!2 [eb4,bb4]@2 eb4!2 [gb4,b4]@2 eb4!2 [eb4,bb4]@2", B: "eb4 [eb4,f4] [eb4,g4]@2 eb4!2 [eb4,bb4]@2 eb4!2 d4@2",
  C: "[g4@8 f4@8 eb4!2 [eb4,bb4]@2 eb4!2 [gb4,b4]@2]/2", D: "[eb4!2 [eb4,db5]@2 eb4!2 [a4,d5]@2 [bb4,eb5]@12 ~@4]/2",
  E: "[g4@9 b4@3 d5@21 a4@3 f5@9 f5 e5 eb5]/2", F: "d5/2", G: "[g4@3 b4@3 d5@12 c5@2 a4@2 c5@2]/2",
  H: "[[g4,b4]@9 [b4,d5]@3 g5@12 f5@9 a4@3 f5@9 [d5,f5] [c5,e5] [c5,eb5], ~@4 d5@7 ~@5]/2", I: "[[d5,g5]@9 c5 b4 c5]/2",
  J: "[[d4,g4]@9 [g4,b4]@3 b4@12 a4@12 f5@4 d5@4 f5@4, ~ d5@2 ~]/2", K: "g5@3 bb5 g5@4", L: "g5 a5",
  M: "[bb4@3 f4 f4@8 bb4@2 b4@2]/2", N: "[c5@3 g4 g4@8 [e4,c5]@2 [f4,db5]@2]/2", O: "[[gb4,d5]@9 [e4,c5]!2 [f4,db5]]/2",
  P: "[[gb4,d5]@9 [e4,c5]!2 [d4,b4]]/2", Q: "~ [b4,d5]", R: "[a4,d5] ~", S: "[[b4,d5]@5 ~@3]/2",
})).s("gm_clarinet").gain(0.3)

// chords · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  A B C@2 D@2 ~@2 E F@2 G E G H G E F@2 G@3 I J K@2 L@2 M@2 N@2 E F@2 G E G H G E F@2 G@3 I J K@2 L@2 M@2 N@2 O P Q@2
>`.pickRestart({
  A: "eb4!2 [g4,bb4]@2 eb4!2 [eb4,b4]@2 eb4!2 [g4,bb4]@2", B: "eb4 [eb4,ab4] [eb4,bb4]@2 eb4!2 [g4,bb4]@2 eb4!2 f4@2",
  C: "[bb4@8 ab4@8 eb4!2 [g4,bb4]@2 eb4!2 [eb4,b4]@2]/2", D: "[eb4!2 [db4,g4]@2 eb4!2 [d4,a4]@2 [eb4,g4]@12 ~@4]/2",
  E: "g3", F: "[d4@36 f4@9 f4 e4 eb4]/2", G: "d4", H: "~@4 f4 e4 c4@2",
  I: "~@12 g3 ab3 a3 bb3 b3 c4 db4 d4 eb4 e4 f4 gb4", J: "g4 a4", K: "[[f4,bb4]@6 [f4,bb4] [gb4,b4]]/2",
  L: "[[g4,c5]@6 [g4,c5] [ab4,db5]]/2", M: "[[a4,d5]@9 [g4,c5]!2 [ab4,db5]]/2", N: "[[a4,d5]@9 [g4,c5]!2 [gb4,b4]]/2",
  O: "~ b3@3", P: "[a3,d4] ~", Q: "[[g4,b4]@5 ~@3]/2",
})).s("gm_alto_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A B C D E@2 F G F G F H F G F I F G F H F G F ~ J@2 K@2 L@2 M@2 F G F H F G F I F G F H F G F ~ J@2 K@2 L@2 M@2 N O
  P@2
>`.pickRestart({
  A: "eb3!2 eb3@2 eb3!2 eb3@2 eb3!2 eb3@2", B: "eb3!2 eb3@2 eb3!2 eb3@2 eb3!2 f3@2", C: "~@3 eb3 eb3@4 ~@3 ab3",
  D: "ab3@4 eb3!2 eb3@2 eb3!2 eb3@2", E: "[eb3!2 eb3@2 eb3!2 eb3@2 eb3@12 ~@4]/2",
  F: "g2@3 ~@3 g2@3 ~@6 g2!2 ~ g2@3 ~@3", G: "f2@3 ~@3 f2@3 ~@6 f2@3 f2!2 ~ f2 ~@2",
  H: "g2@3 ~@3 g2@3 ~@3 c3@4 b2@4 c3@4", I: "g2 ~ g2 ~@2 b2 c3 d3", J: "[bb2@6 bb2 b2]/2", K: "[c3@6 c3 db3]/2",
  L: "[d3@9 c3!2 db3]/2", M: "[d3@9 c3!2 b2]/2", N: "g2", O: "d3 ~", P: "[g2@5 ~@3]/2",
})).s("gm_baritone_sax").gain(0.3)

// chords · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  A B C@2 D@2 ~@2 E@2 F@2 G@2 F@2 H@2 I@2 J K L M ~@3 N O@2 P@2 E@2 F@2 G@2 F@2 H@2 I@2 J K L M ~@3 N O@2 P@2 Q R S@2
>`.pickRestart({
  A: "eb4!2 [eb4,g4,bb4]@2 eb4!2 [eb4,gb4,b4]@2 eb4!2 [eb4,g4,bb4]@2", // Eb B Eb
  B: "eb4 [eb4,f4,ab4] [eb4,g4,bb4]@2 eb4!2 [eb4,g4,bb4]@2 eb4!2 [ab4,d5]@2", // Fm7 Eb Abdim
  C: "[[g4,eb5]@8 [f4,db5]@8 eb4!2 [eb4,g4,bb4]@2 eb4!2 [eb4,gb4,b4]@2]/2", // Cm Db Eb B
  D: "[eb4!2 [eb4,g4,db5]@2 eb4!2 [eb4,b4,d5]@2 [g4,bb4,eb5]@12 ~@4]/2", E: "[g4@9 b4@3 d5@21 a4@3 f5@9 f5 e5 eb5]/2",
  F: "d5/2", G: "[g4@3 b4@3 d5@12 c5@2 a4@2 c5@2]/2",
  H: "[[d4,g4]@9 [g4,b4]@3 b4@12 a4@9 a4@3 [d5,f5]@9 [d5,f5] [c5,e5] [c5,eb5], ~@4 d5@7 ~@5]/2", // G5 G Dm C Cm
  I: "[[g4,b4,d5]@9 c5 b4 c5]/2", J: "[d4,g4]@3 [g4,b4] [b4,d5]@4", K: "[a4,d5]@3 [c5,f5] [c5,d5] [c5,f5]",
  L: "[b4,g5]@3 [bb4,d5,g5] [b4,d5,g5]@4", M: "[b4,d5,g5] [a4,c5,e5]", N: "~@2 [g4,c5] [ab4,db5]",
  O: "[[a4,d5]@9 [g4,c5]!2 [ab4,db5]]/2", P: "[[a4,d5]@9 [g4,c5]!2 [gb4,b4]]/2", Q: "~ [b4,d5,g5]",
  R: "[a4,d5,f5]@3 [a4,d5,f5] [g4,b4,d5] [a4,d5,f5]", S: "[[b4,d5,g5]@5 ~@3]/2",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A B C@2 D@2 ~@2 E F@2 G E G H G E F@2 G@3 I J ~@2 K L M@2 N@2 E F@2 G E G H G E F@2 G@3 I J ~@2 K L M@2 N@2 O ~ P@2
>`.pickRestart({
  A: "eb4!2 g4@2 eb4!2 eb4@2 eb4!2 g4@2", B: "eb4!2 eb4@2 eb4!2 g4@2 eb4!2 f4@2",
  C: "[g4@8 ab4@8 eb4!2 g4@2 eb4!2 eb4@2]/2", D: "[eb4!2 g4@2 eb4!2 eb4@2 eb4@12 ~@4]/2", E: "g3",
  F: "[d4@36 f4@9 f4 e4 eb4]/2", G: "d4", H: "~@4 f4 e4 c4@2", I: "~@12 g3 ab3 a3 bb3 b3 c4 db4 d4 eb4 e4 f4 gb4",
  J: "g4 a4", K: "~@3 gb4", L: "e4@2 e4 f4", M: "[gb4@9 e4!2 f4]/2", N: "[gb4@9 e4!2 d4]/2", O: "~ b3@3",
  P: "[g4@5 ~@3]/2",
})).s("gm_french_horn").gain(0.3)

// other · tuba · "Euphonium"
const tuba = note(`<
  A@2 B@2 C@2 D E D E D F D E D G D E D F D E D ~@3 H I J K J L D E D F D E D G D E D F D E D ~@3 H I J K J L ~ M N@2
>`.pickRestart({
  A: "eb4!2 ~@2 eb4!2 ~@2 eb4!2 ~@2", B: "[eb4@8 db4@8 eb4!2 ~@2 eb4!2 ~@2]/2",
  C: "[eb4!2 ~@2 eb4!2 ~@2 [eb3,eb4]@12 ~@4]/2", D: "g3@3 ~@3 g3@3 ~@6 g3!2 ~ g3@3 ~@3",
  E: "f3@3 ~@3 f3@3 ~@6 f3@3 f3!2 ~ f3 ~@2", F: "g3@3 ~@3 g3@3 ~@3 c4@4 b3@4 c4@4", G: "g3 ~ g3 ~@2 b3 c4 d4",
  H: "~@3 gb4", I: "e4 ~", J: "d3 ~ d3 ~ d3 ~ d3 ~", K: "d3@3 ~@3 d3@3 ~@3 c3@4 c3@4 db3@4",
  L: "d3@3 ~@3 d3@3 ~@3 c3@4 c3@4 b2@4", M: "a3 ~", N: "[g3@5 ~@3]/2",
})).s("gm_tuba").gain(0.3)

// bass · tuba
const bass = note(`<
  A B C D E@2 F G F G F H F G F I F G F H F G F ~ J@2 K@2 L@2 M@2 F G F H F G F I F G F H F G F ~ J@2 K@2 L@2 M@2 N O
  P@2
>`.pickRestart({
  A: "eb2!2 eb2@2 eb2!2 eb2@2 eb2!2 eb2@2", B: "eb2!2 eb2@2 eb2!2 eb2@2 eb2!2 f2@2", C: "~@3 eb2 eb2@4 ~@3 ab2",
  D: "ab2@4 eb2!2 eb2@2 eb2!2 eb2@2", E: "[eb2!2 eb2@2 eb2!2 eb2@2 eb2@12 ~@4]/2",
  F: "g2@3 ~@3 g2@3 ~@6 g2!2 ~ g2@3 ~@3", G: "f2@3 ~@3 f2@3 ~@6 f2@3 f2!2 ~ f2 ~@2",
  H: "g2@3 ~@3 g2@3 ~@3 c3@4 b2@4 c3@4", I: "g2 ~ g2 ~@2 b2 c3 d3", J: "[bb2@6 bb2 b2]/2", K: "[c3@6 c3 db3]/2",
  L: "[d3@9 c3!2 db3]/2", M: "[d3@9 c3!2 b2]/2", N: "g2", O: "d3 ~", P: "[g2@5 ~@3]/2",
})).s("gm_tuba").gain(0.3)

// other · xylophone
const xylophone = note(`<
  A B C@2 D E F G F G F H F G F I F G F H F G F ~@5 J@2 K@2 F G F H F G F I F G F H F G F ~@5 J@2 K@2 L M N@2
>`.pickRestart({
  A: "eb5!2 bb5@2 eb5!2 b5@2 eb5!2 bb5@2", B: "eb5 f5 g5@2 eb5!2 bb5@2 eb5!2 d6@2",
  C: "[eb6@8 db6@8 eb5!2 bb5@2 eb5!2 b5@2]/2", D: "eb5!2 db6@2 eb5!2 d6@2 ~@2 eb5@2", E: "g5 bb5 eb6@2 ~@2",
  F: "g5@3 ~@3 g5@3 ~@6 g5!2 ~ g5@3 ~@3", G: "f5@3 ~@3 f5@3 ~@6 f5@3 f5!2 ~ f5 ~@2",
  H: "g5@3 ~@3 g5@3 ~@3 c6@4 b5@4 c6@4", I: "g5 ~ g5 ~@2 b5 c6 d6", J: "[[a5,d6]@9 [g5,c6]!2 [ab5,db6]]/2",
  K: "[[a5,d6]@9 [g5,c6]!2 [gb5,b5]]/2", L: "~ [d5,g5]", M: "[d5,f5] ~", N: "[[d5,g5]@5 ~@3]/2",
})).s("gm_xylophone").gain(0.3)

// drums · high tom
const high_tom = s("ht").struct(`<
  A B C D E ~ F G F G F G F G F G H I H I H I H ~@5 J@4 F G F G F G F G H I H I H I H ~@5 J@4 ~@2 K@2
>`.pickRestart({
  A: "x!3 ~ x!2 ~@2 x!3 ~", B: "x!2 ~@2 x!3 ~ x!2 ~@2", C: "x ~ x", D: "~@4 x!3 ~ x!2 ~@2", E: "x!3 ~ x!2 ~@2 x ~@3",
  F: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~@2 x ~@2", G: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x!2 ~ x ~@2",
  H: "x ~ x!3 ~ x ~", I: "~@3 x ~@4 x ~@3 x ~@11", J: "x ~@5 x ~@2 x!2 ~ x ~@5 x ~@2 x!2 ~", K: "x",
})).gain(0.3)

// drums · china
const china = s("cr").struct("<A@2 B C D ~@11 E@7 ~@17 E@7 ~@13>".pickRestart({
  A: "x!3 ~ x!3 ~ x!3 ~", B: "x ~ x", C: "~@4 x!3 ~ x!3 ~", D: "x!3 ~ x!3 ~ x ~@3", E: "~ x",
})).gain(0.3)

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  A@2 B C D ~ E@5 F E@4 G H G H G H G ~@5 I@4 E@3 F E@4 G H G H G H G ~@5 I@4 ~@3 J
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2 x!2 ~@2", B: "x ~ x", C: "~@4 x!2 ~@2 x!2 ~@2", D: "x!2 ~@2 x!2 ~@2 x ~@3", E: "x ~ x ~@2 x!2 ~",
  F: "x!3 ~", G: "x ~@2 x!2 ~@3", H: "~ x", I: "x!4", J: "x",
})).gain(1.51)

// drums · whistle
const whistle = s("ballwhistle:0").struct(`<
  A B ~ C A ~ D@10 E F E F E F E ~ G ~ G ~ H I H I D@8 E F E F E F E ~ G ~ G ~ H I H I ~@3 G
>`.pickRestart({
  A: "~ x", B: "~ x ~@3 x", C: "~@5 x", D: "~ x ~@4 x ~", E: "~@3 x ~@11 x!2 ~@7", F: "~@2 x ~@2 x ~@2", G: "x",
  H: "x!2 ~@3 x ~@2", I: "~ x ~@3 x ~@2",
})).gain(0.39)

// drums · guiro
const guiro = s("guiro:4").struct("<~@2 x ~ [~@2 x] ~@55>").gain(6.29)

// drums · woodblocks
const woodblocks = s("woodblock:5").struct("<~@6 [x!4]!10 [~ x]!7 ~@9 [x!4]!8 [~ x]!7 ~@13>").gain(0.43)

stack(
  piccolo, flute, clarinet, alto_sax, baritone_sax, trumpet, french_horn, tuba, bass, xylophone, high_tom, china,
  cabasa, whistle, guiro, woodblocks
)