Strudelify

Dance of the Sugar Plum Fairy

Pyotr Ilyich Tchaikovsky

KeyD majorTempo120 bpm
0:00/0:00
// Dance of the Sugar Plum Fairy — Pyotr Ilyich Tchaikovsky
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 3/4 at bar 20, 1/4 at bar 20, 3/4 at bar 36) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/4461331; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 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.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · trumpet · "Flugelhorn"
const trumpet = note("<A B A B C D E F G H I J C D K F L M N O C D E F G H I J C D K F L M N O>".pickRestart({
  A: "~@2 e4 ~@3 f4 ~", B: "~@2 g4 ~@3 d4 ~", C: "~@4 a4 ~ e4 ~ a4@2 ~@2 f4@2 ~@2",
  D: "d4@2 ~@2 d#4@2 ~@2 c#4 ~ c#4 ~ c#4@2 ~@2", E: "e4 ~ e4 ~ e4@2 ~@2 b3 ~ b3 ~ b3@2 ~@2",
  F: "c4 ~ c4 ~ d4 ~ d4 ~ c4@2 ~@6", G: "~@4 a4 ~ f4 ~ g#4@2 ~@2 g#4@2 ~@2",
  H: "b4@2 ~@2 c5@2 ~@2 f#4 ~ f#4 ~ f#4@2 ~@2", I: "g4 ~ g4 ~ g4@2 ~@2 f#4 ~ f#4 ~ f#4@2 ~@2",
  J: "e4 ~ e4 ~ f#4 ~ f#4 ~ e4@2 ~@6", K: "e4 ~ e4 ~ e4@2 ~@2 d#4 ~ d#4 ~ d#4@2 ~@2",
  L: "~@4 d#4 ~ b3 ~ d#4@2 ~@2 e4@2 ~@2", M: "~@4 c#4 ~ g3 ~ e4@2 ~@2 d4@2 ~@2", N: "~@4 b3 ~ g3 ~ d4@2 ~@2 c4@2 ~@2",
  O: "~@6 e4 ~ e4@3 ~@5",
})).s("gm_trumpet").gain(0.25).pan(0.7)

// other · trombone
const trombone = note("<A B A B C D E F G H I J C D K L M N O P C D E F G H I J C D K L M N O P>".pickRestart({
  A: "~@2 c4 ~@3 d4 ~", B: "~@2 d#4 ~@3 b3 ~", C: "~@4 e4 ~ c4 ~ e4@2 ~@2 d4@2 ~@2",
  D: "b3@2 ~@2 c4@2 ~@2 a#3 ~ a#3 ~ a#3@2 ~@2", E: "c4 ~ c4 ~ c4@2 ~@2 g#3 ~ g#3 ~ g#3@2 ~@2",
  F: "c4 ~ c4 ~ d4 ~ d4 ~ c4@2 ~@6", G: "~@4 f4 ~ c4 ~ f4@2 ~@2 f4@2 ~@2",
  H: "g#4@2 ~@2 a4@2 ~@2 d#4 ~ d#4 ~ d#4@2 ~@2", I: "e4 ~ e4 ~ e4@2 ~@2 d#4 ~ d#4 ~ d#4@2 ~@2",
  J: "b3 ~ b3 ~ d#4 ~ d#4 ~ e4@2 ~@6", K: "c4 ~ c4 ~ c4@2 ~@2 b3 ~ b3 ~ b3@2 ~@2", L: "a3!5 ~@3",
  M: "~@4 b3 ~ a3 ~ b3@2 ~@2 b3@2 ~@2", N: "~@4 a3 ~ g3 ~ c#4@2 ~@2 d4@2 ~@2", O: "~@4 g3 ~ f3 ~ b3@2 ~@2 g3@2 ~@2",
  P: "~@6 b3 ~ c4@3 ~@5",
})).s("gm_trombone").gain(0.2).pan(0.3)

// bass · tuba
const bass = note("<A@7 B C D E F A@3 G H I J K A@3 B C D E F A@3 G H I J L>".pickRestart({
  A: "a1!2", B: "a1@8 a2@4 a2 g2 f2 e2", C: "d#2 d2", D: "a1 b1", E: "b1!2", F: "a1@4 b1@4 e2@3 ~ e2 d2 c2 b1",
  G: "a1@8 a2@4 c3 b2 a2 g2", H: "f#2@8 e2@4 b2 a2 g2 f2", I: "e2@8 a2@4 a2 g2 f2 e2", J: "d2@8 g2@4 b2 a2 g2 f2",
  K: "e2@8 a2@3 ~ e2 d2 c2 b1", L: "e2@8 a2@3 ~@5",
})).s("gm_tuba").gain(0.3).pan(0)

stack(trumpet, trombone, bass)

More by Pyotr Ilyich Tchaikovsky