Strudelify
Got My Mind Set On You cover art

1988 · Cloud Nine

Got My Mind Set On You

George Harrison

KeyE majorTempo150 bpm
0:00/0:00
// Got My Mind Set On You — George Harrison
// 150 bpm, 4/4, key E major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 138 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): CLEAN GTR.
setcpm(150/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 · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@57 A@8 B@8 C@2 D@2 E@2 F@2 G@8 ~@12 A@8 B@8 H@6 I@2 J@2 K@2 E@2 F@2 E@2 L@2 M
>`.pickRestart({
  A: "[~@2 b3@2 c#4@2 e4@2 g#4@4 f#4@2 e4@20 b4@4 b4@4 b4@24 b3!2 c#4@2 e4@2 f#4@2 [g#4,a#4]@2 f#4@2 e4@20 b4@4 b4@4 b4@22]/8", // G#sus2
  B: "[~@2 b3@2 c#4@2 e4@2 g#4@4 f#4@2 e4@20 b4@4 b4@4 b4@24 b3!2 c#4@2 e4@2 f#4@2 [g#4,a#4]@2 f#4@2 e4@20 b4@4 b4@4 b4@8 b4@4 b4@4 b4@6]/8", // G#sus2
  C: "[[e4,b4]@17 ~@3 c#4@2 e4@4 c#4@2 e4@4, e5@5 ~@3]/2", // E5
  D: "[e4@8 [d#4,g#4]@5 ~ g#4@6 e4@2 e4@4 e4@2 f#4@4, g#4 ~@12 e4@2 ~@17]/2", // G#5
  E: "[[e4,g#4]@8 [d#4,f#4]@5 ~ e4@6 c#4@2 e4@4 c#4@2 e4@4, ~@13 g#4@3 ~@16]/2", // E D#m
  F: "[[e4,g#4] ~@7 [d#4,g#4]@5 ~ g#4@6 g#4@2 f#4@4 e4@2 f#4@4, ~@13 e4@2 ~@17]/2", // E G#5
  G: "[[e4,g#4]@8 [d#4,f#4]@5 ~ e4@114, ~@13 g#4@3 ~@112]/8", H: "[[e4,b4]@17 ~@79, e5]/6",
  I: "[[e4,g#4]@8 [d#4,g#4]@5 ~ g#4@18, ~@13 e4@2 ~@17]/2", J: "[[e4,g#4]@4 [d#4,f#4]@3 e4@9, ~@7 g#4 ~@8]/2",
  K: "[[e4,g#4]@8 [d#4,g#4]@5 ~ g#4@6 e4@2 e4@4 e4@2 f#4@4, ~@13 e4@2 ~@17]/2", // E G#5
  L: "[e4@8 [d#4,g#4]@5 ~ g#4@6 g#4@2 f#4@4 e4@2 f#4@4, g#4 ~@12 e4@2 ~@17]/2", // G#5
  M: "[e4,g#4]@7 ~ [d#4,f#4]@5 ~ e4@2, b4@12 ~ [g#4,b4]@2 ~", // E D#m G#m
})).s("gm_overdriven_guitar").gain(0.3)

// bass · electric bass pick · "PICK BASS"
const bass = note(`<
  ~@12 A B A B A C D E D B D F D F D@2 A G H I ~ J ~ I ~ K ~ L M L M L M L N E I ~ O ~ I ~ O P A B A B A C D E D B D F D
  F D@2 A G H I ~ J ~ I ~ O Q I R O Q I R O ~ L M L M L M L N S A B A B A B A B A B A B D F D@2 A G H I ~ J T I U O V I
  ~ O ~ I ~ O Q I R O
>`.pickRestart({
  A: "e1@5 ~ e1@2 a1@7 ~", B: "b1@4 ~@2 b1@2 ~@2 b1@3 ~ b1@2", C: "b1@3 b1 ~ b1 ~ b1", D: "e1@4 ~@2 e1@2 a1@5 ~ a1@2",
  E: "b1 ~@7", F: "b1@4 ~@2 b1 ~@3 b1@2 ~@2 b1@2", G: "e1@4 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~", H: "e1@3 ~@13",
  I: "c#2@4 g#1@3 c#2", J: "e2@7 ~ b1@5 ~ e2@2", K: "e2@4 b1@3 e2", L: "e1 g#1", M: "a1@3 c#2@3 a1 ~",
  N: "b1@5 ~ b1@3 ~ b1@2 ~@2 b1 ~", O: "e2@4 b1@3 e1", P: "~@3 b1@3 b1@2", Q: "~@2 c#2 e2@2 c#2 e2 ~",
  R: "~@2 g#2 f#2@2 e2 f#2 ~", S: "b1@2 ~ b1!5", T: "~@3 g#1@2 g#1 b1@2", U: "~@6 c#2@3 ~ c#2@2 d#2@4",
  V: "~@6 b1 ~ b1@3 ~ b1@3 ~",
})).s("gm_electric_bass_pick").gain(0.45)

// chords · rock organ · "ELEC ORGAN"
const rock_organ = note(`<
  ~@12 A B C D E F G H I J K L M L N@2 O P Q R ~ S ~ R ~ T ~ U V U V U V U W X R ~ Y ~ R ~ Z AA AB AC AD D E AE AF H AG
  AH AI L M AJ N@2 O P Q R ~ S ~ R ~ Z AK R AL AM AK R AL Z ~ U V U V U V U W AN AO AP AQ AR AO AP AQ AR AO AP AQ AR AS
  ~ AT@2 AU AV AW AX ~ AY AZ AX BA BB BC AX ~ BD ~ AX ~ BB AK AX AL BB
>`.pickRestart({
  A: "e3@2 e3@2 [b4,e5,g#5] ~ [e3,g#5]@2 a3@2 ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@6 [b4,e5] ~@3 a3@5 ~", // E A E5
  B: "b3@2 b3 ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~@7 b3", // B
  C: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3@2 ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@6 e3@2 ~@2 a3@5 ~", // E A
  D: "b3@2 b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~@3 b3 ~@4", // B
  E: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3@2 ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@3 e3 ~ a3@2 ~", // E A
  F: "b3@2 ~@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~ b3@2 ~@4 b3", // B
  G: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3@2 a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@3 e3 ~@4", // E A
  H: "[d#5,f#5,b5] ~@15, b3 ~@7", // B
  I: "e3 ~ e3@2 [b4,e5,g#5] ~ [b4,e5] ~ a3@2 a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@3 g#5 ~@4", // E E5 A
  J: "b3@2 b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~@7 b3", // B
  K: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3@2 a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~", // E A
  L: "b3@2 b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3 ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~", // B
  M: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3 ~ a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~", // E A
  N: "e3@4 [b4,e5,g#5] ~@3 a3@4 [c#5,e5,a5] ~ a3@2", O: "~@4 [b4,e5,g#5] ~@7 [c#5,e5,a5] ~@3, ~ a3",
  P: "e3@4 [b4,e5,g#5] ~ [e3,b4,e5,g#5]@3 ~ [e3,b4,e5,g#5]@3 ~ [e3,b4,e5,g#5] ~", Q: "[b4,e5,g#5] ~@15, e3@3 ~@13",
  R: "[g#4,c#5,e5]@6 ~@2 [g#4,b4,d#5]@5 ~ [c#4,g#4,c#5,e5]@2, c#4@4 g#3@3 ~", // C#m G#m C#m
  S: "[e4,b4,e5,g#5]@7 ~ [b4,d#5,f#5]@4 ~@2 [b4,e5,g#5]@2", // E B E
  T: "[b4,e5,g#5]@3 ~ [b4,d#5,f#5]@2 ~ [e4,b4,e5,g#5], e4@4 b3@3 ~", U: "e3 g#3", V: "a3@3 c#4@3 e4@2",
  W: "b3@3 d#4@3 f#4@2", X: "b3 ~@7", Y: "[e4,b4,e5,g#5]@7 ~ [b4,d#5,f#5]@4 ~@2 [e3,b4,e5,g#5]@2",
  Z: "[b4,e5,g#5]@3 ~ [b4,d#5,f#5]@2 ~ [e3,b4,e5,g#5], e4@4 b3@3 ~", AA: "~@3 b3@3 b3@2",
  AB: "e3 ~ e3@2 [b4,e5,g#5] ~ [e3,g#5]@2 a3@2 ~@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@6 [b4,e5] ~@3 a3@5 ~", // E A E5
  AC: "b3@2 b3 ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3 ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~@7 b3", // B
  AD: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3 ~@3 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@6 e3@2 ~@2 a3@5 ~", // E A
  AE: "b3@2 ~@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3 ~ [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~ b3@2 ~@4 b3", // B
  AF: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3 ~ a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@3 e3 ~@4", // E A
  AG: "e3@2 e3@2 [b4,e5,g#5] ~ [b4,e5] ~ a3@2 a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~, ~@3 g#5 ~@4", // E E5 A
  AH: "b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~, ~@7 b3", // B
  AI: "e3 ~ e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3 ~ a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~", // E A
  AJ: "b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~ b3 ~ b3@2 [d#5,f#5,b5] ~ [d#5,f#5,b5] ~", AK: "~@2 c#4 e4@2 c#4 e4 ~",
  AL: "~@2 g#4 f#4@2 e4 f#4 ~", AM: "[b4,e5,g#5]@3 ~ [b4,d#5,f#5]@2 ~ [b4,e5,g#5], e4@4 b3@3 ~",
  AN: "b3@2 ~ b3!2 ~ b3!2", AO: "e3@5 ~ e3@2 a3@7 ~", AP: "b3@3 ~@7 b3@3 ~ b3@2", AQ: "~@6 e3@2 a3@7 ~",
  AR: "~@6 b3@2 ~@2 b3@3 ~@3", AS: "~@8 a3@5 ~@3", AT: "e3@2 ~@2 a3@2 ~ a3", AU: "~ a3",
  AV: "e3@4 ~@2 e3@2 ~@2 e3@3 ~ e3 ~", AW: "e3@3 ~@13", AX: "c#4@4 g#3@3 c#4", AY: "e4@7 ~@9", AZ: "~@3 g#3@2 g#3 b3@2",
  BA: "~@6 c#4@3 ~ c#4@2 d#4@4", BB: "e4@4 b3@3 e3", BC: "~@6 b3 ~ b3@3 ~ b3@3 ~", BD: "e4@7 ~@7 e3@2",
})).s("gm_rock_organ").gain(0.48)

// chords · rock organ · "ELEC ORGAN" · soft notes
const rock_organ_soft = note(`<
  ~@13 A ~ B ~ A C ~ D A D E D E F G H ~@4 I ~@16 J ~@6 A ~ B ~ A C ~ D A D E D E F G H ~@4 I ~@7 K ~@13 L ~ A M N ~ A M
  N ~ A M N O P F@2 H ~@4 I ~@7 J ~@8
>`.pickRestart({
  A: "~@3 b3 ~@4", B: "~@7 b3", C: "~@7 a3", D: "~@3 e3 ~@3 a3", E: "~@6 b3 ~@7 b3@2", F: "~@6 e3@3 ~@7",
  G: "~@3 e3 ~@4", H: "e3@2 ~ e3 ~@4", I: "~@8 b3@5 ~ e4@2", J: "~@8 b3@5 ~@3", K: "~@7 e3", L: "~@5 b3 ~@2",
  M: "e3 ~@3", N: "b3@2 ~@5 b3", O: "e3@2 ~ e3 ~@3 a3", P: "b3@4 ~@2 b3 ~@3 b3@2 ~@2 b3@2",
})).s("gm_rock_organ").gain(0.28)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@4 A ~ B ~ A ~ B ~@20 A ~ C ~ A ~ C ~@10 A ~ C ~ A ~ C ~@28 A ~ C ~ A ~ C ~@48
>`.pickRestart({
  A: "[c#2,c#4,e4]@8 [g#1,g#3,b3,d#4]@5 ~ [c#2,g#3,c#4,e4]@2, g#3@3 ~@5", // C#m G#m C#m
  B: "[e2,b3,e4,g#4]@7 ~ [b1,d#4,f#4]@6 [c#2,g#3,c#4,e4]@2, ~@2 b3 ~", // E B C#m
  C: "[e2,e4,g#4]@8 [b1,b3,d#4,f#4]@5 ~ [e2,b3,e4,g#4]@2, b3@3 ~@5", // E B E
})).s("gm_electric_guitar_clean").gain(0.35)

