Strudelify
Got To Get You Into My Life cover art

1966 · Revolver

Got To Get You Into My Life

The Beatles

KeyG majorTempo133 bpm
0:00/0:00
// Got To Get You Into My Life — The Beatles
// 133 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: track names are the Roland MT-32 patch names at their program numbers ("Bass" on 64, "Brass 1" on 24, "Trumpet" on 89, "Sax" on 79), so with no bank select the whole file is read through the MT-32 patch table: ch 3 "Bass" Acou Bass 1 -> acoustic bass; ch 4 "Brass 1" Syn Brass 1 -> synth brass 1; ch 5 "Trumpet" Trumpet 2 -> trumpet; ch 6 "Sax" Sax 2 -> alto sax; ch 7 "Solo Trum" Trombone 1 -> trombone
// note: Full arrangement: all 89 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(133/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 · piano
const piano = note(`<
  A@4 B C D E F@5 G@3 H I J@2 B C D E F@5 G@3 H I J@2 K@3 L@3 B C D E F@5 G@3 H I J@2 K@3 M ~@4 K@3 L@3 N O@6 P@5 A@4 Q
>`.pickRestart({
  A: "[[g4,b4,d5]@8 ~ [f4,a4,c5]@11 ~ [g3,g4,b4,d5]@23 ~@4, g3@3 f3@4 ~@9]/4", // G F G
  B: "[g3,g4,b4,d5]@4 ~@2 [g3,g4,b4,d5]@5 ~ [g4,b4,d5]@4 ~@2 [g4,b4,d5]@5 ~, ~@12 g3@11 ~", // G
  C: "[g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g3,g4,b4,d5]@2 ~ [g4,b4,d5]@2 g3, g3@10 ~@8 g3@3 ~@3", // G
  D: "[f3,a4,c5]@5 ~ [f3,f4,a4,c5]@4 ~@2 [f4,a4,c5]@4 ~@2 [f4,a4,c5]@5 ~, f4@3 ~@7 f3@11 ~@3", // F
  E: "[f3,f4,a4,c5]@6 [f3,f4,a4,c5]@5 ~ [f3,f4,a4,c5]@5 ~ [f4,a4,c5]@4 f3@2, ~@6 f3 ~", // F
  F: "[[g3,g4,b4,d5]@4 ~@2 [g4,b4,d5]@5 ~ [g3,g4,b4,d5]@5 ~ [g3,g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g3,g4,b4,d5]@5 ~ [g3,g4,b4,d5]@4 ~@2 [g3,g4,b4,d5]@4 g3 ~ [f4,a4,c5]@4 ~@2 [f3,f4,a4,c5]@5 ~ [f3,f4,a4,c5]@5 ~ [f3,f4,a4,c5]@4 ~@2 [f4,a4,c5]@4 ~@2 [f3,f4,a4,c5]@4 ~@2 [f3,f4,a4,c5]@5 ~ [f3,f4,a4,c5]@4 ~@2 [b4,d5,f#5]@3 ~@3 [b3,b4,d5,f#5]@5 ~ [a#3,a#4,d5,f#5]@5 ~ [a#3,d5,f#5]@5 ~, ~@6 g3@3 ~@13 g3@5 ~@19 f3@6 ~@18 f3@6 ~@18 b3@6 ~@14 a#4@3 ~@3]/5", // G F Bm A#aug
  G: "[[a3,a4,d5,f#5]@5 ~ [a3,d5,f#5]@5 ~ [g#3,g#4,d5,f#5]@5 ~ [g#3,d5]@6 [b3,b4,d5]@4 ~@2 [b3,d5,f#5]@5 ~ [a#3,d5,f#5]@5 ~ [a#3,a#4,d5]@4 ~@2 [a3,a4,d5]@4 ~@2 [a3,d5]@5 ~ [g#3,g#4,d5,f#5]@5 ~ [g#3,g#4,d5,f#5]@5 ~, ~@6 a4@3 ~@9 f#5@11 ~@13 f#5@17 ~@13, ~@18 g#4@4 ~@8 b4@3 ~@3 a#4@3 ~@15 a4@3 ~@15]/3", // D G#m7b5 G#dim Bm A#aug A# D5 G#m7b5
  H: "[c4,g4,c5,e5]@2 ~ [c4,g4,c5,e5]@2 ~ [b3,g4,c5,e5]@2 ~ [b3,g4,c5,e5]@2 ~", // C Cmaj7
  I: "[a3,a4,c5,e5]@2 ~ [a3,a4,c5,e5]@2 ~ [d3,a4,d5,f#5]@2 ~ [d3,a4,d5,f#5]@2 ~", J: "[[g4,b4,d5]@15 ~, g3@2 ~]/2",
  K: "[[g4,b4,d5]@3 ~@3 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,c5,e5]@4 ~@2 [g4,c5,e5]@4 ~@2 [g4,c5,e5]@5 ~ [g4,c5,e5]@4 ~@2 [g4,c5,e5]@4 ~@2 [g4,c5,e5]@4 ~@2 [c3,g4,c5,e5]@5 ~ [c3,g4,c5,e5]@5 ~, g3@9 ~ g3@12 c3@12 c3@10 ~@2 c3@12 ~@14]/3", // G C
  L: "[[d3,a4,d5,f#5]@5 ~@17 [g4,b4] ~ [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@5 ~ [g4,b4,d5]@4 g3 ~, ~@22 g3@23 ~ g3@11 ~ g3@11 ~@3]/3", // D G
  M: "[d3,a4,d5,f#5]@5 ~@19", N: "[g4,b4,d5]@5 ~ [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@5 ~, g3@9 ~ g3@11 ~@3",
  O: "[[g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~ [g4,b4,d5]@2 ~, g3@22 g3@23 ~ g3@23 ~ g3@47 ~ g3@26]/6", // G
  P: "[[g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@8 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 g3 ~, ~@12 [g4,b4,d5]@5 ~@103, ~@14 g3@7 ~ g3@47 ~ g3@47 ~@3]/5", // G
  Q: "[g3,g4,b4,d5] ~@3", // G
})).s("gm_piano").gain(0.36)

