Strudelify

Air Varié Op.23 n3

O.Rieding

KeyG majorTempo64 bpm
0:00/0:00
// Air Varié Op.23 n3 — O.Rieding
// 64 bpm, 3/4, key G 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/217766; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 111 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(64/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.

// chords · piano
const piano = note(`<
  A B@8 C D E@4 F@7 G@3 H@3 I@2 J K L M K N O P Q R S T U R V W X K L R K Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN
  AO AP AQ AR AS AT AU AV AG AH AI AJ AW AX AY AZ BA BB BC AF BD BE BF BG BH BI BJ BK BF BL BF BM BN BO BP BQ BR BS BT
  BU BV BW BX BY
>`.pickRestart({
  A: "~@21 [b2,b3]@11", // B
  B: "[~@9 [f#2,f#3]@5 [g2,g3]@5 ~@20 [d#2,d#3]@10 ~@10 [d4,g4,b4]@10 ~ [c4,f#4,a4]@10 ~@10 [b3,d4,g4]@10 [b3,d4,g4]@10 ~@10 [b3,d4,g4]@10 [b3,d4]@10 ~@10 [c4,e4,a4]@10 [c4,e4,a4]@10 ~@10 [c4,d4,a4]@10 [d2,d3,c4,f#4,a4]@10 ~@10 [b3,d4,g4]@10 [b3,d4,g4]@10 [g2,b3,d4,e4]@20 [g#2,b3,d4,f4]@6, ~@19 [e2,e3]@20 ~@10 [d2,d3]@30 ~ [g2,g3]@30 [g2,g3]@30 [g2,g3]@30 [f#2,f#3]@20 ~@10 [g2,g3]@30 ~@26, ~@29 [c4,g4,c5]@20 ~@207]/8", // F# G D# G F#dim G Bm Am …
  C: "~@2 [a3,d4,f#4]@5 [a3,d4,f#4]@5 ~@4, ~ a2@5 ~@2", D: "~@3 [a3,c#4,g4]@5, ~ a2@15",
  E: "[~@11 [a3,d4,f#4]@10 ~@30 a4@10 ~@20 g4@10 ~@10 [a3,c4,f#4]@10 [c4,f#4,a4]@10 [g2,g3]@7, ~ d3@20 ~@10 [f#2,f#3]@30 [g2,g3]@30 [d2,d3]@30 ~@7, ~@41 [c4,d4]@20 ~@10 [b3,d4]@20 ~@37]/4", // D F#dim G F# G D Csus2 Bm
  F: "[~@3 [b3,d4,g4]@10 ~@30 [c4,d4]@10 ~@20 [b3,d4]@10 ~@10 [a3,d4,f#4]@10 [a3,c#4,g4]@10 ~@10 [a3,d4,f#4]@17 ~ [a3,c4,d4,f#4]@10 ~@5 b3@5 d4@5 g4@5 d4@5 b3@5 ~@5 c4@5 e4@5 a4@5 e4@5 c4@5 ~@5 c4@5 [d4,a4]@3, ~@23 [f#2,f#3]@30 [g2,g3]@30 a2@30 d3@37 ~ [g2,g3]@30 [g2,g3]@30 [f#2,f#3]@13, ~@33 a4@20 ~@10 g4@20 ~@141]/7", // G Csus2 Bm D A7 D D7 D5 …
  G: "[~@2 c4@5 [f#4,c5]@5 d4@5 ~@5 d4@5 [g4,b4]@5 d4@5 [f4,b4]@5 d4@5 ~@5 d4@5 [e4,b4]@5 d4@5 [e4,b4]@5 d4@5 ~@5 c4@5 [e4,a4]@5 c4@4, ~@7 [d2,d3]@10 [g2,g3]@30 [g#2,g#3]@30 [a2,a3]@19]/3", // F#dim G Fdim E5 A5 D G G# …
  H: "[~ [e4,a4]@5 c4@5 ~@5 b3@5 [d4,g4]@5 b3@5 [c4,d4,f#4]@10 ~@10 [d4,g4]@10 [g2,g3]@5 ~ [f#2,f#3]@5 [e2,e3]@5 [f#2,f#3]@5 [e2,e3]@5 [d#2,d#3]@5 [e2,e3]@4, ~ [c2,c3]@10 [d2,d3]@30 [g2,g3]@20 ~@35, ~@46 b3@15 ~@11 [b3,e4,g4]@10 [b3,e4,g4]@14]/3", // A5 G5 D7 G5 G F# E F# …
  I: "[~ [d2,d3,b3,e4,g#4]@5 [c2,c3]@5 [d2,d3]@5 [c2,c3]@5 [b1,b2]@5 [c2,c3]@5 [c#2,c#3,e4,g#4,a4]@5 [d4,g4,b4]@10 [c#4,g4,b4]@10 [c4,f#4,a4]@8, ~@6 [a3,e4,a4]@10 [e4,g4,a4]@15 ~@5 [d2,d3]@28]/2", // E7 C D C B C Amaj7 G …
  J: "~ [g2,g3,b3,d4,g4]@5 [g2,g3,b4,d5,g5]@5 ~@5", K: "~@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5, [g2,g3]",
  L: "~@5 c4@5 ~ e4@5 a4@5 e4@5 ~ c4@5, [g2,g3]", // G
  M: "~@5 c4@5 ~ d4@5 a4@5 d4@5 ~ c4@5, [f#2,f#3]@11 [d2,d3]@10 [f#2,f#3]@11", // F# D F#
  N: "~@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5, [f#2,e3]@21 g2@11", O: "~@5 a3@5 ~ d4@5 f#4@5 d4@5 ~ a3@5, a2",
  P: "~@5 a3@5 ~ c#4@5 e4@5 c#4@5 ~ a3@5, a2", Q: "~@5 a3@5 ~ d4@5 f#4@5 d4@5 ~ a3@5, d3",
  R: "~@5 c4@5 ~ d4@5 a4@5 d4@5 ~ c4@5, f#3@11 d3@10 f#3@11", S: "~@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5, g3@11 d3@10 g3@11",
  T: "~@5 c4@5 ~ d4@5 f#4@5 d4@5 ~ c4@5, a3@11 d3@10 a3@11", U: "~@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5, g3",
  V: "~@5 b3@5 ~ d4@5 g4@5 d4@5 ~ b3@5, g3@11 d3@10 g2@11", W: "~@5 a3@5 ~ [d4,f#4]@5 a3@5 [c#4,g4]@5 ~ a3@5, a2",
  X: "~@5 a3@5 ~ [d4,f#4]@5 a3@5 [d4,f#4]@5 ~ c4@5, d3", // D
  Y: "~@5 b3@5 ~ [e4,g4]@5 b3@5 [e4,g#4]@5 ~ b3@5, [e2,e3]@21 [d2,d3]@11", // Em E D
  Z: "~@5 a3@5 ~ [e4,a4]@5 a3@5 [e4,g4]@5 ~ a#3@5, [c2,c3]@21 [c#2,c#3]@11", // A5 Em C C#
  AA: "~@5 b3@5 ~ [d4,g4]@5 b3@5 [d4,f#4]@5 ~ c4@5, [d2,d3]", // G5 D
  AB: "~@11 [d4,g4]@10 [g2,g3]@5 ~ [f#2,f#3]@5, [g2,g3]@21 ~@11, ~@5 b3@16 ~@11", // G5 G F# G
  AC: "[e2,e3]@5 [f#2,f#3]@5 ~ [e2,e3]@5 [d#2,d#3]@5 [e2,e3]@5 ~ [d2,d3,b3,e4,g#4]@5, [b3,e4,g4]@11 [b3,e4,g4]@16 ~@5", // E F# E D# E E7 Em
  AD: "[c2,c3]@5 [d2,d3]@5 ~ [c2,c3]@5 [d2,d3]@5 [c2,c3]@5 ~ [c#2,c#3,e4,g#4,a4]@5, [a3,e4,a4]@11 [e4,g4,a4]@16 ~@5", // C D C D C Amaj7 A5 A7
  AE: "[d4,g4,b4]@11 [c#4,g4,b4]@16 [c4,f#4,a4]@5, [d2,d3]", AF: "[g2,g3,b3,d4,g4]@11 [g2,g3,b4,d5,g5]@11 ~@10",
  AG: "[g2,g3,b3,d4,g4]@11 ~@10 [g2,g3,b3,d4,g4]@11", // G
  AH: "[g2,g3,c4,e4,a4]@11 ~@10 [c4,e4,a4]@4 [c4,e4,a4]@3 [c4,e4,a4]@4, ~@21 [g2,g3]@11", // Am7 Am G
  AI: "[f#2,f#3,c4,d4,a4]@11 ~@10 [d2,d3,c4,f#4,a4]@11", // D7
  AJ: "[g2,g3,b3,d4,g4]@11 ~@10 [b3,d4,g4]@4 [b3,d4,g4]@3 [b3,d4,g4]@4, ~@21 [g2,g3]@11", // G
  AK: "[e2,e3,b3,d4,g4]@11 ~@10 [g2,b3,e4]@11", AL: "[a2,a3,d4,f#4]@11 ~@10 [a2,a3,d4,f#4]@11",
  AM: "[a2,a3,c#4,g4]@11 ~@10 [a2,g3,a3,c#4]@11", AN: "[d3,f#3,a3,d4]@11 ~@21",
  AO: "~@11 [d3,f#3,a3,c4]@10 f#4@4 g4@3 a4@4, c5@21 ~@11", AP: "~@11 [d3,g3,b3]@10 b4@4 c5@3 d5@4, b4@21 ~@11",
  AQ: "~@11 [d3,f#3,a3,c4]@10 a5@4 g5@3 f#5@4, c5@21 ~@11", AR: "~@11 [g3,b3,d4]@11 ~@10, g5@21 ~@11",
  AS: "a5@11 [f#3,a3,c4,d4,d5]@10 a5@4 b5@3 a5@4", AT: "g5@11 [g3,b3,d4,d5]@10 g5@4 a5@3 g5@4",
  AU: "~@11 [a3,d4,f#4]@10 [a3,c#4,e4,g4,e5]@11, f#5@21 ~@11", AV: "[d4,f#4,d5]@11 ~@10 [d3,c4,d4,f#4]@11",
  AW: "[e2,e3,b3,e4,g4]@11 ~@10 [d2,d3,b3,e4,g#4]@11", AX: "[c2,c3,a3,e4,a4]@11 ~@10 [c#2,c#3,a#3,e4,g4]@11",
  AY: "[d2,d3,b3,d4,g4]@11 ~@10 [d2,d3,c4,d4,f#4]@11", // G D7
  AZ: "[g2,g3,b3,d4,g4]@11 [g1,g2,b3,d4,g4]@10 [g2,g3]@5 ~ [f#2,f#3]@5", // G F#
  BA: "[e2,e3]@5 [f#2,f#3]@5 ~ [e2,e3]@5 [d#2,d#3]@5 [f#2,e3]@5 ~ [d2,d3,b3,e4,g#4]@5, [b3,e4,g4]@11 [b3,e4,g4]@16 ~@5", // E F# E D# F#7 E7 Em
  BB: "[c2,c3]@5 [d2,d3]@5 ~ [c2,c3]@5 [b1,b2]@5 [c2,c3]@5 ~ [c#2,c#3,e4,g4,a#4]@5, [a3,e4,a4]@11 [e4,g4,a4]@16 ~@5", // C D C B C C#dim A5 A7
  BC: "[d4,g4,b4]@11 [c#4,g4,b4]@10 [c4,f#4,a4]@11, [d2,d3]", // G C#m7b5 F#dim D
  BD: "~@5 [d4,g4,b4]@5 ~@6 [d4,g4,b4]@5 ~@6 [d4,g4,b4]@5, [g2,g3]@11 [g2,g3]@10 [g2,g3]@11", // G
  BE: "~@5 [e4,a4,c5]@5 ~@6 [e4,a4,c5]@5 ~@6 [e4,a4,c5]@5, [g2,g3]@11 [g2,g3]@10 [g2,g3]@11", // Am G
  BF: "~@5 [d4,a4,c5]@5 ~@6 [d4,a4,c5]@5 ~@6 [d4,a4,c5]@5, [f#2,f#3]@11 [d2,d3]@10 [f#2,f#3]@11", // D7 F# D F#
  BG: "~@5 [d4,g4,b4]@5 ~@6 [d4,g4,b4]@5 ~@6 [b3,d4,g4]@5, [g2,g3]@11 [g2,g3]@10 [g2,g3]@11", // G
  BH: "~@5 [b3,d4,g4]@5 ~@6 [b3,d4,g4]@5 ~@6 [b3,e4]@5, [e2,e3]@11 [e2,e3]@10 [g2,g3]@11", // G E5 E G
  BI: "~@5 [d4,f#4]@5 ~@6 [d4,f#4]@5 ~@6 [d4,f#4]@5, [a2,a3]@11 [a2,a3]@10 [a2,a3]@11", // D A
  BJ: "~@5 [c#4,e4,g4]@5 ~@6 [c#4,e4,g4,a4]@5 ~@6 [e4,g4,a4,c5]@5, [a2,a3]@11 [a2,a3]@10 [a2,a3]@11", // C#dim A7 Am7 A
  BK: "[d2,d3,f#4,a4,d5]@11 ~@21", // D
  BL: "~@5 [d4,g4,b4]@5 ~@6 [d4,g4,b4]@5 ~@6 [d4,g4,b4]@5, [g2,g3]@11 [d2,d3]@10 [g2,g3]@11", // G D G
  BM: "~@5 [d4,g4,b4]@5 ~@6 [d4,g4,b4]@5 ~@6 [b3,d4,g4]@5, [g2,g3]@11 [d2,d3]@10 [g2,g3]@11", // G D G
  BN: "~@5 [c#4,d4,a4]@5 ~@6 [c#4,f#4,a4]@5 ~@6 [c#4,f#4,a4]@5, [f#2,f#3]@11 [d#2,d#3]@10 [d#2,d#3]@11", // Dmaj7 F#m F# D#
  BO: "~@5 [b3,e4,g4]@5 ~@6 [b3,e4,g4]@5 ~@6 [b3,e4,g4]@5, [e2,e3]@11 [e2,e3]@10 [e2,e3]@11", // Em E
  BP: "~@5 [a#3,e4,g4]@5 ~@6 [a#3,e4,g4]@5 ~@6 [a#3,e4,g4]@5, [c#2,c#3]@11 [c#2,c#3]@10 [c#2,c#3]@11", // Edim C#
  BQ: "~@5 [b3,d4,g4]@5 ~@6 [b3,d4,g4]@5 ~@6 [b3,d4,g4]@5, [d2,d3]@11 [d2,d3]@10 [d2,d3]@11", // G D
  BR: "[d2,d3,a3,c4,d4,f#4]@11 ~@21", BS: "[d2,d3,d5,f#5,a5,c6]@11 ~@21",
  BT: "b5@3 c6@2 [b2,d3,g3,d6]@5 ~ b5@2 c6@3 [b2,d3,g3,d6]@5 b5@3 c6@3 [b2,d3,g3,d6]@5, g2@5 ~@6 g2@5 ~@5 g2@5 ~@6", // G
  BU: "g5@3 a5@2 [d3,g3,b5]@5 ~ g5@2 a5@3 [d3,g3,b5]@5 g5@3 a5@3 [d3,g3,b5]@5, g2@5 ~@6 g2@5 ~@5 g2@5 ~@6", // G
  BV: "d5@3 f#5@2 [b2,d3,g3,g5]@5 ~ d5@2 f#5@3 [b2,d3,g3,g5]@5 d5@3 f#5@3 [b2,d3,g3,g5]@5, g2@5 ~@6 g2@5 ~@5 g2@5 ~@6", // G
  BW: "b4@3 c5@2 [b2,d3,g3,d5]@5 ~ b4@2 c5@3 [b2,d3,g3,d5]@5 b4@3 c5@3 [b2,d3,g3,d5]@5, g2@5 ~@6 g2@5 ~@5 g2@5 ~@6", // G
  BX: "[g2,b2,d3,g3,g4]@11 ~@21", BY: "[g2,g3,b3,d4,g4]@11 [g1,g2,b3,d4,g4]@11 ~@10",
})).s("gm_piano").gain(0.19)

stack(piano)