// other · electric guitar clean · "CLEAN GTR" · B
const electric_guitar_clean_2 = note("<~@137 [~@8 b3@5 ~ [b3,d#4]@2]>").s("gm_electric_guitar_clean").gain(0.45)

// drums · kick
const kick = s("bd").struct(`<
  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 C D E F E F E F E F A G A G A G A G D E F E F E F E ~ A B A
  B A B A B A B A B A B A B A B D E F E F E F E F E F E F E F E F A G A G A G A G H A B A B A B A B A B A B A B A B A B
  I E F E F E F E F E F E F E F E F E F J
>`.pickRestart({
  A: "x!2", B: "x!2 ~ x ~ x ~@2", C: "x!2 ~ x ~ x ~ x", D: "x ~@4 x ~@2", E: "x ~@3 x ~@2 x", F: "~@3 x ~ x ~@2",
  G: "x ~@2 x ~ x ~@2", H: "x", I: "x!2 ~@2 x!2 ~@2", J: "x ~@6 x",
})).gain(0.51)

// drums · clap
const clap = s("cp").struct("<~@39 A B A B A B A B ~@44 A B A B A B A B ~@39>".pickRestart({
  A: "~@2 x!2 ~@2 x ~", B: "~@2 x!2 ~ x!2 ~",
})).gain(0.31)