// bass · acoustic bass · "Bass"
const bass = note(`<
  A@4 B@7 C D E D E F G H@2 B@7 C D E D E F G H@2 I J@2 K L B@8 C D E D E F G H@2 I J@2 K M@2 H@2 I J@2 K L B@6 N O B L
  B@3 P@4 Q
>`.pickRestart({
  A: "[g2@18 g2@24 g2@31 ~@21 f2 ~]/4", B: "g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2@4 f2 ~",
  C: "g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2@3 ~@3", D: "b2@2 ~ b2@2 ~ a#2@2 ~ a#2@2 ~", E: "a2@2 ~ a2@2 ~ g#2@2 ~ g#2@2 ~",
  F: "c3@2 ~ c3@2 ~ b2@2 ~ b2@2 ~", G: "a2@4 ~@2 a2@4 ~@2 d3@3 ~@3 d3@3 ~@3", H: "[g2@23 ~]/2",
  I: "g3@4 ~@2 g3@4 ~@2 g3@4 ~@2 g3@4 f3 ~", J: "c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~", K: "d3 ~@5",
  L: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 f2", M: "g2!4", N: "g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2 ~ f2 ~ f#2 ~",
  O: "g2@3 ~@3 g2@3 ~@3 g2@3 ~@3 g2@4 f2 ~", P: "[g2@18 f2@24 g2@31 ~@21 f2 ~]/4", Q: "g2 ~@3",
})).s("gm_acoustic_bass").gain(0.51)

