Strudelify

Le Grand Cahier: IV. Nos Etudes

Alexander Litvinovsky

KeyC majorTempo86 bpm
0:00/0:00
// Le Grand Cahier: IV. Nos Etudes — Alexander Litvinovsky
// 86 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Violin II" named as a string part, played on violin (its piano patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/6345069; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 72 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(86/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · violin
const violin = note(`<
  ~@7 A B C D E F G B H I J K L M N O P Q R S T U V W H ~@7 A B C D E F G B H I J K L M N O P Q R S T U V W H ~@7 A
>`.pickRestart({
  A: "~@12 a4 c5 a4 f4", B: "g4@4 g4@8 g4 c5 g4 e4", C: "f4@8 ~@4 a4 c5 a4 f4", D: "g4@4 g4@8 g4!2 f4 g4",
  E: "a4@8 ~@4 d5 f5 d5 c5", F: "a#4@4 a#4@8 d5 f5 d5 c5", G: "a4@8 ~@4 a4 c5 a4 f4", H: "f4 ~", I: "e5@5 f5 g5 a5",
  J: "f5@3 e5 d5@3 d5", K: "g5@5 a5 c6 e6", L: "d6@3 c6 a5@3 a5", M: "d6@5 e6 f6 d6", N: "c6@5 e6 c6 a5",
  O: "g5@3 c5 g4 g5 f5 e5", P: "f5 ~", Q: "e4@5 f4 g4 a4", R: "f4@3 e4 d4@3 d4", S: "g4@5 a4 c5 e5",
  T: "d5@3 c5 a4@3 a4", U: "d5@5 e5 f5 d5", V: "c5@5 e5 c5 a4", W: "g4@3 c4 g3 g4 f4 e4",
})).s("gm_violin").gain(0.3)

// other · pizzicato strings
const pizzicato_strings = note("<~ A B C D E F ~@26 A B C D E F ~@26 A B C D E F ~>".pickRestart({
  A: "~ a4 d5 e5 f5 g5 a5 d6", B: "c6 ~@3", C: "~ a3 d4 e4 f4 g4 a4 d5", D: "f5 ~@3", E: "~ e4 a4 b4 c5 b4 a4 e4",
  F: "g4",
})).s("gm_pizzicato_strings").gain(0.3)

// other · violin · "Violin II"
const violin_2 = note("<~@16 A B A B C D A ~ A B A B C D A ~@17 A B A B C D A ~ A B A B C D A ~@9>".pickRestart({
  A: "~@4 e4 g4 e4 d4 c4@4 ~@4", B: "~@4 f4 a4 f4 e4 d4@4 ~@4", C: "~@4 a#4 d5 a#4 g4 f4 d5 a#4 g4 f4@4",
  D: "~@4 a4 c5 a4 g4 e4@4 ~@4",
})).s("gm_violin").gain(0.3)

// other · piano
const piano = note(`<
  A B A B C D A E A B A B C D A E A B A B C D A E A B A B C D A F A B A B C D A E A B A B C D A E A B A B C D A E A B A
  B C D A F A B A B C D A E
>`.pickRestart({
  A: "c3 ~ g2 ~ c3 ~ g2 ~", B: "d3 ~ a2 ~ d3 ~ a2 ~", C: "a#2 ~ f2 ~ a#2 ~ f2 ~", D: "a2 ~ e2 ~ a2 ~ e2 ~",
  E: "d3 ~ a2 ~ d3@4", F: "d3 ~ a2 ~ d3 ~@3",
})).s("gm_piano").gain(0.3)

// other · piano
const piano_2 = note(`<
  A B A B@2 A C D A E F G H I J D A E F G H I J D A B A B@2 A C K A B A B@2 A C D A E F G H I J D A E F G H I J D A B A
  B@2 A C K A B A B@2 A C D
>`.pickRestart({
  A: "~ e4 ~ e4 ~ e4 ~ e4", B: "~ f4 ~ f4 ~ f4 ~ f4", C: "~ g4 ~ g4 ~ g4 ~ g4", D: "~ f4 ~ f4@4 ~",
  E: "~ d4!2 e4 f4 g4 a4 d5", F: "c5 e4 ~ e4 ~ e4 ~ e4", G: "~ a3 d4 e4 f4 g4 a4 d5", H: "f5 f4 ~ f4 ~ f4 ~ f4",
  I: "~ e4 a4 b4 c5 b4 a4 e4", J: "g4!2 ~ g4 ~ g4 ~ g4", K: "~ f4 ~@6",
})).s("gm_piano").gain(0.3)

stack(violin, pizzicato_strings, violin_2, piano, piano_2)