Strudelify

Gute Nacht die Winterreise

Franz Schubert

KeyF majorTempo112 bpm
0:00/0:00
// Gute Nacht die Winterreise — Franz Schubert
// 112 bpm, 2/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1015651; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 137 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(112/2)

// 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 F G H I J K H I J L M N O P Q R S T U V U W X Y U W Z AA AB AC D E AD G H I J K H I J L M N O P Q R S T U V
  U W X Y U W Z AA AB AC D E AD G H I AE K H I AE L M N O AF Q R S T U V U AG AH AI U AG AH AJ AB AC D E F AK AL AM AN
  AO AL AM AN AP AQ AR AS AT AU AV AW AX AY AZ AY BA BB BC AY BA BB BD BE BF BG BH BI BJ BK BL
>`.pickRestart({
  A: "[d3,a3,f4]!3 [d3,a3,f4,f5]", B: "[d3,a3,f4,e5]@4 [d3,a3,f4,d5]@4 [d3,a3,f4,a4]@4 [d3,a3,bb3,db4,f4]@3 e4",
  C: "[d3,f3]!2 [d3,f3,a3] [d3,g3,bb3,db4,g4], [a3,d4] ~", D: "[d3,f3]!2 [d3,f3,a3] [g2,d3,g3,d4,bb4,d5], [a3,d4] ~",
  E: "[a2,d3,f3]@4 [a2,d3,f3]@4 [d4,g4]@2 f4@2 e4 [e4,f4] d4@2, [a3,d4,f4,a4]@2 [bb2,d3,g3]!2", // Dm G5 Fmaj7 Dm Gm
  F: "[a2,f3,a3,d4]!2 [a2,e3,a3,db4]!2", G: "[d2,d3,f3,a3,d4] [d3,a3,f4,d5]!3", H: "[d3,a3,f4,d5]!4",
  I: "[d3,bb3,e4,g4,d5]!4", J: "[d3,a3,f4,a4,d5] [d3,a3,a4,f5] [a2,a3,f4,a4,d5] [a2,a3,g4,a4,db5]",
  K: "[d3,a3,f4,a4,d5] [d3,a3,f4,d5]!3", L: "[d3,a3,f4,a4,d5] [d3,a3,f4,d5] [e3,g3,g4,c5] [c3,c4,e4,bb4]",
  M: "[f3,c4,f4,a4]@2 f4 g4 [d3,a3,f4,a4]@2 [d3,g3,f4,b4]@2, ~ [f3,a3] ~@2", // F Dm G7 F
  N: "[c3,g3,f4,c5]!2 [c3,g3,e4,c5] [a2,f4,c5]", // Csus4 C F
  O: "[g2,e4,c5]@2 a2 bb2 [c3,f4,g4,c5]@2 [c3,e4,g4,c5]@2, ~ [f4,c5] ~@2", // C Csus4 C F5
  P: "[f2,f4,a4,c5] [f3,f4,a4] [f3,g3,e4,bb4] [f3,a3,d4,eb4,c5]", // F Edim F7
  Q: "[bb2,f3,bb3,d4,f4,d5]@2 bb4 c5 [g3,d4,bb4,d5]@2 [g3,c4,bb4,e5]@2, ~ [bb3,d4] ~@2", // Bb Gm C7 Bb
  R: "[f3,c4,bb4,f5]!2 [f3,c4,a4,f5] [d3,bb4,f5]", // Fsus4 F Bb
  S: "[c3,a4,f5]@2 d3 eb3 [f3,bb4,c5,f5]@2 [f2,f3,a4,c5,f5]@2, ~ [bb4,f5] ~@2", // F Fsus4 F Bb5
  T: "[bb2,f3,bb4,d5,f5] [d3,bb3,d4,bb4,d5] [f3,bb3,d4,bb4,d5] [bb3,d4,bb4,d5]", // Bb Gm Bb
  U: "[g3,bb3,d4,e4,e5]@2 ~ [f4,f5] [g3,bb3,d4,e4,e5]@2 [g3,bb3,d4]@2, ~ [g3,bb3,d4] ~@2", // Em7b5 F Em7b5 Gm
  V: "[f3,a3,d4,a4,a5]@2 ~ [bb4,bb5] [f3,a3,d4,a4,a5]@2 [f3,a3,d4]@2, ~ [f3,a3,d4] ~@2", // Dm Bb Dm
  W: "[f3,a3,d4,a4,a5]@2 ~ [bb4,bb5] [f3,a3,d4,a4,a5]@2 [a2,a3,f4,a4]@2, ~ [f3,a3,d4] ~@2", // Dm Bb Dm
  X: "[a2,a3,f4,a4]@4 [a2,a3,f4,a4,d5]@4 [a2,a3,g4,a4,e5]@4 [e3,a3,g4,a4]@3 f3", // Dm A7
  Y: "[d3,a3,f4,a4,d5] [d3,a3,d4,f4,a4] [d3,a3,d4,f4,a4,d5] [d3,a3,d4,f4,a4,f5]", // Dm
  Z: "[a2,a3,f4,a4]@4 [a2,a3,f4,a4,f5]@4 [a2,a3,g4,a4,e5]@4 [e3,a3,g4,a4,db5]@3 f3", // Dm A7
  AA: "[d3,a3,f4,a4,d5] [d3,a3,f4]!2 [d3,a3,f4,f5]", // Dm
  AB: "[d3,a3,f4,e5]@4 [d3,a3,f4,d5]@4 [d3,a3,f4,a4]@4 [d3,g3,bb3,db4,f4]@3 e4", // Dm Gm7
  AC: "[d3,f3]!2 [d3,f3,a3] [d3,g3,bb3,db4,e4], [a3,d4] ~", AD: "[a2,f3,a3,d4]!2 [a2,e3,g3,db4]!2",
  AE: "[d3,a3,f4,a4,d5] [a2,a3,a4,f5] [a2,a3,f4,a4,d5] [e3,a3,g4,a4]", // Dm A7
  AF: "[f2,f4,a4,c5] [f3,f4,a4] [f3,g3,e4,bb4] [f3,a3,eb4,f4,c5]", // F Edim F7
  AG: "[f3,a3,d4,a4,a5]@2 ~ [bb4,bb5] [f3,a3,d4,a4,a5]@2 [a2,f3,a3,a4,a5]@2, ~ [f3,a3,d4] ~@2", // Dm Bb Dm
  AH: "[a2,f3,a3,a4,a5]!2 [a2,g3,a3,a4,a5] [a2,e3,a3,a4,a5]", // Dm A7 A5
  AI: "[d3,f3,a3,a4,a5] [d3,a3,d4,f4,a4] [d3,a3,d4,f4,a4,d5] [d3,a3,d4,f4,a4,f5]", // Dm
  AJ: "[d3,f3,a3,a4,a5] [d3,a3,f4]!2 [d3,a3,f4,f5]", AK: "[d2,d3,gb3,a3,d4] [d3,a3,gb4,d5]!3", AL: "[d3,a3,gb4,d5]!4",
  AM: "[d3,ab3,b3,e4,d5]!3 [d3,ab3,b3,f4,d5]", AN: "[d3,a3,gb4,d5] [d3,a3,a4,gb5] [a2,a3,gb4,a4,d5] [a2,a3,g4,a4,db5]",
  AO: "[d3,a3,gb4,a4,d5] [d3,a3,gb4,d5]!3", AP: "[d3,a3,gb4,a4,d5] [d3,a3,gb4,d5] [e3,g3,g4,d5] [gb3,d4,a4,c5]",
  AQ: "[g3,d4,g4,b4]@2 g4 a4 [e3,b3,g4,b4]@2 [e3,a3,g4,db5]@2, ~ [g3,b3] ~@2", // G Em A7 G
  AR: "[d3,a3,g4,d5]!2 [d3,a3,gb4,d5] [b2,g4,d5]", // Dsus4 D G
  AS: "[a2,gb4,d5]@2 b2 c3 [d3,g4,a4,d5]@2 [d3,gb4,a4,d5]@2, ~ [g4,d5] ~@2", // D Dsus4 D G5
  AT: "[g2,g4,b4,d5]@2 g4 a4 [e3,b3,g4,b4]@2 [e3,a3,g4,db5]@2, ~ [g3,b3] ~@2", // G Em A7 G
  AU: "[d3,a3,gb4,d5]@2 d5 e5 [b3,gb4,d5,gb5]@2 [b3,e4,d5,ab5]@2, ~ [d4,gb4] ~@2", // D Bm E7 D
  AV: "[a3,e4,d5,a5]!2 [a3,e4,db5,a5] [gb3,d5,a5]", // Asus4 A D
  AW: "[db5,a5] g5 gb3 g3 [a3,d5,e5,a5]@2 [a2,a3,db5,e5,a5]@2, e3 [d5,gb5,a5] ~@2", // Gbm Asus4 A D
  AX: "[d3,a3,d5,gb5,a5] [d3,a3,d4,gb4,a4] [d3,a3,d4,gb4,a4,d5] [d3,a3,d4,gb4,a4,gb5]", // D
  AY: "[d3,ab3,b3,d4,e4,e5]@2 ~ [gb4,gb5] [d3,ab3,b3,d4,e4,e5]@2 [d3,e3,ab3,d4]@2, ~ [d3,ab3,b3,d4] ~@2", // E7 Gb E7 Abdim
  AZ: "[d3,gb3,a3,d4,a4,a5]@2 ~ [b4,b5] [d3,gb3,a3,d4,a4,a5]@2 [d3,gb3,a3,d4]@2, ~ [d3,gb3,a3,d4] ~@2", // D B D
  BA: "[d3,gb3,a3,d4,a4,a5]@2 ~ [b4,b5] [d3,gb3,a3,d4,a4,a5]@2 [a2,gb3,a3,gb4,a4,gb5]@2, ~ [d3,gb3,a3,d4] ~@2", // D B D
  BB: "[a2,gb3,a3,gb4,a4,gb5] [a2,gb3,a3,d4,a4,d5] [a2,g3,a3,db4,a4,db5] [a2,g3,a3,e4,a4,e5]", // D A7
  BC: "[d3,gb3,a3,d4,a4,d5] [d3,a3,d4,gb4,a4] [d3,a3,d4,gb4,a4,d5] [d3,a3,d4,gb4,a4,gb5]", // D
  BD: "[a2,gb3,a3,d4,a4,d5] [d3,gb3,a3,d4,a4,d5] [d3,a3,d4,gb4,d5,gb5] [a2,f3,a3,g4,f5,a5]", // D Dm
  BE: "[a2,f3,a3,a4,f5,a5] [a2,f3,a3,a4,d5,a5] [a2,g3,a3,a4,db5,a5] [a2,g3,a3,a4,e5,a5]", // Dm A7
  BF: "[a2,f3,a3,a4,d5,a5] [d3,f3,a3,a4,d5,f5]!2 [d3,g3,bb3,g4,bb4,d5]", // Dm Gm
  BG: "[d3,g3,bb3,g4,bb4,d5] [g3,bb3,d4,g4,bb4]!2 [a2,d3,a3,f4,a4]", // Gm Dm
  BH: "[a2,a3,f4,a4] [a2,f3,a3,d4,a4] [a2,e3,a3,db4,a4] [a2,db3,g3,a3,e4,a4]", // Dm A A7
  BI: "[d3,f3,a3,d4,a4] [a2,a3,a4]!2 [a2,f3,a3,a4]", // Dm A Dm
  BJ: "[a2,f3,a3,a4] [a2,d3,a3,f4,a4] [a2,db3,a3,e4,a4] [a2,e3,g3,a3,db4,a4]", // Dm A A7
  BK: "[d3,f3,a3,d4,a4] [a2,a3,d4,f4]!2 [d2,a2,d3,f3,a3,d4]", BL: "[d2,a2,d3,f3,a3,d4] ~",
})).s("gm_piano").gain(0.15)

stack(piano)

More by Franz Schubert