Strudelify

Awesome Wedding Recessional II (Lemmens Fanfare for Organ)

Jacques-Nicolas Lemmens

KeyD majorTempo110 bpm
0:00/0:00
// Awesome Wedding Recessional II (Lemmens Fanfare for Organ) — Jacques-Nicolas Lemmens
// 110 bpm, 2/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Oboe" named as a reed, played on oboe (its tremolo strings patch is not one)
// note: duplicate parts dropped: ch 3 "C Trumpet" french horn (copy of ch 2 "Oboe" oboe); ch 7 "Violins" string ensemble 1 (copy of ch 2 "Oboe" oboe); ch 6 "Trombone" trombone (copy of ch 11 "Violoncellos" string ensemble 1)
// note: Transcription provider: pdmx. https://musescore.com/score/4280011; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · french horn · "Baritone Horn"
const french_horn = note(`<
  A B C D A B C E F G H I J K L M ~@4 A B C D A B C E F G H I J K L M ~@4 A B C D A B N O P Q R S T S U ~@39 A B C D A B
  C E F G H I J K L M ~@4 A B C D A B C O P Q R S T S U ~@10 V W
>`.pickRestart({
  A: "[d3,f#3,a3,d4] ~@3 [f#3,d4] ~ [a3,e4] ~", B: "[d4,f#4] ~@3 [f#3,d4] ~ [a3,e4] ~",
  C: "[d4,f#4] ~ [f#4,a4] ~ [e4,g4] ~ [d4,f#4] ~", D: "[a3,c#4,e4] ~@7", E: "[a3,e4,g4]@2 [d4,f#4] ~",
  F: "[b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,f#4] ~", G: "[f#3,a#3,c#4,f#4] ~@7",
  H: "[a3,c#4,e4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~", I: "[e3,g#3,b3,e4] ~@7",
  J: "[g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~", K: "[d3,f#3,a3,d4] ~@7", L: "[c#3,e3,a3] ~@3 [d3,f#3,a3] ~@3",
  M: "[a2,c#3,e3,a3] ~@7", N: "[d4,f#4] ~ [e4,g4] ~ [f#4,a4] ~ [g4,b4] ~", O: "[d4,a4,c5]@2 [g4,b4] ~",
  P: "[a3,e4,g4]@2 [b3,d4,f#4] ~", Q: "[g3,b3,e4] ~ [a3,c#4,e4] ~", R: "[d3,a3,d4] ~@2 [a3,d4]",
  S: "e4 ~ [a3,c#4] ~ [a3,e4] ~ [a3,c#4] ~", T: "[a3,d4] ~ [a3,d4]@4 [a3,d4]@2", U: "[a3,d4] ~@7",
  V: "~@4 [a2,e3,a3] ~@3", W: "[d3,f#3,a3] ~@3",
})).s("gm_french_horn").gain(0.15)

// chords · french horn · "Baritone Horn" · soft notes
const french_horn_soft = note(`<
  ~@16 A B C B ~@16 A B C B ~@14 D E F E G H I J K@2 L M N K L O P@2 Q R S K L M N K L O P@2 Q R S K L M N K T ~@17 A B
  C B ~@14 D U F E G H I V W X Y Z ~
>`.pickRestart({
  A: "[c#3,e3,a3] ~@3 [d3,f#3,a3] ~@3", B: "[a2,c#3,e3,a3] ~@7", C: "[c#3,e3,a3] ~@3 [d3,f3,a3] ~@3", D: "~@3 [a3,d4]",
  E: "e4 ~ [a3,c#4] ~ [a3,e4] ~ [a3,c#4] ~", F: "[a3,d4] ~ [a3,d4]@4 [a3,d4]@2", G: "[a3,d4] ~@3 [d3,g3] ~ [d3,g3] ~",
  H: "[d3,f#3] ~@3 [d3,e3] ~ [d3,e3] ~", I: "d3 ~@3 [d2,g2] ~ [d2,g2] ~", J: "[d2,f#2]@2 ~@6 d3 ~ c3 ~ b2 ~ a2 ~",
  K: "[g2,d3,g3] ~@3 [g2,d3,g3] ~ [g2,d3] ~", L: "[g2,d3,g3] ~@3 [g3,b3,d4] ~@3", M: "[d3,f#3,a3,d4] ~@7",
  N: "[g2,b2,d3,g3] ~@3 [g2,d3,g3] ~ [g2,d3] ~", O: "[d3,f#3,c4,d4]@2 [g3,b3,d4] ~",
  P: "[b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [f#3,a#3,c#4,f#4] ~", // Bm F#
  Q: "[b3,d4,f#4] ~ [f#3,a#3,c#4,f#4] ~ [b3,d4,f#4] ~ [f#3,a#3,c#4,f#4] ~", R: "[b3,d4,f#4] ~@3 [d3,f#3,c4]@4",
  S: "[g3,b3]@2 ~@2 [g2,d3,g3] ~ [g2,d3] ~", T: "[g2,d3,g3] ~@7", U: "[a3,e4] ~ [a3,c#4] ~ [a3,e4] ~ [a3,c#4] ~",
  V: "[d2,f#2] ~@3 [d2,e2] ~ [d2,e2] ~", W: "d2 ~@3 d2 ~ d2 ~", X: "d2 ~@3",
  Y: "~@2 a2 ~ d3 ~ f#3 ~ a3 ~ f#3 ~ a3 ~ d4 ~", Z: "f#4 ~@7",
})).s("gm_french_horn").gain(0.06)

