Strudelify

Sekirei Theme

Saori Hayami

KeyA♭ majorTempo120 bpm
0:00/0:00
// Sekirei Theme — Saori Hayami
// 120 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/76101; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 76 bars on a 16-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 · piccolo
const piccolo = note("<A B C D ~@15 E F@2 G H I J K L@2 ~@17 M N O P Q R S T ~@22>".pickRestart({
  A: "c6@3 db6 c6@2 c6@6 db6@2 eb6@2", B: "f6@3 eb6 f6@2 ab6@6 g6@2 ab6@2", C: "g6 ab6 bb6 g6",
  D: "f6@4 ~@4 ab6 g6 f6 db6 eb6 c6 ab5 f5", E: "~@4 f6@2 f6 eb6", F: "[db6@3 ab6 ab6@5 ab6 g6 ab6 bb6 ab6 g6 f6]/2",
  G: "eb6@3 bb6 bb6@4", H: "~ ab6!2 g6 f6 g6 ab6 eb6", I: "db6@3 c6@3 db6@2 ab6@8",
  J: "f6@3 e6@3 f6@2 ab6@4 ab6@2 bb6@2", K: "ab6@3 g6 g6@4", L: "[db7@3 c7 c7@2 bb6 c7@7 ~@2]/2", M: "a6@4 g6 f6 e6 c6",
  N: "bb6@6 a6@2 g6@6 a6 bb6", O: "c7 a6", P: "g6 d6", Q: "f6@4 c6@2 f6@2 f6@2 f6 c6 d6 e6 f6 c7",
  R: "a6@2 g6@2 f6@3 ~", S: "f6@3 e6@3 f6@2 a6@4 e6@4", T: "f6",
})).s("gm_piccolo").gain(0.45)

// other · clarinet · "Bb Clarinet"
const clarinet = note(`<
  ~@3 A B C D E F G H I B C D E J K L M ~@9 N O P Q R S T U N O P V W X Y Z AA@2 ~@15 N O P V W X Y Z AA@2 AB AC@2 ~
>`.pickRestart({
  A: "~@14 f5 g5", B: "ab5@3 g5@3 ab5@2 g5@4 eb5@4", C: "c5@6 ~ c5", D: "f5@3 eb5@3 f5@2 g5@4 eb5@4",
  E: "bb4@6 c5@2 c5@6 ab4 bb4", F: "c5@3 c5@3 db5@2 c5@4 bb4@4", G: "ab4@4 c5@4 f5@6 f5 g5",
  H: "ab5@3 ab5@3 ab5@2 g5@4 f5@4", I: "f5@6 g5@2 g5@6 f5 g5", J: "c5@3 c5@3 db5@2 c5@4 e5@4",
  K: "f5@4 eb5@4 d5@6 f5 g5", L: "ab5@3 g5@3 ab5@2 eb5@4 bb4@4", M: "f5 ~", N: "f5@3 e5@3 f5@2 c5@8",
  O: "f5@3 e5@3 f5@2 c6@8", P: "f5@3 bb5@3 a5@2 f5@4 c5@4", Q: "d5@3 a5 g5@4", R: "g5@3 g5@3 g5@2 g5@6 a5 bb5",
  S: "c6@3 f5@3 e5@2 f5@8", T: "d5@3 e5@3 f5@2 bb5@4 a5@2 bb5@2", U: "a5@3 g5 g5@4", V: "bb4@3 bb5 g5@4",
  W: "g5@3 g5@3 g5@2 g5@2 bb5@2 a5@2 e5@2", X: "f5@2 a5@2 d6 ~ d5 e5", Y: "f5@2 d5 f5@3 f5!2", Z: "a5 bb5 a5 g5",
  AA: "[g5@3 f5 f5@12]/2", AB: "g5@3 f5", AC: "f5/2",
})).s("gm_clarinet").gain(0.4)

