Strudelify

Spider Dance

Toby Fox

KeyA♭ majorTempo115 bpm
0:00/0:00
// Spider Dance — Toby Fox
// 115 bpm, 4/4, key Ab major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1652926; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 84 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(115/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · cello · "Violoncello"
const cello = note(`<
  A B C D E F G D A B C D E F G H I J K J K J L M K N O P K J L Q ~@16 A B C D E F G H I J K J K J L M K N O P K J L Q
  ~@12
>`.pickRestart({
  A: "f2 c3 bb2 c3 f2 c3 bb2 c3 db2 b2 bb2 b2 c2 c3 g2 bb2",
  B: "f2 c3 bb2 c3 g2 c3 bb2 c3 ab2 c3 bb2 c3 bb2 db3 c3 db3",
  C: "db2 ab2 g2 ab2 db2 bb2 ab2 bb2 db2 c3 bb2 c3 db2 db3 c3 db3", D: "~@13 c3 d3 e3",
  E: "f3@2 c3@2 ab2@2 f2@2 ~ b2 bb2@2 bb2 ab2 eb2 f2", F: "~ c3 bb2 ab2 bb2 c3 eb2 f2 ab2 f2 eb2 f3@2 eb3 [bb2,c3] ab2",
  G: "f2 g2 ab2 bb2", H: "c3@2 f2@2 f3@2 f2@2 e3@2 db3@2 c3@2 eb3 e3",
  I: "[f2,f3] c3 db3 c3 f2 c3 f3 c3 bb2 f3 ab3 f3 bb2 f3 g3 f3", // F
  J: "db3 f3 ab3 f3 db3 f3 g3 f3 c3 f3 ab3 f3 c3 e3 g3 e3", K: "f2 c3 db3 c3 f2 c3 f3 c3 bb2 f3 ab3 f3 bb2 f3 g3 f3",
  L: "f2 c3 db3 c3 f2 c3 f3 c3 gb2 c3 db3 c3 gb2 c3 db3 gb3", M: "db3 f3 ab3 f3 c3 e3 g3 e3 db3 ab3 c3 g3 f3@2 f2@2",
  N: "db3 f3 db4 ab3 db3 [eb3,e3] f3@2 e3 f3 c3 g2 c3@2 e3@2", O: "f3 c3 db3 c3 f2 c3 f3 c3 bb2 f3 ab3 bb3 ~ ab3 g3 f3",
  P: "db3 f3 ab3 f3 db3 f3 ab3 f3 c3 f3 ab2 bb2 c3 e3 e2 e3", Q: "db3 f3 ab3 f3 c3 e3 g3 e3 db3 ab3 c3 g3 f3@4",
})).s("gm_cello").gain(0.5)

// other · cello · "Violoncello" · soft notes
const cello_soft = note(`<
  ~@3 A ~@3 A ~@3 A ~@20 B C B C D E F G D E F H D E F I ~@3 A ~@20 B C B C D E F G D E F I
>`.pickRestart({
  A: "c2 ~@2 c2 c2@2 ~@2", B: "db3 ab3 bb3 ab3 db3 ab3 bb3 ab3 db3 ab3 bb3 ab3 db3 ab3 bb3 ab3",
  C: "f3 c4 db4 c4 f3 c4 db4 c4 f3 c4 db4 c4 f3 c4 db4 c4", D: "f3@12 e3 eb3 d3 db3", E: "c3@12 db3 d3 eb3 e3",
  F: "f3@3 ab3", G: "g3 ab3", H: "g3@2 eb3 f3 g3@2 bb3@2 ab3@2 eb3 g3 ab3@2 ~@2",
  I: "g4@2 g4@2 c5 g4@2 f4 g4@3 c5 e5@4, ~@12 d5 ~@3",
})).s("gm_cello").gain(0.3)

stack(cello, cello_soft)

More by Toby Fox