// drums · clap · soft notes
const clap_soft = s("cp").struct("<~@39 A ~ A ~ A ~ A ~@45 A ~ A ~ A ~ A ~@40>".pickRestart({
  A: "~@5 x ~@2",
})).gain(0.15)

// drums · snare
const snare = s("sd").struct("<A@30 B A@8 C@8 B A@7 ~ A@18 B A@16 C@8 ~ A@18 D A@18 E>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "~@2 x!2 ~ x!2 ~", D: "~@2 x!2 ~@2 x!2", E: "~@7 x",
})).gain(0.51)

// drums · low tom
const low_tom = s("lt").struct("<~@137 [~@5 x!3]>").gain(0.41)

// drums · hihat
const hihat = s("hh").struct(`<
  A@30 B C A C A C A C A ~@8 B C A C A C A C A@19 B C A C A C A C A C A C A C A C A ~@8 A@20 C A C A C A C A C A C A C A
  C A C A@2
>`.pickRestart({
  A: "x!8", B: "x", C: "x!4",
})).gain(0.31)

// drums · mid tom
const mid_tom = s("mt").struct("<~@137 [~@3 x!2 ~@3]>").gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@137 [~ x!2 ~@5]>").gain(0.46)

// drums · crash
const crash = s("cr").struct("<~@137 [~@7 x]>").gain(0.31)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@118 [x!8] ~@19>").gain(0.78)

stack(
  overdriven_guitar, bass, rock_organ, rock_organ_soft, electric_guitar_clean, electric_guitar_clean_2, kick, clap,
  clap_soft, snare, low_tom, hihat, mid_tom, high_tom, crash, cabasa
)

More by George Harrison