Strudelify

Album für die Jugend Op.68

Robert Schumann

KeyG majorTempo110 bpm
0:00/0:00
// Album für die Jugend Op.68 — Robert Schumann
// 110 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/8 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/5948251; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 21 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(110/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note("<A B C D E B C D F G H I J K L G H I J K M>".pickRestart({
  A: "~@7 d3", B: "~ [d4,g4,b4]!2 b3 ~ [g4,b4,d5]!2 b3, g3@3 ~ g3@3 ~",
  C: "a3 [b3,g4,c5,e5] [c4,c5,e5] a3 ~ [g4,b4,d5]!2 b3, ~@4 b3@3 ~", // Cmaj7 C G
  D: "~ [f#4,c5] [d3,f#4,c5]@2 ~ [d4,g4,b4] [d3,d4,g4,b4]@2, a3 ~ b3 ~", // F#dim D7 G
  E: "~ [d4,a4] ~ [g4,a4,c#5] ~ [f#4,a4,d5] ~ d3, f#3 e3 d3 [f#4,a4,d5]", // D5 A7 D
  F: "~ [d4,a4] ~ [g4,a4,c#5] ~ [f#4,a4,d5]!2 [d3,d4], f#3 e3 d3 ~", // D5 A7 D
  G: "~ [d4,f#4]!2 [g3,b4] ~ [c4,d4]!2 [d3,d4], [a3,c5]@3 ~ [f#3,a4]@3 ~", // D G Csus2 D Am F#m
  H: "[a3,c5] ~ [g3,d4,b4] ~ [f#3,d4,a4] ~ [e3,c#4,g4] ~@3 [d4,f#4]@2 [d4,f#4]@2 [d3,d4]@2, ~@4 [f#3,a4]@3 ~", // Am G D C#dim D F#m
  I: "~ [b3,d4]!2 [b3,b4] ~ [g4,b4]!2 [b3,g4], [g3,g4]@3 ~ [g3,d5]@3 ~", // Bm B G Em G G5
  J: "[a3,c5] [b3,g4,c5,e5] [c4,g5] [a3,g4,c5,e5] ~ [g4,b4]!2 b3, ~@4 [b3,d5]@3 ~", // Am Cmaj7 C5 Am7 G Bm
  K: "~ [f#4,c5] [d3,f#4,c5]@2 ~ [d4,g4,b4]!3, a3 ~ b3 d3", L: "~ [e4,a4] ~ [c4,d4] ~ [b3,d4,g4]!2 [d3,d4], c3 d3 g2 ~",
  M: "~ [e4,a4] ~ [c4,d4] ~ [b3,d4,g4]!2 ~, c3 d3 g2 ~", // A5 Csus2 G
})).s("gm_piano").gain(0.28).pan(0.2)

stack(piano)