Strudelify

Epic Journey (better name needed)

TheNightreader

KeyF majorTempo120 bpm
0:00/0:00
// Epic Journey (better name needed) — TheNightreader
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flutes" named as a pipe, played on flute (its string ensemble 1 patch is not one); ch 2 "Oboes" named as a reed, played on oboe (its pizzicato strings patch is not one); ch 3 "Clarinets in B♭" named as a reed, played on clarinet (its tremolo strings patch is not one); ch 4 "Bassoons" named as a reed, played on bassoon (its contrabass patch is not one); ch 5 "Horns in F" named as a brass, played on brass section (its acoustic bass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1385336; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 77 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 · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · flute · "Flutes"
const flute = note(`<
  A B C D A B C D A B C D A B C D E F G H I J K L E F G M N O P Q N O R S A B C D N O P Q N O R S T U V W T U V W X D Y
  Z X D X AA I J K L E F G M AB AC AD AE AF
>`.pickRestart({
  A: "[f2,a2,c3]", B: "[c2,e2,g2]", C: "[d2,f2,a2]", D: "[d2,f2]", E: "f5@4 a5!2 bb5 a5, [f2,a2,c3]",
  F: "c6@4 c6 bb5 c6 bb5, [c2,e2,g2]", G: "a5 g5, [d2,f2,a2]", H: "bb5@2 c6 e6, [d2,f2]",
  I: "f6@4 a6!2 bb6 a6, [f2,a2,c3]", J: "c7@4 c7 bb6 c7 bb6, [c2,e2,g2]", K: "a6 g6, [d2,f2,a2]",
  L: "bb6@2 c7 g6, [d2,f2]", M: "bb5@2 a5 g5, [d2,f2]", N: "f5!3 e5, [f2,a2,c3]", O: "c5!2, [c2,e2,g2]",
  P: "d5!3 c5, [d2,f2,a2]", Q: "bb4 e5!2 g5, [d2,f2]", R: "[d2,f2,a2,d5]", S: "[d2,f2,f5]",
  T: "eb5@4 g5!2 ab5 g5, [eb2,g2,bb2]", U: "bb5@4 bb5 ab5 bb5 ab5, [d2,f2]", V: "g5 f5, [c2,eb2,g2]",
  W: "ab5@2 g5 f5, [c2,eb2]", X: "[eb2,g2,bb2]", Y: "[c2,eb2,g2]", Z: "[c2,eb2]", AA: "[g2,b2,d3]",
  AB: "f5@2 c5@2 c5@2 f5 g5, [f2,a2,c3]", AC: "e5@2 c5@2 c5@2 a5 g5, [c2,e2,g2]", AD: "a5@11 ~ a5@2 g5@2, [d2,f2,a2]",
  AE: "[d2,f2,bb5]", AF: "[f2,a2,c3,f6]",
})).s("gm_flute").gain(0.3)

// other · oboe · "Oboes"
const oboe = note(`<
  ~@12 A B C D A B C D E F G H A B C D ~@4 I J K L ~@12 M N O P M N O P ~@8 E F G H A B C D ~@5
>`.pickRestart({
  A: "f4@4 a4!2 bb4 a4", B: "g4@4 a4 g4 a4 bb4", C: "a4 g4", D: "f4 g4", E: "f5@4 a5!2 bb5 a5", F: "g5@4 a5 g5 a5 bb5",
  G: "a5 g5", H: "f5 g5", I: "f4!3 e4", J: "c4!2", K: "d4", L: "f4", M: "eb4@4 g4!2 ab4 g4", N: "f4@4 g4 f4 g4 ab4",
  O: "g4 f4", P: "eb4 f4",
})).s("gm_oboe").gain(0.5)

// other · clarinet · "Clarinets in B♭"
const clarinet = note(`<
  ~@8 A B C D A B C D A B C D A B C D A B C D ~@4 E F G H ~@12 I J K L I J K L ~@8 A B C D A B C D ~@5
>`.pickRestart({
  A: "f4@6 f4 e4", B: "c4@6 c4 bb3", C: "d4@6 d4 e4", D: "f4 g4", E: "f5!3 e5", F: "c5!2", G: "d5", H: "f5",
  I: "eb4@6 eb4 d4", J: "bb3@6 bb3 ab3", K: "c4@6 c4 d4", L: "eb4 f4",
})).s("gm_clarinet").gain(0.3)

