Strudelify

The Nutcracker (ballet) Op.71

Tchaikovsky

KeyA majorTempo144 bpm
0:00/0:00
// The Nutcracker (ballet) Op.71 — Tchaikovsky
// 144 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5901395; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 42 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(144/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 · "Bb Trumpet"
const trumpet = note(`<
  A B ~ C A B ~ D E F G H E F G I J K L M J K L N O@2 P Q E F G H E F R S R T U V W X
>`.pickRestart({
  A: "b4 ~@2 c5", B: "b4 ~@3", C: "~@4 e4 ~ e4!2 f#4 ~ d4 ~ f#4@4", D: "~@3 g4 e4 ~ e4!2 d4 ~ d4 ~ d4@4",
  E: "b4@4 ~@4 c5 ~ b4 ~ c5@4", F: "b4@4 ~@4 g4 ~ f#4 ~ g4@2 g4!2", G: "f#4 ~ f#4!2 e4 ~ e4!2 d4 ~ d4!2 f#4 ~ f#4!2",
  H: "g4 ~ g4!2 e4 ~ e4!2 f#4 ~ d4 ~ f#4@4", I: "g4 ~ g4!2 e4 ~ e4!2 d4 ~ d4 ~ d4@4",
  J: "d4 ~ d4 ~ d4 ~ d4 ~ e4 ~ e4 d#4 e4@2 e4 ~", K: "e4 ~ e4 ~ e4 ~ e4 ~ f#4 ~ f#4 f4 f#4@2 f#4 ~",
  L: "g4 ~ g4 ~ f#4 ~ f#4 ~ e4 ~ e4 ~ d4 ~ d4 ~", M: "c#4 ~ c#4 ~ b3 ~ b3 ~ a3 ~ a3 ~ a3@4",
  N: "c#4 ~ c#4 ~ b3 ~ b3 ~ a3 ~ a3 ~ a3 ~ f#4@2", O: "g4 ~@6 f#4", P: "g4 ~@2 f#4 g4 ~@2 f#4",
  Q: "g4 f#4 g4 f#4 g4 f#4!2 ~", R: "a4 ~ a4!2 g4 ~ g4!2 f#4 ~ f#4!2 a4 ~ a4!2",
  S: "b4 ~ b4!2 a4 ~ a4!2 g4 ~ g4!2 b4 ~ b4!2", T: "b4 ~ b4!2 a4 ~ a4!2 g4 ~ g4!2 a4 ~ a4!2",
  U: "a4 ~ a4!2 c5 ~ c5!2 b4 ~ b4!2 g4 ~ g4!2", V: "a4 ~ a4!2 c5 ~ c5!2 b4 ~ b4!2 a4 ~ a4!2",
  W: "a4 ~ a4!2 g4 ~ g4!2 a4 ~ a4!2 g4 ~ g4!2", X: "a4 ~ a4!2 g4 ~ g4!2 a4@2 a4@2 g4@2 ~@2",
})).s("gm_trumpet").gain(0.35)

// other · trumpet · "Bb Trumpet" · soft notes
const trumpet_soft = note("<A B C D A B C E ~@34>".pickRestart({
  A: "~@8 c5 ~ b4 ~@5", B: "~@8 g4 ~ f#4 ~ g4@2 g4!2", C: "f#4 ~ f#4!2 e4 ~ e4!2 d4 ~ d4!2 f#4 ~ f#4!2",
  D: "g4 ~ g4!2 ~@12", E: "g4 ~ g4 ~@13",
})).s("gm_trumpet").gain(0.2)

// other · french horn · "Horn"
const french_horn = note(`<
  A B ~ C A B ~ D E F G H E F G I J K L M J K L M N@2 O P E F G H E F G Q R S T U V W
>`.pickRestart({
  A: "d4 ~@2 e4", B: "d4 ~@3", C: "~@8 c4 ~ b3 ~ c4@4", D: "~@4 c4@4 b3 ~ c4 ~ b3@4", E: "d4@4 ~@4 e4 ~ d4 ~ e4@4",
  F: "d4@4 ~@4 e4 ~ c4 ~ b3@4", G: "c4 b3 a3 c4", H: "d4@4 b3@4 c4 ~ b3 ~ c4@4", I: "d4@4 c4@4 b3 ~ c4 ~ b3@4",
  J: "~@4 d4@4 e4 ~ e4 d#4 e4@2 d4 ~", K: "c#4@4 e4@4 f#4 ~ f#4 f4 f#4 e4 d4 c#4", L: "d4 c#4 b3!2", M: "c#4 ~@7",
  N: "~@2 g4 f#4 g4@2 c#5 c5 c#5 ~ d5 c#5 d5 ~@3", O: "~@2 g4 f#4 g4 ~@5 g4 f#4 g4 ~ a4@2", P: "c5 d5 c5 d5 c5 a4!2 ~",
  Q: "d4 c4 b3 d4", R: "c4!2 b3!2 a3!2 c4!2", S: "d4!2 c4!2 b3!2 c4!2", T: "d4!2 c4!2 b3!4", U: "d4!2 c4!2 b3!2 a3!2",
  V: "c4!2 g4!2 c4!2 g4!2", W: "c4!2 g4!2 c4!2 g4 ~",
})).s("gm_french_horn").gain(0.4)

