Strudelify

Te Deum (Prelude)

Marc-Antoine Charpentier

KeyC majorTempo120 bpm
0:00/0:00
// Te Deum (Prelude) — Marc-Antoine Charpentier
// 120 bpm, 2/2, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 2/2 at bar 2, 1/4 at bar 10, 2/2 at bar 10) are rendered on a constant 2/2 grid of one bar per cycle
// note: ch 1 "C Trumpet" named as a brass, played on trumpet (its acoustic bass patch is not one); ch 16 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: duplicate parts dropped: ch 4 "Violins 1" string ensemble 1 (copy of ch 1 "C Trumpet" trumpet); ch 7 "Flute" flute (copy of ch 1 "C Trumpet" trumpet); ch 8 "Oboe" oboe (copy of ch 1 "C Trumpet" trumpet)
// note: Transcription provider: pdmx. https://musescore.com/score/44378; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 18 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 · [...]/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 · timpani
const timpani = note("<A B C D E B C F G H I J K H I L M@2>".pickRestart({
  A: "~@3 c3", B: "c3@2 c3!2 c3@2 c3@2", C: "g2@2 g2!2 c3@2 c3!2", D: "c3@2 c3!6", E: "g2@2 g2 c3", F: "c3!4 g2@2 g2!2",
  G: "c3", H: "c3@2 c3@2 c3!2 c3@2", I: "c3@2 g2@2 g2!2 c3@2", J: "c3!2 c3@2 c3!4", K: "c3!2 g2@4 g2@2", L: "c3!6 g2@2",
  M: "[g2!2 c3@8 ~@6]/2",
})).s("gm_timpani").gain(0.5)

// other · string ensemble 1 · "Violins 2"
const string_ensemble_1 = note("<A B C D E B C F G H I@2 J K L@4>".pickRestart({
  A: "~@3 g4", B: "g4!2 c5!2", C: "d5@2 b4@2 c5@3 c5", D: "c5@2 c5@2 c5@2 g4 a4", E: "b4 a4 b4 c5 b4@2 c5 d5",
  F: "a4@2 g4@2 g4@3 g4", G: "g4", H: "g4!3 c5", I: "[c5@2 d5@2 b4@2 c5@3 c5 c5@2 c5@2 c5@2]/2",
  J: "g4 a4 b4 a4 b4 c5 b4@2", K: "c5 d5 g4@2 g4@2 c5@2", L: "[c5@2 d5@2 b4@2 c5@3 c5 a4@2 g4@2 g4@3 g4 g4@8 ~@6]/4",
})).s("gm_string_ensemble_1").gain(0.4)

// other · viola
const viola = note("<A B C D E B F G H I J@2 K@2 L M N@2>".pickRestart({
  A: "~@3 c4", B: "e4@2 e4 f4 g4@2 e4@2", C: "d4@2 g4@2 g4@3 g4", D: "a4@2 a4@2 g4 f4 e4 a4", E: "g4@4 g4@3 b3",
  F: "d4@2 g4@2 g4 f4 e4 d4", G: "c4@2 c4@2 b3@2 c4 d4", H: "e4", I: "c4@2 e4@2 e4 f4 g4@2",
  J: "[e4@2 d4@2 g4@2 g4@3 g4 a4@2 a4@2 g4 f4]/2", K: "[e4 a4 g4@4 g4@3 b3 e4@2 e4 f4 g4@2]/2",
  L: "e4@2 d4@2 g4@2 g4 f4", M: "e4 d4 c4@2 c4@2 b3@2", N: "[c4 d4 e4@8 ~@6]/2",
})).s("gm_viola").gain(0.4)

// bass · acoustic bass · "Double Bass"
const bass = note("<A B C D E B C F G H I@2 J K L@2 M@2>".pickRestart({
  A: "~@3 c3", B: "c3@2 c3!2", C: "b2@2 g2@2 c3@3 c3", D: "f2@2 f2@2 c3 d3 e3 f3", E: "g3@4 g3 f3 e3 d3",
  F: "f3 c3 g3 g2", G: "c3", H: "c3 c3@2 c3", I: "[c3@2 b2@2 g2@2 c3@3 c3 f2@2 f2@2 c3 d3]/2", J: "e3 f3 g3@4 g3 f3",
  K: "e3 d3 c3@4 c3@2", L: "[c3@2 b2@2 g2@2 c3@3 c3 f3@2 c3@2 g3@2]/2", M: "[g2 c3@4 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.4)

stack(timpani, string_ensemble_1, viola, bass)