Strudelify

The Sleeping Beauty (suite) Op.66a

Pyotr Ilyich Tchaikovsky

KeyB♭ majorTempo210 bpm
0:00/0:00
// The Sleeping Beauty (suite) Op.66a — Pyotr Ilyich Tchaikovsky
// 210 bpm, 3/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: 75 stray notes after a silence of more than 6 bars (from bar 290) are dropped
// note: Transcription provider: pdmx. https://musescore.com/score/5915557; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(210/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · oboe
const oboe = note(`<
  A@3 B@2 C D E F G H I J@3 K@2 L M N@2 O P Q@3 R@4 S T@2 ~@2 U@8 V@4 W@3 V X Y V@2 U@4 Y@4 Z@4 U Z AA ~@9
>`.pickRestart({
  A: "[bb4@7 f4@2 ~ g4@2 a4@2 ~ bb4@7 f4@2 ~ g4@2 a4@2 bb4@7 ~ f4@2 g4@2 ~ a4@2 bb4@4]/3",
  B: "[~ ab4@2 ~@3 g4@2 ~@3 c5@7 g4@2 ~ a4@2 b4@2 ~ c5@6]/2", C: "~ g4@2 ~ a4@2 b4@2 c5@7 ~",
  D: "g4@2 a4@2 ~ b4@2 c5@5 bb4@2 ~@2", E: "~ a4@2 ~@3 d5@7 a4@2 ~", F: "b4@2 db5@2 ~ d5@9 eb5@2",
  G: "~ d5@2 eb5@7 ~ bb4@2 c5@2 ~", H: "d5 eb5@5 g5 eb5", I: "~ e5@7 b4@2 ~ c5@2 d5@2 ~",
  J: "[e5@7 b4@2 c5@2 ~ d5@2 e5@7 ~ b4@2 c5@2 ~ d5@2 e5@7 b4@2 ~ c5@2 d5@2 ~ f5@4]/3",
  K: "[~ c5@2 ~@3 c5@2 ~@3 f4@4 b4@2 ~@3 b4@2 ~@3 f4@5 bb4@2]/2", L: "~@3 bb4@2 ~@3 f4@5 c5@2 ~",
  M: "~@2 c5@2 ~@3 f4@5 c5@2 ~@2", N: "[~ c5@2 ~@2 f4@5 b4@2 ~@3 b4@2 ~@3 f4@5 bb4@2 ~@3 bb4@2]/2",
  O: "~@3 f4@5 c5@2 ~@3 c5@2 ~", P: "~@2 f4@5 b4@2 ~@3 b4@2 ~@2",
  Q: "[f4@5 c5@2 ~@3 c5@2 ~@3 f4@5 b4@2 ~@3 b4@2 ~@3 f4@5 c5@2 ~@3 c5@2 ~@6]/3",
  R: "[~@6 f5@2 ~ c5@2 a4@10 c5@2 ~ a4@2 f4@10 a4@2 f4@2 ~ c4@10 f4@2 c4@2 ~ f4@4 f4@4]/4", S: "~ f4@5 c5@5 c5@5",
  T: "[c5@5 f4@5 f5@5 f5@5 f5@10 ~@2]/2", U: "~@5 d4@3 ~@3 d4@3 ~@2", V: "~@5 eb4@3 ~@3 eb4@3 ~@2",
  W: "~@5 c5@3 ~@3 c5@3 ~@2", X: "~@5 bb3@3 ~@3 bb3@3 ~@2", Y: "~@5 f4@3 ~@3 f4@3 ~@2", Z: "~@5 c4@3 ~@3 c4@3 ~@2",
  AA: "c4 ~@15",
})).s("gm_oboe").gain(0.4)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A@3 B C@3 D@4 E F@3 G@8 H@3 I J K L M N@2 ~@6 O P Q R S T U@2 V W X Y Z AA AB AC O P Q R S AD U@2 AE@2 AF@2 AG@2 AH AI
  AJ AK AL ~ AM AN ~@2
>`.pickRestart({
  A: "[f3@5 d4@10 f3@5 d4@9 f3@5 d4@10 f3@4]/3", B: "~ d4@2 ~@3 d4@2 ~@3 f3@5",
  C: "[eb4@10 f3@5 eb4@9 f3@5 eb4@10 f3@5 eb4@2 ~@2]/3", D: "[~ e4@2 ~@3 f3@5 d4@15 d4@9 f3@5 eb4@15 eb4@9]/4",
  E: "~ f3@5 e4@10", F: "[f3@4 e4@10 f3@5 e4@10 f3@5 e4@10 ~@4]/3",
  G: "[~ eb5@10 ~@4 d5@10 ~@5 db5@10 c5@5 a4@5 f4@5 ~@5 eb5@10 ~@4 d5@10 ~@5 db5@10 c5@5 a4@5 f4@5 db5@5 ab4@5 f4@4]/8",
  H: "[c5@5 a4@5 f4@5 db5@5 ab4@5 f4@5 c5@5 a4@5 f4@5 ~@3]/3", I: "~@6 c4@5 ~@5", J: "~@5 c4@5 ~@6", K: "~@4 c4@5 ~@7",
  L: "~@3 c4@5 ~@4 c4@4", M: "~ c4@5 c4@5 c4@5", N: "[c4@5 c4@5 db4@5 bb3@5 c4@10 ~@2]/2", O: "bb4", P: "a4",
  Q: "bb4@11 g4@5", R: "a4@5 bb4@5 ~ g4@5", S: "a4@11 c5@5", T: "d5@11 b4@5", U: "c5/2", V: "f5", W: "e5",
  X: "eb5@11 c5@5", Y: "eb5@5 d5@5 ~ c5@5", Z: "g5@11 f5@5", AA: "eb5@11 d5@5", AB: "d5@5 c5@5 ~ b4@5",
  AC: "c5@5 g4@5 ~ a4@5", AD: "c5@11 b4@5", AE: "[d5@11 eb5@10 e5@11]/2", AF: "[g5@11 f5@10 a5@11]/2",
  AG: "[bb5@11 a5@10 g5@11]/2", AH: "f5@5 e5@3 f5@3 a5@2 g5@3", AI: "f5@3 d5@8 ~@5", AJ: "~@5 f5@11", AK: "g5@11 a5@5",
  AL: "bb5@5 db5@3 d5@3 eb5@2 d5@3", AM: "d5@5 a4@3 bb4@3 c5@2 bb4@3", AN: "d5@3 c5@2 bb4@3 a4@3 bb4@2 g4@3",
})).s("gm_clarinet").gain(0.3)

// other · french horn · "Horn in F"
const french_horn = note(`<
  A@3 B C@3 D@4 E F@3 G@8 H@3 I J K L M N@2 ~@2 O@12 P Q R O S T O@6 U V P@2 W X W@2 X@2 Y ~@9