// chords · synth brass 1 · "Brass 1"
const synth_brass_1 = note(`<
  A@4 ~ B@3 C@2 D@2 E@2 F@2 G@2 C@2 ~ B@3 C@2 D@2 E@2 F@2 G@2 C@2 ~ H@5 ~ B@3 C@2 D@2 E@2 F@2 G@2 C@2 ~ H@5 ~@3 H@5 ~@2
  I@2 J@2 K@2 J@2 L@2 A@4 M
>`.pickRestart({
  A: "[~@4 g4 ~ a4@2 ~@2 b4@2 ~@4 g4 ~ a4@8 ~@2 [f4,f5]@8 [e4,e5]@6 [g4,g5]@50 ~@4]/4", // F E G
  B: "[~@8 a4@15 ~, ~@23 f4@44 ~@5]/3", C: "[[g4,b4]@47 ~]/2", D: "[[f4,a4]@11 ~]/2", E: "[[b4,d5]@23 ~]/2",
  F: "[[b4,d5]@15 ~]/2", G: "[[c5,e5]@35 ~ [a4,d5]@10 ~@2]/2",
  H: "[~@4 [g4,g5] ~ [a4,a5]@2 ~@2 [a#4,a#5]@2 [d4,d5]@3 ~ [f4,f5]@3 ~@3 [g4,g5]@27 ~@3 [g4,g5] ~ [a4,a5]@2 ~@2 [a#4,a#5]@2 [d4,d5]@3 ~ [f4,f5]@3 ~@3 [g4,g5]@49 ~]/5", // G A A# D F G A A# …
  I: "[g4@4 g5 ~ [a4,a5]@2 ~@2 [b4,b5]@3 ~@3 g5@2 [a4,a5]@9 ~ [f4,f5]@7 ~ [e4,e5]@5 ~ [d4,d5]@4 ~@2, ~@2 g4@6 g4@15 ~]/2", // A B A F E D
  J: "[g4@4 g5 ~ [a4,a5]@2 ~@2 [b4,b5]@3 ~@3 g5@2 [a4,a5]@9 ~ [f4,f5]@7 ~ [e4,e5]@5 ~ [d4,d5]@3 ~@3, ~@2 g4@6 g4@15 ~]/2", // A B A F E D
  K: "[g4@4 g5 ~ [a4,a5]@2 ~@2 [b4,b5]@3 ~@3 g5 ~ [a4,a5]@9 ~ [f4,f5]@7 ~ [e4,e5]@5 ~ [d4,d5]@3 ~@3, ~@4 g4@12 g4@31 ~]/2", // A B A F E D
  L: "[g4@4 g5@2 [a4,a5]@3 ~ [b4,b5]@4 ~@2 g5 ~ [a4,a5]@8 ~@2 [f4,f5]@7 ~ [e4,e5]@5 ~ [d4,d5]@3 ~@3, ~@4 g4@12 g4@31 ~]/2", // A B A F E D
  M: "[g4,g5]@5 ~@19", // G
})).s("gm_synth_brass_1").gain(0.36)

// other · trumpet
const trumpet = note(`<
  A@4 ~@2 B@3 ~ C@2 D@4 E@2 F@2 ~@2 B@3 ~ C@2 D@4 E@2 F@2 ~ G@5 ~@2 B@3 ~ C@2 D@4 E@2 F@2 ~ H@5 ~@3 G@5 ~@2 I@4 J@2 I@4
  A@4 K
>`.pickRestart({
  A: "[~@4 g4 ~ a4@2 ~@2 b4@2 ~@4 g4 ~ a4@8 ~@2 [f4,f5]@8 [e4,e5]@6 [g4,g5]@50 ~@4]/4", // F E G
  B: "[~@10 g4 ~ a4 ~@3 d5 ~@5 c5@9 ~@3 a4 ~ c5 ~@3 e5@2 ~@4 d5@20 ~@6]/3",
  C: "[~@10 g4 ~ a4 ~@3 d5 ~@5 c5@9 ~@3 a4 ~ c5 ~@3 e5@2 ~@4 d5@2]/2", D: "[[b4,d5]@23 ~]/2",
  E: "[[c5,e5]@35 ~ [a4,d5]@10 ~@2]/2", F: "[[g4,d5]@47 ~]/2",
  G: "[~@4 g4 ~ a4@2 ~@2 a#4@2 d4@3 ~ f4@3 ~@3 g4@27 ~@3 g4 ~ a4@2 ~@2 a#4@2 d4@3 ~ f4@3 ~@3 g4@49 ~]/5",
  H: "[~@4 g4 ~ a4@2 ~@2 a#4@2 d4@3 ~ f4@3 ~@3 g4@27 ~@3 [g4,g5,g6] ~ [a4,a5,a6]@2 ~@2 [a#4,a#5,a#6]@2 [d4,d5,d6]@3 ~ [f4,f5,f6]@3 ~@3 [g4,g5,g6]@50]/5", // G A A# D F G
  I: "[g5@95 ~]/4", J: "[g5@47 ~]/2", K: "[g4,g5]@5 ~@19",
})).s("gm_trumpet").gain(0.36)

