Strudelify

Bombing King!!!

Yuki Hayashi

KeyF majorTempo190 bpm
0:00/0:00
// Bombing King!!! — Yuki Hayashi
// 190 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Violin" named as a string part, played on violin (its electric bass finger patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5934170; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): Electric Guitar.
setcpm(190/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.

// chords · violin
const violin = note(`<
  ~@9 A@8 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 ~@2 J K@8 L@7 M@2 A@8 N O N O N O P@8 Q@8 R@2 A@8 S@2 T
>`.pickRestart({
  A: "[d2!2 d2@2 g2 ~ f2 d2@2 d2 d2@2 g2 ~ f2@2]/2", B: "[f4!2 e4!2 d4!3 f4 f4 e4!2 d4!2 c4!3, a1@7 bb1@9]/2",
  C: "[f4!2 e4!2 d4!3 f4 f4 e4!2 g4!2 f4 e4 c4, g1@7 bb1@4 a1@5]/2",
  D: "[f4!2 e4!2 d4!3 f4 f4 e4!2 d4!2 c4!3, a1@7 f1@9]/2",
  E: "[f4!2 e4!2 d4!3 f4 f4 e4!2 g4!2 a4 c5 g4, g1@4 a1@3 bb1@4 c2@5]/2",
  F: "[f5!2 e5!2 d5!3 f5 f5 e5!2 d5!2 c5!3, a1@7 bb1@9]/2",
  G: "[f5!2 e5!2 d5!3 f5 f5 e5!2 g5!2 f5 e5 c5, g1@7 bb1@4 a1@5]/2",
  H: "[f5!2 e5!2 d5!3 f5 f5 e5!2 d5!2 c5!3, a1@7 f1@9]/2",
  I: "[f5!2 e5!2 d5!3 f5 f5 e5!2 g5!2 a5 c6 g5, g1@4 a1@3 bb1@4 c2@5]/2", J: "~@7 f5",
  K: "[~ g5 a5 e5@2 f5 g5 a5@5 g5 a5@2 g5@2 f5 e5@3 c6@2 a5@6 g5 f5 e5@6 d5 e5 f5@5 e5 f5 g5 c5@6 f5 c6 c6@2 bb5 a5@3 g5@2 [a1,f5], ~@7 d2@8 c2@8 bb1@8 a1@8 g1@8 a1@8 bb1@8 ~]/8", // Dm
  L: "[~ g5 a5 ~@2 f5 g5 a5@5 g5 a5@2 c6@5 a5 g5 c6 e6@5 f6@2 g6 f6 f6@3 e6@2 f6 g6 a6 a6@6 d6 d6@5 e6@2 f6@2, ~@2 d2@2 e2@3 d2@8 e2@8 f2@8 g2@4 a2@4 bb2@17, ~@3 e5@2 ~@51]/7",
  M: "[g6@3 f6@3 e6@10, c3]/2", N: "d2@2 d2@2 g2 a2 c3 d3", O: "c3 a2 c3 a2 g2 f2@3",
  P: "[d2@2 d2@2 g2 a2 c3 g2 a2 g5 a5 a2 g2 f5 g5 a5@5 g5 a5@2 g5@2 f5 e5@3 c6@2 a5@6 g5 f5 e5@6 d5 e5 f5@5 e5 f5 g5 c5@6 f5 c6!2, ~@7 f5@2 c3@2 e5@2 f2@3 ~@48]/8",
  Q: "[~ bb5 a5@3 g5@2 f5@2 g5 a5 e5@2 f5 g5 a5@5 g5 a5@2 c6@5 a5 g5 c6 e6@5 f6@2 g6 f6 f6@3 e6@2 f6 g6 a6 a6@6 d6 d6@5 e6@2 f6@2, ~@15 d2@8 e2@8 f2@8 g2@4 a2@4 bb2@17]/8",
  R: "[[c3,g6]@3 [c3,f6]@3 c3 a2@9, ~@3 e6@5]/2", S: "[d2@15 f2]/2", T: "d2 ~",
})).s("gm_violin").gain(0.8)

// chords · contrabass · "Violin"
const contrabass = note("<~@17 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 ~@2 I@8 J@8 K@2 ~@14 I@8 J@8 L@2 ~@11>".pickRestart({
  A: "[f4!2 e4!2 d4!3 f4 f4 e4!2 d4!2 c4!3, a1@7 bb1@9]/2",
  B: "[f4!2 e4!2 d4!3 f4 f4 e4!2 g4!2 f4 e4 c4, g1@7 bb1@4 a1@5]/2",
  C: "[f4!2 e4!2 d4!3 f4 f4 e4!2 d4!2 c4!3, a1@7 f1@9]/2",
  D: "[f4!2 e4!2 d4!3 f4 f4 e4!2 g4!2 a4 c5 g4, g1@4 a1@3 bb1@4 c2@5]/2",
  E: "[a4!2 g4!2 f4!3 a4 a4 g4!2 f4!2 e4!3, a2@7 bb2@9]/2",
  F: "[a4!2 g4!2 f4!3 a4 a4 g4!2 bb4!2 f4 e4 c4, g2@7 bb2@4 a2@5]/2",
  G: "[a4!2 g4!2 f4!3 a4 a4 g4!2 f4!2 e4!3, a2@7 f2@9]/2",
  H: "[a4!2 g4!2 f4!3 a4 a4 g4!2 bb4!2 a4 c5 g4, g2@4 a2@3 bb2@4 c3@5]/2",
  I: "[~@7 f5@2 g5 a5 e5@2 f5 g5 [f2,a5]@5 g5 a5@2 [e2,g5]@2 [d2,f5] e5@3 ~ e2 d2 d2@3 ~@2 g5 f5 ~ c2@3 ~@2 d5 e5 ~ bb1@4 [a1,e5] [bb1,f5] [c2,g5] [f1,c5]@6 [e2,f5] [d2,c6] [c2,c6], ~@20 c2@3 ~@3 c2@4 ~@5 c2@3 bb1@2 ~@3 bb1@3 a1@2 ~@16, ~@29 c6@2 a5@6 ~@2 e5@6 ~@2 f5@5 ~@12]/8", // F Em Dm A5 Bb5 C5 F5 Fmaj7 …
  J: "[~ bb5 d2@2 ~@2 f2 [d2,f5]@2 [e2,g5] [f2,a5] [db2,e5]@2 [d2,f5] [e2,g5] a5@5 g5 a5@2 c6@5 a5 g5 c6 e6@5 f6@2 g6 f6 f6@3 e6@2 f6 g6 a6 a6@6 d6 d6@5 e6@2 f6@2, bb1@2 a5@3 g5@2 ~@57, ~@4 e2@2 ~@9 d2@8 e2@8 f2@8 g2@4 a2@4 bb2@17]/8", // Dm Em F Dbm Dm Em
  K: "[g6@3 f6@3 e6@10, c3]/2", L: "[[c3,g6]@3 [c3,f6]@3 c3 a2@9, ~@3 e6@5]/2",
})).s("gm_contrabass").gain(0.8)

// other · viola
const viola = note(`<
  ~@17 A B A C A B A D E F E G E F E H ~@2 I@8 J@5 K L@2 M@2 ~@14 I@8 J@5 K L@2 M@2 ~@11
>`.pickRestart({
  A: "f3!2 e3!2 d3!3 f3", B: "f3 e3!2 d3!2 c3!3", C: "f3 e3!2 g3!2 f3 e3 c3", D: "f3 e3!2 g3!2 a3 c4 g3",
  E: "a3!2 g3!2 f3!3 a3", F: "a3 g3!2 f3!2 e3!3", G: "a3 g3!2 bb3!2 f3 e3 c3", H: "a3 g3!2 bb3!2 a3 c4 g3",
  I: "[~@7 f4@2 g4 a4 e4@2 f4 g4 a4@5 g4 a4@2 g4@2 f4 e4@3 c5@2 a4@6 g4 f4 e4@6 d4 e4 f4@5 e4 f4 g4 c4@6 f4 c5!2]/8",
  J: "[~ bb4 a4@3 g4@2 f4@2 g4 a4 e4@2 f4 g4 a4@5 g4 a4@2 c5@5 a4 g4 c5 e5@5 f5@2 g5 f5]/5", K: "f5@3 e5@2 f5 g5 a5",
  L: "[a5@6 d5 d5@5 e5@2 f5@2]/2", M: "[g5@3 f5@3 e5@10]/2",
})).s("gm_viola").gain(0.8)

// other · cello · "Violoncello"
const cello = note(`<
  ~@17 A B A C A B A D E F E G E F E H ~@2 I@8 J@5 K L@2 M@2 ~@14 I@8 J@5 K L@2 M@2 ~@11
>`.pickRestart({
  A: "f2!2 e2!2 d2!3 f2", B: "f2 e2!2 d2!2 c2!3", C: "f2 e2!2 g2!2 f2 e2 c2", D: "f2 e2!2 g2!2 a2 c3 g2",
  E: "f3!2 e3!2 d3!3 f3", F: "f3 e3!2 d3!2 c3!3", G: "f3 e3!2 g3!2 f3 e3 c3", H: "f3 e3!2 g3!2 a3 c4 g3",
  I: "[~@7 f2@2 g2 a2 e2@2 f2 g2 a2@5 g2 a2@2 g2@2 f2 e2@3 c3@2 a2@6 g2 f2 e2@6 d2 e2 f2@5 e2 f2 g2 c2@6 f2 c3!2]/8",
  J: "[~ bb2 a2@3 g2@2 f2@2 g2 a2 e2@2 f2 g2 a2@5 g2 a2@2 c3@5 a2 g2 c3 e3@5 f3@2 g3 f3]/5", K: "f3@3 e3@2 f3 g3 a3",
  L: "[a3@6 d3 d3@5 e3@2 f3@2]/2", M: "[g3@3 f3@3 e3@10]/2",
})).s("gm_cello").gain(0.8)

// bass · electric bass finger · "Double Bass"
const bass = note(`<
  ~@9 A@8 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 ~@3 J@7 K@8 L@2 M@14 N@4 O P Q@2 R@8 S@2 A@8 T@2 U
>`.pickRestart({
  A: "[d1!2 d1@2 g1 ~ f1 d1@2 d1 d1@2 g1 ~ f1@2]/2", B: "[a1@7 bb1@9]/2", C: "[g1@7 bb1@4 c2@5]/2", D: "[a1@7 f1@9]/2",
  E: "[g1@4 a1@3 bb1@4 c2@5]/2", F: "[[a1,a2]@7 [bb1,bb2]@9]/2", G: "[[g1,g2]@7 [bb1,bb2]@4 [c2,c3]@5]/2",
  H: "[[a1,a2]@7 [f1,f2]@9]/2", I: "[[g1,g2]@4 [a1,a2]@3 [bb1,bb2]@4 [c2,c3]@5]/2",
  J: "[~@7 f2@5 c2@3 e2@2 d2 c2@4 e2 d2 d2@3 c2@3 ~@2 c2@3 bb1@3 ~@2 bb1@4 a1 bb1 c2 f1@6 e2 d2 [bb1,c2], ~@7 d2@8 c2@3 ~@5 bb1@7 bb1@2 ~@7 g1@8 ~@9, ~@31 a1@7 a1@2 ~@7 a1@8 ~]/7", // Bbsus2
  K: "[bb1@2 d2@2 e2@2 f2 d2@2 e2 f2 ~@2 d2 e2 d2@8 e2@8 f2@8 g2@4 a2@4 bb2@17, ~@7 db2@3 d2@2 e2@2 ~@50, ~@11 db2@2 ~@51]/8",
  L: "[c3@3 c3@3 c3 a2@2 a2@2 bb2@2 c3@2 d3]/2", M: "[d2!2 d2@2 g2 ~ f2 d2@2 d2 d2@2 g2 ~ f2@2]/2",
  N: "[d2!2 d2@2 g2 ~ f2 d2@2 d2 d2@2 g2 ~ f2 f2@5 c2@3 e2@2 d2 c2@4 e2 d2]/4", O: "d2@3 c2@3 bb1@2",
  P: "c2@3 bb1@3 a1@2", Q: "[bb1@4 a1 bb1 c2 f1@6 e2 d2 c2]/2",
  R: "[bb1@2 d2@2 e2@2 f2 d2@2 e2 f2 db2@2 d2 e2 d2@8 e2@8 f2@8 g2@4 a2@4 bb2@17]/8", S: "[c3@3 c3@3 c3 db3@9]/2",
  T: "[a2@15 c3]/2", U: "a2 ~",
})).s("gm_electric_bass_finger").gain(0.8)

// other · overdriven guitar · "Electric Guitar"
const overdriven_guitar = note("<~@53 A B C B C B C B C B C B C B C B ~@14 D@2 ~@8 E@2 F>".pickRestart({
  A: "d3@2 f3@3 e3@3", B: "f3@3 e3@3 d3 ~", C: "~@2 f3@3 e3@3", D: "[~@7 a3@9]/2", E: "[a2@15 c3]/2", F: "a2 ~",
})).s("gm_overdriven_guitar").gain(0.8)

// drums · kick
const kick = s("bd").struct(`<
  A B C B C B D B C B C B E B D B F G H G H G H G I G H G H G H G I ~ J K L G H G H G H G I G H G H G H G I M J M J M J
  M N M J M J M J O L ~@6 P Q M J M J M J G I B C B E B D B F R ~@2
>`.pickRestart({
  A: "~@2 x!2", B: "x ~@4 x ~@2", C: "~ x ~@3 x ~@2", D: "~ x ~@3 x ~ x", E: "~ x ~@2 x ~ x ~", F: "~ x!7",
  G: "x!2 ~ x", H: "x ~@2 x ~@2 x ~", I: "x ~@5 x ~@6 x ~@2", J: "x ~@2 x ~@2 x!2", K: "x ~@3 x ~@3 x ~@2 x ~@2 x ~",
  L: "~ x!3", M: "x ~@3 x ~@2 x", N: "x ~ x ~ x ~@2 x", O: "x!8", P: "~@5 x ~ x", Q: "~@3 x ~@3 x", R: "x",
})).gain(0.8)

// drums · snare
const snare = s("sd").struct(`<
  A B@3 C B D E C B@3 F B D E G H@7 I H@7 I J K L M H@7 I H@7 I H@7 N H@6 O P ~@6 Q R H@7 I B@3 F B D E G S ~@2
>`.pickRestart({
  A: "~@8 x!8", B: "~@2 x ~ x ~@2 x", C: "~@4 x ~@5 x!3 ~ x!2", D: "~@4 x ~@2 x!2 ~@3 x ~@3", E: "~@2 x ~@4 x",
  F: "~@4 x ~@7 x!4", G: "~@2 x!6", H: "~ x ~ x", I: "~@4 x ~@5 x!6", J: "~@12 x ~@2 x",
  K: "x ~ x ~@2 x!2 ~ x ~@2 x!2 ~@3", L: "x!14 ~@2", M: "~@10 x!3 ~@3", N: "~@8 x ~ x!3 ~@3", O: "x ~@2 x ~@4",
  P: "x ~ x!12 ~@2", Q: "~@10 x!4 ~@2", R: "~@2 x ~ x ~@5 x!4 ~@2", S: "x",
})).gain(0.8)

// drums · low tom
const low_tom = s("lt").struct("<~@54 A ~ A ~ A ~ B ~ A ~ A ~ A ~@11 A ~ A ~ A ~@13>".pickRestart({
  A: "~@6 x!3 ~ x ~@5", B: "~@2 x ~ x!3 ~@9",
})).gain(0.8)

// drums · mid tom
const mid_tom = s("mt").struct("<~@33 [~@4 x!8 ~@4] ~@62>").gain(0.8)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B C@2 D C@3 D B C@2 A C@3 ~ B C@3 B C B E B C@3 B C B E ~@4 C@4 B C B E B C@3 B C E A F G H G H G H I H G H G H G
  ~@10 H G H G F G E A B C@2 A C@3 ~@4
>`.pickRestart({
  A: "x!2 ~@2", B: "~ x!3", C: "x!4", D: "x!3 ~", E: "~ x ~@2", F: "~@2 x ~ x!3 ~", G: "x!2 ~ x", H: "x ~ x ~ x!3 ~",
  I: "x",
})).gain(0.8)

// drums · high tom
const high_tom = s("ht").struct("<~@33 [x!4 ~@12] ~@62>").gain(0.8)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@7 A ~@2 B ~@3 A@2 ~@3 A ~ A C A ~@3 A ~ A C ~ D@3 ~@4 A ~ A C A ~@3 A ~ E F A ~@6 D ~@6 E D ~@6 D G ~@4 A ~ E F
  A ~@2 B ~@3 A@2 ~@2
>`.pickRestart({
  A: "x", B: "~ x", C: "x ~@2 x ~@4", D: "~@7 x", E: "x ~@2 x ~@2 x ~", F: "~ x ~ x ~@4", G: "~@3 x ~@3 x",
})).gain(0.72)

stack(
  violin, contrabass, viola, cello, bass, overdriven_guitar, kick, snare, low_tom, mid_tom, open_hat, high_tom, crash
)

More by Yuki Hayashi