Strudelify

Om Der Möterr Vårg

Michael Chase

KeyB♭ majorTempo98 bpm
0:00/0:00
// Om Der Möterr Vårg — Michael Chase
// 97.5 bpm, 6/8, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5912819; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 113 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(97.5/3)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · oboe · "Oboe 1"
const oboe = note(`<
  A B A B C B C D A B A B C B C E F G H G F I J K F G L M F N J O P Q R S P Q T U ~@7 V W X W X Y X Y Z W X W X Y X Y Z
  F G H G F I J O F G L M F N J O ~@15 V W X W X Y X Y Z W X W X Y X Y Z AA
>`.pickRestart({
  A: "d5 ~@2 g4 bb4 d5", B: "eb5 ~@2 bb4 ~ c5", C: "d5 ~@2 f4 bb4 d5", D: "eb5 ~@2 d4 gb4 a4", E: "eb5 ~@2 d5 ~@2",
  F: "g4@9 g4 bb4 eb5", G: "d5", H: "f5@9 eb5 d5 eb5", I: "d5@3 c5@2 bb4", J: "a4@9 d4 f4 a4", K: "g4@10 ~ f4",
  L: "f5@9 eb5 d5 c5", M: "bb4 c5 d5@4 d5@3 c5 bb4 a4", N: "d5@5 bb4", O: "g4", P: "g4 eb4 g4 a4 eb4 a4",
  Q: "bb4@2 eb4@2 bb4@2 c5@3 bb4 a4@2", R: "g4 d4 g4 a4 d4 a4", S: "bb4@2 d4@2 bb4@2 c5@3 bb4 a4@2",
  T: "bb4 d4 bb4 a4 d4 a4", U: "bb4@2 d4@2 bb4@2 a4@3 bb4 a4@2", V: "~@2 gb5 a5 bb5 c6", W: "d6@3 g5 bb5 d6",
  X: "eb6@3 bb5@2 c6", Y: "d6@3 f5 bb5 d6", Z: "eb6@3 d5 gb5 a5", AA: "g5 ~",
})).s("gm_oboe").gain(0.4)

// other · oboe · "Oboe 1" · soft notes
const oboe_soft = note("<~@40 A@2 B@2 A@2 C D ~@32 A@2 E@2 A@2 F@2 A@2 B@2 A@2 C D ~@17>".pickRestart({
  A: "[g4@21 f4 g4 a4]/2", B: "[g4@3 a4]/2", C: "bb4", D: "a4 d5 ~@4", E: "g4/2", F: "bb4/2",
})).s("gm_oboe").gain(0.2)

// other · oboe · "Oboe 2"
const oboe_2 = note(`<
  A B A B C B C D A B A B C B C E F G H G F I J K L M N O L P Q R S@2 T@2 S@2 U@2 V W X Y V Z AA AB AC AD AC AD AE AD AE
  AF AC AD AC AD AE AD AE AF AG AH AI AG AJ AK AI AJ AG AH AI AL AJ AK AI AG AM AN AM AN AM AN AO AP AM AN AM AP AM AQ
  AA AB AC AD AC AD AE AD AE AF AC AD AC AD AE AD AE AF AR
>`.pickRestart({
  A: "bb4 ~@2 g4 bb4 d5", B: "bb4 ~@2 bb4 ~ c5", C: "bb4 ~@2 f4 bb4 d5", D: "bb4 ~@2 d4 gb4 a4", E: "bb4 ~@2 a4 ~@2",
  F: "g4@9 g4 bb4 eb5", G: "d5", H: "f5@9 eb5 d5 eb5", I: "d5@3 c5@2 bb4", J: "a4@9 d4 f4 a4", K: "g4@10 ~ f4",
  L: "g4@9 g4 bb4 c5", M: "bb4", N: "d5@9 c5 bb4 a4", O: "g4 a4 bb4@4 bb4@3 a4 g4 f4", P: "bb4@5 g4",
  Q: "f4@9 d4 f4 a4", R: "d4", S: "[g4@21 f4 g4 a4]/2", T: "g4/2", U: "bb4/2", V: "g4 eb4 g4 a4 eb4 a4",
  W: "bb4@2 eb4@2 bb4@2 c5@3 bb4 a4@2", X: "g4 d4 g4 a4 d4 a4", Y: "bb4@2 d4@2 bb4@2 a4@3 bb4 a4@2",
  Z: "bb4@2 eb4@2 bb4@2 c5@3 bb4 c5@2", AA: "d5@2 f4@2 bb4@2 f5@3 eb5 d5@2", AB: "c5 d4 gb4 a4 bb4 c5",
  AC: "d5@3 g4 bb4 d5", AD: "eb5@3 bb4@2 c5", AE: "d5@3 f4 bb4 d5", AF: "eb5@3 d4 gb4 a4", AG: "g4 bb4 d5 g5 d5 bb4",
  AH: "f4 bb4 d5 f5 d5 bb4", AI: "f4 a4 d5 f5 d5 a4", AJ: "g4 bb4 eb5 g5 eb5 bb4", AK: "g4 c5 eb5 g5 eb5 c5",
  AL: "g4 bb4 d5 f4 a4 c5", AM: "g4 ~ g4 a4 ~ a4", AN: "bb4@2 ~@2 bb4@2 c5@3 bb4 a4@2", AO: "bb4 ~ bb4 a4 ~ a4",
  AP: "bb4@2 ~@2 bb4@2 a4@3 bb4 a4@2", AQ: "bb4@2 ~@2 bb4@2 c5@3 bb4 c5@2", AR: "g4 ~",
})).s("gm_oboe").gain(0.4)