// other · clarinet · "Bb Clarinet"
const clarinet_2 = note(`<
  A B C D E F G H F H@2 I J K L M N O P Q R F S T U@2 F V@2 W X Y Z AA AB AC AD W X Y Z AA AE AC AF AB ~@22 AC AF AB@4
  AG D
>`.pickRestart({
  A: "c5@3 db5 c5@2 c5@6 db5@2 eb5@2", B: "f5@3 eb5 f5@2 ab5@6 g5@2 ab5@2", C: "g5 ab5 bb5 g5", D: "f5", E: "c5",
  F: "g4", G: "bb4", H: "ab4", I: "bb4!2", J: "f4 ab4 c5 f5 c6@4", K: "f4 ab4 c5 f5 ab5@4", L: "f4 bb4 db5 f5 bb4@4",
  M: "eb4 ab4 c5 eb5 ab5@4", N: "e4 g4 c5 e5 g5@4", O: "db5 c5 bb4@2", P: "ab4@3 ab4@5 eb4@2 bb4@2 eb5@4",
  Q: "f4 bb4 c5 f5 f5@4", R: "f4", S: "gb4", T: "f4 g4 ab4 a4", U: "f4/2", V: "g4/2", W: "a4!2 g4!2", X: "a4!4",
  Y: "d5!2 c5!2", Z: "d5!2 e5!2", AA: "e5!2 c5!2", AB: "f5!4", AC: "d5!4", AD: "f5!2 e5!2", AE: "f5 e5 d5@2",
  AF: "e5!4", AG: "f5@4 f5@4 f5@4 f5@2 c6 a5",
})).s("gm_clarinet").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@4 A B A C D A E F G H I J K L M N O@2 P Q R S T U@2 V@2 W X Y Z AA AB V@2 W X Y AC AD AB@2 AE AF AG AH AI AJ AK A
  ~@14 AD AB@5 AL AM
>`.pickRestart({
  A: "f4", B: "c4", C: "eb4", D: "e4", E: "db4", F: "eb4 e4", G: "f4 ab4 c5 f4 c5@4", H: "f4 ab4 c5 f4 ab4@4",
  I: "f4 bb3 db4 f4 bb4@4", J: "eb4 ab3 c4 eb4 ab4@4", K: "e4 g4 c4 e4 g4@4", L: "f4 eb4 d4@2",
  M: "eb4@3 eb4@5 eb4@2 bb3@2 eb4@4", N: "f4 bb3 c4 f4 c5@2 f4 eb4", O: "[db4@3 ab4 ab4@5 ab4 g4 ab4 bb4 ab4 g4 f4]/2",
  P: "eb4@3 bb4 bb4@4", Q: "~ ab4!2 g4 f4 g4 ab4 eb4", R: "db4@3 c4@3 db4@2 ab4@8",
  S: "f4@3 e4@3 f4@2 ab4@4 ab4@2 bb4@2", T: "ab4@3 g4 g4@4", U: "[db5@3 c5 c5@2 bb4 c5@7 ~@2]/2", V: "f4!2 e4!2",
  W: "bb4!2 a4!2", X: "g4!4", Y: "c5!2 g4!2", Z: "a4!2 d5!2", AA: "f4!4", AB: "c5!4", AC: "d5 c5 g4@2", AD: "bb4!4",
  AE: "a4@4 g4 f4 e4 c4", AF: "bb4@6 a4@2 g4@6 a4 bb4", AG: "c5 a4", AH: "g4 d4",
  AI: "f4@4 c4@2 f4@2 f4@2 f4 c4 d4 e4 f4 c5", AJ: "a4@2 g4@2 f4@3 ~", AK: "f4@3 e4@3 f4@2 a4@4 e4@4",
  AL: "bb4@4 bb4@4 bb4@4 bb4@2 f4 a4", AM: "c5",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  A B C D@3 E F G H I J K L M N O P Q R S T@2 U V H V W@2 X Y Z AA AB AC AD AE X Y Z AA AB AF Z AE AG ~@22 Z AE AG@4 AH
  AI
>`.pickRestart({
  A: "c4@3 ab3@5", B: "f4@3 c4@5", C: "ab3 eb4", D: "c4", E: "f3", F: "eb3", G: "e3", H: "ab3", I: "db3", J: "bb3 e3",
  K: "f3 ab3 c4 f4 c4@4", L: "f3 ab3 c4 f4 ab4@4", M: "f3 bb3 db4 f4 bb3@4", N: "eb3 ab3 c4 eb4 ab4@4",
  O: "e3 g3 c4 eb4 g4@4", P: "f3 eb3 d3@2", Q: "eb3@3 eb3@5 eb3@2 bb3@2 eb4@4", R: "f3 bb3 c4 f4 a4@4", S: "db4",
  T: "eb4", U: "f3@2 eb3 f3", V: "bb3", W: "c4/2", X: "c4!4", Y: "d4!2 c4!2", Z: "f4!4", AA: "d4!2 e4!2",
  AB: "e4!2 c4!2", AC: "f4!2 a4!2", AD: "d4!4", AE: "g4!4", AF: "f4 e4 d4@2", AG: "a4!4",
  AH: "d4@4 d4@4 d4@4 d4@2 f4 a4", AI: "f4",
})).s("gm_tenor_sax").gain(0.3)

