Strudelify

Varen

Edvard Grieg

KeyG majorTempo48 bpm
0:00/0:00
// Varen — Edvard Grieg
// 48 bpm, 4/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: Full arrangement: all 70 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(48/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.

// other · string ensemble 2
const string_ensemble_2 = note("<~@35 A B C@4 D E@6 F@4 G H I J K L M@2 N O@2 P Q R S@4>".pickRestart({
  A: "g5", B: "~ g5@8 ~ f#5@8 e5@8 f#5@6", C: "[~@3 g5@33 b5@8 ~ a#5@8 a5@17 a5@33 a5@8 g#5@8 ~ f#5@8]/4",
  D: "g#5@8 a5@8 ~ g#5@8 g5@7",
  E: "[~ f#5@8 ~ e5@8 d#5@8 d5@17 b4@8 c#5@4 ~ d#5@4 e5@8 d#5@4 c#5@4 ~ e5@4 d#5@4 d#5@4 c#5@4 b4@13 d#5@4 e5@25 f#5@4 ~ d#5@4 c#5@9 f#4@27 ~ b4@8 c#5@3]/6",
  F: "[~ d#5@4 ~ e5@8 d#5@4 ~ c#5@4 e5@4 d#5@4 f#5@4 ~ d#5@4 b4@17 f#5@26 d#5@4 d5@4 d#5@9 ~ b4@27]/4",
  G: "d5@2 b4 a4 g4@2 a4 b4", H: "c5 e5!2 d#5 b4@3 g4", I: "e4@6 g4 b4", J: "d#5 f#5@3", K: "g5@2 g5 f#5 d5@2 e5 f#5",
  L: "f#5 e5 g5 e5 b4@4", M: "[d5@14 b4 a4]/2", N: "b4@8 g4@16 b4@4 ~ a4@3",
  O: "[~ b4@4 a4@4 g4@17 b4@4 ~ a4@4 b4@4 a4@4 ~ g4@4 b4@4 a4@4 ~ g4@4 b4@3]/2",
  P: "~ a4@4 ~ g4@4 b4@4 ~ a4@4 g4@4 b4@4 ~ a4@4", Q: "g4@4 b4@4 ~ d5@22 ~", R: "~@3 f#5@5",
  S: "[~@15 b3@26 g3@5 a3@4 b3@9 d4@28 ~ d4@38 ~@2]/4",
})).s("gm_string_ensemble_2").gain(0.27)

// other · string ensemble 2
const string_ensemble_2_2 = note(`<
  A@8 B@8 C@7 D E F@2 G@2 H I J K ~@2 L M N@5 O@5 P@5 Q R S T U V W@2 X Y@3 Z AA AB@4
>`.pickRestart({
  A: "[~@5 b4@6 g4 a4 b4@6 a4@2 g4@8 f#4@4 e4@2 f#4@2 g4@8 b4@4 a4@4 a4@8 g#4@3]/8",
  B: "[~@4 f#4@8 g#4@8 a4@16 f#4@16 e4@17 d4@13 ~@4 b4@32 b4@16 b4@16 b4@32 a4@16 b4@16 b4@16 a#4@16 b4@8 b4@2]/8",
  C: "[~@2 a#4@4 b4@16 b4@16 ~ a#4@17 b4@34 g4@33 ~ f#4@25 d#4@8 e4@17 f#4@8 g4@8 ~ [d#4,b4]@16 [d4,c5]@17]/7", // G#m D7
  D: "[d4,b4] d5", E: "c5 g4", F: "[g4@3 f#4]/2", G: "f4 e4", H: "f4", I: "e4 d#4", J: "d4@3 ~", K: "f#4@3 ~",
  L: "d5@17 a#5@12 a5@3", M: "~ a5@31",
  N: "[~@3 e5@8 d#5@8 d5@8 ~ e5@8 g5@8 ~ e5@8 f#5@17 e5@16 c6@13 b5@4 b5@33 a5@24]/5",
  O: "[~ d5@8 ~ c#5@8 c5@17 b4@8 g5@8 f#5@8 ~ e5@8 f#5@8 ~ g5@8 f#5@8 e5@8 ~ f#5@8 c6@8 b5@9 a5@8 f#5@9 a5@9 b5@7]/5",
  P: "[~@2 a5@9 ~ b5@9 g#5@17 a#5@17 b5@8 b5@4 ~ a#5@4 d#5@8 e5@9 b5@26 a#5@8 g#5@9 ~ g5@9 f#5@18]/5", Q: "g5",
  R: "f#5@3 d#5", S: "b4 c#5", T: "d#5 d5", U: "d5@4 f#5@2 e5 d5", V: "d5 c5 b4@2", W: "[b4 g5@2 f#5]/2", X: "f5 e5",
  Y: "[~ f5@17 e5@17 f5@35 f5@9 e5@17]/3", Z: "d#5@9 d5@22 ~", AA: "~@3 d6@5",
  AB: "[~@15 b4@26 g4@5 a4@4 b4@28 a4@10 b4@38 ~@2]/4",
})).s("gm_string_ensemble_2").gain(0.27).pan(0.3)

