Strudelify

I'll Fly Away

Albert E. Brumley

KeyF majorTempo180 bpm
0:00/0:00
// I'll Fly Away — Albert E. Brumley
// 180 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5893448; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A B C D E F G H I F G J K L K M N O P Q K E F G H I F G J K L K M N O P Q K R F G H I F G J K L K M N O P Q K S T U V
  S T W X Y X Z AA AB AC AD X AE AF AG
>`.pickRestart({
  A: "~ [eb3,ab3,eb4]@2 [db3,ab3,f4] ab4@2 ab4 bb4, ~ [c3,eb3,gb3,ab3]", // Ab5 Db Ab7
  B: "c5 b4 c5 db5 [bb2,db3,f3,bb3,c5]@4, [ab2,c3,eb3,gb3]!2 ~@2", // Bbm Ab7
  C: "[ab2,ab3,c5]@8 [bb2,g3,bb4]@3 ~ [bb2,g3,bb4]@3 ~", D: "ab2!2 c2@2 db2@2 d2@2, [ab3,ab4]@15 ~",
  E: "[eb2,g2,bb2,d3] ~@5 [eb2,g2,bb2,eb3]@9 ~", F: "[ab2,c3,eb3,gb3] ~@7", G: "~@5 c3 bb2 ab2",
  H: "[g2,bb2,db3,eb3] ~@7 [g2,bb2,db3,eb3]@8", I: "[ab2,c3,eb3] ~", J: "[gb2,c3,eb3] ~@7 [g2,bb2]@8",
  K: "ab2!2 c2@2 db2@2 d2@2", L: "ab2@2 ab2@2 g4@2 g4 ~ [db2,ab4]@4 d2@4, ~ c2 ~@2",
  M: "db3@2 db3@2 db4@2 db4 ~ [db3,db4]@4 eb3@2 db3@2, ~ ab2 ~@2", // Db
  N: "ab2!2 [db2,db4] eb2 [db2,db4]@2 [eb2,c4]@2, ~@6 c4 ~@9", O: "[ab2,c3,eb3,gb3] [gb2,bb2,db3,e3]",
  P: "[f2,a2,c3,eb3] [e2,ab2,b2,d3]", Q: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@3 ~",
  R: "[eb2,g2,bb2,d3]@2 ~@4 [eb2,g2,bb2,eb3]@9 ~", S: "[bb2,d3,f3,ab3] ~@7", T: "~@5 d3 c3 bb2",
  U: "[f2,a2,c3,eb3] ~@7 [f2,a2,c3,eb3]@8", V: "[f2,bb2,d3] ~", W: "[ab2,d3,f3] ~@7 [a2,c3]@8",
  X: "bb2!2 d2@2 eb2@2 e2@2", Y: "bb2@2 bb2@2 a4@2 a4 ~ [eb2,bb4]@4 e2@4, ~ d2 ~@2",
  Z: "eb3@2 eb3@2 eb4@2 eb4 ~ [eb3,eb4]@4 f3@2 eb3@2, ~ bb2 ~@2", // Eb
  AA: "bb2!2 [eb2,eb4] f2 [eb2,eb4]@2 [f2,d4]@2, ~@6 d4 ~@9", AB: "[bb2,d3,f3,ab3] [ab2,c3,eb3,gb3]",
  AC: "[g2,b2,d3,f3] [gb2,bb2,db3,e3]", AD: "f2@3 ~ f2@3 ~ f2@3 ~ f2@3 ~", AE: "f2@15 ~",
  AF: "[bb2,d3,f3,ab3,bb3,d4,f4,ab4]", AG: "[bb2,d3,f3,ab3,bb3,d4,f4,ab4]@2 ~@6 bb1 ~@7",
})).s("gm_piano").gain(0.3)

stack(piano)