Strudelify

Midsummer Waltz

TheNightreader

KeyA majorTempo120 bpm
0:00/0:00
// Midsummer Waltz — TheNightreader
// 120 bpm, 3/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Flutes" named as a pipe, played on flute (its pizzicato strings patch is not one); ch 2 "Oboes" named as a reed, played on oboe (its tremolo strings patch is not one); ch 3 "Clarinets in B♭" named as a reed, played on clarinet (its contrabass patch is not one); ch 4 "Bassoons" named as a reed, played on bassoon (its acoustic bass patch is not one); ch 5 "Horns in F" named as a brass, played on brass section (its tremolo strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1378456; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 82 bars on a 16-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 · [...]/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 · flute · "Flutes"
const flute = note(`<
  ~@20 A B C D A B E F G H I J G H K L A B C D A B E F ~@8 G H I J G H K L M N O P M N Q D M N O P ~@10
>`.pickRestart({
  A: "~@5 c#5@5 ~ e5@5", B: "a5@5 c#6@5 ~ e6@5", C: "d6@5 c#6@5 ~ b5@5", D: "g#5@15 ~", E: "d6@5 b5@5 ~ g#5@5",
  F: "e5@15 ~", G: "~@5 f#5@5 ~ a5@5", H: "d6@5 f#6@5 ~ a6@5", I: "a6@5 g#6@5 ~ d6@5", J: "c#6@15 ~",
  K: "b6@5 a6@5 ~ g#6@5", L: "c#7@15 ~", M: "~@5 f5@5 ~ g#5@5", N: "c#6@5 f6@5 ~ g#6@5", O: "f#6@5 f6@5 ~ d#6@5",
  P: "c6@15 ~", Q: "f#6@5 d#6@5 ~ c6@5",
})).s("gm_flute").gain(0.5)

// other · oboe · "Oboes"
const oboe = note(`<
  ~@12 A B C D E F G H E F G H E F G H I J H K I J H K E F G H E F G H ~@8 I J H K I J H K@2 L M N K L M N K L M N ~@10
>`.pickRestart({
  A: "f#4@3 e4@2 c#4@5 ~ c#4@5", B: "f#4@5 e4@5 ~ a4@5", C: "d4", D: "c#4@11 b3@5", E: "a4", F: "f#4", G: "b4", H: "e5",
  I: "f#5", J: "d5", K: "c#5", L: "a#4", M: "d#5", N: "g#5",
})).s("gm_oboe").gain(0.45)

// chords · clarinet · "Clarinets in B♭"
const clarinet = note(`<
  ~@8 A B C D E F G H I J K L I J M G I J N O P Q R S P Q T U I J M G I J N O ~@8 P Q R S P Q T U V W X Y V W Z AA V W X
  Y ~@10
>`.pickRestart({
  A: "a4@3 g#4@2 c#4@5 ~ c#4@5", B: "f#4@5 e4@5 ~ a3@5", C: "d4", D: "c#4@11 b3@5", E: "a5@3 g#5@2 c#5@5 ~ c#5@5",
  F: "d5@5 d5@5 ~ c#5@5", G: "b4", H: "e5", I: "~@5 c#4@5 ~ e4@5", J: "a4@5 c#5@5 ~ e5@5", K: "e5@5 f#4@11",
  L: "~@5 e4@5 ~ b3@5", M: "f#5@5 e5@5 ~ d5@5", N: "d5@5 b4@5 ~ g#4@5", O: "e4", P: "~@5 f#4@5 ~ a4@5",
  Q: "d5@5 f#5@5 ~ a5@5", R: "a5@5 g#5@5 ~ d5@5", S: "c#5", T: "b5@5 a5@5 ~ g#5@5", U: "c#6", V: "~@5 f4@5 ~ g#4@5",
  W: "c#5@5 f5@5 ~ g#5@5", X: "a#5@5 g#5@5 ~ f#5@5", Y: "d#5", Z: "f#5@5 d#5@5 ~ c5@5", AA: "g#4",
})).s("gm_clarinet").gain(0.5)

// chords · clarinet · "Clarinets in B♭" · soft notes
const clarinet_soft = 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 E F G H E F G H A B C D A B C D A B C D A B C D E F G H E F G
  H@2 I J K H I J K H I J K H I J K H I J K L@2