// other · oboe · "English Horn 1"
const oboe_3 = note(`<
  ~@8 A B A B A B A C D@4 E F D E G H I J K L M N O@2 P@2 Q@2 R@2 S@2 D T S@3 U D E D E D E D V D E D E D E D V S@2 U
  S@2 W U S@3 U S@2 W U S X@2 Y@2 X@2 Z AA X@2 Y@2 X@2 AA Y D E D E D E D V D E D E D E D V AB
>`.pickRestart({
  A: "~ d4", B: "~ bb3", C: "bb3 a3", D: "~@2 d4 ~ d4 ~@3 d4 ~ d4 ~", E: "~@2 eb4 ~ eb4 ~@3 eb4 ~ eb4 ~",
  F: "~@2 c4 ~ c4 ~@3 c4 ~ c4 ~", G: "g4 d4 bb3 g4 d4 bb3 a4 d4 bb3 g4 d4 bb3",
  H: "f4 d4 bb3 f4 d4 bb3 g4 d4 bb3 f4 d4 bb3", I: "f4 d4 a3 f4 d4 a3 g4 d4 a3 f4 d4 a3",
  J: "g4 d4 bb3 g4 d4 bb3 a4 f4 c4 a4 f4 c4", K: "g4 eb4 bb3 g4 eb4 bb3 a4 eb4 bb3 g4 eb4 bb3",
  L: "g4 eb4 c4 g4 eb4 c4 a4 eb4 c4 g4 eb4 c4", M: "a4 f4 d4 a4 f4 d4 bb4 f4 d4 a4 f4 d4",
  N: "d5 bb4 g4 bb4 g4 d4 g4 d4 bb3 d4 bb3 g3", O: "[eb4@21 d4 eb4 f4]/2", P: "d4/2", Q: "[eb4@21 c4 d4 eb4]/2",
  R: "f4/2", S: "~@2 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~", T: "~@2 d4 ~ d4 ~@3 c4 ~ c4 ~", U: "~@2 a3 ~ a3 ~@3 a3 ~ a3 ~",
  V: "~@2 eb4 ~ eb4 ~@3 d4 ~ d4 ~", W: "~@2 g3 ~ g3 ~@3 g3 ~ g3 ~", X: "eb4 d4 eb4 f4 eb4 d4 eb4 d4 eb4 f4 eb4 d4",
  Y: "d4 c4 d4 eb4 d4 c4 d4 c4 d4 eb4 d4 c4", Z: "bb3 a3 bb3 c4 bb3 a3 bb3 a3 bb3 c4 bb3 a3",
  AA: "bb3 a3 bb3 c4 bb3 a3 bb3 a3 bb3 c4 bb3 c4", AB: "d4 ~",
})).s("gm_oboe").gain(0.3)

// other · oboe · "English Horn 2"
const oboe_4 = note(`<
  ~@8 A B A B C B C D E@2 F E@2 G F E@3 F H E G F E@3 I@2 E@4 ~@8 E@7 H E@7 H J K L K J M N O J K P Q J R N O ~@16 E@7 H
  E@7 H S
>`.pickRestart({
  A: "~ bb3", B: "~ gb3", C: "~ f3", D: "gb3!2", E: "~@2 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~", F: "~@2 a3 ~ a3 ~@3 a3 ~ a3 ~",
  G: "~@2 g3 ~ g3 ~@3 g3 ~ g3 ~", H: "~@2 bb3 ~ bb3 ~@3 a3 ~ a3 ~", I: "~@2 d4 ~ d4 ~@3 d4 ~ d4 ~",
  J: "g3@9 g3 bb3 eb4", K: "d4", L: "f4@9 eb4 d4 eb4", M: "d4@3 c4@2 bb3", N: "a3@9 a3 bb3 a3", O: "g3",
  P: "f4@9 eb4 d4 c4", Q: "bb3 c4 d4@4 d4@3 c4 bb3 a3", R: "d4@5 bb3", S: "bb3 ~",
})).s("gm_oboe").gain(0.3)

