Strudelify

Staff Roll

Mahito Yokota

KeyG majorTempo136 bpm
0:00/0:00
// Staff Roll — Mahito Yokota
// 136 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1350666; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/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 · violin
const violin = note("<A@5 B C ~@3 D E D ~@8 F ~ F ~ G H I J K ~@96>".pickRestart({
  A: "d5 b4 a4 g4 d5 b4 a4 g4 d5 b4 a4 g4 d5 b4 a4 g4", B: "~@8 a3 b3 c4 d4 c4 d4 e4 f#4", C: "g4 ~",
  D: "g5 f#5 e5 d5 g5 f#5 e5 d5 g5 f#5 e5 d5 g5 f#5 e5 d5", E: "g5 f#5 e5 d5 c5 b4 a4 g4 d5 c5 b4 a4 g4 f#4 e4 d4",
  F: "d4 e4 f#4 g4 a4 b4 c5 c#5 d5 c5 b4 a4 g4 f#4 e4 d4", G: "e4 f#4 g#4 a4 b4 c5 d5 d#5 e5 d5 c5 b4 a4 g#4 a4 b4",
  H: "c5 b4 a4 g4 a4 b4 c5 d5 e5 d5 c5 b4 a4 g4 g#4 a4", I: "d4 e4 f#4 g4 a4 b4 c5 d5 g4 a4 b4 c5 d5 e5 f#5 g5",
  J: "f#5 g5 a5 b5 c6 b5 a5 g5 a5 g5 f#5 e5 d5 c5 b4 a4", K: "e4 e5 c5 e5",
})).s("gm_violin").gain(0.25)

// other · violin · soft notes
const violin_soft = note("<~@13 [g5 f#5 e5 d5 c5 b4 a4 g4 d5 c5 b4 a4 g4 f#4 e4 d4] ~@112>").s("gm_violin").gain(0.15)

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

// other · trumpet · "C Trumpet"
const trumpet_2 = note("<~@4 A B C D E F G@5 H I H J K L M G N@2 O ~@100>".pickRestart({
  A: "~@14 g5!2", B: "g5 f#5", C: "d5@3 a4", D: "b4 g5", E: "f#5", F: "e5", G: "b3 ~ b3 ~@3 b3 ~ b3 ~ b3 ~@3 b3 ~",
  H: "c4 ~ c4 ~@3 c4 ~ c4 ~ c4 ~@3 c4 ~", I: "d4 ~ d4 ~@3 d4 ~ d4 ~ d4 ~@3 d4 ~",
  J: "b4 ~ b4 ~@3 b4 ~ b4 ~ b4 ~@3 b4 ~", K: "a#4 ~ a#4 ~@3 a#4 ~ a#4 ~ a#4 ~@3 a#4 ~",
  L: "a4 ~ a4 ~@3 a4 ~ a4 ~ a4 ~@3 a4 ~", M: "a4 ~ a4 ~@3 a4 ~ a4 ~@7", N: "a3 ~ a3 ~@3 a3 ~ a3 ~ a3 ~@3 a3 ~",
  O: "g#3 ~ g#3 ~@3 g#3 ~ g#3 ~ g#3 ~@3 g#3 ~",
})).s("gm_trumpet").gain(0.15)

// other · french horn · "Horn"
const french_horn = note("<~@2 [g4@3 f#4] [d4@3 b3] ~@122>").s("gm_french_horn").gain(0.3)

// other · flute
const flute = note("<~@30 A B C D A E F@2 G H I@2 J@2 I@2 K@2 I@2 L@2 M@2 N@2 ~@70>".pickRestart({
  A: "e5@8 f#5@6 g5 a5", B: "g5 ~ d5@2 d6@4", C: "c6@8 c6@6 d6 e6", D: "d6 ~ b5@6", E: "g5@2 ~@2 d5@4 d6@6 c6 b5",
  F: "[c6@3 b5 a5@10 a5@2]/2", G: "d6@3 d5", H: "e5 b5", I: "[e5@5 d#5 e5 b5@3 a5@2 g#5@2 a5@2]/2",
  J: "[e5@5 c#5 d5 e5@7 ~@2]/2", K: "[e6@5 d6 c#6 b5@7 e5@2]/2", L: "[e5@5 c#5 d5 e5@3 g5@2 f#5@2 c#5@2]/2",
  M: "[d5@5 c#5 d5 e5@4 a4@3 a5 b5]/2", N: "[g#5@3 f#5@11 ~@2]/2",
})).s("gm_flute").gain(0.3)

// other · trombone
const trombone = note("<~@4 A B C D E F G ~@115>".pickRestart({
  A: "~@14 c3!2", B: "c3 d3", C: "g2@3 a2", D: "b2 d3", E: "c3", F: "e3", G: "g2 ~@15",
})).s("gm_trombone").gain(0.3)

// other · timpani
const timpani = note("<~@4 [~@14 c3!2] [c3 d3] ~@2 [~@6 c3!2 c3@8] ~@117>").s("gm_timpani").gain(0.3)

// other · orchestral harp · "Harp"
const orchestral_harp = note("<~ A ~@12 B C D C D E C F G H I J K L M N O P Q R S T U@2 V W ~@86>".pickRestart({
  A: "~@4 [g3,a3] [b3,c4] [d4,e4] [f#4,g4] [a4,b4] [c5,d5] [e5,f#5] [g5,a5] [b5,c6] [d6,e6] [f#6,g6] a6", B: "g2 ~@15",
  C: "a2 ~@15", D: "b2 ~@15", E: "a#2 ~@15", F: "d3 ~@9 d2 ~ f#2 ~ a2 ~", G: "g2 ~@5 g3 ~ d4 ~@5 g2 ~",
  H: "f#2 ~@5 f#3 ~ a3 ~@5 f#2 ~", I: "f2 ~@5 b3 ~ d4 ~@5 f2 ~", J: "e2 ~@5 b2 ~@5 e3 ~@3", K: "a2 ~@5 a2 ~@9",
  L: "b2 ~@5 b2 ~@9", M: "c3 ~@5 c3 ~@5 g3 ~@3", N: "d3 ~@5 d3 ~@3 d4@2 a3@2 e3@2", O: "c3!2", P: "b2@3 b2@2 d3 g2@2",
  Q: "a2 d3", R: "g2@3 g2@2 d3 g3@2", S: "c3 b2", T: "b2@3 b2@2 e3 ~@2", U: "f2!4", V: "g2!4", W: "e2!4",
})).s("gm_orchestral_harp").gain(0.2)

stack(violin, violin_soft, trumpet, trumpet_2, french_horn, flute, trombone, timpani, orchestral_harp)

More by Mahito Yokota