Strudelify

Day One

J. Maxwell

KeyE minorTempo120 bpm
0:00/0:00
// Day One — J. Maxwell
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 14 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/187483; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 51 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 1 · "Violins 2"
const string_ensemble_1 = note(`<
  ~@3 A@3 B C D E F G H I J K F G H I J K F G H I J K F G H I J K F G H I J K L@2 M N O P Q R S T U
>`.pickRestart({
  A: "[~@2 a3@3 ~ b3@3 ~@3]/3", B: "~@2 a3 b3", C: "c4 b3 a3 b3", D: "c4", E: "b3", F: "[a3,e4] ~@2 [a3,e4]",
  G: "~@2 [b3,e4] ~", H: "~ [b3,e4] ~@2", I: "[c4,e4] ~@2 [c4,e4]", J: "~@2 d4 ~", K: "~ d4 ~@2", L: "b3!4",
  M: "~@2 e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@2 e4 ~", N: "~ e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@2",
  O: "e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@2 e4 ~@2 e4", P: "~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~",
  Q: "~ [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2", // E
  R: "[e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5]", // E
  S: "~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 [e4,e5] ~@2 e5!2", T: "e5", U: "e5@4 e5@2 e5 ~@9",
})).s("gm_string_ensemble_1").gain(0.3)

// other · viola
const viola = note("<~@3 A@3 B C D E F@3 G@3 F@3 G@3 F@3 G@3 H@3 I@3 H@3 I@3 ~@2 J@3 K@3 L M N>".pickRestart({
  A: "[~@2 a3@3 ~ b3@3 ~@3]/3", B: "~@2 a3 b3", C: "c4 b3 a3 b3", D: "c4", E: "b3", F: "[f3 g3]/3", G: "[a3 g3]/3",
  H: "[f3 f4 g3 g4]/3", I: "[a3 a4 g3 g4]/3", J: "[a3 g3 f4 g4]/3", K: "[a4 b4 a4 g4]/3", L: "f4@12 f4@2 ~ e4", M: "e4",
  N: "e4@4 e4@2 e4 ~@9",
})).s("gm_viola").gain(0.3)

// other · cello · "Violoncello"
const cello = note("<~@3 A@3 B C D E F@3 G@3 H@3 I@3 H@3 I@3 J@3 K@3 J@3 K@3 L@2 M@3 N@3 O L P>".pickRestart({
  A: "[~@2 a2@3 ~ b2@3 ~@3]/3", B: "~@2 a2 b2", C: "c3 b2 a2 b2", D: "c3", E: "b2", F: "[c4 d4]/3", G: "[e4 d4]/3",
  H: "[c4!2 d4 d4]/3", I: "[e4!2 d4 d4]/3", J: "[c4 f4 d4 g4]/3", K: "[e4 a4 d4 g4]/3", L: "e3", M: "[e2 d2 e4 f4]/3",
  N: "[g4 a4 g4 f4]/3", O: "e4@12 e4@2 ~ e3", P: "e3@4 e3@2 e3 ~@9",
})).s("gm_cello").gain(0.3)

// bass · acoustic bass · "Double Bass"
const bass = note("<~@6 A B ~@2 C@3 D@3 E@3 D@3 C@3 D@3 F G@2 H I@2 H J@2 K G@2 L@2 M@2 ~@4 N O P>".pickRestart({
  A: "~@2 a1 b1", B: "c2 b1 a1 b1", C: "[e1 f1]/3", D: "[g1 f1]/3", E: "[e1 e1]/3", F: "e1@3 ~", G: "[~@2 f1@3 ~@3]/2",
  H: "g1@3 ~", I: "[~@2 a1@3 ~@3]/2", J: "[~@2 e1@3 ~@3]/2", K: "f1@3 ~", L: "e1", M: "[a2@3 g2@3 ~@2]/2", N: "~@15 e2",
  O: "e2", P: "e2@4 e2@2 e2 ~@9",
})).s("gm_acoustic_bass").gain(0.3)

stack(string_ensemble_1, viola, cello, bass)