Strudelify

Think for Yourself

The Beatles

KeyG majorTempo132 bpm
0:00/0:00
// Think for Yourself — The Beatles
// 132 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 74 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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 · "PIANO (HT)"
const piano = note(`<
  A B C D E@3 F G D H@4 I@2 J K L M N O C D E@3 F G D H@4 I@2 J K L M N O C D P@3 F G D H@4 I@2 J K L M Q K I@2 J K L M
  R K S T R U
>`.pickRestart({
  A: "g3@3 ~ g3@3 ~ g3@3 ~ g3@3 ~", B: "g3@3 ~ g3@3 ~ g3@2 ~ g3@2 g#3@2 ~", C: "a3@3 ~ [c4,e4]@10 ~@2",
  D: "[d4,f4]@5 ~ [d4,f4,a4]@10", // Dm
  E: "[[d4,f4]@5 ~ [f4,a#4,d5]@2 [f4,a#4,d5]@2 [f4,a#4,d5]@3 ~ [f4,a#4,d5]@4 [e4,g4,c5]@3 ~ [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@3 ~ [e4,g4,c5]@4 [d4,g4]@3 ~ [d4,g4]@2 [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,b4,d5]@2]/3", // Dm A# C G5 G
  F: "[g4,b4,d5]!8", G: "[e4,a4,c5]!2 [e4,a4,c5]@3 ~@3",
  H: "[[d4,f4]@5 ~ [f4,a#4,d5]@2 [f4,a#4,d5]@2 [f4,a#4,d5]@3 ~ [f4,a#4,d5]@4 [e4,g4,c5]@3 ~ [e4,g4,c5]@4 [e4,g4,c5]@3 ~ [e4,g4,c5]@4 [d4,g4,b4]@3 ~ [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@3 ~ [d4,g4,b4]@4 [c4,e4,a4]@3 ~ [c4,e4,a4]@10]/4", // Dm A# C G Am
  I: "[[e4,g4]@3 ~ e4@3 ~ e4@5 ~ [c4,e4,g4]@4 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2]/2", // Em C
  J: "[b3,d4,g4]@3 ~ d4@3 ~ [d4,g4]@5 ~ g4@2", K: "[b3,d4]!8", L: "[a#3,d#4,g4]@3 ~ d#4@3 ~ d#4@3 ~ d#4@3 ~",
  M: "[c4,f#4]@2 d4@2 d4@2 d4@2 [c4,f4]@3 ~ [c4,g4]@3 ~", // Cdim F5 C5
  N: "d4@3 ~ [a#3,d4]@2 [a#3,d4]@2 [a#3,d4]@2 [a#3,d4]@2 [a#3,d4]@2 [a#3,d4]@2", // A#
  O: "[b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 g3@3 ~ g#3@2", // Bm
  P: "[[d4,f4]@5 ~ [f4,a#4,d5]@2 [f4,a#4,d5]@2 [f4,a#4,d5]@3 ~ f4@2 f4@2 [e4,g4,c5]@3 ~ [e4,g4,c5]@2 [e4,g4,c5]@2 [e4,g4,c5]@3 ~ [e4,g4,c5]@4 [d4,g4]@3 ~ [d4,g4]@2 [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,b4,d5]@2 [g4,b4,d5]@2, ~@7 [a#4,d5]@2 ~@15]/3", // Dm A# C G5 G A#
  Q: "d4@3 ~ [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@2 [b3,d4]@2", // Bm
  R: "[c4,e4]@3 ~ [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2 [c4,e4]@2", // C
  S: "[a#3,d#4]@3 ~ d#4@3 ~ [d#4,a#4]@3 ~ [d#4,g4]@3 ~", T: "c4@3 ~ c4@3 ~ [c4,f#4]@3 ~ [c4,g4]@3 ~",
  U: "[b3,d4]!4 ~@4", // Bm
})).s("gm_piano").gain(0.48)

// bass · slap bass 1 · "BASS (Slap)"
const bass = note(`<
  A B C D E F G H C I J K L M N O P@2 Q R S T C D E F G H C I J K L M N O P@2 Q R S T C D E F G H C I J K L M N O P@2 Q
  R U V N O P@2 Q R W X Y Z AA AB
>`.pickRestart({
  A: "g2 ~ g2 ~ g2 ~ g2 ~", B: "g2@2 ~@2 g2@2 ~@2 g2@2 ~ g2@2 g#2@2 ~", C: "a2@6 ~@2 a2@3 ~ a2@3 ~",
  D: "d3@4 e3 d3 ~ c3", E: "a#2@6 ~@2 a#2@3 ~ a#2@3 ~", F: "c3@6 ~@2 c3@3 ~ c3@3 ~", G: "g2@6 ~@2 g2@2 g2@2 g2@3 ~",
  H: "g2@10 g2@3 ~ g#2@2", I: "d3@6 ~@2 e3@2 ~ d3@2 c3@2 ~", J: "a#2 ~@6 a#2", K: "c3@2 ~@5 c3", L: "g2 ~@6 g2",
  M: "a2@3 ~@11 g2@2", N: "c2@3 ~ e2@2 ~@2 g2 ~ g2@2 ~@2 e2@2", O: "c2@3 ~ a#2@2 ~@2 a2@2 g2@2 e2@2 g2 ~",
  P: "[g2@3 ~ b2@2 ~@2 g2@2 b2@2 ~@2 g2@4 ~@4 f2@2 d2@2 c2@3 ~ c2 ~]/2", Q: "c2@5 ~@7 g#2@3 ~", R: "d2@3 ~@9 d2@2 g2@2",
  S: "~ a#2@7", T: "d2@2 f2@3 ~ g2@4 g2@3 ~ g#2@2", U: "g2@3 ~ g2@10 d2@2", V: "g2@3 ~ g2@3 ~ g2@2 d2@2 b1@2 g1@2",
  W: "c2@3 ~ c2@3 ~ c2@2 c2@3 ~ c2@2", X: "g2@3 ~ g2@3 ~ g2@2 g2@3 ~ g2@2", Y: "a#2@10 a#2@3 ~ d#2@2",
  Z: "d2@10 d2@2 d2@3 ~", AA: "c2@3 ~ a#2@3 ~ a#2@2 g2@2 a#2@3 ~", AB: "g2 d2 f2 g2 ~@4",
})).s("gm_slap_bass_1").gain(0.64)

stack(piano, bass)

More by The Beatles