Strudelify

Symphony No. 6 in B minor Op. 74 (Pathétique Symphony)

Pyotr Ilyich Tchaikovsky

KeyB majorTempo60 bpm
0:00/0:00
// Symphony No. 6 in B minor Op. 74 (Pathétique Symphony) — Pyotr Ilyich Tchaikovsky
// 60 bpm, 3/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/6276186; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 160 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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.

// other · alto sax · "Alto Sax. 1"
const alto_sax = note(`<
  A B@6 C@3 D@5 E F G@2 H I J K J L M N O P Q P R@2 S@2 T@3 U V W V X Y Z AA AB V W V W AC AD AE AF AG AH AG AI AJ AK AL
  AM AG AH AG AH AN AO AP AQ AR AS@2 AT AU AV AW AX AY@4 AZ BA@2 BB BC BD@2 BE@2 BF BG BH BI@5 BJ@3 BK@2 BL@4 BM@4 BN@4
  BO BP@4 BQ BR BS BT@2 BU BV BW@3 BX@4 BY BZ@6 CA@4 CB@2 ~@4 CC@2 ~@5
>`.pickRestart({
  A: "~@13 f#5@18 e5@9 d5@8",
  B: "[~@2 c#5@13 b4@5 c#5@46 ~@9 f#5@18 ~ e5@9 d5@9 c#5@14 b4@5 d5@9 c#5@37 ~@9 g4@18 ~@10 g4@9 g4@14 a4@5 f#4@37 ~@9]/6",
  C: "[~@9 b4@18 ~@10 b4@9 b4@14 c#5@4 a4@37 c#5@18 ~ d5@24]/3",
  D: "[~@3 e5@9 ~ c#5@9 a4@9 f#5@28 g#5@9 e5@18 ~ a#5@27 b5@9 c#6@18 ~ c#6@18 b5@14 a5@5 g#5@9 a5@9 g#5@9 ~ f#5@9 f5@14 f#5@4 e5@6]/5",
  E: "~@3 d5@9 ~ c#5@9 d5@9 c#5@9 b4@8", F: "~@2 a4@9 ~@9 e4@9 ~@19", G: "[~@9 b4@23]/2", H: "b4",
  I: "~@24 e4@3 g4@3 ~ a4@3 b4@3 ~ c#5@3 d5@3 ~ e5@3", J: "f#5@4 e5@2 d5@2 c#5@3 b4", K: "c#5@5 ~", L: "d5 c#5@4 ~",
  M: "g4@4 ~@2 g4@2 g4@3 a4", N: "f#4@2 ~", O: "e4@4 ~@2 e4@2 e4@3 f#4", P: "d4@2 ~", Q: "e4@4 ~@2 e4@2 e4@3 e4",
  R: "[g4@11 ~]/2", S: "[~ g4@2]/2", T: "[g4@17 ~]/3", U: "~@2 d4", V: "d4 c#4 b3", W: "a3@2 d4", X: "a3@2 f#4",
  Y: "f#4 e4 g4", Z: "g4 f#4 a4", AA: "a4 g4 b3", AB: "e4@2 d4", AC: "d#4 e4!2", AD: "f4 f#4!2", AE: "f#4 g4!2",
  AF: "g#4 a4 d5", AG: "d5 c#5 b4", AH: "a4@2 d5", AI: "a4@2 f#5", AJ: "f#5 e5 g5", AK: "g5 f#5 a5", AL: "a5 g5 b4",
  AM: "e5@2 d5", AN: "d#5 e5!2", AO: "f5 f#5!2", AP: "f#5 g5!2", AQ: "g#5 a5 a#5", AR: "b5@7 a5",
  AS: "[g5 f#5 e5 d5 g5@7 f#5 e5 d5 c5 b4]/2", AT: "e5@7 d5", AU: "c5@3 b4@3 a4@3 g4@3 c5@2 b4@2 a4@2 g4@2 f4@2 e4@2",
  AV: "a4@2 g4@2 f4@2 e4@2 d4@2 c4@2 c4@3 ~@9", AW: "c4 ~@7", AX: "~@5 e5 ~@2",
  AY: "[~@39 g5@14 g5@14 f#5@14 e5@13 d5@14 ~@14 d5@13 d5@14 c#5@14 b4@14 a4@14 ~]/4", AZ: "~@19 a4@7 g4@14 ~@8",
  BA: "[~@12 g4@7 f#4@14 ~@13 f#4@31 f#4@3 ~ g4@3 a#4@3 b4@3 ~ c#5@3 d5@2]/2", BB: "~@2 e5@3 f#5@17 e5@8 d5@8 c#5@10",
  BC: "~@3 b4@4 c#5@41", BD: "[~@8 f#5@17 e5@8 d5@8 ~ c#5@12 b4@4 d5@8 c#5@30]/2",
  BE: "[~@12 g4@17 ~@8 g4@8 g4@12 a4@4 f#4@33 ~@2]/2", BF: "~@15 e4@17 ~@8 e4@8", BG: "e4@12 ~ f#4@4 d4@31",
  BH: "~@3 d4@5", BI: "[~@3 e4@17 f#4@33 ~@17 g4@33 ~@16 c#5@91 ~@17 c#4@3 d4@2 e4@3 f#4@3 g4@2]/5",
  BJ: "[~ g#4@2 a4@3 a#4@3 b4@3 c5@3 c#5@2 d5@3 d#5@3 e5@3 f5@2 f#5@17 e5@8 d5@8 c#5@12 ~ b4@4 c#5@41 ~@9 f#5@16]/3",
  BK: "[e5@8 d5@8 ~ c#5@12 b4@4 d5@8 ~ c#5@33 ~@8 g4@13]/2",
  BL: "[~@3 f#4@12 ~ e4@4 d4@8 c#4@8 ~ a4@16 g4@12 ~ f#4@4 e4@8 d#4@8 c5@17 b4@12 a4@4 g4@8 ~ f#4@8 d5@16 c5@12 ~ b4@4 a4@8 g#4@8 ~ e5@6]/4",
  BM: "[~@2 d5@8 c5@8 b4@8 ~ f5@8 e5@8 d5@8 c5@8 ~ g5@8 f5@8 e5@8 ~ d5@8 a5@8 g5@8 f5@8 ~ e5@8 a#5@8 a5@8 ~ g5@8 f5@8 c6@8 b5@8 ~ a5@8 g#5@8]/4",
  BN: "[b5@23 a5@11 ~@11 a5@6 g5@6 f5@5 e5@6 g5@23 f5@11 ~@11 f5@6 e5@5 d5@6 c#5@6 e5@22 d5@11 ~@12 d5@6 c#5@5]/4",
  BO: "b4@6 a#4@5 c#5@23 b4@11 ~@3",
  BP: "[~@9 b4@5 a4@6 g4@6 f#4@5 a4@23 g4@5 f#4@6 e4@6 d4@5 c#4@6 d4@6 c#4@5 b3@6 f#3@6 ~@20 f#4@2 g#4@2 a#4@2 b4@2 ~ d5@2 ~ f#5@13 e5@6 ~ d5@6 c#5@6 b4@6 ~ d5@6 c#5@6 ~@4, ~@133 c#5@2 ~ e5@2 ~@54]/4",
  BQ: "~@9 f#4@2 ~ g#4@2 a#4@2 ~ c#5@2 d5@2 ~ f#5@13 e5@6 d5@6 ~, ~@16 b4@2 ~@3 e5@2 ~@25",
  BR: "c#5@6 b4@6 ~ d5@6 c#5@6 ~@13 c#4@2 d4@2 e4@2 ~@2 f#4@2, ~@45 f4@2 ~",
  BS: "~ a4@2 b4@13 a4@6 g4@6 ~ f#4@6 e4@6 g4@6 ~, g#4 ~@23",
  BT: "[f#4@6 ~@13 c#4@2 d4@2 e4@2 f4@2 f#4@2 ~ a4@2 b4@13 a4@6 g4@6 f#4@6 ~ e4@6 g4@6 ~ f#4@6 ~@13, ~@29 g#4@2 ~@65]/2",
  BU: "~@13 f#4@6 e4@6 ~@23", BV: "~ e4@2 d4@2 ~@11", BW: "[~@6 d4@26 d4@38 c#4@6 ~@7 c4@26 c4@35]/3",
  BX: "[~@3 b3@6 ~@7 b3@25 b3@38 ~ a#3@32 ~@6 b3@32 ~@7 g3@32 ~@3]/4", BY: "~@3 f#3@32 ~@13",
  BZ: "[~@23 b4@15 b4@14 a4@15 g4@15 f#4@30 b4@14 b4@15 a4@15 g4@15 f#4@29 f#4@15 f#4@15 e4@14 d4@15 d4@15 c#4@14]/6",
  CA: "[~ b3@15 b3@14 a3@15 g3@15 f#3@22 ~@7 b3@15 b3@15 a3@15 g3@14 f#3@30 b3@14]/4",
  CB: "[~ b3@15 a3@14 g3@15 f#3@30 ~@21]/2", CC: "[~@38 b3@15 ~@43]/2",
})).s("gm_alto_sax").gain(0.3).pan(0.1)

