Strudelify

Pokemon OST

Pokemon

KeyD minorTempo120 bpm
0:00/0:00
// Pokemon OST — Pokemon
// 120 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (2/2 at bar 1, 4/4 at bar 6) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/2246496; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 39 bars on a 32-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 · [...]/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@2 B C@2 D E F G@2 H@2 I@2 H@2 G@2 H@2 J K L@2 M N O P Q R Q S G@2 H@2 J T U>".pickRestart({
  A: "[~@11 a4@5 ~@5 bb4@5 ~@4 a4@5 ~@5 f4@5 ~@5 a4@5 ~@4 db5@5]/2", B: "d5@10 ~@9 c5@10 ~@3",
  C: "[~@11 a4@5 ~@5 bb4@5 ~@4 c5@5 ~@5 db5@5 d5@19]/2", D: "~@12 g4 b4 d5 gb5", E: "g5 ~@3 g5 ~@5 g5!3 ~@3",
  F: "g5@2 ~@6 g5@8 f5@3 f5@2 f5@3 f5@3 f5@2 gb5@3", G: "[g4@6 b4 ~ d5@16 f5@6 e5 eb5]/2", H: "d5/2",
  I: "[g4@12 b4@2 ~@2 d5@32 c5@5 b4@5 ~ c5@5]/2", J: "g4@6 b4 ~ d5@8", K: "d5@16 f5@5 e5@5 ~ f5@5",
  L: "[g5@3 bb5 g5@8 c5@4]/2", M: "d5 ~@3 d5 ~@5 d5!3 ~@3", N: "d5@2 ~@6 d5@8 d5@3 d5@2 d5@3 f5@3 f5@2 f5@3",
  O: "e5 ~@3 e5 ~@5 e5!3 ~@3", P: "e5@2 ~@6 e5@8 c5@3 c5@2 c5@3 db5@3 db5@2 db5@3", Q: "d5@3 d5 ~@3 c5 ~@3 bb4 ~@3 a4",
  R: "~@6 d5@2 ~@6 c5@2 c5@5 c5@5 ~ db5@5", S: "~@6 d5@2 ~@6 c5@2 c5@5 c5@5 ~ b4@5", T: "d5@16 c5@5 c5@5 ~ b4@5",
  U: "g4",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet 2"
const trumpet_2 = note("<A@2 B C@2 D E F E F E F E F E F E F E F E F E G H@2 I@2 J K J L E F E F E M N>".pickRestart({
  A: "[~@11 a4@5 ~@5 bb4@5 ~@4 a4@5 ~@5 f4@5 ~@5 a4@5 ~@4 db5@5]/2", B: "d5@10 ~@9 c5@10 ~@3",
  C: "[~@11 a4@5 ~@5 bb4@5 ~@4 c5@5 ~@5 db5@5 a4@19]/2", D: "~@12 g4 b4 d5 db5", E: "d5 ~@3 d5 ~@5 d5!3 ~@3",
  F: "d5@2 ~@6 d5@8 c5@3 c5@2 c5@3 c5@3 c5@2 db5@3", G: "d5 ~@3 d5@4 a4@8", H: "[bb4@3 f4 f4@8 bb4@2 b4@2]/2",
  I: "[c5@3 g4 g4@8 c5@2 db5@2]/2", J: "d5@3 d5 ~@3 d5 ~@3 d5 ~@3 d5", K: "~@6 d5@2 ~@6 d5@2 c5@5 c5@5 ~ db5@5",
  L: "~@6 d5@2 ~@6 d5@2 c5@5 c5@5 ~ b4@5", M: "d5@2 ~@6 d5@8 a4@5 a4@5 ~ g4@5", N: "d4",
})).s("gm_trumpet").gain(0.36)

// bass · tuba · "E♭ Tuba (Treble Clef)"
const bass = note("<A B C@2 D E F G H I H I H I H J H I H I H I K L M N O P Q@3 R H I H I H S T>".pickRestart({
  A: "~@6 d2@2 ~ d2@2 ~@5 d2@2 d2@2 ~@6 d2@2 d2@2 ~@2", B: "~@3 d2@2 ~ e2@2 f2@5 d2@2 d2@2 ~@5 d2@2 ~ d2@2 ~@5",
  C: "[~@10 d2@10 ~@9 c2@9 d2@2 ~ d2@2 ~@5 d2@2 d2@2 ~@6 d2@2 d2@2 ~@2]/2",
  D: "~@3 d2@2 ~ e2@2 f2@5 d2 [eb2,e2] f2 gb2 g2 [ab2,a2] bb2 b2 c3 [db3,d3] eb3 e3 f3 [gb3,g3] ab3 a3 bb3 [b3,c4] db4", // Emaj7 Amaj7 Dmaj7 Gmaj7 Cmaj7
  E: "d4@2 ~@10 e3 d3 g2 a2", F: "b2 ~@3 g2 ~@5 g2!3 ~@3", G: "g2@2 ~@6 g2@8 f2@3 f2@2 f2@3 f2@3 e2@2 d2@3",
  H: "g2@2 d2 g2@2 d2 g2 d2", I: "f2@2 c2 f2@2 c2 f2 gb2", J: "g2@2 d2 f2@2 c2 f2 gb2", K: "g2@2 d2 g2@2 d2 e2 d2",
  L: "g2@3 c2 f2 g2 a2 c3", M: "bb2@2 f2 bb2@2 f2 bb2 f2", N: "bb2@2 f2 bb2@2 f2 bb2 b2", O: "c3@2 g2 c3@2 g2 c3 g2",
  P: "c3@2 g2 c3@2 g2 c3 db3", Q: "d3 d3@2 d3 c3 d3@2 c3 bb2 d3@2 bb2 a2 d3@2 c3",
  R: "d3 d3@2 d3 c3 d3@2 c3 g2 b2@2 a2 d2 eb2 f2 gb2", S: "d2@2 ~@6 d2@8 d2@5 e2@5 ~ gb2@5", T: "g2",
})).s("gm_tuba").gain(0.3)

stack(trumpet, trumpet_2, bass)