// other · string ensemble 2
const string_ensemble_2_3 = note(`<
  ~ A@8 B C@6 D@7 E F G H I@3 J K L ~@2 M N O@4 P Q@5 R@3 S@2 T U V W X Y Z@2 AA AB@4 AC AD@4
>`.pickRestart({
  A: "[~@5 b4@2 d5@6 d4@4 c#4@2 d4 e4 d4@8 d4@4 e4@4 f#4@4 f4@4 e4@4 d#4@2 e4 f4 e4@8 e4@3]/8", B: "~ d4@4 c4@3",
  C: "[~@5 b3@13 ~@4 g4@32 f#4@16 f#4@16 g4@16 f#4@8 d#4@4 f#4@4 c#4@16 d#4@16 e4@16 e4@8 d#4@8 d4@4 d#4@4 d#4@2]/6",
  D: "[~@6 d#4@8 e4@8 f#4@33 ~ f#4@34 g4@17 e4@33 ~ d#4@16 b3@17 e4@17 f#4@16 f#4@17]/7", E: "g4 f#4", F: "e4!2",
  G: "d4 e4", H: "d4 c4", I: "b3", J: "c4", K: "b3@3 ~", L: "d4@3 ~", M: "g4@8 b4@8 ~ c#5@8 d5@4 e5@3",
  N: "~ d5@17 a4@8 d5@6", O: "[~@3 c#5@8 c5@8 b4@8 ~ c#5@8 d5@33 ~ a4@8 c5@8 d#5@8 ~ e5@4 f5@4 e5@17 b4@8]/4",
  P: "e5@8 f5@8 ~ e5@8 d#5@7", Q: "[~ d5@8 ~ g4@33 b4@33 ~ b4@33 e5@25 d#5@9 c#5@9 d#5@7]/5",
  R: "[~@2 c#5@9 ~ d#5@9 e5@17 g#5@8 g5@9 g#5@8 f#5@9 b4@8 c#5@9 d#5@7]/3", S: "[~ d5@9 c#5@9 e5@8 e5@27 ~ d#5@9]/2",
  T: "d5 c5", U: "c5 b4", V: "b4 a#4", W: "b4 c5", X: "b4 d5", Y: "g4!2", Z: "[g4@3 c5]/2", AA: "b4",
  AB: "[~ b4@34 b4@17 c5@9 d5@9 c5@35 b4@22 ~]/4", AC: "~@3 b5@5", AD: "[~@15 g4@35 g4@18 ~ f#4@19 g4@38 ~@2]/4",
})).s("gm_string_ensemble_2").gain(0.27).pan(0.2)

