Strudelify

Out of the Cold

B. McMonagle

KeyE♭ majorTempo78 bpm
0:00/0:00
// Out of the Cold — B. McMonagle
// 78 bpm, 3/8, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5714883; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 210 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/1.5)

// 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 · acoustic guitar steel · "Lute"
const acoustic_guitar_steel = note(`<
  A@2 B@2 A@2 C@2 D@2 E@2 F@2 G@2 H@2 I J K L M N O P Q R K S T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 W@2 X@2 AA AB AC AD P AE AF S
  L P AG K P AH AI AJ AK AL AM AN AO AP@2 AQ AR AJ O AS AT AU@2 AV@2 Z@2 W@2 X@2 AW@2 Z@2 W@2 X@2 A@2 B@2 AX@2 C@2 AY AZ
  A@2 B@2 A@2 C@2 D@2 E@2 F@2 G@2 H@2 I J K L M N O P Q R K S T@2 U@2 V@2 W@2 X@2 Y@2 Z@2 W@2 X@2 AA AB AC AD P AE AF S
  L P AG K P AH AI AJ AK AL AM AN AO AP@2 AQ AR AJ O AS AT AU@2 AV@2 Z@2 W@2 X@2 AW@2 Z@2 W@2 X@2 A@2 B@2 AX@2 C@2 AY AZ
>`.pickRestart({
  A: "[bb3@5 eb3@5 ~ c4@5 bb3@5 ab3@5 ~ g3@5, eb2@27 ~@5]/2", B: "[f3@5 g3@5 ~ ab3@5 g3@11 eb3@5, eb2@27 ~@5]/2",
  C: "[f3@5 g3@5 ~ ab3@5 g3@5 bb3@3 eb3@3 g3@2 bb3@3, eb2@27 ~@5]/2",
  D: "[eb4@11 eb4@5 d4@5 c4@5 ~ bb3@5, eb2@27 ~@5]/2",
  E: "[ab3@5 bb3@3 ab3@3 g3 ab3 ab3@3 f3@5 ab3@5 ~ g3@5, eb2@27 ~@5]/2",
  F: "[f3@5 bb2@3 d3@3 f3@2 ab3@3 c4@5 bb3@5 ~ ab3@5, eb2@27 ~@5]/2",
  G: "[g3@5 ab3@5 ~ g3@2 f3@3 eb3@16, eb2@27 ~@5]/2",
  H: "[g3@5 eb3@5 ~ bb3@5 ab3@2 g3@2 ~ g3@5 ~ ab3@5, eb2@27 ~@5, ~@10 ab3 ~@5]/2", I: "f3@5 g3@5 ~ c4@5",
  J: "bb3@11 ~ bb3@2 ab3@2, ~@11 c4@2 ~@3", K: "g3@5 ab3@5 ~ f3@5", L: "eb3@5 f3@5 ~ g3@5", M: "d3@11 eb3@5", N: "f3",
  O: "ab3@5 g3@5 ~ f3@5", P: "eb3@5 d3@5 ~ eb3@5", Q: "f3@5 g3@3 ab3@3 bb3@2 c4@3", R: "bb3@11 ab3@5",
  S: "eb3@11 eb3@5", T: "eb3", U: "[ab3@8 ab3@3 f3@2 eb3@3 eb3@16, eb2@27 ~@5]/2",
  V: "[f3@8 g3@3 f3@2 eb3@3 d3@11 bb2@5, eb2@27 ~@5]/2", W: "[ab3@5 g3@3 ab3@3 f3@2 eb3@3 eb3@11 c3@5, eb2@27 ~@5]/2",
  X: "[eb3@5 g3@3 f3@3 eb3@5 eb3@16, eb2@27 ~@5]/2", Y: "[ab3@8 g3@3 f3@2 eb3@3 eb3@16, eb2@27 ~@5]/2",
  Z: "[f3@8 g3@3 f3@2 eb3@3 d3@5 bb2@11, eb2@27 ~@5]/2", AA: "eb3@5 bb2@5 ~ eb3@5", AB: "f3@5 d3@5 ~ ab3@5",
  AC: "g3@5 bb3@5 ~ ab3@5", AD: "g3@5 ab3@3 g3@3 f3@5", AE: "f3@5 d3@5 ~ f3@5", AF: "bb2", AG: "f3@11 f3@5",
  AH: "f3@5 eb3@5 ~ d3@5", AI: "eb3@11 g3@5", AJ: "bb3@5 ab3@5 ~ g3@5", AK: "ab3@11 eb3@5", AL: "f3@5 eb3@5 ~ f3@5",
  AM: "eb3@11 bb2@5", AN: "eb3@5 c3@5 ~ d3@5", AO: "eb3@5 ab3@5 ~ g3@5", AP: "f3@11 g3@5",
  AQ: "ab3@5 bb3@5 ~@2 bb3@2 ab3@2, ~@11 c4@2 ~@3", AR: "ab3@5 bb3@5 ~ ab3@5", AS: "bb3@5 g3@3 bb3@3 g3@5",
  AT: "ab3@5 f3@5 ~ f3@5", AU: "[eb3@11 eb3@5 eb3@16, eb2@27 ~@5]/2",
  AV: "[ab3@8 ab3@3 f3@2 d3@3 eb3@16, eb2@27 ~@5]/2", AW: "[ab3@8 ab3@3 f3@2 eb3@3 d3@16, eb2@27 ~@5]/2",
  AX: "[bb3@5 eb3@5 ~ c4@5 bb3@5 ab3@5 ~ ab3@5, eb2@27 ~@5]/2", AY: "[eb2,eb4]@11 eb4@5", AZ: "eb4, eb2@11 ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.4)

stack(acoustic_guitar_steel)