Strudelify

Tell Me What You See

The Beatles

KeyG majorTempo132 bpm
0:00/0:00
// Tell Me What You See — The Beatles
// 132 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 7 "v" distortion guitar (copy of ch 1 "v" piano)
// note: Full arrangement: all 89 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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 · "v"
const piano = note(`<
  ~@3 A@2 B@2 A@2 C@2 D@2 E@2 D@2 E@2 A@2 B@2 A@2 C@2 D@2 E@2 D@2 E@2 F@2 G ~@5 A@2 B@2 A@2 C@2 D@2 E@2 D@2 E@2 F@2 G
  ~@5 A@2 B@2 A@2 C@2 D@2 E@2 D@2 E@2 F@2 H ~@3
>`.pickRestart({
  A: "[d4 [d5,g5]@2 [c5,e5]@2 [b4,d5]@2 [a4,c5]@2 [g4,b4]@2 [g4,b4]@3 ~@2]/2", B: "[e4 d4@2 g4@3 b4 b4@5 ~@4]/2",
  C: "[a4 g4@2 a#4 a4 g4@2 g4@5 ~@4]/2", D: "[a4 g4@2 e4@2 c4@2 d4@4 d4@3 ~@2]/2", E: "[a4 g4@2 b4@2 g4@2 g4@5 ~@4]/2",
  F: "[d5,f5,a5]!2", G: "[d5,f5,a5] [c5,e5,g5]@3 ~@4", H: "[c5,e5,g5]",
})).s("gm_piano").gain(0.2)

