Strudelify

O for the wings of a dove

Mendelssohn

KeyF majorTempo120 bpm
0:00/0:00
// O for the wings of a dove — Mendelssohn
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5951469; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 69 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  A B C D E F G H I J K L M N O P ~ Q R S ~@7 T E U V W E F G H I X K M@2 Y O P ~ Q R S ~@7 Z AA AB AC AD ~@9
>`.pickRestart({
  A: "~ f4 g4 f4", B: "~ e4 g4 f4", C: "a4 g4 f4 ~", D: "b3@2 e4 bb3", E: "~ c4 f4 e4", F: "~ eb4@2 d4",
  G: "bb3 gb4 g4 d4", H: "d4 g4", I: "c5 g4 f4 c4", J: "c4 bb3 a3 c4", K: "~ db4 d4@2", L: "~ f4 e4@2", M: "~ d4 e4@2",
  N: "~ g4 e4@2", O: "~ a4 g4@2", P: "~ f4 eb4@2", Q: "~@5 f4 a4 c5", R: "a4@2 g4 f4 e4@2 g4@2", S: "f4@2 eb4 d4 c4@4",
  T: "~ a3 c4 f4", U: "~ e4 a4@2", V: "a3 bb3 c4 ~", W: "b3@2 g3 bb3", X: "a3 bb3 a3 c4", Y: "~ e4 g4@2", Z: "~@2 f4!2",
  AA: "f4", AB: "~ f4 d5 c5", AC: "bb4 a4 g4@2", AD: "f4 ~ bb3@2",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note(`<
  ~@16 A B ~@2 A C D E D F G H ~@16 A B ~@2 I J D E D F G K ~@4 L M N M O G P@2 Q
>`.pickRestart({
  A: "d4@2 e4@2 f4@2 f3 bb3", B: "a3@2 bb3@2 c4 ~@3", C: "a3 bb3 c4@2", D: "bb3!2", E: "e4 c4", F: "~ a3 bb3 b3",
  G: "c4 ~ bb3@2", H: "a3 ~@3", I: "d4 e4 f4@2", J: "a3 bb3 a3@2", K: "a3 bb3 ~@2", L: "a3!2 bb3 c4",
  M: "bb3 c4 bb3 c4", N: "e4 c4 f4 c4", O: "c4 a3 bb3 b3", P: "[a3@3 a3]/2", Q: "a3 ~",
})).s("gm_clarinet").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet_2 = note(`<
  A@2 B C D E@2 F G H I J@2 K L M ~@2 N M ~@8 A@2 B C D O@2 F G H I J@2 K P M ~@2 N M ~@9 Q R S ~@9
>`.pickRestart({
  A: "f3@3 ~", B: "f4@3 ~", C: "d4 c4", D: "f3 g3", E: "[a3@2 d4@3 c4 g3@2]/2", F: "g3 f3 e3@2", G: "f3@3 a3",
  H: "c4 f3", I: "f3@3 f3", J: "g3@3 g3", K: "a3@3 a3", L: "d3 a3", M: "bb3 f3", N: "g3 a3", O: "[a3@2 d4@3 d4 g3@2]/2",
  P: "d4 a3", Q: "c4@2 bb4 a4", R: "d5 c5 b4@2", S: "c5 c4",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft_2 = note(`<
  ~@16 A B ~@2 A C D@3 E@2 D ~@16 A B ~@2 A C F D@2 G H I@2 ~@3 D@4 E@2 J@2 D
>`.pickRestart({
  A: "bb3@2 a3 d4", B: "c4@2 f3 ~", C: "c4@2 f3 f4", D: "f3", E: "[f3@3 c4]/2", F: "f3!2", G: "c4 d4", H: "f3 c4",
  I: "c4/2", J: "[f3@3 f3]/2",
})).s("gm_clarinet").gain(0.2)

stack(clarinet, clarinet_soft, clarinet_2, clarinet_soft_2)

More by Mendelssohn