Strudelify

Lyrische Stucke I, Op. 12 Nr. 1: Arietta

Edvard Grieg

KeyE minorTempo120 bpm
0:00/0:00
// Lyrische Stucke I, Op. 12 Nr. 1: Arietta — Edvard Grieg
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 40 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// 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 · "A.PIANO 1"
const piano = note("<A@3 B@3 C@5 D@7 E F@3 G@4 H@8 I J@5>".pickRestart({
  A: "[~@16 f#5@2 ~ e3 ~@4 [d#4,a4]@4 f#5 b5@6 [b3,g4,b5]@5 ~ e3@2 ~@3 [b3,g4]@4 e5 f#5@2 ~@14 [d#4,a4]@4 b4 e5@6 e5@6 e4@2 ~@4 [g4,b4]@6, ~@7 e5@11 g5@10 ~@12 e5@9 ~@7 f#5@15 ~@25, ~@13 g4@5 ~@5 f#5@4 ~@2 e3@2 ~@20 e3 ~@4 [d#4,a4]@11 ~@29, ~@62 [e3,b4]@9 ~ e3@12 ~@12]/3", // D#dim Em D#dim G D#dim E5
  B: "[b4 ~@7 f#5@2 ~@2 e3 ~@6 f#5@2 f#5 ~ b5@6 ~@11 [b3,g4]@4 ~ f#5@5 ~ [d#4,a4,f#5]@5 e3 ~@5 [d#4,b5]@6 ~@15 e6@13, ~ [e3,e5]@9 f#5@2 ~@3 g#5@6 ~@23 e5@2 ~@10 b4@10 ~@2 e5@28, ~@6 g4@5 a5@10 ~@8 b5@15 ~@52, ~@17 [c4,a4,g5]@5 ~@13 [e3,e5]@10 e3 ~@28 g4@22]/3", // Em D#dim G#m E Am7 E
  C: "[~@14 d3@5 [e3,b3,g4]@5 ~@9 a3@5 b3@5 b3@5 c4@3 ~@7 [c4,f#4]@5 b3@5 c4@4 ~@6 [c4,f#4]@5 ~@8 d3@5 ~ [b3,g4]@4 ~@5 [b3,g4]@4 ~@9 b3@5 ~@11 c4@6 ~@7 d#4@8 ~@4, ~@3 d3@9 c#3@4 ~@8 f#3@14 ~@10 a3@16 ~@4 a3@15 d3@6 c#3@5 ~@2 e3@6 ~@3 g3@6 ~@3 g4@10 ~@36, ~@4 g2@23 ~ g3@10 d4 ~@14 [d3,d5]@11 ~@9 [d3,d5]@12 ~@3 [b3,g4]@7 ~@6 f#3@10 ~@3 b3@5 ~@5 [a#3,e4,f#4]@8 ~@9 c4@15 ~@4, ~@29 [b3,g4]@9 g4@10 f#4@10 ~@10 f#4@10 ~@5 g2@20 ~@7 a3@15 ~@35, ~@115 d4@10 ~@4 d4@18 ~@13]/5", // Em Cdim Em D Em F#7 Em
  D: "[~@21 c#3@2 d3@5 [e3,b3]@4 ~@5 [b3,g4]@4 ~@4 [b3,d4,g4]@5 ~@4 [c4,f#4]@5 ~@9 g3@5 ~ a3@5 ~@11 b2@5 ~@2 a#2@2 ~@21 [g3,b3]@5 g3@5 ~@10 [e3,a#3]@6 ~@7 b3@15 ~@20 f#5@2 e3 ~@5 c4@3 f#5 [e3,b5] ~@5 [b3,g4,b5] ~@11 [b3,g4]@3 e5@2 [e3,f#5], ~@14 g2@28 ~@44 [a3,d#4]@8 ~@5 b2@13 [g3,e4]@5 ~@3 e4@10 ~@16 e3@22 ~@18 g4@4 ~@5 [a4,f#5]@4 ~@25, ~@14 d3@9 ~@9 f#3@10 ~@17 [d3,d5]@13 ~@9 b2@9 e2@10 ~@3 [g3,e4]@8 e3@4 f#3@12 ~@3 f#3@5 f#3@12 b2@25 ~@52, ~@19 b3@5 ~@12 g3@6 ~@8 b3@9 ~@5 [c4,f#4]@8 ~ d#4@7 b4@14 ~@13 d#3@10 ~@14 a3@17 ~@4 f#3@15 ~@12 e5@11 g5@9 ~@25, ~@20 g4@4 ~@4 g4@2 ~@11 a3@11 ~@2 a3@18 ~@2 f#3@20 ~ [g3,e4]@5 ~@3 c#3@14 ~@8 c3@23 ~@65 [e3,e5]@9 ~@2]/7", // E5 Em G Cdim G Edim E5 Em …
  E: "~@4 f#5@2 ~@9 a4@4 b4 ~ e5 ~@5 [g4,e5]@5, ~@4 a4 ~@4 b4@10 ~@13", // C
  F: "[~@8 [b3,b4]@4 b4 ~@6 f#5@2 f#5@3 ~@5 g5@2 f#5@2 f#5@2 b5@2 ~@4 [g4,b5]@6 e3 ~@4 [b3,g4]@4 ~ f#5@5 ~ d#4@4 ~ b4@5 b5@5 ~@13 e6@5, ~@2 [e3,e4]@10 ~ [e3,e5]@9 ~@5 g#5@6 ~@14 e5@9 e5@2 ~@4 [a4,f#5]@5 ~@29, ~@7 g4@4 ~@6 [b3,g4]@5 ~@2 a5@9 ~@45 e5@18, ~@28 a4@4 ~@25 e3 ~@10 e3 ~@27]/3", // B G Em E D Em
  G: "[~@22 d3@4 ~ [e3,b3,g4]@4 ~@5 [g3,b3,g4]@5 ~@4 [b3,d4,g4]@5 ~@5 [c4,f#4]@4 ~@10 b3@5 [c4,f#4]@5 ~@9 d3@5 ~@4 d3@4 ~ [e3,b3,g4]@4 ~@5 [g3,b3,g4]@4 ~@5 b3@5 b3@3, ~@12 d3@8 c#3@6 ~@5 f#3@11 ~@8 b3@9 ~ [d3,d5]@12 ~@7 d3@9 g2@19 ~@21, ~@18 g4@7 ~@16 a3@10 ~@4 a3@16 ~@3 a3@17 ~@4 c#3@5 ~@6 f#3@11 ~@3 [d4,g4]@8, ~@64 c4@7 ~@13 [c4,f#4]@8 ~ [b3,g4]@7 ~@15 a3@11 ~@2, ~@65 f#4@7 ~@7 d5@12 ~@37]/4", // Em G Cdim Em G D G5 Cdim …
  H: "[~@7 d4@6 c4@6 ~@6 d#4@9 d4@9 ~@16 c#3@2 d3@5 [e3,g4]@4 f#3@5 [g3,b3,g4]@4 a3@5 g4@5 b3@4 c4@5 ~@9 g3@5 [a3,d#4]@7 ~@19 b2@5 [c#3,g3,e4]@4 d#3@4 ~ g3@3 ~@5 [g3,b3]@5 g3@5 f#3@5 f#3@5 e3@6 ~@23 b4@9 ~@11 f#5@3 ~@5 [a4,f#5]@4 f#5 ~ [e3,b5] ~@5 [g4,b5] ~@6, ~ [a#3,f#4]@8 ~@10 c4@16 ~@9 a3@17 ~@32 a3@19 f#3@17 b2@8 a#2@5 ~@14 f#3@11 ~@3 a3@10 a#3@9 ~@3 [f#3,b3]@11 ~@22 [b3,g4]@7 ~@24, ~@2 e4@8 ~@3 [e4,f#4]@10 ~@2 f#4@12 ~@14 d3@9 ~@39 d3@14 ~@7 b2@9 e2@23 ~@34 e3@14 d#3@14 ~@4 [e3,e5]@14 [e3,g5]@10 ~@14, ~@52 g2@21 ~@30 [c4,f#4]@9 ~@13 [a3,d#4]@8 ~ [g3,e4]@8 ~@9 e3@6 ~@8 c3@24 ~@67, ~@57 b3@5 ~@22 b3@2 ~@7 f#4 ~@4 d5@14 ~@7 b4@14 ~@18 e4@3 ~@6 e4@10 ~@86]/8", // Em G Adim C#dim G D E5 G …
  I: "~@5 g4@4 e5 f#5 e3 ~@14 [d#4,a4]@4 b4 [e3,e5], [e3,e5]@10 ~@6 f#5@15 ~, ~@8 [b3,d#4,a4]@5 ~@3, ~@21 b4@9 ~@2, ~@22 e3@9 ~", // D#dim E B7
  J: "[~@5 [b3,g4,e5]@6 ~@8 [g4,b4]@4 b4 ~@7 f#5@2 f#5@2 e3@2 ~@6 f#5@2 f#5 ~ b5@7 b5@6 ~@6 [b3,g4]@3 e5 ~ [e3,f#5] ~@4 f#5@6 e3 ~@6 b5@6 e5@40 ~@25, ~@12 e4@12 ~@5 [b3,g4]@5 ~ a5@9 ~@116, ~@13 e3@11 [e3,e5]@10 ~@4 g#5@6 ~@116, ~@8 [c4,d#4,a4] ~@23, ~@41 g5@4 ~@15 e5@9 ~@13 b4@12 ~@66]/5", // Em G Em Esus2 Em E Adim
})).s("gm_piano").gain(0.32)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<A B@2 C@3 D ~@3 E@2 ~@4 F G H I J@2 K ~@4 L M ~@2 N@2 O P Q R@4>".pickRestart({
  A: "b4@7 ~@6 b3@4 ~@7 c4@4 ~@4, ~@4 e3@5 ~@7", B: "[~@24 b3@11 b3@4 ~@8 [b3,g4]@6 e3 ~@5 b3@5]/2",
  C: "[~@7 b3@4 ~@6 d#4@4 ~@9 b3@10 ~@11 b3@6 ~@5 [b3,a4]@5 ~ e3@2 ~@13 e2@13, ~@23 e3@12 ~@39 b3@22, ~@29 g4@11 ~@56]/3", // B7
  D: "~@5 [b3,g4]@3 ~@8", E: "[~@28 [b3,d4]@9 ~ [a3,c4]@17 ~@9, ~@20 f#4@11 ~@6 f#4@18 ~@9, ~@19 d3@4 ~@9]/2",
  F: "~@9 b4@9 ~@8 b3@4 ~@2, d#3@18 ~ e3@10 ~@3", G: "~@3 d#4@4 ~@25",
  H: "~@4 b3 d#4 ~@10 [b3,d#4]@4 ~ e3@2 ~@4 b3@5, ~@5 e3@5 ~@6", I: "~@29 [c4,d#4]@3, ~@23 e3@9",
  J: "[~@2 e3@4 ~@3 b3@5 ~@17 b3@4 ~@6 [b3,d#4,a4] ~@17 e2@5, ~@23 e3@9, ~@13 [b3,g4]@3]/2", // B7 Em
  K: "~@18 b3@7 ~@7, ~@3 g2@5", L: "~@2 b3@9 ~@2 d3@6 ~@6 g4@5 ~@2, ~@12 [c4,f#4]@17 ~@3", M: "~@2 b3@4 ~@14 d4@5 ~@7",
  N: "[~@26 b2@27 ~@11]/2", O: "~@14 [c4,d#4]@4 ~@7 b3 ~@6", P: "~@6 b3@4 ~@17 b3@4 ~", Q: "~@19 b3@4 ~@9",
  R: "[~@14 e3@4 ~@4 b3@6 e3@9 ~@7 [b3,d#4,a4]@5 ~@8 [b3,d#4,a4]@6 e3@2 ~@19 [e2,e6]@18 ~@26, ~@21 g4@7 ~@43 [b3,g4]@31 ~@26]/4", // B7 E Em
})).s("gm_piano").gain(0.16)

stack(piano, piano_soft)

More by Edvard Grieg