Strudelify

Silvergrove

Frederik Wiedmann

KeyE♭ majorTempo141 bpm
0:00/0:00
// Silvergrove — Frederik Wiedmann
// 141 bpm, 3/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5900056; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 68 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(141/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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 · piano
const piano = note("<A B C@2 A@2 D ~@61>".pickRestart({
  A: "g4@5 g4@3 ab4@3 g4@5", B: "bb4@5 g4@3 ab4@3 g4@5", C: "[f4@3 c4@2 f4@3 ab4@3 g4@11 ~@10]/2",
  D: "f4@3 c4@2 f4@3 c4@3 c5@5",
})).s("gm_piano").gain(0.8)

// chords · piano · "Klavier"
const piano_2 = note(`<
  A B C D A B C E F G H I J G K I L G H M N O P Q@2 R@2 S@2 T@2 U@2 V W X Y W X Z@2 AA@2 AB@2 AC@3 AD AE AF AG AH AI AJ
  AK AH AL AM AN AO AP AQ@6
>`.pickRestart({
  A: "c3@10 ~ g3@5, c4@15 ~", B: "eb3@10 ~ g3@5, eb4@15 ~", C: "[f3,c4]@15 ~", D: "~@5 f3@5 ~ bb3@5", E: "~@11 f3@5",
  F: "~@5 g3@5 ~ g3@5, d4, g3@5 ~@11, ~ g4@15, ~ b4@7", G: "g3@5 [eb4,g4]@3 [eb4,g4]@3 [g3,eb4,g4]@5, c3@5 ~@3",
  H: "g3@5 [eb4,g4]@3 [eb4,g4]@3 [g3,eb4,g4]@5, eb3@5 ~@3", I: "ab3@5 [f4,ab4]@3 [f4,ab4]@3 [ab3,f4,ab4]@5, f3@5 ~@3",
  J: "bb3@5 [g4,bb4]@3 [g4,bb4]@3 [g3,g4,bb4]@5, g3@5 ~@3", K: "g3@5 [g4,bb4]@3 [g4,bb4]@3 [g3,g4,bb4]@5, eb3@5 ~@3",
  L: "bb3@5 [d4,bb4]@3 [d4,bb4]@3 [g3,d4,bb4]@5, g3@5 ~@3", M: "bb3@5 [d4,g4]@3 [d4,g4]@3 [g3,d4,g4]@5, g3@5 ~@3",
  N: "d4@5 [g4,bb4]@3 [g4,bb4]@3 [d4,g4,bb4]@5, bb3@5 ~@3", // Gm
  O: "c4@3 [c4,eb4,ab4]!2 [c4,eb4,ab4]@3 [c4,eb4,ab4]@3 [c4,eb4,ab4]@5, ab3@15 ~", // Ab
  P: "c4@3 [c4,eb4,g4]!2 [c4,eb4,g4]@3 [c4,eb4,g4]@3 [c4,eb4,g4]@5, g3@15 ~", // Cm
  Q: "[~ a3 ~@2 c4 ~@2 c4 ~ eb4 ~@2 eb4 f4 ~ g4 g4 f4 ~ g4 ab4 b4 ~ c5 d5 eb5 ~ d5 eb5 f5 ~ g5, g3@15 ~, d4@8 d4@3 d4@20 ~, b3@3 b3@2 b3@25 ~@2]/2",
  R: "[~ [c4,eb4]@30 ~, [eb3,g3]@31 ~]/2", S: "[~ [bb3,d4]@30 ~, [d3,f3]@31 ~]/2",
  T: "[~ [c4,eb4]@30 ~, [eb3,ab3]@31 ~]/2", U: "[~@16 b3@15 ~, g3@31 ~, c4 ~, ~ [d4,g4]@30 ~]/2",
  V: "~ [eb4,g4]@7, g3, ~ c4@15", W: "~ [d4,g4]@7, g3, ~ bb3@15", X: "~ [eb4,ab4]@7, ab3, ~ c4@15",
  Y: "~ [f4,bb4]@7, bb3, ~ d4@15", Z: "[~@16 d4@15 ~, bb3@31 ~, eb4 ~, ~ [f4,bb4]@30 ~]/2",
  AA: "[~@16 g3@15 ~, [c3,e3,c4,e4,g4,c5]@15 ~]/2", AB: "[[c3,eb3,ab3,c4,eb4,ab4]@15 ~]/2",
  AC: "[ab4@15 ~ g4@30 ~@2, [c3,e3,g3,c4,e4,c5]@23 ~]/3", AD: "a3@5 [d4,f4]@3 [d4,f4]@3 [a3,d4,f4]@5, d3@5 ~@3",
  AE: "a3@5 [f4,a4]@3 [f4,a4]@3 [a3,f4,a4]@5, f3@5 ~@3", AF: "c4@5 [c4,e4]@3 [c4,e4]@3 [c4,e4]@5, a3@5 ~@3",
  AG: "[g3,b3]@5 [g3,d4,g4]@3 [g3,d4,g4]@3 [d4,g4]@5", AH: "a3@5 [f4,a4]@3 [f4,a4]@3 [a3,f4,a4]@5, d3@5 ~@3",
  AI: "a3@5 [a4,c5]@3 [a4,c5]@3 [a3,a4,c5]@5, f3@5 ~@3", AJ: "c4@5 [c4,e4]@3 [c4,e4]@3 [a3,c4,e4]@5, a3@5 ~@3",
  AK: "c4@5 [e4,g4]@3 [e4,g4]@3 [g3,e4,g4]@5, g3@5 ~@3", AL: "d4@5 [bb3,a4]@3 [bb3,a4]@3 [d3,bb3,a4]@5, bb2@5 ~@3",
  AM: "a3@5 [c4,e4]@3 [c4,e4]@3 [a3,c4,e4]@5, c3@5 ~@3", AN: "c3@5 [a3,e4]@3 [a3,e4]@3 [a2,a3,e4]@5, a2@5 ~@3",
  AO: "~@3 [bb3,d4]@2 [bb3,d4]@3 [bb3,d4]@3 [d3,bb3,d4]@5, bb2@5 ~@3", // Bb Gm
  AP: "~@3 [a3,d4]@2 [a3,d4]@3 [a3,d4]@3 [d3,a3,d4]@5, a2@5 ~@3", // D5
  AQ: "[~@14 b3@3 db4@5 [a3,db4,e4]@6 [e3,a3,db4,e4]@6 [a2,d3,f3,a3]@58 ~@4, db3 ~@2, e3@2 e3@5 ~@17, ~@5 a3@5 ~ a3@11 ~@74]/6", // A Dm
})).s("gm_piano").gain(0.4)

stack(piano, piano_2)

More by Frederik Wiedmann