// other · string ensemble 2
const string_ensemble_2_4 = note(`<
  A@8 B@8 C@7 D E F G H@4 I J K L ~@8 M@4 N@5 O P Q R S Q T U V W@3 X Y Z@4
>`.pickRestart({
  A: "[~@5 e4@4 d#4@4 d4@4 c4@4 b3@4 a#3@4 a3@4 g3@2 a3@2 b3@8 d4@6 c#4@2 c4@8 b3@3]/8",
  B: "[~@4 a3@8 b3@8 c4@32 g3@30 ~@4 e4@32 b3@16 e4@4 d#4@4 d#4@3 ~ b3@3 ~ e4@16 b3@16 f#3@16 b3@16 g#4@16 g#4@8 g4@8 g#4@8 f#4@2]/8",
  C: "[~@6 b3@8 c#4@8 d#4@16 ~ e4@17 d#4@17 d4@34 c4@33 ~ b3@16 b3@17 a#3@17 b3@16 c4@17]/7", D: "b3 [g3,g4]",
  E: "[g3,g4]!2", F: "b3 c4", G: "b3 d3", H: "g3", I: "g3@3 ~", J: "b3@3 ~", K: "b3@6 g3 a3", L: "b3 ~ a3@2, ~ d4@3",
  M: "[~@11 g4@8 f#4@8 ~ e4@8 f#4@8 ~ g4@8 f#4@8 e4@8 ~ f#4@8 c5@8 b4@9 a4@8 f#4@9 a4@9 b4@7]/4",
  N: "[~@2 a4@9 ~ b4@9 b4@17 c#5@8 d#5@9 c#5@4 d#5@4 d#5@9 d#4@8 e4@9 b4@26 a#4@8 g#4@9 ~ g4@9 f#4@18]/5", O: "g4",
  P: "f#4@3 d#4", Q: "e4!2", R: "f#4!2", S: "g4!2", T: "d4 c5", U: "b4 f#4", V: "f4 e4",
  W: "[~ f4@17 e4@17 f4@35 f4@9 e4@17]/3", X: "d#4@9 d4@22 ~", Y: "~@3 d5@5",
  Z: "[~@15 b3@26 g3@5 a3@4 b3@18 ~ c4@19 b3@38 ~@2]/4",
})).s("gm_string_ensemble_2").gain(0.32).pan(0.7)

// other · string ensemble 2
const string_ensemble_2_5 = note(`<
  A@6 B@6 ~@2 C@2 D@7 E F G@2 H@2 I J K L ~@10 M@4 N@3 O@2 P Q R S T U V W X Y@4 Z AA@4
>`.pickRestart({
  A: "[~@5 g4@8 g4@4 f#4@4 d3@20 g3@4 f#3@3]/6", B: "[~@4 a3@16 e3@80 f#3@16 e3@17 d3@13 ~@4 e4@32 ~@10]/6",
  C: "[~@11 b3@8 a#3@8 b3@4 a3]/2",
  D: "[~@2 a#3@4 b3@8 c#4@8 d#4@16 ~ e4@17 d#4@17 d4@17 g3@33 ~ f#3@25 d#3@8 e3@17 f#3@8 g3@8 ~ f#3@16 d3@17]/7",
  E: "d3 d4", F: "c4 b3", G: "d3/2", H: "d3 c#3", I: "d3@3 c#3", J: "c3 d#3", K: "d3@3 ~", L: "f#3@3 ~",
  M: "[~@11 e4@8 b3@8 ~ g3@8 b3@8 ~ e4@8 b3@8 g3@8 ~ b3@8 a4@8 e4@9 c4@8 b3@9 f#4@9 b3@7]/4",
  N: "[~@2 f#4@9 ~ b3@9 g#4@17 a#4@17 b4@8 a4@4 ~ a#4@4 b3@8 c#4@9 d#4@7]/3", O: "[~ d4@9 c#4@9 e4@8 e4@27 ~ d#4@9]/2",
  P: "d4 e4", Q: "e4 d#4", R: "b3 c#4", S: "d#4 d4", T: "d4@4 f#4@2 e4 d4", U: "d4 c4 b3@2", V: "b3 e4", W: "d4 c4",
  X: "b3", Y: "[~ b3@34 b3@17 c4@9 d4@9 c4@35 b3@22 ~]/4", Z: "~@3 b4@5", AA: "[~@15 g3@35 g3@18 ~ f#3@19 g3@38 ~@2]/4",
})).s("gm_string_ensemble_2").gain(0.32).pan(0.8)