>`.pickRestart({
  A: "[f3@5 bb3@10 f3@5 bb3@9 f3@5 bb3@10 f3@4]/3", B: "~ bb3@2 ~@3 bb3@2 ~@3 f3@5",
  C: "[c4@10 f3@5 c4@9 f3@5 c4@10 f3@5 c4@2 ~@2]/3", D: "[~ db4@2 ~@3 f3@5 a3@15 a3@9 f3@5 bb3@15 bb3@9]/4",
  E: "~ f3@5 c4@10", F: "[f3@4 c4@10 f3@5 c4@10 f3@5 c4@10 f3@4]/3",
  G: "[~ eb4@10 f3@4 d4@10 f3@5 db4@10 c4@5 a3@5 f3@5 f3@5 eb4@9 f3@5 d4@10 f3@5 db4@10 c4@5 a3@5 f3@5 db4@5 ab3@5 f3@4]/8",
  H: "[c4@5 a3@5 f3@5 db4@5 ab3@5 f3@5 c4@5 a3@5 f3@5 ~@3]/3", I: "~@6 a3@5 ~@5", J: "~@5 a3@5 ~@6", K: "~@4 a3@5 ~@7",
  L: "~@3 a3@5 ~@4 a3@4", M: "~ a3@5 a3@5 a3@5", N: "[a3@5 a3@5 bb3@5 g3@5 a3@10 ~@2]/2", O: "~@5 f4@3 ~@3 f4@3 ~@2",
  P: "~@5 a4@3 ~@3 a4@3 ~@2", Q: "~@5 g4@3 ~@3 g4@3 ~@2", R: "~@5 gb4@3 ~@3 gb4@3 ~@2", S: "~@5 d4@3 ~@3 d4@3 ~@2",
  T: "~@5 bb4@3 ~@3 bb4@3 ~@2", U: "~@5 f4@3 ~@3 a4@3 ~@2", V: "~@5 a4@3 ~@3 ab4@3 ~@2", W: "~@5 a3@3 ~@3 a3@3 ~@2",
  X: "~@5 bb3@3 ~@3 bb3@3 ~@2", Y: "a3@3 ~@13",
})).s("gm_french_horn").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  A@3 B C@3 D@4 E F@3 G H ~ I J K ~@5 L M N O P Q@2 ~@2 R S R S R S R S R S T U S V T S R S U S R S R W X Y X@2 Z AA
  AB@3 AC AD ~@9
>`.pickRestart({
  A: "[f2@5 f3@10 f2@5 f3@9 f2@5 f3@10 f2@4]/3", B: "~ f3@2 ~@3 f3@2 ~@3 f2@5",
  C: "[g3@10 f2@5 g3@9 f2@5 g3@10 f2@5 g3@2 ~@2]/3", D: "[~ g3@2 ~@3 f2@5 f3@15 f3@9 f2@5 g3@15 g3@9]/4",
  E: "~ f2@5 bb3@10", F: "[f2@4 bb3@10 f2@5 bb3@10 f2@5 bb3@10 f2@4]/3", G: "~@11 f3@5", H: "~@9 f3@5 ~@2",
  I: "~@7 f3@5 ~@4", J: "~@5 f3@5 ~@6", K: "~@4 f3@5 ~@7", L: "~@6 f2@5 ~@5", M: "~@5 f2@5 ~@6", N: "~@4 f2@5 ~@7",
  O: "~@3 f2@5 ~@4 f2@4", P: "~ f2@5 f2@5 f2@5", Q: "[f2@5 f2@5 f2@5 f2@5 f2@10 ~@2]/2", R: "bb2@3 ~@13",
  S: "f2@3 ~@13", T: "ab2@3 ~@13", U: "a2@3 ~@13", V: "g2@3 ~@13", W: "d3@3 ~@13", X: "c3@3 ~@13",
  Y: "d3@3 ~@8 db3@3 ~@2", Z: "c3@3 ~@2 gb3@3 ~@3 gb3@3 ~@2", AA: "c3@3 ~@2 g3@3 ~@3 g3@3 ~@2",
  AB: "c3@3 ~@2 f3@3 ~@3 f3@3 ~@2", AC: "c3@3 ~@2 e3@3 ~@3 e3@3 ~@2", AD: "f3 ~@15",
})).s("gm_baritone_sax").gain(0.3)

stack(oboe, clarinet, french_horn, baritone_sax)

More by Pyotr Ilyich Tchaikovsky