// chords · electric guitar clean · "g1"
const electric_guitar_clean = note("<A@4 ~@2 B@2 ~@10 B@2 ~@21 C@2 ~@3 B@2 ~@17 C@2 ~@3 B@2 ~@17>".pickRestart({
  A: "[~@7 [g2,b2,d3,g3,d4,g4]@8 [g2,b2,d3,g3,d4,g4]@8 [g2,b2,d3,g3,d4,g4]@8 ~]/4", // G
  B: "[~@7 [g2,b2,d3,g3,d4,g4]@8 ~]/2", C: "[g2,b2,d3,g3,b3,d4,g4]",
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.7)

// chords · piano · "g2"
const piano_2 = note(`<
  ~ A B C@2 D E F@2 G@2 H I H I H I J@2 C@2 D E F@2 G@2 H I H I H I J@2 K@2 L@2 ~@2 M N C@2 D E F@2 G@2 H I H I H I J@2
  K@2 L@2 ~@2 M N C@2 D E F@2 G@2 H I H I H I J@2 K@2 O@2 ~@2
>`.pickRestart({
  A: "~ b3 [b3,d4]!2 [g3,b3,d4] [b3,d4]!2 b3", B: "[g3,b3,d4,g4] [g3,b3,d4]!2 [b3,d4] [g3,b3,d4]!3 [b3,d4]",
  C: "[[g3,b3,d4,g4] [g3,b3,d4] [b3,d4] [g3,b3,d4,g4] [g3,g4] [e3,g4] [c3,e3,g3,g4] [d3,f#3,a3,d4,g4]@2 [a3,g4]!2 [g3,b3,d4,g4]@2 b3 ~ [b3,d4,g4]]/2", // G Bm G Em C D A7 G
  D: "[b3,d4]!4 [c4,d4,g4] [c4,d4] [c4,d4,g4] [g3,c4,d4]", // Bm Csus2 Gsus4
  E: "[g3,b3,d4] [b3,d4]!2 [g3,b3,d4] [b3,d4] [g3,b3,d4] [b3,d4,g4] [g3,b3,d4,g4]", // G Bm G Bm G
  F: "[[g3,b3,d4] [b3,d4] [g3,b3,d4] [b3,d4] [g3,c4,d4] [c4,d4] [g3,c4,d4,g4] [d3,f#3,a3,d4]@2 [d3,f#3,a3,d4,f#4]!2 [g2,b2,d3,g3,b3,d4,g4]@2 [d3,g3,b3,d4,g4]!2 [d3,b3,d4,g4]]/2", // G Bm G Bm Gsus4 Csus2 Gsus4 D …
  G: "[[c3,e3,g3,c4,d4,g4]!3 [d3,f#3,a3,d4,f#4]@2 [d3,f#3,a3,d4,f#4] [d3,a3,d4,f#4] [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4] [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!3]/2", // C D G
  H: "[c3,e3,g3,d4,g4]!8", I: "[g2,b2,d3,g3,d4,g4]!8",
  J: "[[c3,e3,g3,d4,g4]!3 [d3,f#3,a3,d4,f#4]@2 [d3,f#3,a3,d4,f#4]!2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4] [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!4]/2", // C D G
  K: "[g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]!3", L: "[c3,e3,g3,c4,e4]/2",
  M: "[g2,b2,d3,g3,b3,d4,g4]@5 [g2,b2,d3,g3,b3,d4,g4]!3", // G
  N: "[g2,b2,d3,g3,b3,d4,g4]@2 [g2,b2,d3,g3,b3,d4,g4]@3 [g2,b2,d3,g3,b3,d4,g4]!3", O: "[g2,c3,e3,g3,c4,e4]/2",
})).s("gm_piano").gain(0.12).pan(0.3)

// chords · piano · "g2" · soft notes
const piano_soft = note("<~ A B C D E F G ~@11 C D E F G ~@19 C D E F G ~@19 C D E F G ~@17>".pickRestart({
  A: "[g3,b3,d4,g4] [g3,d4,g4] [g3,g4]!2 g4 [g3,g4]!2 [g3,d4,g4]", B: "~ g4!2 [g3,g4] g4!3 [g3,g4]",
  C: "~ g4 [g3,g4] ~ [c3,e3,d4] [c3,g3,d4] d4 ~", D: "~ [d3,f#3,d4]!2 ~@2 [g3,d4,g4] [g3,b3,d4,g4] g3",
  E: "[g3,g4]!4 g3 [g3,g4] g3 g4", F: "g4 [g3,g4]!2 g4 [g3,g4] g4 g3 ~", G: "g4 [g3,g4] g4 [g3,g4] g4 [g3,g4] ~@2",
})).s("gm_piano").gain(0.07).pan(0.3)

// bass · synth bass 1 · "b"
const bass = note(`<
  ~ A@2 B C B D B C E F G A G A G A H A B C B D B C E D I J I J I J H K L@2 M@2 J N J@2 B C B D B C E D I J I J I J H K
  L@2 M@2 J N J@2 B C B D B C E D I J I J I J H K L@2 M@2 ~@2
>`.pickRestart({
  A: "g2@3 g2 d2@4", B: "g2!2 c2!2", C: "d2!2 g2!2", D: "g2!2 d2!2", E: "c2!2 d2!2", F: "g2@2 g2@2 d2@2 g2 d2",
  G: "c2@3 c2 g1@4", H: "c2@3 c2 d2@3 d2", I: "c2@3 c2 c2@4", J: "g2@3 g2 g2@4", K: "g2@6 g2@2 g2@7 f#2",
  L: "g2@4 g2@3 f#2 g2@4 g2@4", M: "c2/2", N: "d2@3 d2 d2@4",
})).s("gm_synth_bass_1").gain(0.2)

// chords · epiano1 · "ep"
const epiano1 = note("<~@37 A B C D E F ~@18 A B C D E F ~@18 A B G@2>".pickRestart({
  A: "~@5 g3 [c4,e4] [d4,f4]", B: "[e4,g4]@3 [d4,f4]@2 [c4,e4]@3 [d4,f4]@4 [c4,e4]@4",
  C: "[c4,e4]@2 [b3,d4]@6 [c4,e4]@3 [c4,e4]@2 [b3,d4]@3", // C Bm C Bm
  D: "[b3,d4]@2 [a3,c4]@6 [a3,d4]@2 ~ b3@2 [a3,c4]@3, ~@10 d4@3 ~@3", E: "[a3,c4]@3 [g3,b3]@8 ~@5",
  F: "~@2 d4 [b4,d5]@12 ~, g3", G: "[[g3,b3,d4]@3 ~]/2",
})).s("gm_epiano1").gain(0.25)

// drums · kick
const kick = s("bd").struct("<~ A@36 B ~ A@22 B ~ A@22 B ~@3>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x",
})).gain(0.2)

// drums · rim
const rim = s("rim").struct("<~ [~ x ~ x]!36 ~@4 [~ x ~ x]!20 ~@4 [~ x ~ x]!20 ~@4>").gain(0.2)

// drums · snare
const snare = s("sd").struct(`<
  ~@39
  [~@3 x!2 ~@6 x!2 ~@3]
  [~@3 x!2 ~@5 x!3 ~ x ~]
  ~@22
  [~@3 x!2 ~@6 x!2 ~@3]
  [~@3 x!2 ~@5 x!3 ~ x ~]
  ~@24
>`).gain(0.2)

// drums · hihat
const hihat = s("hh").struct("<~ A@36 B ~@3 A@20 B ~@3 A@20 ~@4>".pickRestart({
  A: "x!8", B: "x",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct("<~@85 x ~@3>").gain(0.2)

stack(piano, electric_guitar_clean, piano_2, piano_soft, bass, epiano1, kick, rim, snare, hihat, crash)

More by The Beatles