Strudelify
(Your Love Keeps Lifting Me) Higher & Higher cover art

Higher And Higher

(Your Love Keeps Lifting Me) Higher & Higher

Jackie Wilson

KeyG majorTempo220 bpm
0:00/0:00
// (Your Love Keeps Lifting Me) Higher & Higher — Jackie Wilson
// 220 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 6 "acoustic bass" acoustic bass (copy of ch 7 "slap bass" slap bass 1)
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(220/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, A@4 for four bars: edit a riff to change every repeat.

// chords · electric guitar muted · "muted guitar"
const electric_guitar_muted = note(`<
  ~@2 A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A
  B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F A G A B C D E F H@3
>`.pickRestart({
  A: "~@4 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4]@2 [b3,d4,g4] ~@5", B: "[b3,d4,g4]@2 ~@4 [b3,d4,g4]@2 ~@4 [b3,d4,g4]@3 ~",
  C: "~@2 [c4,e4,g4]!4 ~@2", D: "[c4,e4,g4]@2 ~@4 [c4,e4,g4]@2 ~@4 [c4,e4,g4]@3 ~", E: "~@2 [c4,e4,a4]!4 ~@2",
  F: "[c4,e4,a4]@2 ~@4 [c4,e4,a4] ~@5 [c4,e4,a4]@2 b4 ~", // Am
  G: "[b3,d4,g4] ~@5 [c4,e4,g4] ~@3 [c4,e4,g4]@2 ~@2 [b3,d4,g4]@2", // G C G
  H: "[[g3,d4,g4]@3 ~@3 [g3,c4,g4]@3 ~@3 [g3,d4,g4]@34 ~@2]/3", // G5 C5 G5
})).s("gm_electric_guitar_muted").gain(0.72).pan(0.6)

// chords · synth brass 1 · "SYN BRASS RHYTHM"
const synth_brass_1 = note("<~@98 A B C D E F A B A B C D E F G@3>".pickRestart({
  A: "~@4 [d4,g4,b4] ~@5 [d4,g4,b4] ~@5", B: "[d4,g4,b4] ~@5 [d4,g4,b4] ~@9", C: "~@4 [e4,g4,c5] ~@5 [e4,g4,c5] ~@5",
  D: "[e4,g4,c5] ~@5 [e4,g4] ~@9, ~@3 c5 ~@4", E: "~@4 [e4,a4,c5] ~@5 [e4,a4,c5] ~@5",
  F: "[e4,a4,c5] ~@5 [e4,a4,c5] ~@9", G: "[[d4,g4,b4]@3 ~@3 [e4,g4,c5]@3 ~@3 [d4,g4,b4]@34 ~@2]/3",
})).s("gm_synth_brass_1").gain(0.5).pan(0.1)

// chords · drawbar organ · "hammond organ"
const drawbar_organ = note(`<
  ~@10 A@2 B@2 C@2 D@2 E ~ F@2 C@2 D@4 F@2 C@2 D@4 G@2 H@2 D@4 G@2 H@2 D@2 I J@2 K@2 L@2 M@2 J@2 K@2 L@2 N D@2 G@2 H@2
  D@4 G@2 H@2 D@2 I J@2 K@2 L@2 M@2 J@2 K@2 L@2 N D@2 F@2 C@2 D@4 F@2 C@2 O@3
>`.pickRestart({
  A: "[[d4,g4,b4]@31 ~]/2", B: "[g4,c5,e5]/2", C: "[[c5,e5]@15 ~, a5]/2", D: "[d5,g5,b5]/2", E: "[d5,g5,b5] ~@15",
  F: "[c5,e5,g5]/2", G: "[[e5,g5,c6]@31 ~]/2", H: "[e5,a5,c6]/2", I: "[d5,g5,b5] ~@3 [d5,g5,b5]@12",
  J: "[[d5,g5,b5]@5 ~ [d5,g5,b5]@5 ~ [d5,g5,b5]@7 ~ [e5,g5,c6]@11 ~]/2", // G C
  K: "[[e5,g5,c6]@5 ~ [e5,g5,c6]@5 ~ [e5,g5,c6]@8 [e5,a5,c6]@12]/2", // C Am
  L: "[[e5,a5,c6]@5 ~ [e5,a5,c6]@5 ~ [e5,a5,c6]@8 [d5,g5,b5]@12]/2", // Am G
  M: "[[d5,g5,b5]@5 ~ [d5,g5,b5]@5 ~ [d5,g5,b5]@7 ~ [d5,g5,b5]@12]/2", N: "[d5,g5,b5]@5 ~ [d5,g5,b5]@5 ~ [d5,g5,b5]@4",
  O: "[[d5,g5,b5]@3 ~@3 [e5,g5,c6]@3 ~@3 [d5,g5,b5]@34 ~@2]/3", // G C G
})).s("gm_drawbar_organ").gain(0.45)

// other · synth brass 2 · "brass"
const synth_brass_2 = note(`<
  ~@17 A B C D@2 E@2 F@2 G@2 H@2 I@2 J@2 ~@48 K L M N O P K L K L M Q O P K A B C D@2 E@2 F@2 G@2 H@2 I@2 R@3
>`.pickRestart({
  A: "~ [b3,b4] [d4,d5] [b3,b4]", B: "[d4,d5]", C: "[b3,b4]@5 d5 [b3,b4]@2, ~@10 d4 ~@5",
  D: "[[g3,g4]@18 ~@2 [d3,d4]@2 [d3,d4] ~ [e3,e4]@2 [g3,g4] ~@3 e3@2, ~@30 e4 ~]/2", // G D E G
  E: "[[g3,g4]@18 ~@2 [d3,d4] ~ [d3,d4] ~ [e3,e4]@2 [g3,g4] ~@3 [e3,e4] ~]/2", // G D E G E
  F: "[[g3,g4]@19 ~ [b3,b4]@4 [d4,d5]@4 [b3,b4]@4]/2", G: "[[d4,d5]@15 ~ b3@10 d5@2 [b3,b4]@4, ~@15 b4@10 ~ d4 ~@5]/2",
  H: "[[g3,g4]@9 ~ d3 [d3,d4] [e3,e4] g4 ~ [e3,e4], ~@20 d4 ~@5 g3 ~@5]/2", // G D E
  I: "[[a3,a4]@19 ~ [d3,d4]@2 [d3,d4] ~ [e3,e4]@2 [g3,g4] ~@3 e3@2, ~@30 e4 ~]/2", J: "[[g3,g4]@31 ~]/2",
  K: "~@4 [d4,g4,b4] ~@5 [d4,g4,b4] ~@5", L: "[d4,g4,b4] ~@5 [d4,g4,b4] ~@9", M: "~@4 [e4,g4,c5] ~@5 [e4,g4,c5] ~@5",
  N: "[e4,g4,c5] ~@5 [e4,g4] ~@9, ~@3 c5 ~@4", O: "~@4 [e4,a4,c5] ~@5 [e4,a4,c5] ~@5",
  P: "[e4,a4,c5] ~@5 [e4,a4,c5] ~@9", Q: "[g4,c5] ~@5 [e4,g4,c5] ~@9, e4 ~@7",
  R: "[[g3,g4]@2 ~@4 [g3,g4,g5]@3 ~@3 [g3,g4,g5,d6]@31 ~@5]/3", // G G5
})).s("gm_synth_brass_2").gain(0.5)

// chords · clavinet · "clavi"
const clavinet = note(`<
  ~@10 A B C D E F A B A B C D E F A B A B C D E F A B ~@16 A B C D E F A B A B C D E F A B ~@16 A B C D E F A B A B C D
  E F A B A B C D E F A B A B C D E F G@3
>`.pickRestart({
  A: "~@4 [b4,d5,g5]@7 ~ [d5,g5] ~@3, ~@6 b4 ~", B: "[b4,d5,g5] ~@2 [b4,d5,g5] ~@2 [b4,d5,g5] ~",
  C: "~@4 [c5,e5,g5]@7 ~ [c5,e5] ~@3, ~@6 g5 ~", D: "[c5,e5,g5]@2 ~@4 [c5,e5,g5] ~@5 [e5,g5] ~@3, ~@6 c5 ~",
  E: "~@4 [c5,e5,a5]@7 ~ [c5,e5,a5]@2 ~@2", F: "[c5,e5,a5]@2 ~@4 [e5,a5] ~@5 [c5,e5,a5]@2 ~@2, ~@3 c5 ~@4",
  G: "[[g3,d4,g4] ~@2 [g3,c4,g4] ~@2 [g3,d4,g4]@18]/3", // G5 C5 G5
})).s("gm_clavinet").gain(0.45).pan(0.4)

// bass · slap bass 1 · "slap bass"
const bass = note("<~@8 A B C@8 D E D F G H D E D E D F G H D E C@64 D E D F G H D E D E D F G H I@2 ~>".pickRestart({
  A: "g2@2 g2@3 ~ g2 ~ g2 ~ g2@3 ~ g2@2", B: "~@2 g2@2 e2@4 d2@3 ~ e2@4",
  C: "[g2@4 ~@2 g2@3 ~@3 g2@7 ~ d2 ~ d2@2 e2@2 g2@2 ~@2 e2 ~]/2", D: "g2 b2 c3 d3", E: "e2@4 g2@3 ~ g2@2 e2@2 g2@3 ~",
  F: "e2@4 g2@3 ~ g2@2 e2@2 g2@4", G: "a2 b2 c3 d3", H: "e2@4 g2@3 ~ a2@2 g2@2 a2@3 ~",
  I: "[g2@3 ~@3 g2@3 ~@3 g2@20]/2",
})).s("gm_slap_bass_1").gain(0.45).pan(0.8)

// chords · brass section · "BRASS"
const brass_section = note(`<
  ~@17 A B C D@4 E@2 B C D@2 F@2 G@2 ~@16 H I J K L M H I H I J N L M H O ~@16 H I J K L M H I H I J N L M H A B C D@4
  E@2 B C D@2 F@2 P@3
>`.pickRestart({
  A: "~ [b3,b4] [d4,d5] [b3,b4]", B: "[d4,d5]", C: "[b3,b4]@5 [d4,d5] [b3,b4]@2",
  D: "[[g3,g4]@18 ~@2 [d3,d4]@2 [d3,d4] ~ [e3,e4]@2 [g3,g4] ~@3 [e3,e4]@2]/2", // G D E G E
  E: "[[g3,g4]@19 ~ [b3,b4]@4 [d4,d5]@4 [b3,b4]@4]/2", // G B D B
  F: "[[a3,a4]@19 ~ [d3,d4]@2 [d3,d4] ~ [e3,e4]@2 [g3,g4] ~@3 [e3,e4]@2]/2", G: "[[g3,g4]@31 ~]/2",
  H: "~@4 [d4,g4,b4] ~@5 [d4,g4,b4] ~@5", I: "[d4,g4,b4] ~@5 [d4,g4,b4] ~@9", J: "~@4 [e4,g4,c5] ~@5 [e4,g4,c5] ~@5",
  K: "[e4,g4,c5] ~@5 [e4,g4] ~@9, ~@3 c5 ~@4", L: "~@4 [e4,a4,c5] ~@5 [e4,a4,c5] ~@5",
  M: "[e4,a4,c5] ~@5 [e4,a4,c5] ~@9", N: "[g4,c5] ~@5 [e4,g4,c5] ~@9, e4 ~@7",
  O: "[g4,b4] ~@5 [d4,g4]@2 ~@4 [d4,g4,b4] ~@3, d4@2 ~@4 b4 ~@9", // G G5 G
  P: "[[g3,g4]@2 ~@4 [g3,g4,g5]@3 ~@3 [g3,g4,g5,d6]@31 ~@5]/3", // G G5
})).s("gm_brass_section").gain(0.5).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  ~@10 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
  B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B C ~@2
>`.pickRestart({
  A: "x ~@2 x ~ x ~@2", B: "x!2", C: "~ x ~ x",
})).gain(0.45)

// drums · snare
const snare = s("sd").struct(`<
  ~@8 A B C@7 D C@7 D C@7 E C@15 F C@15 G C@15 F C@7 D C@7 G C@7 D C@5 D H ~@2
>`.pickRestart({
  A: "~@4 x!2 ~@4 x!2 ~@4", B: "x!2 ~@6 x!8", C: "~@4 x!2 ~@6 x!2 ~@2", D: "~@4 x!2 ~@2 x!8", E: "~@2 x!9 ~ x!4",
  F: "~@4 x!2 ~@4 x!5 ~", G: "~@4 x!12", H: "x!2 ~@4 x!2 ~@8",
})).gain(0.45)

// drums · clap
const clap = s("cp").struct("<~@34 [~ x ~ x]!16 ~@16 [~ x ~ x]!16 ~@33>").gain(0.4)

// drums · hihat
const hihat = s("hh").struct("<~@2 [~ x ~ x]!8 [x!2]!102 [x ~@3 x ~@3 x ~@3 x!2 ~@2] ~@2>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@10 [~ x ~ x]!102 ~@3>").gain(0.35)

// drums · crash
const crash = s("cr").struct("<~@10 A ~@7 A ~@7 A ~@23 A ~@7 A ~@23 A ~@7 A ~@7 A ~@7 A ~@5 B ~@2>".pickRestart({
  A: "x", B: "x ~@2 x ~@2 x ~",
})).gain(0.4)

// drums · ride
const ride = s("rd").struct(`<
  ~@10 A B@7 A B@7 A B@23 A B A B A B A B A B A B A B A B@17 A B A B A B A B A B A B A B A B A B@7 A B@5 C ~@2
>`.pickRestart({
  A: "~ x!3", B: "x!4", C: "x ~@2 x",
})).gain(0.4)

// drums · shaker
const shaker = s("sh").struct(`<
  A B ~@48 C D C D C D C D C D C D C D C D ~@16 C D C D C D C D C D C D C D C D ~@17
>`.pickRestart({
  A: "x!2", B: "x!3 ~ x ~@3", C: "~@2 x ~@2 x ~@2", D: "x!4",
})).gain(0.4)

stack(
  electric_guitar_muted, synth_brass_1, drawbar_organ, synth_brass_2, clavinet, bass, brass_section, kick, snare, clap,
  hihat, open_hat, crash, ride, shaker
)

More by Jackie Wilson