Strudelify

Hallelujah I Love Her So

The Beatles

KeyC majorTempo84 bpm
0:00/0:00
// Hallelujah I Love Her So — The Beatles
// 84 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 3 "GUITAR" acoustic guitar steel (copy of ch 1 "GUITAR" electric guitar clean)
// note: Full arrangement: all 22 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(84/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.

// chords · electric guitar clean · "GUITAR"
const electric_guitar_clean = note("<A@2 B C D E F@6 G H@4 I J@4>".pickRestart({
  A: "[~@8 [c4,e4]@5 ~ [a3,c4,e4]@2 ~ [a3,c4,e4]@4 ~ [a3,c4,e4]@2 ~ e3@2 ~@7 [a3,c4]@3 ~@2 [f3,a3,c4]@3 c3@4 ~@13 [g3,b3,d4]@2 ~@6 c4@5 e3@2 ~ [g3,c4,e4]@4 ~ [a3,c4,e4]@2 ~@7 [a3,c4,e4]@3 e3@3 ~, [c3,g3,c4,e4]@8 g3@3 ~@19 f3@7 ~@10 [g3,b3,d4]@9 d3@5 ~@3 g3@9 ~@10 [a3,c4,e4]@3 ~@10, ~@5 e3@8 ~@4 a2@10 ~@6 f2@12 ~@5 g2@13 ~@4 c3@12 ~@5 a2@10 ~@2]/2", // C Am F G C Am C G …
  B: "~@4 [a3,c4]@3 ~@6 c3@4 ~@12 g3@2 ~@13 e3@4, ~ f3@7 ~ [f3,a3,c4]@8 [b3,d4]@8 d3@5 ~@6 c4@5 ~@7, ~@4 f2@13 ~ g3@8 ~@2 [b3,d4]@4 ~@2 g3@7 ~ [g3,c4,e4]@4 ~@2, ~@20 g2@12 ~@5 c3@10 ~", // Am F Bm C
  C: "~ [a3,c4,e4]@2 ~ [a3,c4,e4]@3 ~@2 [a3,c4,e4]@2 ~@2 e3@2 ~@3 [e3,f3]@2 ~ [f3,a3,c4]@3 ~@2 [f3,a3,c4]@3 c3@5 ~@11 [g3,b3,d4]@2 ~, ~@4 a2@9 ~@8 f2@13 [g3,b3,d4]@8 d3@5 ~, ~@37 g2@11", // Am Fmaj7 F G
  D: "~@2 g3@2 ~ [g3,c4,e4]@4 ~ g3@3 e3@5 [a3,c4,e4]@2 ~ [a3,c4,e4]@3 ~@2 [a3,c4,e4]@2 ~@2 e3@4 f3@3 [f3,a3,c4]@3 ~@2 [f3,a3,c4]@3 c3@3, ~@5 c3@15 ~ a2@15 ~ f2@11, ~@5 [c4,e4]@4 ~@15", // C Am F C
  E: "~@10 [g3,d4]@3 d3@3 ~ f3@2 ~ [f2,f3,a3,c4]@28, ~@2 [g3,b3,d4]@7 b3@4 ~@35, ~@5 g2@10 ~@33", // G5 F G
  F: "[~@4 [f2,f3,c4,d#4]@29 ~ c2@30 [e3,a3,c#4,e4]@20 ~@3 e3@5 [g3,c4,e4]@2 ~ [g3,c4,e4]@4 ~@8 [g3,c4,g4]@7 ~@8 e3@3 e3@5 ~@3 e3@5 ~@10 b2@5 d3@2 ~ [d3,f#3,a3]@5 ~@7 d3@2 ~ [d3,g3,b3]@3 ~@2 [d3,g3,b3]@3 b2@3 ~@8 [g3,c4]@7 [g3,c4,g4]@7 ~@15 g3@2 ~ [c2,g3,c4,e4]@5 ~@3 a2@5 ~@2 a2@5 ~@2 f2@5 ~@2 f2@5 ~@3 g2@5 ~@3 g2@5 g3@2 ~ [c2,g3,c4,e4]@5 ~@3 c2@5, ~@3 a3@29 ~ [g3,c4,e4]@30 ~ a2@30 ~ c2@5 e4@25 d4@9 ~@12 e3@9 ~@6 [d3,f#3,a3]@10 ~@12 c4@7 e4@22 [g3,e4]@7 ~@8 [a3,c4,e4]@7 ~ c4@7 ~@46, ~@84 [a3,c#4,e4]@10 ~@5 c4@8 ~@23 b2@11 b2@7 ~@16 a2@7 g2@10 ~@30 c4@9 ~@15 e4@11 ~@42, ~@100 g3@7 ~@8 [g3,c4,g4]@10 g#3@13 [e3,g#3,d4]@7 [g#3,d4]@9 ~@28 [g3,e4]@7 ~@15 [g3,c4,g4]@10 ~@21 a3@4 ~@3 [a3,c4]@5 ~@2 [f3,a3,c4]@4 ~@3 [g3,b3,d4]@7 ~ [g3,b3,d4]@10 ~@6 [g3,c4,e4]@8, ~@102 c2@15 c2@8 e2@29 ~@2 d2@15 ~@15 c2@21 c2@7 ~ c2@7 ~@66]/6", // F7 A C C5 D G C5 C …
  G: "[a3,c4,e4]@2 [a2,c4,e4]@5 ~@3 a2@5 [a3,c4]@2 ~ [f3,a3,c4]@3 ~@4 f2@5 ~@2 g2@5 ~@3 g2@5 f3@2 ~, ~@2 a3@3 ~@2 [a3,c4,e4]@10 ~ f2@5 [f3,a3,c4]@7 [g3,b3,d4]@6 ~ d4@9 ~@2, ~@38 [g3,b3]@9 ~", // Am F Am F G
  H: "[[f2,f3,a3,c4]@28 [f2,f3,a3,c4,d#4]@28 ~ g3@29 [a2,a3,c#4]@18 ~@2 a2@5 [c4,e4]@2 ~ [c4,e4]@3 ~@22 [e3,g#3]@3 [e3,g#3,d4]@4 ~@3 e2@5 ~@10 e2@4 d3@2 ~ [d2,f#3,a3]@4 ~@3 d2@5 [d3,g3]@2 ~ d3@3 ~ [d3,g3,b3]@2, ~@56 [c2,c4,e4]@29 ~ g4@25 g3@6 ~ [g3,c4]@7 c4@7 ~ e4@9 ~@48 c4 ~, ~@104 [a3,c#4]@9 ~ c2@5 g4@23 ~@50, ~@121 c2@5 g3@6 [g3,c4]@10 ~@5 [e3,g#3,d4]@7 [e3,g#3,d4]@7 [e3,g#3,d4]@9 ~ d3@3 ~ f#3@3 ~@7 [g3,b3]@3 ~@4, ~@128 c2@7 c2@7 e2@5 ~@10 e2@7 ~@12 [d3,a3]@4 ~@5 g2@5 ~@2]/4", // F F7 A C E E7 D G5 …
  I: "~ g2@4 b3 ~@2 c2@4 g3@3 c2@4 ~@3 a2@4 [a3,c4,e4]@3 a2@4 ~@3 f2@5 [f3,a3,c4]@2 ~ [f3,a3,c4]@4, ~@5 [g3,c4,e4]@6 ~ [c4,e4]@7 [a3,c4,e4]@7 ~@7 [f3,a3,c4]@7 ~@3 f2@5", // Am F C Am F
  J: "[[g3,b3,d4]@2 ~ [g3,b3,d4]@3 ~@2 [g3,d4]@3 g2@4 ~@2 c2@5 g3@3 c2@4 ~@3 a2@4 [a3,c4,e4]@3 a2@4 [a3,c4]@2 ~ [a3,c4]@3 ~@3 f2@5 ~@7 [f3,a3,c4]@3 ~@28 g2@4 ~@3 c2@6 ~@6 g3@7 ~@10 c2@5 ~@3 e3@4 ~ [c2,c3,g3,a#3]@28 ~@20, ~@3 g2@4 b3@3 ~@5 [g3,c4,e4]@6 ~ [c4,e4]@7 [a3,c4,e4]@6 ~@8 f3@6 ~ [f3,a3,c4]@7 [f3,a3,c4]@7 ~@8 g3@6 [g3,b3,f4]@7 [g3,b3,f4]@7 [g3,b3]@7 [c4,e4]@14 ~ [c4,e4]@42 ~@36, ~@45 f2@6 ~@8 f2@8 [f2,f3,a3,c4,d#4]@33 g3@14 ~@7 g3@23 ~@48, ~@74 g2@7 g2@7 g2@5 f4@9 ~@7 c2@15 c2@7 ~@7 c2@5 e3@25 ~@24, ~@16 c3!2 ~@6]/4", // G G5 Am F C7 C Am F …
})).s("gm_electric_guitar_clean").gain(0.41).pan(0.3)

