Strudelify

The Symphony Quest! (Part 1 Movements 1-8)

Tadasheek

KeyF majorTempo120 bpm
0:00/0:00
// The Symphony Quest! (Part 1 Movements 1-8) — Tadasheek
// 120 bpm, 3/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 4/4 at bar 62) are rendered on a constant 3/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/928716; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 123 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/3)

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

// chords · piano
const piano = note(`<
  A@6 B@3 C D@4 E@2 F G H@3 I J@2 K@2 L@2 M@2 N@2 O ~@6 P ~@16 Q R ~ S T U ~ V@8 W@3 X@4 Y@7 ~ Z@4 AA AB AC AD AE AB AF
  AG AH AI AJ AK@3 AL AM@3 AN AO AP@2 AQ AR AS@2 AT AU AV@2 AW@3
>`.pickRestart({
  A: "[~@21 e2@5 e3@3 c5@3 [e3,b4]@3 c5@3 a2@5 e3@3 ~@3 e3@3 e5@3 e2@5 e3@3 ~@3 e3@3 eb5@2 a2@5 ~ e3@3 ~@3 e3@3 ~@2 [e2,f5,ab5]@5 ~ e3@3 ~@3 e3@3 ~@2 [a2,d5]@5 ~ [e3,c5]@3 d5@3 [e3,c5]@2 d5@3 [e2,d5]@5 ~ [e3,b4]@3 c5@3 [e3,b4]@2 a4@3 [a2,ab4]@5, ~@38 e5@13 ~@4 eb5@13 ~@3 e5 ~@5 a5 ~@5 e5 ~@10 e5@11 ~@39]/6", // E5 E D5 C E7 E5 Amaj7
  B: "[~ [e3,ab5]@3 f5@3 [e3,e5]@2 d5@3 e2@5 ~ e3@3 ~@2 e3@3 ~@3 a2@5 ~ e3@3 ~@2 e3@3 e5@3 e2@5 ~ e3@3 ~@2 e3@3 eb5@3 a2@5 ~ e3@3, ~@12 b4@16 ~ e5@13 ~@4 eb5@13 ~@4 e5 ~@5 a5 ~@2]/3", // E
  C: "~@2 e3@3 ~@3 d5 e5 ~ f5@3 e3@3 ~@2 e3@3 ~@2, ~@2 e5 ~@5 e2@5 ~ e5@10",
  D: "[~ [a2,c5]@5 ~ [e3,b4]@2 c5@3 a4@5 ~ [e2,f4]@5 e4@5 ~ c5@5 ~ b4@3 a4@2 ab4@5 ~ b4@5 ~ a2@5 e3@3 ~@3 e3@3 ~@3 a2@5 e3@3 ~@3 e3@3 ~@3 a2@5 e3@3 ~@2, ~@12 e3@3 ~@8 e3@3 ~@3 e3@3 ~@3 a2@5 e3@3 ~@3 e3@3 ~@3 a4@16 ~@28]/4", // Am E5 Fmaj7
  E: "[~ e3@3 ~@3 e2@5 e3@3 ~@3 e3@3 ~@2 a2@5 ~ e3@3 ~@3 e3@3 ~@2 e2@5 ~ e3@2]/2",
  F: "~@4 e3@3 ~@2 a2@5 ~ e3@3 ~@3 e3@3", G: "~@2 e2@5 ~ e3@3 ~@3 e3@3 ~@2 a2@5",
  H: "[~ e3@3 ~@3 e3@3 ~@2 e2@5 ~ e3@3 ~@2 e3@3 ~@3 a2@5 ~ e3@3 ~@2 e3@3 ~@3 e2@5 ~ e3@3 ~@2 e3@3 ~@3 a2@5 ~ e3@3]/3",
  I: "~@2 e3@3 ~@3 e2@5 ~ e3@3 ~@2 e3@3 ~@2",
  J: "[~ a2@5 ~ e3@3 ~@2 e3@3 ~@3 e2@5 e3@3 ~@3 e3@3 ~@3 a2@5 e3@3 ~@3 e3@2]/2",
  K: "[~@4 e2@5 e3@3 ~@3 e3@3 ~@3 a2@5 e3@3 ~@3 e3@3 ~@3 a2@5 e3@3 ~@2]/2",
  L: "[~ e3@3 ~@3 e5@2 a4@3 [e3,e5]@3 a4@3 [e3,e5]@3 a4@2 b4@3 ab4@3 [e3,b4]@3 ab4@3 [e3,e5]@3 d5 e5 f5@3 e5@3 [f3,d5]@2, ~@7 a2@5 ~@11 e2@5 ~@12 d3@5 ~@3]/2", // E E5 E Dm
  M: "[~ c5@3 [e3,b4]@3 c5@2 d5@3 c5@3 [c3,b4]@3 a4@3 ab4@5 e5@3 a4@3 [e3,e5]@3 a4@3 [e3,e5]@2 a4@3 b4@3 ab4@2, ~@9 e2@5 ~@7 b2@3 ~@2 a2@5 ~@12 e2@5]/2", // E5 Cmaj7 E
  N: "[~ [e3,b4]@3 ab4@3 [e3,e5]@2 d5 ~ e5 f5@3 e5@3 [f3,d5]@3 c5@2 [e3,b4]@3 c5@3 d5@3 e5@3 [e2,f5]@3 ab5@2 a2@3 e4@3 [a1,a2,f3,bb4]@2, ~@12 ab2@5 ~@12 d3@5 ~@14]/2", // E5 E Dm E5 Fmaj7 Bbmaj7
  O: "~ ab4@3 [a1,a2,e3,a4,e5,a5]@3 ~@17", P: "~@2 c3 eb3 ~@4, ~@3 eb5@7 ~@2",
  Q: "[ab2,b3,f4] ~ [ab2,b3,f4] ~ [ab2,b3,f4] ~ [f2,ab3,f4]@2 [f2,ab3,f4]@2 [d2,f3,f4]@2", // Fdim Fm Dm
  R: "[eb2,eb4]@2 [eb2,eb4]@2 [d2,d4]@2 c4@2 eb4 ~ g4 ~, ~@12 c2@11 ~", // Eb D
  S: "[eb4,g4] ~ [eb4,g4] ~ [eb4,g4] ~ [d4,g4]@2 [d4,g4]@2 [bb2,d4,g4]@2, eb3@2 g3 d3@2 ~", // Eb G5 Gm
  T: "[b3,f4] ~ [b3,f4] ~ [b3,f4] ~ [ab3,f4]@2 [ab3,f4]@2 [f2,f3,f4]@2, b2@11 ~ ab2@8 ~@4", // Bdim Db F
  U: "eb5 d5 eb5 d5 eb5 d5 [c2,c5,c6]@2 ~@4, g2 ~ eb2 ~@3", // C
  V: "[~@11 c3@25 ~ [c3,g3]@8 ~ bb2@25 ~ [bb2,g3]@8 ~ ab2@8 c3@8 ~ ab3@8 ~ [c3,c4]@8 ~ b3@10 c4@10 ~@10 g1@14 ~ c3@8 eb3@8 ~ g3@8 ~ c3@5, ~@11 [c4,eb4]@33 ~@2 [bb3,d4]@33 ~@2 c4@26 ~@9 g2@19 ~ d4@23 ~@2 eb4@31]/8", // C5 Eb C Cm Bb
  W: "[~@4 bb2@8 g2@8 ~ g3@8 ~ bb2@8 ~ ab2@8 c3@8 ~ ab3@8 ~ c3@7, ~@4 d4@33 ~@2 c4@33]/3",
  X: "[~ g2@17 ~ d3@8 ~ g3@8 eb4@8 ~ d4@8 ~@10 eb3@8 eb5@8 ~ d5@8 ~ g4@7, ~ b3@33 ~@2 c3@25 ~@10 b2@25, ~@54 c4@17 ~@25]/4",
  Y: "[~ g3@8 ~@3 [ab3,d5]@33 ~@2 [g3,c5]@19 ~@3 [ab3,b4]@23 ~@3 c4@67 ~@6, ~@10 [b2,f4]@35 [g2,eb4]@21 [f2,d4]@26 [c2,eb4]@70 ~@6, ~@11 [d3,ab4]@34 ~ [d3,g4]@20 ~ [d3,g4]@25 ~ [g2,c5]@69 ~@6, ~@47 [c3,c6]@34 ~@3]/7", // Abdim C5 Abm Bdim Cm Dm Cm Ddim …
  Z: "[~@13 eb3@25 ~@2 c3@4 [b2,b4]@5 [bb2,bb4]@5 [ab2,ab4]@5 [g2,g4,c5]@5 [gb2,gb4,c5]@4 [f2,f4,c5]@11 ~ [e2,e3]@2 [e2,e3]@2 [e2,e3]@2 ~@2 e4@4 g4@4, ~@20 c5@9 ~@11 e5@4 g5@4, ~@20 e4 g4 ~@2]/4", // B Bb Ab C5 Gbdim F5 E
  AA: "e4@2 g4@2 e4@2 g4@2 [c2,c3]!3 ~, c6 g5 e5, ~@4 e4 g4", AB: "e4 g4 e4 g4 e4 g4, g5 c6 g5",
  AC: "[d2,d3]!3 ~ d4@2 g4@2 d4@2 g4@2, d5 g5 d6, d4 g4 ~@4", // D
  AD: "d4@2 g4@2 d3!2 [d3,d4] d4 [d2,d3]!4, g5 d5 e5, ~@2 a4 ~ a4 d4", // D
  AE: "[d2,d3,a4]@2 [d2,d3,d4]@2 [eb2,eb3,d4]@2 [eb2,eb3]!2 [e2,e3]!3 ~, gb5 bb5 e5, ~@3 gb4 e4 g4", // D5 D Ebmaj7 Eb E
  AF: "[c2,c3]!3 ~ e4@2 g4@2 e4@2 g4@2, e5 g5 c6, e4 g4 ~@4", // C
  AG: "e4@2 g4@2 [d2,d3]!3 ~ d4@2 g4@2, g5 d5 g5, ~@2 d4 g4 ~@2", // D
  AH: "d4@2 g4@2 d4@2 g4@2 d3!2 [d3,d4] d4, d6 g5 d5, ~@4 a4 ~", // D
  AI: "[d2,d3]!4 [d2,d3,a4]@2 [d2,d3,d4]@2 [eb2,eb3,d4]@2 [eb2,eb3]!2, e5 gb5 bb5, a4 d4 ~@3 gb4", // D D5 D Ebmaj7 Eb
  AJ: "e4 g4 e4 g4 e4 g4, e2@11 ~ e2@11 ~",
  AK: "[e4 g4 e4 g4 e4 g4 e4 g4 e4 g4 d4 a4 d4 a4 d4 a4 d4 a4, e2@8 c2@11 ~ c2@11 ~ g1@8 g2@11 ~ g2@11 ~ g2@8]/3",
  AL: "a4 d4 d5 d4 a3 d4, ~@2 a2",
  AM: "[e4 gb4 e4 g4 e4 g4 e4 g4 e4 g4!2 d4 g4 d4 g4 [g2,d4] [g2,g4] [g2,a4], d2@8 e2@11 ~ e2@11 ~ e2@8 [g1,g2]@11 ~ [g1,g2]@8 ~@12]/3", // G5 G Gsus2 G
  AN: "g3 d4 g4 d4 b3 [b2,g4], [g2,c3]@11 ~ c3@8 ~@4", AO: "a4@4 g4@4 [d2,d3,d5]@15 ~, g2 ~@2",
  AP: "[~@2 [d2,d5]@2 e4 g4 e4 g4 c4 e4 b3 e4, ~@16 c2@15 ~ g2@8 g2@8]/2", AQ: "g4 d4 g4 d4 g4 d4, g2 [g2,g3]!2",
  AR: "gb4 d4 e4@2 b3 e4, [gb2,gb3]@8 e2@15 ~", AS: "[b3 e4 b3 e4 d4 g4 d4 g4 d5 a4 d5 d4, e3@15 ~ g3@15 ~ gb3@15 ~]/2",
  AT: "e4 g4 e4 g4 c4 e4, c2@11 ~ [c2,c3]@11 ~", AU: "b3 e4 g4 d4 g4 d4, [g2,g3] g2 [g2,g3]",
  AV: "[g4 d4 gb4 [gb2,gb3,d4] ~ e5 g5 ~ g5 b5 ~ [e4,d5,g5], [g2,g3]@11 ~@5 [c2,c3,g3]@12 [c2,c3,e3]@12 [g2,c3]@8]/2", // D Em7 G C5 C C5
  AW: "[[a2,d3]@4 a2@4 a2@4 d2@4 [g2,d3,g4,b4,g5]@15 ~@5, [gb4,a4,d5,d6]@5 ~@7]/3", // D5 G D
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<A ~@38 B C D E@2 F G@4 H@2 I J K L M ~@2 N ~@3 O@2 ~@59>".pickRestart({
  A: "~@4 a2@5 e3@3 ~@3 e3@3 ~@6", B: "~@13 g3@3 ~ c3@3 [eb3,d5]@3 ~",
  C: "[g3,c5]@3 ~ c3@3 eb3@3 ~ g3@3 ~ [c3,ab4]@3 [eb3,bb4]@3 ~ [g3,ab4]@2, ~@4 g4@11 ~@9", // C5 Fm Eb5 Abmaj7
  D: "~@2 c3@3 ~ eb3@3 g3@3 ~ c3@3 ~ eb3@3 g3@3 ~, ~@2 g4@21 ~",
  E: "[b2@3 ~ d3@3 g3@3 ~ b2@3 ~ d3@3 g3@3 ~ c3@3 ~ eb3@3 ~ [g3,c5]@3 [c3,c6]@3 ~ [eb3,bb5]@3 ~ [g3,ab5]@3 [c3,g5]@3 ~, f4@21 ~ eb5@7 ~@19]/2", // C5 C Eb5 Abmaj7 C5
  F: "[eb3,f5]@3 ~ [g3,eb5]@3 [c3,f5]@3 ~ [eb3,eb5]@2 f5@2 [g3,g5]@3 c5@4 c3@2, ~@6 g2 ~", // Ebsus2 Cm F5 Eb G
  G: "[~@2 f3@3 ~ c3@3 f3@3 ~ ab3@3 ~ g2@3 f3@3 ~ d3@3 ~ d2@3 [b2,d5]@3 ~ [g3,b4]@3 ~ c3@3 eb3@3 ~ g3@3 ~ c3@3 ~ [eb3,eb5]@3 [g3,d5]@3 ~ c3@3 ~ eb3@3 g3@3 ~ c3@3 ~ [eb3,ab5]@3 [g3,g5]@3 ~ [c3,eb6]@2 d6@2 [eb3,c6]@3 [g3,g5]@3 ~ [bb2,d5]@2, ~@2 c5@7 eb5@7 ~ b4@14 ~@8 c5@14 ~@8 g5@14 ~@21]/4", // Bm G Eb G5 Ab5 G Cm G …
  H: "[~@2 [eb3,eb5]@3 ~ [ab3,f5]@3 [ab2,ab4]@3 ~ [eb3,g4]@2 ab4@2 [g3,eb5]@3 g2@3 ~ d3@3 ~ b2@3 ab2@3 ~ d3@3 ~ f3@3 ab3@3 ~ [d4,ab4]@2, ~@20 g4@11 f4@14 ~@3]/2", // Eb Db Ab Eb Cm Ddim
  I: "~@2 [d4,f4]@2 ~@2 g2@3 c3@3 ~ g3@3 ~ c4@3 [eb4,ab4]@2 ~@2, ~@3 g4@7 ~@2", // Dm Ab5
  J: "[eb4,c5]@2 ~@2 g2@3 c3@3 ~ g3@3 ~ d2@3 d3@3 ~ [g3,eb4]@2, ~@4 g4@11 f4@7 ~@2", // Cm
  K: "~@2 c2@3 ~ g3@3 eb3@3 ~ [c3,c5]@3 ~@8, ~@2 c4@11 ~@11", // C
  L: "[g4,ab4] ~ [g4,ab4] ~ [g4,ab4] ~ [f4,ab4]@2 [f4,ab4]@2 [f4,ab4]@2", // Abmaj7 Fm
  M: "[c3,eb4,g4] ~ [c3,eb4,g4] ~ [c3,eb4,g4] ~ [g2,d4,g4]@2 [g2,d4,g4]@2 [g2,d4,g4]@2", // Cm G5
  N: "[g4,ab4] ~ [g4,ab4] ~ [g4,ab4] ~ [f4,ab4]@2 [f4,ab4]@2 [ab3,f4,ab4]@2, g3@2 ab3 f3@2 ~", // Abmaj7 Fm Db
  O: "[c4@17 d4@17 ~@14]/2",
})).s("gm_piano").gain(0.2)