// other · string ensemble 2
const string_ensemble_2_6 = note(`<
  ~@2 A@7 B@2 ~@3 C@2 D@7 E F G H I@4 J K L M ~@12 N@5 O P Q R S T U V W X@3 Y ~ Z AA@3
>`.pickRestart({
  A: "[~ d3@4 g2@20 e3@4 b2@4 d3@4 a2@19]/7", B: "[~@2 d3@8 g2@15 ~@7]/2",
  C: "[~@11 e3@4 d#3@4 c#3@4 d#3@4 g#3@4 d#3]/2",
  D: "[~@6 g#3@8 g3@8 f#3@33 ~ b3@34 b2@33 ~ a2@33 g2@17 f#2@8 e2@8 ~ b2@16 a2@17]/7", E: "g2 b2", F: "c3 e3",
  G: "d3@6 g3 a3", H: "b3 d4@3", I: "g2", J: "g2@3 ~", K: "b2@3 ~", L: "g3", M: "g3@3 f#3",
  N: "[~@21 e4@8 d#4@9 c#4@8 d#4@9 g#4@8 d#4@9 g#4@8 g4@9 f#4@34 b3@37]/5", O: "d4 c4", P: "c4 b3", Q: "b3@2 f#3 g3",
  R: "b3 [d3,c4]", S: "[d3,b3] g3", T: "g3!2", U: "d3@6 e3 f#3", V: "g3 b3@3", W: "d3 c#3",
  X: "[~ d3@17 c#3@17 d3@17 c3@9 b2@9 c3@26]/3", Y: "d#3@9 d3@22 ~", Z: "~@15 e4@17",
  AA: "[d#4@18 d4@18 ~ d3@19 d3@38 ~@2]/3",
})).s("gm_string_ensemble_2").gain(0.32)

// other · string ensemble 2
const string_ensemble_2_7 = note("<~@33 A B ~@14 C@2 ~ D E F G H I J K L M@4 ~ N O@3>".pickRestart({
  A: "e3 d#3", B: "[d3,b3] [d3,c4]", C: "[~@8 g#3@8 g3@9 f#3@35 ~@4]/2", D: "b3", E: "a3", F: "g3@2 f#3 e3",
  G: "f#3 a3", H: "[g2,g3] b2", I: "c3 e3", J: "d2@6 g2 a2", K: "b2 d3@3", L: "g2",
  M: "[~ g2@34 g2@35 g2@35 g2@22 ~]/4", N: "~@15 e3@17", O: "[d#3@18 d3@18 ~ d2@19 g2@38 ~@2]/3",
})).s("gm_string_ensemble_2").gain(0.4)

// other · string ensemble 2
const string_ensemble_2_8 = note("<~@52 A B C D E F G@2 ~@3 H@2 ~@5>".pickRestart({
  A: "b2", B: "a2", C: "g2@2 f#2 e2", D: "b2 a2", E: "g2 b1", F: "c2 e2", G: "d2/2", H: "[~@6 g1@35 ~@23]/2",
})).s("gm_string_ensemble_2").gain(0.48)

// other · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@60 A B@3 C ~@3 D@2>".pickRestart({
  A: "g1", B: "[~ g1@34 g1@35 ~@26]/3", C: "~@9 g1@22 ~", D: "[~@5 d2@19 g1@38 ~@2]/2",
})).s("gm_string_ensemble_2").gain(0.24)

stack(
  string_ensemble_2, string_ensemble_2_2, string_ensemble_2_3, string_ensemble_2_4, string_ensemble_2_5,
  string_ensemble_2_6, string_ensemble_2_7, string_ensemble_2_8, string_ensemble_2_soft
)

More by Edvard Grieg