// other · french horn · "Horn" · soft notes
const french_horn_soft = note("<A B C D A B C E ~@34>".pickRestart({
  A: "~@8 e4 ~ d4 ~@5", B: "~@8 e4 ~ c4 ~ b3@4", C: "c4 b3 a3 c4", D: "d4 b3 ~@2", E: "d4 ~@3",
})).s("gm_french_horn").gain(0.2)

// other · trombone
const trombone = note(`<
  A B ~ C A B ~ D E F G H E F G I J K L M J K L N O@2 P Q E F G H E F G R G S T U V W
>`.pickRestart({
  A: "g3 ~@2 g3", B: "g3 ~@3", C: "~@6 g3 ~ f#3 ~ g3 ~ f#3@4", D: "~@6 g3 ~ b3 ~ a3 ~ b3@4",
  E: "g3@4 ~@4 g3 ~ g3 ~ g3@4", F: "g3@4 ~@4 g3 ~ a3 ~ b3@4", G: "c4 b3 a3 c4", H: "d4@4 b3@4 f#3 ~ g3 ~ f#3@4",
  I: "d4@4 c4@4 b3 ~ a3 ~ b3@4", J: "~@4 d3@4 e3 ~ e3 d#3 e3@2 d3 ~", K: "c#3@4 e3@4 f#3 ~ f#3 f3 f#3 e3 d3 c#3",
  L: "g3 f#3 e3 d3", M: "c#3 ~@7", N: "c#3 ~@6 d3", O: "d#3 d#3@2 a3@2 a3@2 d3", P: "d#3 ~@2 d3 d#3 ~@2 d3",
  Q: "d#3 a3 d#3 a3 d#3 a3!2 ~", R: "d4 c4 b3 d4", S: "d4 c4 b3 c4", T: "d4 c4 b3!2", U: "d4 c4 b3 a3",
  V: "c4 b3 c4 b3", W: "c4@2 b3@2 c4!2 b3 ~",
})).s("gm_trombone").gain(0.4)

// other · trombone · soft notes
const trombone_soft = note("<A B C D A B C D ~@34>".pickRestart({
  A: "~@8 g3 ~ g3 ~@5", B: "~@8 g3 ~ a3 ~ b3@4", C: "~@2 g3 ~@3 g3 ~@3 g3 ~@3 g3 ~", D: "~@2 g3 ~@13",
})).s("gm_trombone").gain(0.2)

// bass · tuba · "C Tuba"
const bass = note("<A B ~ C A B ~ D E F G H E F G I J K L M J K N O P@2 Q R E F G H E F S@7 T>".pickRestart({
  A: "d3 ~@2 g2", B: "d3 ~@3", C: "~@6 g2 ~ f#2 ~ g2 ~ f#2@4", D: "~@6 g2 ~ g2 ~ g2 ~ g2@4",
  E: "d3@4 ~@4 g2 ~ g2 ~ g2@4", F: "d3@4 ~@4 e2 ~ f#2 ~ g2@4", G: "~@2 g2 ~@3 g2 ~@3 g2 ~@3 g2 ~",
  H: "~@2 g2 ~@3 g2 ~ f#2 ~ g2 ~ f#2@4", I: "~@2 g2 ~@3 g2 ~ g2 ~ g2 ~ g2@4", J: "d3 ~ d3 c#3 d3@2 c3 ~ b2@4 e2@4",
  K: "a2 ~ a2 g#2 a2@2 g2 ~ f#2@4 b1@4", L: "e2 ~ e2 d2 f#2 ~ f#2 e2 g2 ~ g2 f#2 g#2 ~ g#2 e2",
  M: "a2 b2 c#3 d3 e3 d#3 e3 f3 f#3@2 f#3 d3 a2@4", N: "e2 ~ e2 d2 f#2 ~ f#2 e2 g2 ~ g2 f#2 g#2 ~ g#2 f#2",
  O: "a2 ~ a2 g2 b2 ~ b2 a2 c#3 ~ b2 c#3 d3@2 ~@2", P: "~ d#3@2 e3@2 f#3@2 ~", Q: "~ d#3@2 ~@2 d#3@2 ~",
  R: "d#3 d3 d#3 d3 d#3 d3 f#3 ~", S: "~ g2 ~ g2 ~ g2 ~ g2", T: "~ g2 ~ g2 ~ g2!2 ~",
})).s("gm_tuba").gain(0.4)

// bass · tuba · "C Tuba" · soft notes
const bass_soft = note("<A B C D A B C D ~@34>".pickRestart({
  A: "~@8 g2 ~ g2 ~@5", B: "~@8 e2 ~ f#2 ~ g2@4", C: "~@2 g2 ~@3 g2 ~@3 g2 ~@3 g2 ~", D: "~@2 g2 ~@13",
})).s("gm_tuba").gain(0.2)

stack(trumpet, trumpet_soft, french_horn, french_horn_soft, trombone, trombone_soft, bass, bass_soft)

More by Tchaikovsky