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: 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 C D E F G H I D J K J L M J N O P Q ~ R ~ S ~ T ~ U V W X U V U Y H Q ~ Z ~ S ~ AA AB A B C D E F G H I D J K
  J L M J N O P Q ~ R ~ S ~ AA AC Q AD AA AC AE AD AA ~ U V W X U V U Y AF A B C D A B C D A B C D J L M J N O P Q ~ R
  AG Q AH AA AI Q ~ Z ~ S ~ AA AC Q AD AA
>`.pickRestart({
  A: "e1@5 ~ e1@2 a1@7 ~", B: "b1@3 ~@3 b1@3 ~ b1@3 ~ b1@2", C: "e1@4 ~@2 e1@2 a1@7 ~",
  D: "b1@4 ~@2 b1@2 ~@2 b1@3 ~ b1@2", E: "e1@2 ~ e1 a1@3 ~", F: "b1@3 b1 ~ b1 ~ b1", G: "e1@5 ~ e1@2 a1@5 ~ a1@2",
  H: "b1 ~@7", I: "e1@5 ~ e1@2 a1@4 ~@2 a1@2", J: "e1@4 ~@2 e1@2 a1@5 ~ a1@2", K: "b1@4 ~@2 b1 ~@3 b1 ~@3 b1@2",
  L: "b1@4 ~@2 b1 ~@3 b1@2 ~@2 b1@2", M: "e1@2 ~ e1 a1@2 ~ a1", N: "e1@2 ~ e1 a1@4",
  O: "e1@4 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~", P: "e1@3 ~@13", Q: "c#2@4 g#1@3 c#2", R: "e2@7 ~ b1@5 ~ e2@2",
  S: "c#2@8 g#1@6 c#2 ~", T: "e2@4 b1@3 e2", U: "e1 g#1", V: "a1@3 c#2@3 a1 ~", W: "e1@8 g#1@7 ~",
  X: "a1@6 c#2@6 a1@3 ~", Y: "b1@5 ~ b1@3 ~ b1@2 ~@2 b1 ~", Z: "e2@7 ~ b1@5 ~ e1@2", AA: "e2@4 b1@3 e1",
  AB: "~@3 b1@3 b1@2", AC: "~@2 c#2 e2@2 c#2 e2 ~", AD: "~@2 g#2 f#2@2 e2 f#2 ~", AE: "c#2@4 ~@3 c#2, ~ g#1",
  AF: "b1@2 ~ b1!5", AG: "~@3 g#1@2 g#1 b1@2", AH: "~@6 c#2@3 ~ c#2@2 d#2@4", AI: "~@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 O P Q R S ~ T ~ U ~ V ~ W X W Y W Y W Z AA AB ~ AC ~ AD ~ AE AF AG AH AI D E AJ AK
  H AL AM AN L M AO AP O AQ Q R S ~ T ~ U ~ AE AR S AS AT AR AU AS AE ~ W X W Y W Y W Z AV AW AX AY AZ AW AX AY AZ AW AX
  AY AZ BA ~ BB BC BD BE BF BG ~ BH BI BG BJ BK BL BG ~ BM ~ BG ~ BK AR BG AS BK
>`.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] ~@3 a3@4 [c#5,e5] ~ a3@2, ~@2 g#5 ~@3 a5 ~", O: "e3@4 [b4,e5,g#5] ~@3 a3@4 [c#5,e5,a5] ~ a3@2",
  P: "~@4 [b4,e5,g#5] ~@7 [c#5,e5,a5] ~@3, ~ a3", // E A
  Q: "e3@4 [b4,e5,g#5] ~ [e3,b4,e5,g#5]@3 ~ [e3,b4,e5,g#5]@3 ~ [e3,b4,e5,g#5] ~", R: "[b4,e5,g#5] ~@15, e3@3 ~@13",
  S: "[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
  T: "[e4,b4,e5,g#5]@7 ~ [b4,d#5,f#5]@4 ~@2 [b4,e5,g#5]@2", // E B E
  U: "[g#4,c#5,e5]@3 ~ [g#4,b4,d#5]@2 ~ [c#4,g#4,c#5,e5], c#4@4 g#3@3 ~", // C#m G#m C#m
  V: "[b4,e5,g#5]@3 ~ [b4,d#5,f#5]@2 ~ [e4,b4,e5,g#5], e4@4 b3@3 ~", W: "e3 g#3", X: "a3@6 c#4@6 e4@3 ~",
  Y: "a3@3 c#4@3 e4@2", Z: "b3@3 d#4@3 f#4@2", AA: "b3 ~@7",
  AB: "[g#4,c#5,e5]@5 ~@3 [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
  AC: "[e4,b4,e5,g#5]@7 ~ [b4,d#5,f#5]@4 ~@2 [e3,b4,e5,g#5]@2", // E B E
  AD: "[g#4,c#5,e5]@5 ~@3 [g#4,b4,d#5]@4 ~@2 [c#4,g#4,c#5,e5]@2, c#4@4 g#3@3 ~", // C#m G#m C#m
  AE: "[b4,e5,g#5]@3 ~ [b4,d#5,f#5]@2 ~ [e3,b4,e5,g#5], e4@4 b3@3 ~", AF: "~@3 b3@3 b3@2",
  AG: "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
  AH: "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
  AI: "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
  AJ: "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
  AK: "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
  AL: "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
  AM: "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
  AN: "e3 ~ e3@2 [b4,e5,g#5] ~ [b4,e5,g#5] ~ a3 ~ a3@2 [c#5,e5,a5] ~ [c#5,e5,a5] ~", // E A
  AO: "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] ~", // B
  AP: "e3@4 [b4,e5] ~@3 a3@4 [c#5,e5,a5] ~ a3@2, ~@2 g#5 ~@5", AQ: "~@4 [b4,e5,g#5] ~@7 [c#5,a5] ~@3, ~ a3, ~@6 e5 ~",
  AR: "~@2 c#4 e4@2 c#4 e4 ~", AS: "~@2 g#4 f#4@2 e4 f#4 ~",
  AT: "[b4,e5,g#5]@3 ~ [b4,d#5,f#5]@2 ~ [b4,e5,g#5], e4@4 b3@3 ~", // E B E
  AU: "[g#4,c#5,e5]@3 ~ [g#4,b4,d#5]@2 ~ [c#4,g#4,c#5,e5], c#4 g#3", AV: "b3@2 ~ b3!2 ~ b3!2", AW: "e3@5 ~ e3@2 a3@7 ~",
  AX: "b3@3 ~@7 b3@3 ~ b3@2", AY: "~@6 e3@2 a3@7 ~", AZ: "~@6 b3@2 ~@2 b3@3 ~@3", BA: "~@8 a3@5 ~@3",
  BB: "e3@2 ~@2 a3@2 ~ a3", BC: "e3@4 ~@4 a3@5 ~ a3@2", BD: "~ a3", BE: "e3@4 ~@2 e3@2 ~@2 e3@3 ~ e3 ~",
  BF: "e3@3 ~@13", BG: "c#4@4 g#3@3 c#4", BH: "e4@7 ~@9", BI: "~@3 g#3@2 g#3 b3@2", BJ: "~@6 c#4@3 ~ c#4@2 d#4@4",
  BK: "e4@4 b3@3 e3", BL: "~@6 b3 ~ b3@3 ~ b3@3 ~", BM: "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 ~ M N O ~ M N
  O ~ M N O P Q F G 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: "~@6 b3@3 ~@7", N: "e3 ~@3", O: "b3@2 ~@5 b3", P: "e3@2 ~ e3 ~@3 a3", Q: "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 C ~ D ~ C ~ D ~@10 C ~ D ~ C ~ D ~@28 C ~ D ~ C ~ D ~@48
>`.pickRestart({
  A: "[c#2,g#3,c#4,e4]@7 ~ [g#1,g#3,b3,d#4]@5 ~ [c#2,g#3,c#4,e4]@2", // 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: "[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
  D: "[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