// other · alto sax · "Alto Sax. 2"
const alto_sax_2 = note(`<
  A B@6 C@3 D@6 E@3 F G H I H I J K L M N O P@2 Q@2 R@3 S T U T V W X Y Z T U T U AA AB AC AD T U T V W X Y Z T U T U AA
  AB AC AE AF AG@2 AH AI AJ AK AL AM@4 AN AO@2 AP AQ AR@2 AS@2 AT AU AV AW@5 AX@3 AY@2 AZ@4 BA@4 BB@4 BC BD@4 BE BF BG@3
  BH BI BJ@3 BK@4 BL ~@4 BM BN BO@2 BP@2 BQ@2 ~@4 BR@2 ~ BS BT ~@2
>`.pickRestart({
  A: "~@13 b4@18 a#4@9 g4@8",
  B: "[~@2 f4@13 f4@5 e4@46 ~@9 b4@18 ~ a#4@9 g4@9 f4@14 f4@5 e4@46 ~@9 b4@18 ~@10 b4@9 b4@14 a4@5 a4@37 ~@9]/6",
  C: "[~@9 d4@18 ~@10 d4@9 d4@14 c#4@4 c#4@37 ~@19 d4@24]/3",
  D: "[~@3 b3@9 ~ b3@18 a4@28 g#4@9 g#4@18 ~ c#5@27 b4@9 c#5@18 ~ d5@65 ~@9 d5@37 b4@28 ~@7]/6",
  E: "[~@2 d#4@18 e4@9 ~@28 c#4@9 ~@9 g3@69, ~@39 d4@23 ~@82]/3", F: "g4",
  G: "~@24 b3@3 c#4@3 ~@4 f4@3 ~ g4@3 g#4@3 ~ a#4@3", H: "b4@4 a#4@2 g4@2 f4@3 f4", I: "e4@5 ~",
  J: "b4@4 ~@2 b4@2 b4@3 a4", K: "a4@2 ~", L: "g4@4 ~@2 g4@2 g4@3 f#4", M: "f#4@2 ~", N: "c#4@4 ~@2 c#4@2 c#4@3 d4",
  O: "b3@2 ~", P: "[e4@11 ~]/2", Q: "[~ e4@2]/2", R: "[e4@17 ~]/3", S: "~@2 d4", T: "d4 c#4 b3", U: "a3@2 d4",
  V: "a3@2 f#4", W: "f#4 e4 g4", X: "g4 f#4 a4", Y: "a4 g4 b3", Z: "e4@2 d4", AA: "d#4 e4!2", AB: "f4 f#4!2",
  AC: "f#4 g4!2", AD: "g#4 a4 d4", AE: "g#4 a4 a#4", AF: "b4@7 a4", AG: "[g4 f#4 e4 d4 g4@7 f#4 e4 d4 c4 b3]/2",
  AH: "e4@7 d4", AI: "c4@3 b3@3 a3@3 g3@3 c5@2 b4@2 a4@2 g4@2 f4@2 e4@2", AJ: "a4@2 g4@2 f4@2 e4@2 d4@2 c4@2 g3@3 ~@9",
  AK: "g3 ~@7", AL: "~@5 c5 ~@2",
  AM: "[~@39 g4@14 g4@14 f#4@14 e4@13 c#4@7 b3@7 ~@14 d4@13 d4@14 c#4@14 b3@14 g#3@6 f#3@7 ~@2]/4",
  AN: "~@19 f#4@7 f#4@7 e4@7 ~@8", AO: "[~@12 e4@7 e4@7 d4@7 ~@13 d4@31 d4@3 ~ e4@3 e4@3 d4@3 ~ g4@3 f#4@2]/2",
  AP: "~@2 a#4@3 b4@17 a#4@8 g4@8 f4@10", AQ: "~@3 f4@4 e4@41", AR: "[~@8 b4@17 a#4@8 g4@8 ~ f4@12 f4@4 e4@38]/2",
  AS: "[~@12 b3@17 ~@8 b3@8 b3@12 a3@4 a3@33 ~@2]/2", AT: "~@15 g3@17 ~@8 g3@8", AU: "g3@12 ~ f#3@4 f#3@31",
  AV: "~@3 b3@5", AW: "[~@3 b3@17 b3@17 a#3@33 f#3@16 e3@33 g3@17 f#3@74 ~@17 a3@8 c#4@3 d4@2]/5",
  AX: "[~ d#4@2 e4@3 f4@3 f#4@3 g4@3 g#4@2 a4@3 a#4@3 b4@3 c5@2 b4@17 a#4@8 g4@8 f4@12 ~ f4@4 e4@41 ~@9 b4@16]/3",
  AY: "[a#4@8 g4@8 ~ f4@12 f4@4 e4@41 ~@9 g3@13]/2",
  AZ: "[~@3 f#3@12 ~ e3@4 d3@8 c#3@8 ~ a3@16 g3@12 ~ f#3@4 e3@8 d#3@8 c4@17 b3@12 a3@4 g3@8 ~ f#3@8 d4@16 c4@12 ~ b3@4 a3@8 g#3@8 ~ e4@6]/4",
  BA: "[~@2 d4@8 c4@8 b3@8 ~ f4@8 e4@8 d4@8 c4@8 ~ g4@8 f4@8 e4@8 ~ d4@8 a4@8 g4@8 f4@8 ~ e4@8 a#4@8 a4@8 ~ g4@8 f4@8 c5@8 b4@8 ~ a4@8 g#4@8]/4",
  BB: "[b4@23 a4@11 ~@11 a4@6 g4@6 f4@5 e4@6 g4@23 f4@11 ~@11 f4@6 e4@5 d4@6 c#4@6 e4@22 d4@11 ~@12 d4@6 c#4@5]/4",
  BC: "b3@6 a#3@5 c#4@23 b3@11 ~@3",
  BD: "[~@9 b3@5 a3@6 g3@6 f#3@5 a3@23 g4@5 f#4@6 e4@6 d4@5 c#4@6 d4@6 c#4@5 b3@6 b3@6 ~@20 c#4@2 d4@2 e4@2 f4@2 ~ g#4@2 ~ b4@13 a#4@6 ~ g4@6 f#4@6 e4@6 ~ f#4@13 ~@3, ~@133 f#4@2 ~ a4@2 ~@54]/4",
  BE: "~@9 c#4@2 ~ d4@2 e4@2 ~ f#4@2 g#4@2 ~ b4@13 a#4@6 g4@6 ~, ~@16 f4@2 ~@3 a4@2 ~@25",
  BF: "f#4@6 e4@6 ~ f#4@13 ~@12 f#3@2 g#3@2 a#3@2 ~@2 c#4@2, ~@45 b3@2 ~",
  BG: "[~ e4@2 e4@13 d#4@6 c#4@6 ~ b3@6 a#3@6 c#4@13 ~@13 f#3@2 g#3@2 a#3@2 b3@2 c#4@2 ~ e4@2 e4@13 d4@6 c#4@6 b3@6 ~ a3@6 c#4@13 ~@13, d4@2 ~@75 d4@2 ~@65]/3",
  BH: "~@13 b3@13 ~@22", BI: "~@3 c#4@13 ~@32", BJ: "[~@6 b3@26 b3@38 a3@6 ~@7 a3@26 a3@35]/3",
  BK: "[~@3 g3@6 ~@7 g3@25 g3@38 ~ f#3@32 ~@6 d3@32 ~@7 c#3@32 ~@3]/4", BL: "~@3 c#3@32 ~@13", BM: "~@8 d3@15 b3@25",
  BN: "~@4 b3@15 a#3@29", BO: "[~ f#3@15 g3@44 d3@22 ~@14]/2", BP: "[~@4 e4@15 e4@7 d4@15 d4@7]/2",
  BQ: "[~ e4@29 e4@15 c#4@30 ~@21]/2", BR: "[~@38 b3@15 ~@43]/2", BS: "~@9 b3@5 ~@2", BT: "~@23 b3@15 ~@10",
})).s("gm_alto_sax").gain(0.3).pan(0.4)

