Strudelify
Got To Get You Into My Life cover art

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: 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 K@5 L@3 M I J@2 N@3 O@3 B C D E P@5 L@3 H I J@2 N@3 Q ~@4 N@3 O@3 R S@6 T@5 A@4 U
>`.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: "[[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]@5 ~ [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 ~ [d5,f#5]@5 ~, ~@6 g3@3 ~@13 g3@5 ~@19 f3@6 ~@18 f3@6 ~@18 b3@6 ~@14 [a#3,a#4]@3 ~@3]/5", // G F Bm A#aug D A#
  L: "[[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,a#4,d5,f#5]@4 ~@2 [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 ~@21 a4@3 ~@15]/3", // D G#m7b5 G#dim Bm A#aug A# D5 G#m7b5
  M: "[c4,g4,c5,e5]@4 ~@2 [c4,g4,c5,e5]@5 ~ [b3,g4,c5,e5]@4 ~@2 [b3,g4,c5,e5]@4 ~@2", // C Cmaj7
  N: "[[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
  O: "[[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
  P: "[[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 [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 ~@15 g3@3 ~ f3@6 ~@18 f3@6 ~@18 b3@6 ~@14 a#4@3 ~@3]/5", // G F Bm A#aug
  Q: "[d3,a4,d5,f#5]@5 ~@19", R: "[g4,b4,d5]@5 ~ [g4,b4,d5]@4 ~@2 [g4,b4,d5]@4 ~@2 [g4,b4,d5]@5 ~, g3@9 ~ g3@11 ~@3",
  S: "[[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
  T: "[[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@46 ~@4]/5", // G
  U: "[g3,g4,b4,d5] ~@3", // G
})).s("gm_piano").gain(0.36)

// bass · acoustic bass · "Bass"
const bass = note(`<
  A@4 B@2 C B D B@2 E F G F G H I J@2 B@2 C B D B@2 E F G F G H I J@2 K L@2 M N B@3 C B D B N E F G F O H I J@2 K L@2 M
  P@2 Q@2 K L@2 M N B R S T S U V W S X Y B@2 Z@4 AA
>`.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@3 ~@3 g2@3 ~@3 g2@3 ~@3 g2@4 f2 ~", D: "g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2@3 ~ f2 ~",
  E: "g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2@3 ~@3", F: "b2@2 ~ b2@2 ~ a#2@2 ~ a#2@2 ~", G: "a2@2 ~ a2@2 ~ g#2@2 ~ g#2@2 ~",
  H: "c3@2 ~ c3@2 ~ b2@2 ~ b2@2 ~", I: "a2@4 ~@2 a2@4 ~@2 d3@3 ~@3 d3@3 ~@3", J: "[g2@23 ~]/2",
  K: "g3@4 ~@2 g3@4 ~@2 g3@4 ~@2 g3@4 f3 ~", L: "c3@2 ~ c3@2 ~ c3@2 ~ c3@2 ~", M: "d3 ~@5",
  N: "g2@2 ~ g2@2 ~ g2@2 ~ g2@2 f2", O: "a2@4 ~@2 a2@5 ~ g#2@4 ~@2 g#2@4 ~@2", P: "g2!4", Q: "[g2@47 ~]/2",
  R: "g2@3 ~@3 g2@4 ~@2 g2@3 ~@3 g2@4 f2@2", S: "g2@4 ~@2 g2@4 ~@2 g2@3 ~@3 g2@4 f2@2",
  T: "g2@4 ~@2 g2@3 ~@3 g2@4 ~@2 g2@4 f2 ~", U: "g2@4 ~@2 g2@3 ~@3 g2@4 ~@2 g2@4 f2@2",
  V: "g2@4 ~@2 g2@4 ~@2 g2@4 ~@2 g2 ~ f2 ~ f#2 ~", W: "g2@3 ~@3 g2@3 ~@3 g2@3 ~@3 g2@4 f2@2",
  X: "g2@4 ~@2 g2@3 ~@3 g2@3 ~@3 g2@4 f2@2", Y: "g2@3 ~@3 g2@3 ~@3 g2@4 ~@2 g2@4 f2 ~",
  Z: "[g2@18 f2@24 g2@31 ~@21 f2 ~]/4", AA: "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 ~ H@3 C@2 D@2 E@2 F@2 G@2 C@2 ~ I@5 ~ H@3 C@2 D@2 E@2 F@2 G@2 C@2 ~ J@5 ~@3 I@5 ~@2
  K@2 L@2 M@2 N@2 O@2 A@4 P
>`.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@45 ~@4]/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: "[~@8 a4@15 ~, ~@23 f4@44 ~@5]/3",
  I: "[~@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# …
  J: "[~@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]@50]/5", // G A A# D F G A A# …
  K: "[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
  L: "[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, ~@2 g4@6 g4@15 ~]/2", // A B A F E D
  M: "[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
  N: "[g4@4 g5 ~ [a4,a5]@2 ~@2 [b4,b5]@3 ~@3 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
  O: "[g4@4 g5@2 [a4,a5]@3 ~ [b4,b5]@4 ~@2 g5 ~ [a4,a5]@8 ~@2 [f4,f5]@8 [e4,e5]@5 ~ [d4,d5]@3 ~@3, ~@4 g4@12 g4@31 ~]/2", // A B A F E D
  P: "[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@2 E@2 F@2 G@2 ~@2 B@3 ~ C@2 D@2 E@2 F@2 G@2 ~ H@5 ~@2 B@3 ~ C@2 D@2 E@2 F@2 G@2 ~ I@5 ~@3 H@5 ~@2
  J@4 K@2 J@4 A@4 L
>`.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: "[[b4,d5]@15 ~]/2",
  F: "[[c5,e5]@35 ~ [a4,d5]@10 ~@2]/2", G: "[[g4,d5]@47 ~]/2",
  H: "[~@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",
  I: "[~@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
  J: "[g5@95 ~]/4", K: "[g5@47 ~]/2", L: "[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