// other · oboe · "English Horn 2" · soft notes
const oboe_soft_2 = note("<~@40 A@2 B@2 C@2 D E ~@32 A@2 F@2 C@2 G@2 A@2 B@2 C@2 D E ~@17>".pickRestart({
  A: "[eb4@21 d4 eb4 f4]/2", B: "[d4@3 f4]/2", C: "[eb4@21 c4 d4 eb4]/2", D: "f4", E: "gb4", F: "d4/2", G: "f4/2",
})).s("gm_oboe").gain(0.2)

// other · bassoon · "Bassoon 1"
const bassoon = note(`<
  A B A B C B C D A B A B C B C D E F@2 E@2 G F E@2 F@2 H E G F E@3 I@2 E@2 F@2 E@2 I J E@2 F K E K E K F K F K E K E K
  F K F K E F@2 E@2 G F E L M N O P Q R S ~ T U@2 V@2 W@2 V@2 X@2 V@2 T Y E K E K F K F K E K E K F K F K Z
>`.pickRestart({
  A: "bb3@3 g4 d4 bb3", B: "gb3@3 eb4 bb3 gb3", C: "d4@3 d4 bb3 f3", D: "gb3@3 d3 gb3 a3",
  E: "~@2 g3 ~ g3 ~@3 g3 ~ g3 ~", F: "~@2 f3 ~ f3 ~@3 f3 ~ f3 ~", G: "~@2 eb3 ~ eb3 ~@3 eb3 ~ eb3 ~",
  H: "~@2 g3 ~ g3 ~@3 f3 ~ f3 ~", I: "~@2 bb3 ~ bb3 ~@3 bb3 ~ bb3 ~", J: "~@2 bb3 ~ bb3 ~@3 a3 ~ a3 ~",
  K: "~@2 gb3 ~ gb3 ~@3 gb3 ~ gb3 ~", L: "g3 d3 bb2 g3 d3 bb2 a3 d3 bb2 g3 d3 bb2",
  M: "f3 d3 bb2 f3 d3 bb2 g3 d3 bb2 f3 d3 bb2", N: "f3 d3 a2 f3 d3 a2 g3 d3 a2 f3 d3 a2",
  O: "g3 d3 bb2 g3 d3 bb2 a3 f3 c3 a3 f3 c3", P: "g3 eb3 bb2 g3 eb3 bb2 a3 eb3 bb2 g3 eb3 bb2",
  Q: "g3 eb3 c3 g3 eb3 c3 a3 eb3 c3 g3 eb3 c3", R: "a3 f3 d3 a3 f3 d3 bb3 f3 d3 a3 f3 d3",
  S: "d4 bb3 g3 bb3 g3 d3 g3 d3 bb2 d3 bb2 g2", T: "bb3", U: "[bb3@3 a3]/2", V: "bb3/2", W: "d4/2",
  X: "[bb3@18 a3@3 bb3 c4 a3]/2", Y: "a3", Z: "g3 ~",
})).s("gm_bassoon").gain(0.3)

// other · bassoon · "Bassoon 3"
const bassoon_2 = note(`<
  A B A B C B C D E F E F G F G H I J K I L M K L I J K N L M K I L@2 I@2 L@2 J@2 O P Q R O S T U I L I L J L J V I L I
  L J L J V I J K I L M K L I J K N L M K I ~@14 J W I L I L J L J V I L I L J L J V X
>`.pickRestart({
  A: "g3!2", B: "eb3!2", C: "bb3!2", D: "eb3 d3", E: "g2!2", F: "eb2!2", G: "bb2!2", H: "eb2 d2", I: "g2 ~@2 g2 ~@2",
  J: "bb2 ~@2 bb2 ~@2", K: "d2 ~@2 d2 ~@2", L: "eb2 ~@2 eb2 ~@2", M: "c2 ~@2 c2 ~@2", N: "g2 ~@2 f2 ~@2",
  O: "g3 eb3 g3 a3 eb3 a3", P: "bb3@2 eb3@2 bb3@2 c4@3 bb3 a3@2", Q: "g3 d3 g3 a3 d3 a3",
  R: "bb3@2 d3@2 bb3@2 a3@3 bb3 a3@2", S: "bb3@2 eb3@2 bb3@2 c4@3 bb3 c4@2", T: "d4@2 f3@2 bb3@2 f4@3 eb4 d4@2",
  U: "c4 d3 gb3 a3 bb3 c4", V: "eb2 ~@2 d2 ~@2", W: "d3!2 a2 d2!3", X: "g2 ~",
})).s("gm_bassoon").gain(0.3)

stack(oboe, oboe_soft, oboe_2, oboe_3, oboe_4, oboe_soft_2, bassoon, bassoon_2)