Strudelify

All Time High

Rita Coolidge

KeyD♭ majorTempo112 bpm
0:00/0:00
// All Time High — Rita Coolidge
// 112 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 electric guitar jazz (copy of ch 1 electric guitar jazz); ch 3 "DD Computer Supplies" electric guitar jazz (copy of ch 12 string ensemble 1)
// note: Full arrangement: all 78 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 26.
setcpm(112/4)

// 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 · electric guitar jazz · "Programmer Danny Sykes"
const electric_guitar_jazz = note(`<
  A B A B C D E F G H I J K D L F M N J O P Q R S@3 T O U Q V W X Y Z AA AB D E AC G H I J K D L F M N J O P Q R AD@3 T
  O U Q V W X Y Z W X AE Z AF AG@4 AH@2
>`.pickRestart({
  A: "gb5 ab5 b5@5 ~@3 ab5 ~ gb5 ~ e5 ~", B: "b5@3 ~ b5 ~ gb5@3 ~ gb5 ~ e5@3 ~",
  C: "b4@3 ~ b4 ~ b4@3 ~ a4 ~ ab4 ~ a4 ~", D: "b4@3 ~ b4 ~ b4@3 ~ b4 ~ db5 ~ eb5 ~", E: "eb5@3 ~ e5 ~ ab4@8 ~@2",
  F: "~@4 b4@3 ~ b4@3 ~ b4@3 ~", G: "b4 ~ a4@3 ~ ab4 ~ a4@5 ~@3", H: "~@6 e4 ~ e4@3 ~ gb4@3 ~",
  I: "ab4@5 ~@7 [bb4,db5]@3 ~", J: "[c5,eb5]@11 ~@5", K: "b4 ~ b4@3 ~ b4@4 a4 ~ ab4 ~ a4 ~",
  L: "eb5@3 ~@3 e5 ~ ab4@5 ~@3", M: "b4@2 ~ a4@2 ab4@2 ~ a4@5 ~@3", N: "~@6 e5 ~ e5@3 ~ gb5@3 ~",
  O: "~@4 eb5 ~ eb5 ~ f5@3 ~ gb5@3 ~", P: "[db5,f5,ab5]@11 ~@5",
  Q: "~@4 [db5,f5,ab5]@3 ~ [db5,f5,ab5]@2 ~ gb5@2 f5@2 ~", R: "[bb4,db5,f5]@3 ~ gb5 ~ [bb4,db5,eb5]@4 ~@2 db5@3 ~",
  S: "[~@4 db5 ~ db5 ~ eb5 ~ f5@3 eb5 [eb5,gb5,bb5]@21 ~ [eb5,gb5,bb5]@3 ~ [eb5,gb5,bb5]@2 ~ ab5@2 gb5@2 ~]/3", // Ebm
  T: "[c5,eb5,ab5]", U: "[db5,f5,ab5]", V: "f5@3 ~ bb4@3 ~ eb5@8", W: "~@6 db5 ~ db5@3 ~ eb5@3 ~",
  X: "f5@5 ~@6 eb5@2 f5@2 ~", Y: "bb4@5 ~@7 gb4@3 ~", Z: "db5@11 ~@5", AA: "b4@11 ~@5",
  AB: "b4 ~ b4@3 ~ b4@3 ~ a4 ~ ab4 ~ a4 ~", AC: "~@6 b4 ~ b4@3 ~ b4@3 ~",
  AD: "[~@4 db5 ~ db5 ~ eb5 ~ f5@3 eb5 [eb5,gb5]@21 ~ [eb5,gb5,bb5]@3 ~ [eb5,gb5,bb5]@2 ~ ab5@2 gb5@2 ~, ~@7 bb5@8 ~@9]/3", // Ebm
  AE: "bb4@8 ~@4 gb4@3 ~", AF: "~@4 gb5 ~ eb5 ~ b5@3 ~ gb5@3 ~", AG: "[db5,f5,ab5]/4", AH: "[[db5,f5,ab5]@27 ~@5]/2",
})).s("gm_electric_guitar_jazz").gain(0.2)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A@5 B C@2 D ~ E ~ A F C@2 G ~ E H I@2 J ~ K@2 H ~ I ~ L ~ M K N F A O C@2 D ~ E ~ A F C@2 G ~ E H I@2 J ~ K@2 H ~ I ~
  L ~ M K N ~ K ~ P ~ Q@5 ~