// chords · bassoon · "Bassoons"
const bassoon = note(`<
  A B C D A B C D E F G H E F G H E F G H E F G H E F G H A B C D I J C D A B C D A B C D A B C D K L M N K L M N O D P
  Q O D O R E F G H E F G H A B C D S
>`.pickRestart({
  A: "[f2,a2,c3]", B: "[c2,e2,g2]", C: "[d2,f2,a2]", D: "[bb1,d2,f2]", E: "f3@6 f3 e3, [f2,a2,c3]",
  F: "c3@6 c3 bb2, [c2,e2,g2]", G: "d3@6 d3 e3, [d2,f2,a2]", H: "f3 g3, [bb1,d2,f2]", I: "f2!3 e2, [a2,c3]",
  J: "c2!2, [e2,g2]", K: "eb3@6 eb3 d3, [eb2,g2,bb2]", L: "bb2@6 bb2 ab2, [bb1,d2,f2]", M: "c3@6 c3 d3, [c2,eb2,g2]",
  N: "eb3 f3, [ab1,c2,eb2]", O: "[eb2,g2,bb2]", P: "[c2,eb2,g2]", Q: "[ab1,c2,eb2]", R: "[g2,b2,d3]", S: "[f1,a1,c2]",
})).s("gm_bassoon").gain(0.3)

// chords · tremolo strings · "Timpani"
const tremolo_strings = note(`<
  ~@4 A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B C@3 D C@3 D ~@8 A@3 B A@3 B A@3 B E
>`.pickRestart({
  A: "[f2,c3]@12 [f2,c3]@2 f2 c3", B: "[f2,c3]@2 [f2,c3]!6", C: "[eb2,bb2]@12 [eb2,bb2]@2 eb2 bb2",
  D: "[eb2,bb2]@2 [eb2,bb2]!6", E: "[f2,c3]",
})).s("gm_tremolo_strings").gain(0.5)

// other · string ensemble 1 · "Violins I"
const string_ensemble_1 = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D E F B G E F B G ~@8 A
  B C D A B C D A B C D H
>`.pickRestart({
  A: "~ f6 ~ f6 ~ f6 ~ f6", B: "~ c6 ~ c6 ~ c6 ~ c6", C: "~ d6 ~ d6 ~ d6 ~ d6", D: "~ bb5 ~ bb5!2 a5 g5 f5",
  E: "~ eb6 ~ eb6 ~ eb6 ~ eb6", F: "~ bb5 ~ bb5 ~ bb5 ~ bb5", G: "~ ab5 ~ ab5!2 g5 f5 eb5", H: "f5",
})).s("gm_string_ensemble_1").gain(0.05)

// other · string ensemble 1 · "Violins II"
const string_ensemble_1_2 = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D E F B G E F B G E F B
  G ~@4 A B C D A B C D A B C D H
>`.pickRestart({
  A: "f5 ~ f5 ~ f5 ~ f5 ~", B: "c5 ~ c5 ~ c5 ~ c5 ~", C: "d5 ~ d5 ~ d5 ~ d5 ~", D: "bb4 ~ bb4 ~ bb4 a4 g4 f4",
  E: "eb5 ~ eb5 ~ eb5 ~ eb5 ~", F: "bb4 ~ bb4 ~ bb4 ~ bb4 ~", G: "ab4 ~ ab4 ~ ab4 g4 f4 eb4", H: "f4",
})).s("gm_string_ensemble_1").gain(0.05)

// chords · string ensemble 1 · "Violas"
const string_ensemble_1_3 = note(`<
  A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D E D F G E D F G E D F
  G E D E H A B C D A B C D A B C D A
>`.pickRestart({
  A: "[f3,a3,c4]", B: "[c3,e3,g3]", C: "[d3,f3,a3]", D: "[d3,f3]", E: "[eb3,g3,bb3]", F: "[c3,eb3,g3]", G: "[c3,eb3]",
  H: "[g3,b3,d4]", // G
})).s("gm_string_ensemble_1").gain(0.3)

stack(flute, oboe, clarinet, bassoon, tremolo_strings, string_ensemble_1, string_ensemble_1_2, string_ensemble_1_3)

More by TheNightreader