// other · trombone · "Solo Trum"
const trombone = note("<~@74 A@4 B@2 C@4 ~@4 D>".pickRestart({
  A: "[g5@95 ~]/4", B: "[g5@47 ~]/2", C: "[g5@91 ~@5]/4", D: "[g5,g6]@5 ~@19",
})).s("gm_trombone").gain(0.31)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B@10 C B C B D ~ B@10 C B C B D ~ C E@2 D F E B@10 C B C B D ~ C E@2 D ~@4 C E@2 D F E B@10 C B C@4 D
>`.pickRestart({
  A: "~@11 x", B: "x ~@2 x ~@2 x ~@2 x ~ x", C: "x!4", D: "x", E: "x ~@2 x ~ x!2 ~ x!2 ~ x",
  F: "x ~@2 x ~@2 x ~ x!2 ~ x",
})).gain(0.51)

// drums · snare
const snare = s("sd").struct("<A@4 B@14 ~ C B@14 ~ C B@3 D B@16 ~ C B@3 E ~@4 B@3 D B@13 F A@3 G E>".pickRestart({
  A: "x!4", B: "~ x ~ x", C: "x!6 ~@6", D: "x ~@7 x!4", E: "x", F: "~@3 x ~@2 x!6", G: "x ~@2 x ~@2 x!6",
})).gain(0.51)

// drums · hihat
const hihat = s("hh").struct("<A@3 B A@15 ~ A@15 ~ A@3 C A@17 ~ A@3 C A@7 C A@17 D ~>".pickRestart({
  A: "x!4", B: "x!3 ~", C: "x", D: "x!2 ~@2",
})).gain(0.41)

// drums · low tom
const low_tom = s("lt").struct("<~@19 [~ x] ~@15 [~ x] ~@21 [~ x] ~@31>").gain(0.51)

// drums · open hat
const open_hat = s("oh").struct("<~@3 A ~@15 B ~@15 B ~@21 B ~@29 C ~>".pickRestart({
  A: "~@3 x", B: "~@8 x!2 ~@2", C: "~ x",
})).gain(0.51)

// drums · mid tom
const mid_tom = s("mt").struct("<~@19 [~@7 x!2 ~@3] ~@15 [~@7 x!2 ~@3] ~@21 [~@7 x!2 ~@3] ~@31>").gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@19 [~@9 x!3] ~@15 [~@9 x!3] ~@21 [~@9 x!3] ~@31>").gain(0.51)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@7 A ~@5 A ~ A ~@7 A ~@5 A ~ A ~@2 A@2 ~ A ~@7 A ~@5 A ~ A ~@2 A ~@4 A ~@2 A@2 ~ A ~@7 A ~@3 A ~@3 A
>`.pickRestart({
  A: "x",
})).gain(0.51)

stack(piano, bass, synth_brass_1, trumpet, trombone, kick, snare, hihat, low_tom, open_hat, mid_tom, high_tom, crash)

More by The Beatles