>`.pickRestart({
  A: "[e4,ab4,b4]@11 ~@5", B: "[ab4,b4]@11 ~@5", C: "[db4,e4,ab4]@11 ~@5", D: "[db4,e4,a4]@11 ~@5",
  E: "[eb4,ab4]@11 ~@5", F: "[eb4,gb4,b4]@11 ~@5", G: "[db4,e4,a4,e5]@11 ~@5", H: "[c4,eb4,ab4]@11 ~@5",
  I: "[db4,f4,ab4]@11 ~@5", J: "[db4,bb4]@11 ~@5", K: "[eb4,gb4,bb4]@11 ~@5", L: "[gb4,bb4,db5]@11 ~@5",
  M: "[eb4,gb4,bb4,db5]@11 ~@5", N: "[gb4,db5]@11 ~@5", O: "[b3,eb4,ab4,b4]@11 ~@5", P: "[db4,gb4]@11 ~@5",
  Q: "[[f4,ab4]@15 ~, db4@67 ~@13]/5", // Fm
})).s("gm_acoustic_guitar_nylon").gain(0.45)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A B A B C D E F G@2 H I C D E F J G K L M N O P Q R S T M U O V W@2 X Y C D E F G@2 H I C D E F J G K L M Z O P Q R S
  T M AA O V W@2 X@2 AB@2 X AC AD@4 AE@2
>`.pickRestart({
  A: "[gb3,ab3,b3,e4]@4 ~@2 e2 ~ b1@3 ~ b2@3 ~", B: "[gb3,ab3,b3,e4]@4 ~@2 [gb3,ab3,b3,e4]@4 ~@2 [gb3,ab3,b3,e4]@3 ~",
  C: "e2@4 ~@2 [ab3,b3,e4]@4 ~@2 [ab3,b3,e4]@3 ~", D: "eb2@4 ~@2 [ab3,b3,eb4]@4 ~@2 ab2@3 ~",
  E: "db3@4 ~@2 [ab3,db4,e4]@4 ~@2 db3@3 ~", F: "ab2@5 ~@3 [ab3,db4,e4]@3 ~ [ab3,db4,e4]@3 ~",
  G: "a2@4 ~@2 [e3,a3,db4] ~ [e3,a3,db4]@3 ~ [e3,a3,db4]@3 ~", H: "ab2@4 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~ eb3@3 ~",
  I: "ab2@4 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~ gb2@3 ~", J: "a2@5 ~@3 [e3,a3,db4]@3 ~ [e3,a3,db4]@3 ~",
  K: "ab2@4 ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4]@3 ~ [ab3,c4,eb4]@3 ~", // Ab
  L: "ab2@5 ~@3 [eb3,gb3,ab3,c4]@3 ~ [eb3,gb3,ab3,c4]@3 ~", M: "db3@4 ~@2 db3 ~ c3@4 ~@2 c3 ~",
  N: "bb2@3 ~ [ab3,db4,f4]@3 ~ f2@5 ~@3", O: "gb2@3 ~ [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@3 ~",
  P: "gb2@3 ~ [bb3,db4]@3 ~ [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@3 ~, ~@3 gb3@3 ~@10", Q: "eb3@4 ~@2 eb3 ~@2 db3@4 ~ db3 ~",
  R: "c3@4 ~@2 c3 ~ bb2@5 ~@3", S: "ab2@4 ~@2 [gb3,ab3,c4,eb4] ~ [gb3,ab3,c4,eb4]@3 ~ [gb3,ab3,c4,eb4]@3 ~",
  T: "ab2@5 ~@3 [gb3,ab3,c4,eb4]@3 ~ [gb3,ab3,c4,eb4]@3 ~", U: "bb2@4 ~@2 bb2 ~ f2@5 ~@3",
  V: "gb2@3 ~ [gb3,bb3,db4]@5 ~@3 [gb3,bb3,db4]@3 ~", W: "[eb3,gb3,bb3,db4]@5 ~@3 [eb3,gb3,bb3,db4]@5 ~@3",
  X: "b2@5 ~@3 [gb3,a3,eb4]@5 ~@3", Y: "b2@5 ~@3 [gb3,a3,b3,eb4]@5 ~@3", Z: "bb2@3 ~ [ab3,db4,f4]@3 ~@9",
  AA: "bb2@4 ~@2 bb2 ~@9", AB: "eb2@5 ~@3 [eb3,gb3,bb3,db4]@5 ~@3", AC: "b2@5 ~@3 [gb3,a3,eb4]@3 ~ [gb3,a3,eb4]@3 ~",
  AD: "db2@3 ~ [ab3,db4,f4]@3 [ab3,db4,f4]@3 ~ [ab3,db4,f4]@3 ~@2", AE: "[[db2,ab2,f3]@27 ~@5]/2",
})).s("gm_string_ensemble_1").gain(0.34)

stack(electric_guitar_jazz, acoustic_guitar_nylon, string_ensemble_1)

More by Rita Coolidge