Strudelify

La suave melodia

Andrea Falconiero

KeyE minorTempo320 bpm
0:00/0:00
// La suave melodia — Andrea Falconiero
// 320 bpm, 3/2, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 3/4 at bar 11, 4/4 at bar 13, 3/4 at bar 23, ...) are rendered on a constant 3/2 grid of one bar per cycle
// note: ch 4 "Basso Continuo" named as a bass, played on electric bass finger (its cello patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1847861; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(320/6)

// 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.

// bass · electric bass finger · "Basso Continuo"
const bass = note(`<
  A@4 B@4 C@4 A@4 B@4 C@4 D@2 E@2 F@4 G@2 H@2 I@4 ~@2 J K L M N O@2 ~@2 P Q R S T U V@3 W X@4 Y Z AA AB AC AD AE AF AG
  AA AH AI AJ Y AK AL AM AN AO AP AQ AP AR AS AT AU AV AW AX AI Y@2 AK AL AM AN AO AP AQ AP AR AS AT AU AV AW AX AI Y AY
>`.pickRestart({
  A: "[e3@11 e3@3 d#3@7 d#3@7 e3@7 ~ b2@7 c3@7 d3@7 g2@7]/4", B: "[g3@7 f#3@11 f#3@3 e3@7 d3@7 ~ c3@14 b2@7 b3@7]/4",
  C: "[e3@14 b2@7 c3@7 a2@7 ~ b2@7 e3@14 e3@7]/4", D: "[e3@7 b3@7 b3@7 a#3@11]/2", E: "[a#3@4 b3@7 f#3@7 g3@7 d3@7]/2",
  F: "[e3@7 f#3@4 g3@3 a3@7 a2@7 d3@7 ~ d3@7 a3@14 b3@7]/4", G: "[b3@4 a3@3 g#3@7 g#3@7 a3@7 a3@4]/2",
  H: "[g3@4 f#3@7 f#3@7 g3@7 f#3@3 e3@4]/2", I: "[d#3@7 d#3@7 e3@7 a2@7 b2@14 ~ e3@14 e3@7]/4", J: "~@11 e3@2 b3@3",
  K: "b3@3 a#3@4 a#3 b3@3 f#3@2 g3@3", L: "d3@3 e3@2 f#3 ~ g3 a3@3 a2@2 d3@3", M: "d3@3 a3@5 b3@3 b3 a3 g#3@3",
  N: "g#3@3 a3@2 a3 ~ g3 f#3@3 f#3@2 g3@3", O: "[f#3 e3 ~ d#3@2 d#3@3 e3@3 a2@2 b2@5 ~ e3@5 e3@3 ~@5]/2",
  P: "~@5 e3@11", Q: "e3@5 d#3@11", R: "d#3@5 e3@5 ~@6", S: "b2@5 c3@11", T: "d3@5 g2@5 ~@6", U: "g3@5 f#3@8 f#3@3",
  V: "[e3@5 d3@16 c3@5 ~ c3@10 b2@5 ~@6]/3", W: "b3@5 e3@5 ~@6",
  X: "[b2@5 c3@5 ~ a2@10 b2@5 ~ b2@10 e3@5 ~ e3@10 e3@11]/4", Y: "e3@11 e3@5", Z: "d#3@11 d#3@5", AA: "e3@5 ~@6 b2@5",
  AB: "c3@11 d3@5", AC: "g2@5 ~@6 g3@5", AD: "f#3@8 f#3@3 e3@5", AE: "d3", AF: "c3@5 c3@11", AG: "b2@5 ~@6 b3@5",
  AH: "c3@5 a2@11", AI: "b2@5 b2@11", AJ: "e3@5 e3@11", AK: "b3@11 b3@5", AL: "a#3@11 a#3@5", AM: "b3@5 ~@6 f#3@5",
  AN: "g3@5 ~@6 d3@5", AO: "e3@5 f#3@5 ~ g3@5", AP: "a3@5 a3@11", AQ: "d3@5 ~@6 d3@5", AR: "b3@5 b3@5 ~ a3@5",
  AS: "g#3@5 g#3@11", AT: "a3@5 a3@5 ~ g3@5", AU: "f#3@5 f#3@11", AV: "g3@5 f#3@5 ~ e3@5", AW: "d#3@5 d#3@11",
  AX: "e3@5 a2@11", AY: "e3@11 ~@5",
})).s("gm_electric_bass_finger").gain(0.3)

stack(bass)