Strudelify

youngblood

Ethan Luong

KeyB♭ majorTempo120 bpm
0:00/0:00
// youngblood — Ethan Luong
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5925767; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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 · violin · "Violin I"
const violin = note(`<
  ~@16 A B C B D E F G H I J K@2 L M@2 N@2 O@3 ~@8 E F G H ~@3 H E F G H I J K@2 L M@2 N@2 O@3 B C B P L M@2 Q
>`.pickRestart({
  A: "~@7 bb4", B: "g5!2 ~ g5 f5!2 ~ f5 d5!2 ~ d5 f5@4", C: "d5!2 ~ d5 f5@4 bb4@2 a4@4 bb4@2", D: "d5!2 ~ d5 f5@4 c4@8",
  E: "d4", F: "c4", G: "bb3", H: "bb3 c4", I: "d4!4", J: "c4!4", K: "[~@2 d5 c5@2 bb4 d5 c5@2 bb4 d5 c5@2 bb4 f5@2]/2",
  L: "g5@4 ~ f5 ~ f5 g5@2 f5@2 ~ g5 ~ g5", M: "[g5 f5 ~@2 bb5 a5 f5 f5@2 d5 f5@2 f5@2 f5@2]/2",
  N: "[f5@4 f5@2 d5@2 f5@2 d5@2 g5@2 g5@6 ~ f5 ~ f5 g5@2 f5@2 ~ g5 ~ g5]/2",
  O: "[g5 f5 ~@2 bb5 a5 f5 ~ bb3@2 d6 ~@2 bb5 d6 ~@2 bb5 d6 ~@2 bb5 c4@2, ~@7 f5@3 bb3@2 bb3@2 bb3@2 bb3@2 bb3@2 c4@2 ~@2, ~@11 c6@2 ~@2 c6@2 ~@2 c6@2 ~@3]/3",
  P: "d5!2 ~ d5 f5@4 ~@4 f5@4", Q: "f5@2 f5 d5 f5 d5 g5!2",
})).s("gm_violin").gain(0.4)

// other · violin · "Violin I" · soft notes
const violin_soft = note("<~ A B C D A B C D A B C D A B C ~@21 E F G H A B C D ~@4 A B C ~@25>".pickRestart({
  A: "d4", B: "c4", C: "bb3", D: "bb3 c4", E: "d4!8", F: "c4!8", G: "bb3!8", H: "bb3!4 c4@2 c4@2",
})).s("gm_violin").gain(0.2)

// other · viola
const viola = note(`<
  A@3 B C D@2 B E F@2 B C D@2 B ~ G H I J G H I J K L M N O P Q R K L M N ~@8 G H I J ~@3 J G H I J K L M N O P Q R K L
  M N K L M S T U@2 V
>`.pickRestart({
  A: "[~@12 f4@2 bb4@4 bb4!2 bb4@2 bb4@2 bb4@3 bb4@3 a4@4 a4@2 a4@2 a4@2 d5@4 f4@4]/3", B: "g4 ~", C: "~@6 f4 bb4",
  D: "[~@2 bb4!2 bb4@2 bb4@2 bb4@3 bb4@3 a4@4 a4@2 a4@2 a4@2 d5@4 f4@4]/2", E: "~@6 bb4 d5",
  F: "[~ d5@2 d5 d5@2 d5@2 bb4@2 bb4@4 c5@4 bb4@2 c5@2 d5@2 f5@4 f4@4]/2", G: "bb3", H: "a3", I: "g3", J: "g3 a3",
  K: "bb3!4", L: "a3!4", M: "g3!4", N: "g3!2 a3!2", O: "bb3!8", P: "a3!8", Q: "g3!8", R: "g3!4 a3@2 a3@2",
  S: "g3!2 ~ f3", T: "g3@4 ~ f3 ~ f3 g3@2 f3@2 ~ g3 ~ g3", U: "[g3 f3 ~@2 bb3 a3 f3 f3@2 d3 f3@2 f3@2 f3@2]/2",
  V: "f3@2 f3 d3 f3 d3 g3!2",
})).s("gm_viola").gain(0.3)

// other · viola · soft notes
const viola_soft = note("<~@16 A ~@20 B C D E F G H A ~@4 F G H ~@25>".pickRestart({
  A: "g3 a3", B: "g3!8", C: "f3!8", D: "eb3!8", E: "eb3!4 f3@2 f3@2", F: "bb3", G: "a3", H: "g3",
})).s("gm_viola").gain(0.2)

// other · cello · "Violoncello"
const cello = note(`<
  ~@17 A B C D A B C D E F G H I J K L E F G H M@2 N O@3 N P Q@2 N R S@2 N D A B C D E F G H I J K L E F G H E F G H I T
  U V
>`.pickRestart({
  A: "g3", B: "f3", C: "eb3", D: "eb3 f3", E: "g3!4", F: "f3!4", G: "eb3!4", H: "eb3!2 f3!2", I: "g3!8", J: "f3!8",
  K: "eb3!8", L: "eb3!4 f3@2 f3@2", M: "[bb3@2 bb3!2 bb3@2 bb3@2 bb3@2 bb3@4 a3@4 a3@2 a3@2 a3@2 d4@4 f3@4]/2",
  N: "g3 ~", O: "[~@12 f3@2 bb3@4 bb3!2 bb3@2 bb3@2 bb3@3 bb3@3 a3@4 a3@2 a3@2 a3@2 d4@4 f3@4]/3", P: "~@6 bb3 d4",
  Q: "[~ d4@2 d4 d4@2 d4@2 bb3@2 bb3@4 c4@4 bb3@2 c4@2 d4@2 f4@4 f3@4]/2", R: "~@6 f3 bb3",
  S: "[~@2 bb3!2 bb3@2 bb3@2 bb3@3 bb3@3 a3@4 a3@2 a3@2 a3@2 d4@4 f3@4]/2", T: "f3!6 ~@2", U: "f2!4",
  V: "f2@2 f2 d2 f2 d2 g2!2",
})).s("gm_cello").gain(0.4)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<~ A B C D A B C D A B C D A B C D ~@60>".pickRestart({
  A: "g3", B: "f3", C: "eb3", D: "eb3 f3",
})).s("gm_cello").gain(0.15)

stack(violin, violin_soft, viola, viola_soft, cello, cello_soft)

More by Ethan Luong