// other · string ensemble 1 · "Violoncello"
const string_ensemble_1 = note(`<
  ~@13 A@4 B@5 C@5 ~@5 D E@3 F@3 ~@5 G@8 H I ~@4 J@6 K@7 L@8 ~@2 M@4 ~@4 N O@2 P Q@3 R S T U V@2 W@2 X Y Z@2 AA AB AC@2
  AD AE@2 AF R AG AH@2 AI@3
>`.pickRestart({
  A: "[~@14 a3@25 e3@8 a2@17 ab2@17 a2@15]/4", B: "[~@2 b2@17 c3@17 d3@17 e2@17 b2@17 a2@17 ab2@16]/5",
  C: "[~ a2@17 b2@17 c3@17 d3@17 e2@17 a2@17 ~@17]/5", D: "~ d2@5", E: "[~@2 e2@15 f2@14 e2@22 ~ a2@14 ab2@4]/3",
  F: "[f2@4 ab2@3 db3@4 [ab2,c3]@22 b2@4 e3@18 ~@17]/3", // Ab
  G: "[~@18 f2@22 ~ d2@22 c2@55 f2@11 ab2@11 g2@11 f2@22 ~ g2@18]/8", H: "~@2 g2@7 f2@3", I: "~ [c2,c3]@11",
  J: "[c2@131 ~@13]/6", K: "[~@4 g2@35 g3@17 ~ g3@8 f3@17 ~ eb3@9 g2@45 c3@31, ~@23 d3@5 ~@14]/7",
  L: "[~@4 bb2@35 ab2@34 g2@17 ~ g2@9 b2@8 eb3@35 b2@35 ~@14]/8", M: "[~@10 c2@35 ~@3]/4", N: "~ e3@2",
  O: "[b2@2 e3@2 c3 g3]/2", P: "d3@2 a2", Q: "[e3!2 gb3@3 e3@2 b2@2]/3", R: "e3@2 c3", S: "g3 d3@2", T: "a2 e3!2",
  U: "gb3", V: "[e3 b2 e3]/2", W: "[c3 g3 d3@4]/2", X: "[g2,g3] [a2,gb3] [d2,e3]", Y: "[d2,d3] e3@2",
  Z: "[b2@2 g3@2 c3 c4]/2", AA: "g3@2 b2", AB: "d3 [gb2,d3]@2", AC: "[~ gb3 e3@2 c3 d3]/2", AD: "g2@2 g2",
  AE: "[gb2 ~@2 g3@2 a2, ~ e2@4 ~]/2", AF: "c3 [d3,d4]@2", AG: "d3 g2@2",
  AH: "[g2@2 gb2@2 [g2,e3,c4]@3 [c3,e3,b3]@3 [g2,g3]@2]/2", AI: "[d3@4 [g2,d3]@4 ~]/3",
})).s("gm_string_ensemble_1").gain(0.23)

// other · string ensemble 1 · "Violoncello" · soft notes
const string_ensemble_1_soft = note("<~@12 A@2 ~@28 B@3 ~@33 C@4 ~@41>".pickRestart({
  A: "[~@4 a3@17 a3@17 ~@10]/2", B: "[~@11 g2@22 ~@3]/3", C: "[~@10 d3@17 ~ ab3@17 g2@21 d2@26 ~@4, ~@45 g3@47 ~@4]/4",
})).s("gm_string_ensemble_1").gain(0.11)

stack(piano, piano_soft, string_ensemble_1, string_ensemble_1_soft)

More by Tadasheek