// bass · fretless bass · "BASS"
const bass = note("<A@2 B C D E@5 F G@2 H I@3 J K@3 L>".pickRestart({
  A: "[~@9 c2@7 ~ a2@12 ~@2 a2@3 f2@11 ~@2 f2@3 g2@11 ~@2 g2@4 c2@10 ~@3 c2@3 ~ a2@11 ~]/2",
  B: "a2@3 ~ f2@11 ~@2 f2@3 g2@9 ~@4 g2@3 c2@9 ~@3", C: "~ c2@3 ~ a2@10 ~@2 a2@3 f2@10 ~@3 f2@3 g2@10 ~@2",
  D: "~ g2@3 ~ c2@10 ~@2 c2@3 ~ a2@11 ~@2 a2@3 f2@10 ~",
  E: "[~ f2@3 ~ g2@10 ~@2 g2@2 ~ f2@54 ~ f2@6 ~ c2@30 a2@29 ~ c2@15 ~ a2@14 ~ e2@16 a2@14 ~ d2@15 g2@14 c2@5 g2@2]/5",
  F: "~ g2@2 ~@3 g2@2 g2@3 ~@2 g2@2 g2@3 ~@2 g2@2 ~ c2@11 ~ c2@2 a2@10 ~",
  G: "[~@2 a2@2 f2@10 ~@2 f2@2 ~ g2@10 ~ g2@2 ~ c2@11 ~@3 c2@3 a2@10 ~@3 a2@3 f2@10 ~@2 f2@3 g2@14 ~]/2",
  H: "f2@31 ~ f2@16", I: "[~@3 f2@6 ~ c2@27 a2@29 c2@11 ~ c2@2 ~ a2@11 a2@3 d2@14 e2@9 ~@2 e2@2 ~ d2@10 ~ d2@3 g2@7]/3",
  J: "~@4 g2@4 c2@3 ~ g2@2 g2@3 ~@2 g2@2 ~ g2@4 ~ g2@2 g2@4 ~@3 f2@12",
  K: "[~@3 g2@14 c2@14 a2@14 ~ f2@17 ~ f2@6 g2@2 ~@2 g2@19 f2@2 e2@6 ~ c2@32 ~@10]/3", L: "c2@11 ~@13",
})).s("gm_fretless_bass").gain(0.41).pan(0.6)

stack(electric_guitar_clean, bass)

More by The Beatles