// chords · string ensemble 1 · "Violoncellos"
const string_ensemble_1 = note(`<
  A B C D A B C E F G H I J K L M ~@4 A B C D A B C E F G H I J K L M ~@4 A B C D A B N O P Q R S T S U ~@39 A B C D A B
  C E F G H I J K L M ~@4 A B C D A B C O P Q R S T S U ~@10 V W
>`.pickRestart({
  A: "[d3,f#3,a3,d4] ~@3 [f#3,d4] ~ [a3,e4] ~", B: "[d4,f#4] ~@3 [f#3,d4] ~ [a3,e4] ~",
  C: "[d4,f#4] ~ [f#4,a4] ~ [e4,g4] ~ [d4,f#4] ~", D: "[a3,c#4,e4] ~@7", E: "[a3,e4,g4]@2 [d4,f#4] ~",
  F: "[b3,d4,f#4] ~@3 [b3,d4,f#4] ~ [b3,d4,f#4] ~", G: "[f#3,a#3,c#4,f#4] ~@7",
  H: "[a3,c#4,e4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~", I: "[e3,g#3,b3,e4] ~@7",
  J: "[g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~", K: "[d3,f#3,a3,d4] ~@7", L: "[c#3,e3,a3] ~@3 [d3,f#3,a3] ~@3",
  M: "[a2,c#3,e3,a3] ~@7", N: "[d4,f#4] ~ [e4,g4] ~ [f#4,a4] ~ [g4,b4] ~", O: "[d4,a4,c5]@2 [g4,b4] ~",
  P: "[a3,e4,g4]@2 [b3,d4,f#4] ~", Q: "[g3,b3,e4] ~ [a3,c#4,e4] ~", R: "[d3,a3,d4] ~@2 [a3,d4]",
  S: "e4 ~ [a3,c#4] ~ [a3,e4] ~ [a3,c#4] ~", T: "[a3,d4] ~ [a3,d4]@4 [a3,d4]@2", U: "[a3,d4] ~@7",
  V: "~@4 [a2,e3,a3] ~@3", W: "[d3,f#3,a3] ~@3",
})).s("gm_string_ensemble_1").gain(0.15)

// chords · string ensemble 1 · "Violoncellos" · soft notes
const string_ensemble_1_soft = note(`<
  ~@16 A B C B ~@16 A B C B ~@14 D E F E G H I J K@2 L M N K L O P@2 Q R S K L M N K L O P@2 Q R S K L M N K T ~@17 A B
  C B ~@14 D U F E G H I V W X Y Z ~
>`.pickRestart({
  A: "[c#3,e3,a3] ~@3 [d3,f#3,a3] ~@3", B: "[a2,c#3,e3,a3] ~@7", C: "[c#3,e3,a3] ~@3 [d3,f3,a3] ~@3", D: "~@3 [a3,d4]",
  E: "e4 ~ [a3,c#4] ~ [a3,e4] ~ [a3,c#4] ~", F: "[a3,d4] ~ [a3,d4]@4 [a3,d4]@2", G: "[a3,d4] ~@3 [d3,g3] ~ [d3,g3] ~",
  H: "[d3,f#3] ~@3 [d3,e3] ~ [d3,e3] ~", I: "d3 ~@3 [d2,g2] ~ [d2,g2] ~", J: "[d2,f#2]@2 ~@6 d3 ~ c3 ~ b2 ~ a2 ~",
  K: "[g1,d2,g2] ~@3 [g1,d2,g2] ~ [g1,d2] ~", L: "[g1,d2,g2] ~@3 [g2,b2,d3] ~@3", M: "[d2,f#2,a2,d3] ~@7",
  N: "[g1,b1,d2,g2] ~@3 [g1,d2,g2] ~ [g1,d2] ~", O: "[d2,f#2,c3,d3]@2 [g2,b2,d3] ~",
  P: "[b2,d3,f#3] ~@3 [b2,d3,f#3] ~ [f#2,a#2,c#3,f#3] ~", // Bm F#
  Q: "[b2,d3,f#3] ~ [f#2,a#2,c#3,f#3] ~ [b2,d3,f#3] ~ [f#2,a#2,c#3,f#3] ~", R: "[b2,d3,f#3] ~@3 [d2,f#2,c3]@4",
  S: "[g2,b2]@2 ~@2 [g1,d2,g2] ~ [g1,d2] ~", T: "[g1,d2,g2] ~@7", U: "[a3,e4] ~ [a3,c#4] ~ [a3,e4] ~ [a3,c#4] ~",
  V: "[d2,f#2] ~@3 [d2,e2] ~ [d2,e2] ~", W: "d2 ~@3 d2 ~ d2 ~", X: "d2 ~@3",
  Y: "~@2 a2 ~ d3 ~ f#3 ~ a3 ~ f#3 ~ a3 ~ d4 ~", Z: "f#4 ~@7",
})).s("gm_string_ensemble_1").gain(0.06)

