Strudelify

March in D major Op.108

F. Mendelssohn

KeyD majorTempo120 bpm
0:00/0:00
// March in D major Op.108 — F. Mendelssohn
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/3862631; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 41 bars on a 24-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 · [...]/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 · tenor sax · "Saxofone Tenor B"
const tenor_sax = note(`<
  A B@2 C D E F G H E F G I ~ J K L M N O P Q R S T U V W V X Y Z AA E F G H E F G AB
>`.pickRestart({
  A: "~@9 c3!3", B: "c3@9 c3!3", C: "e3@3 e3!3 e3@3 e3!3", D: "g3@3 g3!3 g3@3 c3 e3 g3", E: "f#3!2", F: "e3@2 f3 d3",
  G: "g3 c3 g3 b2", H: "e3@2 c3 e3 ~@4", I: "d3@2 c3 ~", J: "c4@3 c3 e3 g3 c4@3 c4!3", K: "c4@3 c3 e3 g3 c4@3 c3 e3 g3",
  L: "g4@3 g4!3 g4@3 e3 g3 c4", M: "e3@4 d#3@3 d#3", N: "f#3 e3 d3 a2", O: "c3@12 d3@6 g3@4 ~ d3",
  P: "e3@2 ~@2 g3 c4 e4 g4", Q: "c5@4 b4@3 f#4", R: "a4 g4 f4 d4", S: "c4@9 b3 ~ c4 e4@6 d4@4 ~ e4", T: "d4@2 c4 ~",
  U: "c3@4 c3@3 c3", V: "g3@3 g3", W: "c3!2 e3 c3", X: "c3 g3 e3 c3", Y: "e3@2 f3 c4", Z: "f3 a3 f3 c4",
  AA: "g3!2 f#3 f3", AB: "e3@2 c3 ~",
})).s("gm_tenor_sax").gain(0.4)

// other · trumpet · "Trompete Bb"
const trumpet = note("<~@4 A B C D E B C F G H@2 I J K L@2 M K L N@2 O P Q P R S T U B C V E B C W X>".pickRestart({
  A: "e5@3 e5!3 e5@3 g4 c5 e5", B: "c6@4 b5@3 f#5", C: "a5 g5 f5 d5", D: "c5@9 b4 ~ c5 d5@6 c5@3 d5@3",
  E: "e5@2 c4 e4 g4 c5 e5 g5", F: "c5@9 b4 ~ c5 e5@6 d5@4 ~ e5", G: "d5@6 c5@3 c4!3", H: "c4@9 c4!3",
  I: "e4@3 e4!3 e4@3 e4!3", J: "g5@3 g5!3 g5@3 c5 e5 g5", K: "c4 d#4", L: "e4 f4", M: "c5@2 c4 e4 g4 c4 e4 g4",
  N: "[e4@2 f4@4 c4 ~]/2", O: "c5@4 c5@3 c5", P: "e5 d5 b4 g4", Q: "g4@10 ~ c5 c5@10 ~ e5", R: "g4@10 ~ e5 e5@10 ~ g5",
  S: "g5@2 f5 e5", T: "d5@6 c#5@4 ~ e5 d5@6 a4@4 ~ c5", U: "b4 g5 a5 b5", V: "c5@12 d5@6 g4@4 ~ d5",
  W: "c5@9 d5 c5 [b4,c5] e5@6 d5@4 ~ e5", X: "d5@2 c5 ~",
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note(`<
  ~ A@2 B C D E F G D E F H A@2 B C D E F G D E F I J K L K M N O P D Q R S T Q R U
>`.pickRestart({
  A: "c3@9 c3!3", B: "c3@3 c3!3 c3@3 c3!3", C: "c3@3 c3!3 c3@3 c3 e3 g3", D: "a2@4 b2@3 b2", E: "e3@4 f3 ~ f3 ~",
  F: "g3@9 g3 ~ g3 g3@6 g3@6", G: "c3 ~", H: "g2@6 c3@3 c3!3", I: "f3@2 c3 ~", J: "c3@4 c3@3 c3", K: "g2@2 g2!2",
  L: "c3@10 ~ b2 a2@10 ~ a2", M: "c3@12 a#2@10 ~ a#2", N: "a2@2 e3 c3", O: "d3!4", P: "g3 g2!3", Q: "e3!2 f3 d3",
  R: "g3 e3 g3 f3", S: "c3@2 c2 e2 g2 c3 e3 g3", T: "a3@4 b3@3 b3", U: "g2@2 c3 ~",
})).s("gm_trombone").gain(0.3)

stack(tenor_sax, trumpet, trombone)

More by F. Mendelssohn