// other · baritone sax · "Baritone Sax."
const baritone_sax = note(`<
  A B@6 C@3 D@6 E@3 F G H I H I J K L M N O P@2 Q R S T@2 U V W V X Y Z AA AB AC AD AC AE AF AG AH AI V W V X Y Z AA AB
  AC AD AC AE AF AG AH AJ AK AL@2 AM AN AO AP AQ ~ AR@3 AS AT@2 AU AV AW@2 AX@2 AY AZ BA BB@5 BC@3 BD@2 BE@8 BF BG BH@3
  BG BI BJ@5 BK@4 BL@3 BM@4 BN BO@8 BP BQ BR BS@3 BT@4 BU@5
>`.pickRestart({
  A: "~@13 d4@18 c#4@9 b3@8",
  B: "[~@2 g#3@13 g3@5 f#3@46 ~@9 d4@18 ~ c#4@9 b3@9 g#3@14 g3@5 f#3@46 ~@9 d3@18 ~@10 d3@9 d3@14 c#3@5 d3@37 ~@9]/6",
  C: "[~@9 f#3@18 ~@10 f#3@9 f#3@14 f3@4 f#3@37 ~@19 a3@24]/3",
  D: "[~@3 g#3@9 ~ a3@18 f#3@28 f#3@9 e3@18 ~ e3@27 f#3@9 f#3@9 ~ f3@9 b2@65 ~@9 a3@37 g#3@9 ~@9 g3@9 ~@8]/6",
  E: "[~@2 f#3@9 f3@9 e3@9 ~@10 d3@18 c#3@9 ~@9 e3@69]/3", F: "e4",
  G: "~@24 c#3@3 e3@3 ~ g3@3 g#3@3 ~ a#3@3 b3@3 ~ c#4@3", H: "d4@4 c#4@2 b3@2 g#3@3 g3", I: "f#3@5 ~",
  J: "d3@4 ~@2 d3@2 d3@3 c#3", K: "d3@2 ~", L: "b2@4 ~@2 b2@2 b2@3 a#2", M: "b2@2 ~", N: "g2@4 ~@2 g2@2 g2@3 f#2",
  O: "g2@2 ~", P: "[b3@22 ~ b2]/2", Q: "b2@3 a2 a2@3 g2 g2@3 f#2", R: "f#2@3 e2 e2@3 d2 d2@3 c#2",
  S: "c#2@4 d2 c#2 c2 c#2 e2@3 d2", T: "[c#2@11 ~]/2", U: "~@2 d3", V: "e3@2 g3", W: "g3 f#3 f3", X: "g3 f#3 e3",
  Y: "d#3 e3 c#3", Z: "c#3 d#3 f#3", AA: "g3@2 g3", AB: "g3@2 f#3", AC: "e3@2 f3", AD: "d3 c#3 b2", AE: "d3 c#3 c3",
  AF: "f#3 e3 d3", AG: "g#3 f#3 e3", AH: "a3 g3 f3", AI: "b3 a3 d3", AJ: "b3 a3 g3", AK: "f#3@7 ~",
  AL: "[~@4 c3@7 ~@5]/2", AM: "e3@7 ~", AN: "~@4 g2 ~@3", AO: "g2 ~@7", AP: "~@12 c4 b3 a3 g3 f3 e3 a3 g3 f3 e3 d3 c3",
  AQ: "e3@2 d3@2 c3@2 b2@2 a2@2 g2@2 c3@2 ~ a2@2 g2@2 f2@2 ~ d2@2 c2@12 ~@12, ~@14 b2@2 ~@5 e2@2 ~@25",
  AR: "[~@5 a#3@41 b3@14 ~@27 e3@41 ~ f#3@14 ~]/3", AS: "~@19 d#3@7 e3@7 ~@15",
  AT: "[~@12 c#3@7 d3@14 ~@13 d3@31 d3@3 ~ e3@3 f#3@3 g3@3 ~ a#3@3 b3@2]/2", AU: "~@2 c#4@3 d4@17 c#4@8 b3@8 g#3@10",
  AV: "~@3 g3@4 f#3@41", AW: "[~@8 d4@17 c#4@8 b3@8 ~ g#3@12 g3@4 f#3@38]/2",
  AX: "[~@12 d3@17 ~@8 d3@8 d3@12 c#3@4 d3@33 ~@2]/2", AY: "~@15 b2@17 ~@8 b2@8", AZ: "b2@12 ~ a#2@4 b2@31",
  BA: "~@3 e3@5", BB: "[~@3 e3@17 d3@50 c#3@49 c#3@91 ~@17 e2@8 e3@3 f3@2]/5",
  BC: "[~ f#3@2 g3@3 g#3@3 a3@3 a#3@3 b3@2 c4@3 c#4@3 d4@3 d#4@2 d4@17 c#4@8 b3@8 g#3@12 ~ g3@4 f#3@41 ~@9 d4@16]/3",
  BD: "[c#4@8 b3@8 ~ g#3@12 g3@4 f#3@41 ~@9 e3@13]/2",
  BE: "[~@3 d3@8 ~ c#3@8 e3@17 d3@24 c3@8 ~ b2@16 a3@17 g3@8 f#3@8 a3@17 g3@25 f3@8 e3@17 d3@33 c3@16 c3@17 b2@33 a#2@16 e3@17 c#3@17 d2@16 d2@17 e2@16]/8",
  BF: "e2@6 e2@11 e2@11 e2@11 ~ e2@8", BG: "~@3 e2@11 e2@11 ~ e2@11 e2@11",
  BH: "[e2@11 e2@11 ~ e2@11 e2@11 e2@11 ~ e2@11 e2@11 e2@11 ~ e2@11 e2@11 e2@11 e2@11 ~ e2@8]/3",
  BI: "e2@11 e2@6 f2@6 f2@11 f2@11 f2@3", BJ: "[~@16 f#3@77 f#3@76 f#2@71]/5",
  BK: "[~@6 f#2@77 f#2@38 f#2@38 ~ f#2@26 ~@6]/4", BL: "[~@6 f#2@26 g2@25 g#2@13 a2@6 ~@7 e2@26 f2@25 f#2@10]/3",
  BM: "[~@3 g2@6 ~@7 d2@25 e2@26 f2@13 f#2@32 ~@6 g2@32 ~@7 e2@32 ~@3]/4", BN: "~@3 f#2@32 ~@6 b2@5 b2@2",
  BO: "[~@3 b2@10 b2@5 b2@10 b2@5 b2@49 b2@44 b2@44 ~ b2@44 b2@44 b2@44 ~ b2@44 b2@36]/8", BP: "~@19 b2@5",
  BQ: "~@4 b2@15 a#2@15 a2@14", BR: "~ g2@30 ~@17", BS: "[~@27 f#3@14 f#3@15 e3@15 d3@15 d3@14 c#3@15 b2@15 b2@14]/3",
  BT: "[~ a2@15 g2@14 f#2@44 ~ e2@44 f#2@44 e2@29]/4", BU: "[~@8 f#2@107 ~@5]/5",
})).s("gm_baritone_sax").gain(0.3).pan(0.9)

stack(alto_sax, alto_sax_2, baritone_sax)

More by Pyotr Ilyich Tchaikovsky