Strudelify

Slipsand Galaxy

Mahito Yokota

KeyA majorTempo120 bpm
0:00/0:00
// Slipsand Galaxy — Mahito Yokota
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5891767; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 75 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 · "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 · trumpet · "B♭ Trumpet 1"
const trumpet = note(`<
  A B ~@14 C D ~@4 E F@2 ~ G H I J K L ~ M N O P Q ~@15 C D ~@4 E F@2 ~ G H I J K L ~ M N O P Q
>`.pickRestart({
  A: "f#5 d#5 c5 b4@2 f#4 d#4 c4 b3@2 ~ b3 d#4 f#4 c5 d#5", B: "e5 ~@7",
  C: "~@2 b3@2 d4@2 e4 f4 f4@4 g#4@3 a4, ~@8 g#4 ~@7", D: "b4 ~", E: "~@4 b3@2 c4@2 d#4@3 e4@3 f4@2",
  F: "[f#4@6 e4 f#4 b3@20 ~@4, ~@8 e4 ~@23]/2", G: "~@4 a#3@2 c#4@2 d4@3 e4@3 f#4 ~", H: "e4@8 f#4@4 e5@2 e4 [f4,g#4]",
  I: "b4 e3 b3 e4, a4 ~@15", J: "a5!5 g5 ~ a5 ~@4 a3 ~ c4 ~", K: "a#3@3 a3 ~@2 g3 ~ a3@8, ~@8 g#3 ~@7",
  L: "a5!5 g5 ~ a5 ~@8", M: "a5!5 g5 ~ a5 ~@4 a4 ~ c5 ~", N: "a#4@3 a4 ~@2 g4 ~ a4@8, ~@8 g#4 ~@7",
  O: "a5!5 g5 ~ a5 ~@4 a4 ~ b4 ~", P: "~ c5 d5 e5 f5@2 e5 d5 g5 f5 d#5 a5 g5 f5 b5 g5", Q: "a5!4 ~ a5 a5@2 ~@8",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "B♭ Trumpet 2"
const trumpet_2 = note(`<
  A B ~@18 C D ~@3 D ~ E F G H I ~ G H G J K ~@19 C D ~@3 D ~ E F G H I ~ G H G J K
>`.pickRestart({
  A: "b4 a4 f#4 d#4@2 c4 b3 a3 f#3@2 ~ f#3 b3 d#4 a4 b4", B: "b4 ~@7",
  C: "~@2 b3@2 d4@2 e4 f4 f4@4 g#3 a3 b3 d#4, ~@8 g4 ~@7", D: "e4@6 d#4 e4 a3@8, ~@8 d#4 ~@7", E: "~@2 f#4 b4",
  F: "~ b3 e4 b4", G: "c5!5 b4 ~ c5 ~@4 e4 ~ g4 ~", H: "f4@3 e4 ~@2 d4 ~ e4@8, ~@8 d#4 ~@7", I: "c5!5 b4 ~ c5 ~@8",
  J: "~ c4 d4 e4 f4@2 e4 d4 g4 f4 d#4 a4 g4 f4 b4 g4", K: "c5!4 ~ c5 c5@2 ~@8",
})).s("gm_trumpet").gain(0.4)

// other · french horn · "Horn in F"
const french_horn = note(`<
  ~@2 A ~ B ~@7 C D E F G D E H G I J K L ~@6 M@2 ~@2 N O P ~ A ~ B ~@7 C D E F G D E H G I J K L ~@6 M@2 ~@2 N O P
>`.pickRestart({
  A: "~@13 c4@3, ~@11 c5@2 ~@3, ~@6 g4 ~", B: "~@3 c4, ~@5 d5 ~@2, ~@11 g4@2 ~@3", C: "~@9 b2 c3 d#3 e3 f#3 g3 a#3",
  D: "b3@6 c4 d#4 e4@6 d#4 c4", E: "b3@3 c4 a3@6 g#3 a3 b3@2 a3 g#3, ~@4 b3 ~@11", F: "f3@10 g#3 a3 b3@2 a3 g#3",
  G: "e3 ~", H: "f3@10 d3 e3 f3@2 e3 d3", I: "~@5 f#2 c3 f3", J: "c4 f3", K: "~@2 b3 f#3 b2@4 ~@2 e2@2 b2@2 e3@2",
  L: "b3@4 e4@4 f#4@4 b4 f#4 b3 b2", M: "[~@13 e3 g3 a3@2 a#3 c#4@2 d4 e4 f4@2 e4 d4 c#4@6]/2", N: "~@12 a3 ~ d4 ~",
  O: "~ c3 d3 e3 f3@2 e3 d3 g3 f3 d#3 a3 g3 f3 b3 g3", P: "a4!4 ~ a4 a4@2 ~@8",
})).s("gm_french_horn").gain(0.4)

// bass · tuba
const bass = note(`<
  A B C B D B C B D B C B D B C B D B C B D E F G H I J K L M N O@2 P N Q R S B C B D B C B D B C B D B C B D B C B D E
  F G H I J K L M N O@2 P N Q R T
>`.pickRestart({
  A: "~@11 b2 b2@2 b2@2", B: "e2@3 e2 ~@5 b1 ~ b1 c2 d#2@3", C: "e2@3 e2 ~@5 b1 ~ b1@2 b1@3",
  D: "e2@3 e2 ~@5 b1 ~ b1@2 f#1 c2 d#2", E: "f2@3 b2 ~@2 c3 ~@2 c2 ~ c2 d#2 ~ e2 ~",
  F: "f2@3 b2 ~@2 c3 ~@2 b1 ~ d2 ~ d#2@3", G: "e2@3 a#2 ~@2 b2 ~@2 b1 ~ b1 d2 ~ d#2 ~",
  H: "e2@3 a#2 ~@2 b2 ~@2 b1 ~ d2 ~ e2@3", I: "f#2@3 b2 ~@2 c3 ~@2 c2 ~ c2 f#2 ~ c2 ~",
  J: "a#1@3 f2 ~@2 a#2 ~@2 a#1 ~ a#1 ~ f2@3", K: "b1@3 f#2 ~@2 b2 ~@2 b1 ~ b1 d2 ~ d#2@2",
  L: "e2@3 e2 ~@2 b1 ~@2 e2 ~ b2 ~ g#2 f2 b1", M: "f#2 e3!4 d3 ~ e3 ~ a2 ~ a2 e3 ~ a2 ~",
  N: "~ a2@2 a2 ~ e2 f2 e2 ~ a1@2 e2 g2 e2 g#2 e2",
  O: "[f#2 e3!4 d3 ~ e3 ~ a1 ~ a1@2 e2 g2 a2@2 a#2 c#3 d3 e3 f3@2 e3 d3 c#3@4 a#2 g2 ~]/2",
  P: "f#2 e3!4 d3 ~ e3 ~ a1 ~ a2 e3 ~ a2 ~", Q: "f#2 e3!4 d3 ~ e3 ~ a1 ~ g2 a2 ~ g2 ~",
  R: "f2@4 ~ f2@3 d#2@3 d#2@3 ~ b1", S: "d2@2 d2!2 ~ d2 d2@2 ~@3 d2@3 d#2@2", T: "d2@2 d2!2 ~ d2 d2@2 ~@8",
})).s("gm_tuba").gain(0.45)

stack(trumpet, trumpet_2, french_horn, bass)

More by Mahito Yokota