>`.pickRestart({
  A: "a1", B: "f#1", C: "b1", D: "e1", E: "f#2", F: "d2", G: "g#2", H: "c#2", I: "a#1", J: "d#2", K: "g#1", L: "c#2/2",
})).s("gm_clarinet").gain(0.3)

// chords · bassoon · "Bassoons"
const bassoon = 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 E F G H E F G H A B C D A B C D A B C D A B C D E F G H E F G
  H I J K L I J K L I J K L ~@10
>`.pickRestart({
  A: "a2@5 [c#3,e3]@5 ~ [c#3,e3]@5", B: "f#3@5 [a3,c#4]@5 ~ [a3,c#4]@5", C: "b2@5 [d3,f#3]@5 ~ [d3,f#3]@5",
  D: "e3@5 [g#3,b3]@5 ~ [g#3,b3]@5", E: "f#2@5 [a2,c#3]@5 ~ [a2,c#3]@5", F: "d3@5 [f#3,a3]@5 ~ [f#3,a3]@5",
  G: "g#2@5 [b2,d3]@5 ~ [b2,d3]@5", H: "c#3@5 [e3,g#3]@5 ~ [e3,g#3]@5", I: "c#3@5 [f3,g#3]@5 ~ [f3,g#3]@5",
  J: "a#3@5 [c#4,f4]@5 ~ [c#4,f4]@5", K: "d#3@5 [f#3,a#3]@5 ~ [f#3,a#3]@5", L: "g#3@5 [c4,d#4]@5 ~ [c4,d#4]@5",
})).s("gm_bassoon").gain(0.3)

// other · brass section · "Horns in F"
const brass_section = note(`<
  ~@4 A B C D E F G H E F G H E F G H E F G H E F G H F I J K F I J K E F G H E F G H E F G H E F G H F I J K F I J K L
  M N O L M N O L M N O ~@10
>`.pickRestart({
  A: "a4", B: "f#4", C: "b3", D: "e4@5 d4@5 ~ b3@5", E: "[a3,a4]", F: "[f#3,f#4]", G: "[b2,b3]",
  H: "[e3,e4]@5 [d3,d4]@5 ~ [b2,b3]@5", I: "[d3,d4]", J: "[g#2,g#3]", K: "[c#3,c#4]@5 [b2,b3]@5 ~ [g#2,g#3]@5",
  L: "[c#4,c#5]", M: "[a#3,a#4]", N: "[d#3,d#4]", O: "[g#3,g#4]@5 [f#3,f#4]@5 ~ [d#3,d#4]@5",
})).s("gm_brass_section").gain(0.3)

// other · string ensemble 1 · "Violins II"
const string_ensemble_1 = note(`<
  A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C D@2 E F D@2 E F A@2 B C A@2 B C A@2 B C A@2 B C D@2 E F D@2 E
  F@3 G H F@2 G H F@2 G H F@2 G H F@2 G H I J
>`.pickRestart({
  A: "~@5 a4@5 ~ a4@5", B: "~@5 d4@5 ~ d4@5", C: "~@5 e4@5 ~ e4@5", D: "~@5 f#5@5 ~ f#5@5", E: "~@5 b4@5 ~ b4@5",
  F: "~@5 c#5@5 ~ c#5@5", G: "~@5 f#4@5 ~ f#4@5", H: "~@5 g#4@5 ~ g#4@5", I: "f#5", J: "f5",
})).s("gm_string_ensemble_1").gain(0.15)

// other · string ensemble 1 · "Violas"
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 E F G H E F G H A B C D A B C D A B C D A B C D E F G H E F G
  H I J K L I J K L I J K L I J K L I J K L M@2
>`.pickRestart({
  A: "a3@5 c#3@5 ~ c#3@5", B: "f#3@5 c#4@5 ~ c#4@5", C: "b3@5 d3@5 ~ d3@5", D: "e3@5 e4@5 ~ e4@5",
  E: "f#4@5 a3@5 ~ a3@5", F: "d4@5 a4@5 ~ a4@5", G: "g#4@5 b3@5 ~ b3@5", H: "c#4@5 c#5@5 ~ c#5@5",
  I: "c#4@5 f3@5 ~ f3@5", J: "a#3@5 f4@5 ~ f4@5", K: "d#4@5 f#3@5 ~ f#3@5", L: "g#3@5 g#4@5 ~ g#4@5", M: "c#4/2",
})).s("gm_string_ensemble_1").gain(0.25)

// chords · string ensemble 1 · "Violoncellos"
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 B E F G B E F G A B C D A B C D A B C D A B C D B E F G B E F
  G H I J K H I J K H I J K H I J K H I J K L@2
>`.pickRestart({
  A: "a2@3 c#3@2 [c#3,e3]@11", B: "f#3@3 a3@2 [a3,c#4]@11", C: "b2@3 d3@2 [d3,f#3]@11", D: "e3@3 g#3@2 [g#3,b3]@11",
  E: "d4@3 f#4@2 [f#4,a4]@11", F: "g#3@3 b3@2 [b3,d4]@11", G: "c#4@3 e4@2 [e4,g#4]@11", H: "c#3@3 f3@2 [f3,g#3]@11",
  I: "a#3@3 c#4@2 [c#4,f4]@11", J: "d#3@3 f#3@2 [f#3,a#3]@11", K: "g#3@3 c4@2 [c4,d#4]@11", L: "c#3/2",
})).s("gm_string_ensemble_1").gain(0.3)

stack(
  flute, oboe, clarinet, clarinet_soft, bassoon, brass_section, string_ensemble_1, string_ensemble_1_2,
  string_ensemble_1_3
)

More by TheNightreader