// other · trumpet · "Bb Trumpet"
const trumpet = note(`<
  ~@11 A B C D E F G H I ~@9 J K L M N O P Q J K L R S T U V W@2 ~@20 X U V W@2 Y Z@2 ~
>`.pickRestart({
  A: "~@14 f4 g4", B: "ab4@3 g4@3 ab4@2 g4@4 eb4@4", C: "c4@6 ~ c4", D: "f4@3 eb4@3 f4@2 g4@4 eb4@4",
  E: "bb3@6 c4@2 c4@6 ab3 bb3", F: "c4@3 c4@3 db4@2 c4@4 [e4,g4]@4", G: "[f4,ab4]@4 [eb4,g4]@4 [d4,f4]@6 f4 g4",
  H: "ab4@3 g4@3 ab4@2 [eb4,bb4]@4 [bb3,g4]@4", I: "f4 ~", J: "f4@3 e4@3 f4@2 c4@8", K: "f4@3 e4@3 f4@2 c5@8",
  L: "f4@3 bb4@3 a4@2 f4@4 c4@4", M: "d4@3 a4 g4@4", N: "g4@3 g4@3 g4@2 g4@6 a4 bb4", O: "c5@3 f4@3 e4@2 f4@8",
  P: "d4@3 e4@3 f4@2 bb4@4 a4@2 bb4@2", Q: "a4@3 g4 g4@4", R: "bb3@3 bb4 g4@4",
  S: "g4@3 g4@3 g4@2 g4@2 bb4@2 a4@2 e4@2", T: "f4@2 a4@2 d5 ~ d4 e4", U: "f4@2 d4 f4@3 f4!2", V: "a4 bb4 a4 g4",
  W: "[g4@3 f4 f4@12]/2", X: "~@6 d4 e4", Y: "g4@3 f4", Z: "f4/2",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "Bb Trumpet"
const trumpet_2 = note(`<
  A B C D E F G H F I H J K L M N O P Q R S@2 T U G V G W@2 X Y Z AA AB AC AD AE X Y Z AA AB AF AD AG AC ~@16 X Y Z AA
  AB AH AD AG AC@4 AI E
>`.pickRestart({
  A: "c4@3 db4 c4@2 c4@6 db4@2 eb4@2", B: "f4@3 eb4 f4@2 ab4@6 g4@2 ab4@2", C: "g4 ab4 bb4 g4", D: "f4", E: "c4",
  F: "g3", G: "bb3", H: "ab3", I: "f3", J: "eb4 bb3", K: "f3 ab3 c4 f4 c5@4", L: "f3 ab3 c4 f4 ab4@4",
  M: "f3 bb3 db4 f4 bb4@4", N: "eb4 ab3 c4 eb4 ab4@4", O: "e4 g3 c4 e4 g4@4", P: "db4 c4 bb3@2",
  Q: "ab3@3 ab3@5 eb4@2 bb3@2 eb4@4", R: "f3 bb3 c4 f4 f4@4", S: "[bb3@3 ab3]/2", T: "gb3", U: "f3 g3 ab3 a3", V: "b3",
  W: "c4/2", X: "a3!2 g3!2", Y: "a3!4", Z: "d4!2 c4!2", AA: "d4!2 e4!2", AB: "e4!2 c4!2", AC: "f4!4", AD: "d4!4",
  AE: "f4!2 e4!2", AF: "f4 e4 d4@2", AG: "e4!4", AH: "f4@2 e4@2 d4 ~@3", AI: "f4@4 f4@4 f4@4 f4@2 c4 f4",
})).s("gm_trumpet").gain(0.3)

// other · french horn · "F Mellophone"
const french_horn = note(`<
  ~@4 A B A C B A C D E F G H I J K L C M N O P@2 B P@2 Q@2 R S T U V W Q@2 R S T X Y W@2 Z B Z AA Z AA AB AC ~@8 Q@2 R
  S T AD Y W@5 AE AF
>`.pickRestart({
  A: "f3", B: "g3", C: "ab3", D: "bb3!2", E: "f3 ab3 c4 f4 c4@4", F: "f3 ab3 c4 f4 ab3@4", G: "f3 bb3 db4 f4 bb3@4",
  H: "eb3 ab3 c4 eb4 ab4@4", I: "e3 g3 c4 e4 g4@4", J: "f3 eb3 d3@2", K: "ab3@3 ab3@5 eb3@2 bb3@2 eb4@4",
  L: "f3 bb3 c4 f4 c4@4", M: "bb3 ab3", N: "gb3", O: "f3@2 eb3 f3", P: "f3/2", Q: "f3!2 e3!2", R: "bb3!2 a3!2",
  S: "g3!4", T: "c4!2 g3!2", U: "a3!2 d4!2", V: "f3!4", W: "c4!4", X: "d4 c4 g3@2", Y: "bb3!4", Z: "c4", AA: "d4",
  AB: "f4", AC: "bb3 f4", AD: "d4@2 c4@2 g3 ~@3", AE: "bb3@4 bb3@4 bb3@4 bb3@2 a3 f3", AF: "a3",
})).s("gm_french_horn").gain(0.3)

// other · trombone
const trombone = note(`<
  ~@4 A@2 B C D E F G H I J K L M N O P Q R S B E B T@2 U V W X Y Z AA AB U V W X Y AC W AB AD AE B P AF P AE A AG ~@8 U
  V W X Y AH W AB AD@4 AI P
>`.pickRestart({
  A: "c4", B: "bb3", C: "eb3", D: "e3", E: "ab3", F: "db3", G: "eb3 e3", H: "f3 ab3 c4 f4 c4@4",
  I: "f3 ab3 c4 f4 ab3@4", J: "f3 bb3 db4 f4 bb3@4", K: "eb3 ab3 c4 eb4 ab3@4", L: "e3 g3 c4 e4 g4@4",
  M: "db4 c4 bb3@2", N: "ab3@3 ab3@5 eb3@2 bb3@2 eb4@4", O: "f3 bb3 c4 f4 a3@4", P: "f3", Q: "g3", R: "gb3",
  S: "f3 g3 ab3 a3", T: "c4/2", U: "c3!4", V: "d3!2 c3!2", W: "f3!4", X: "d3!2 e3!2", Y: "e3!2 c3!2", Z: "f3!2 a3!2",
  AA: "d3!4", AB: "g3!4", AC: "f3 e3 d3@2", AD: "a3!4", AE: "a3", AF: "d3", AG: "f3 c4", AH: "f3 e3 d3 ~",
  AI: "d3@4 d3@4 d3@4 d3@2 c3 f3",
})).s("gm_trombone").gain(0.3)

// other · french horn · "Baritone Horn"
const french_horn_2 = note(`<
  A B C D E F E D F G H I J K L M N O P Q R D@2 S T@2 F U@2 V@2 W X Y Z AA AB V@2 AC X AD AE AA AF AG AH AI AJ AK AJ AI
  E AL ~@8 V@2 AC X AD AM AA AF AG@3 AB AN AO
>`.pickRestart({
  A: "g3@3 ab3@5", B: "ab3@3 c4@5", C: "eb3 g3", D: "eb3", E: "f3", F: "g3", G: "ab3", H: "ab2", I: "bb2!2",
  J: "f3 ab3 c4 f3 c4@4", K: "f3 ab3 c4 f3 ab3@4", L: "f3 bb3 db4 f3 bb3@4", M: "eb3 ab3 c4 eb4 ab3@4",
  N: "e3 g3 c4 e3 g3@4", O: "f3 eb3 d3@2", P: "eb3@3 eb3@5 eb3@2 bb3@2 eb3@4", Q: "f3 bb3 c4 f3 f3@4", R: "db3",
  S: "f3@2 eb3 f3", T: "f3/2", U: "g3/2", V: "f3!2 e3!2", W: "d3!2 c3!2", X: "d3!2 e3!2", Y: "c3!2 g2!2",
  Z: "a3!2 d4!2", AA: "f3!4", AB: "c3!4", AC: "bb3!2 a3!2", AD: "e3!2 g3!2", AE: "d3 c3 g2@2", AF: "c4!4", AG: "a3!4",
  AH: "e3", AI: "d3", AJ: "a3", AK: "bb3", AL: "d3 a2", AM: "d3@2 c3@2 g2 ~@3", AN: "bb2@4 bb2@4 bb2@4 bb2@2 c3 a2",
  AO: "c3",
})).s("gm_french_horn").gain(0.3)

// bass · tuba · "F Tuba"
const bass = note(`<
  A B C D E D F E G H I J H@2 F E D K L M N@2 O P F Q F R@2 S T U V D W X Y S T M V D Z F D H AA AB H AB H@2 AA H ~@8 S
  T M V D AC F D H@4 F H
>`.pickRestart({
  A: "c3@3 ab2@5", B: "f3@3 c3@5", C: "ab2 eb3", D: "c3", E: "ab2", F: "bb2", G: "e2", H: "f2", I: "db2", J: "eb2 e2",
  K: "bb2 c3 bb2@2", L: "ab2 eb2", M: "bb2 f2", N: "[bb2@3 ab2]/2", O: "gb2", P: "f2 g2 ab2 a2", Q: "b2", R: "c3/2",
  S: "f2 c3", T: "d3 a2", U: "bb2 d2", V: "g2 e2", W: "f2 d2", X: "d2", Y: "c2", Z: "d2 a2 g2@2", AA: "a2", AB: "g2",
  AC: "d2@2 a2@2 g2 ~@3",
})).s("gm_tuba").gain(0.3)

// other · glockenspiel
const glockenspiel = note(`<
  A B C D E F G H I J K L E F G H M N O P Q@2 R S T U V W@2 X Y Z AA AB AC AD AE X Y Z AF AG AH AI AJ AK@2 ~@7 X Y Z AF
  AB AC AD AE X Y Z AF AG AL ~@8
>`.pickRestart({
  A: "c6@3 db6 c6@2 c6@6 db6@2 eb6@2", B: "f6@3 eb6 f6@2 ab6@6 g6@2 ab6@2", C: "g6 ab6 bb6 g6", D: "f6@8 ~@6 f6 g6",
  E: "ab6@3 g6@3 ab6@2 g6@4 eb6@4", F: "c6@6 ~ c6", G: "f6@3 eb6@3 f6@2 g6@4 eb6@4", H: "bb5@6 c6@2 c6@6 ab5 bb5",
  I: "c6@3 c6@3 db6@2 c6@4 bb5@4", J: "ab5@4 c6@4 f6@6 f6 g6", K: "ab6@3 ab6@3 ab6@2 g6@4 f6@4",
  L: "f6@6 g6@2 g6@6 f6 g6", M: "c6@3 c6@3 db6@2 c6@4 g6@4", N: "ab6@4 g6@4 f6@6 f6 g6",
  O: "ab6@3 g6@3 ab6@2 bb6@4 g6@4", P: "f6@4 ~@2 f6 eb6", Q: "[db6@3 ab6 ab6@5 ab6 g6 ab6 bb6 ab6 g6 f6]/2",
  R: "eb6@3 bb6 bb6@4", S: "~ ab6!2 g6 f6 g6 ab6 eb6", T: "db6@3 c6@3 db6@2 ab6@8",
  U: "f6@3 e6@3 f6@2 ab6@4 ab6@2 bb6@2", V: "ab6@3 g6 g6@4", W: "[db7@3 c7 c7@2 bb6 c7@7 ~@2]/2",
  X: "f6@3 e6@3 f6@2 c6@8", Y: "f6@3 e6@3 f6@2 c7@8", Z: "f6@3 bb6@3 a6@2 f6@4 c6@4", AA: "d6@3 a6 g6@4",
  AB: "g6@3 g6@3 g6@2 g6@6 a6 bb6", AC: "c7@3 f6@3 e6@2 f6@8", AD: "d6@3 e6@3 f6@2 bb6@4 a6@2 bb6@2",
  AE: "a6@3 g6 g6@4", AF: "bb5@3 bb6 g6@4", AG: "g6@3 g6@3 g6@2 g6@2 bb6@2 a6@2 e6@2", AH: "f6@2 a6@2 d7 ~ d6 e6",
  AI: "f6@2 d6 f6@3 f6!2", AJ: "a6 bb6 a6 g6", AK: "[g6@3 f6 f6@12]/2", AL: "f6@2 a6@2 d7@2 d6 e6",
})).s("gm_glockenspiel").gain(0.45)

stack(
  piccolo, clarinet, clarinet_2, alto_sax, tenor_sax, trumpet, trumpet_2, french_horn, trombone, french_horn_2, bass,
  glockenspiel
)