// other · french horn · "Baritone Horn"
const french_horn_2 = note(`<
  A B C D A B C E F G H I J K L H ~@4 A B C D A B C E F G H I J K L H ~@4 A B C D A B M N O P Q R S R T ~@39 A B C D A B
  C E F G H I J K L H ~@4 A B C D A B C N O P Q R S R T ~@10 U K
>`.pickRestart({
  A: "d2 ~@3 f#2 ~ a2 ~", B: "d3 ~@3 f#2 ~ a2 ~", C: "d3 ~ f#3 ~ e3 ~ d3 ~", D: "a2 ~@7", E: "a2@2 d3 ~", F: "b2 ~@3",
  G: "f#2 ~@3", H: "a2 ~@3", I: "e2 ~@3", J: "g2 ~@3", K: "d2 ~@3", L: "c#3 ~ c#3 ~", M: "d3 ~@3", N: "d3@2 g3 ~",
  O: "a2@2 b2 ~", P: "g2 ~ a2 ~", Q: "d2 ~@2 d3", R: "c#3 ~ e3 ~ c#3 ~ e3 ~", S: "d3 ~ f#3@4 d3@2", T: "d3 ~@7",
  U: "~@4 a2 ~@3",
})).s("gm_french_horn").gain(0.26)

// other · french horn · "Baritone Horn" · soft notes
const french_horn_soft_2 = note("<~@54 A B C B D ~@14 E F ~@10 E F ~@41 A B C B D ~@8>".pickRestart({
  A: "~@3 d3", B: "c#3 ~ e3 ~ c#3 ~ e3 ~", C: "d3 ~ f#3@4 d3@2", D: "d3 ~@3", E: "~ d3", F: "g3 ~@3",
})).s("gm_french_horn").gain(0.13)

// other · trombone
const trombone = note(`<
  A B C D A B C ~ E F G H I J ~ G ~@4 A B C D A B C K E F G H I J ~ G ~@4 A B C D A B L M N O J ~@43 A B C D A B C ~ E F
  G H I J ~ G ~@4 A B C D A B C M N O J ~@14 P J
>`.pickRestart({
  A: "d2 ~@3 f#2 ~ a2 ~", B: "d3 ~@3 f#2 ~ a2 ~", C: "d3 ~ f#3 ~ e3 ~ d3 ~", D: "a2 ~@7", E: "b2 ~@3", F: "f#2 ~@3",
  G: "a2 ~@3", H: "e2 ~@3", I: "g2 ~@3", J: "d2 ~@3", K: "a2@2 d3 ~", L: "d3 ~@3", M: "d3@2 g3 ~", N: "a2@2 b2 ~",
  O: "g2 ~ a2 ~", P: "~@4 a2 ~@3",
})).s("gm_trombone").gain(0.15)

// bass · string ensemble 1 · "Contrabasses"
const bass = note(`<
  A B C D A B C E F G H I J K L H ~@4 A B C D A B C E F G H I J K L H ~@4 A B C D A B M N O P Q R S R T ~@39 A B C D A B
  C E F G H I J K L H ~@4 A B C D A B C N O P Q R S R T ~@10 U K
>`.pickRestart({
  A: "d1 ~@3 f#1 ~ a1 ~", B: "d2 ~@3 f#1 ~ a1 ~", C: "d2 ~ f#2 ~ e2 ~ d2 ~", D: "a1 ~@7", E: "a1@2 d2 ~", F: "b1 ~@3",
  G: "f#1 ~@3", H: "a1 ~@3", I: "e1 ~@3", J: "g1 ~@3", K: "d1 ~@3", L: "c#2 ~ c#2 ~", M: "d2 ~@3", N: "d2@2 g2 ~",
  O: "a1@2 b1 ~", P: "g1 ~ a1 ~", Q: "d1 ~@2 d2", R: "c#2 ~ e2 ~ c#2 ~ e2 ~", S: "d2 ~ f#2@4 d2@2", T: "d2 ~@7",
  U: "~@4 a1 ~@3",
})).s("gm_string_ensemble_1").gain(0.4)

// bass · string ensemble 1 · "Contrabasses" · soft notes
const bass_soft = note("<~@54 A B C B D ~@14 E F ~@10 E F ~@41 A B C B D ~@8>".pickRestart({
  A: "~@3 d2", B: "c#2 ~ e2 ~ c#2 ~ e2 ~", C: "d2 ~ f#2@4 d2@2", D: "d2 ~@3", E: "~ d2", F: "g2 ~@3",
})).s("gm_string_ensemble_1").gain(0.2)

stack(
  french_horn, french_horn_soft, string_ensemble_1, string_ensemble_1_soft, french_horn_2, french_horn_soft_2, trombone,
  bass, bass_soft
)