Strudelify

You Won't See Me

The Beatles

KeyA majorTempo120 bpm
0:00/0:00
// You Won't See Me — The Beatles
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 9 "Rythm Gtr Muted" acoustic guitar steel (copy of ch 3 "Rythm Gtr Muted" overdriven guitar)
// note: Full arrangement: all 114 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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@2 B C@4 D@7 B E A@4 B C@4 D@7 B E A@4 F G H I J@2 K L B C@4 M@6 B@2 N A@4 F G H I J@2 K L B C@4 M@6 B@2 N A@4 B C@20
  O@3
>`.pickRestart({
  A: "[d2 f#2 a2 [a2,a3,c#4]@13, [a3,d4]@3 ~@13]/2", B: "[a2,a3,e4]@2 [a2,a3,e4]@2 [a2,a3,e4] [a2,a3,e4]@2 [a2,a3,e4]",
  C: "[b2@2 [b2,a3,d#4]@2 [b2,a3,c#4] [a3,d#4]@2 ~ d3@2 [d3,a3,d4]@2 [d3,a3,b3] [a3,d4]@2 ~ a2@2 a2@2 [a2,a3,c#4] [a3,d4] [a3,d#4] ~ a2@2 [a2,a3,e4]@2 [a2,a3,e4] [a2,a3,e4]@2 [a2,a3,e4], ~@5 b2@3 ~@5 d3@3 ~@5 a2@3 ~@8, ~@7 [a3,d4]@3 ~@5 [a3,c#4]@5 ~@3 [a3,e4]@3 ~@6]/4", // B7 F#m Adim D5 Bm7 D5 A D5 …
  D: "[b2@2 [b2,a3,d#4]@2 [b2,a3,c#4] [a3,d#4]@2 ~ d3@2 [d3,a3,d4]@2 [d3,a3,b3] [a3,d4]@2 ~ a2@2 a2@2 [a2,a3,c#4] e4 ~@2 a2@2 [a2,e4,g4]@2 [a2,e4,g4] [e4,g4]@2 ~ d3@2 [d3,d4,f#4]@2 d3 [d4,f#4]!2 d3 d3@2 [d3,d4,f4]@2 [d3,d4,f4] [d3,d4,f4]@2 d3 a2@2 a2@2 a2@2 [a2,c#4,e4]!2, ~@5 b2@3 ~@5 d3@3 ~@13 a2@3 ~@5 d3@2 ~@17, ~@7 [a3,d4]@3 ~@5 [a3,c#4]@5 ~@3 [e4,g4]@3 ~@5 [d4,f#4]@3 ~@5 [d4,f4]@3 ~@5 [c#4,e4]@3 [c#4,e4]@4 ~@2]/7", // B7 F#m Adim D5 Bm7 D5 A A7 …
  E: "b2@2 [b2,a3,d#4]@2 [b2,a3,c#4] [b2,a3,d#4]@3", F: "[b2,f#3,b3,d4]!4", G: "[d3,f3,a3,d4]!4", H: "[d3,f3,g#3,d4]!4",
  I: "[a2,e3,a3,c#4]!4", J: "[b2,f#3,a3,d#4]!4", K: "[e3,a3,d4,f#4]!4", L: "[e3,g#3,b3,e4]!4",
  M: "[b2@2 [b2,a3,d#4]@2 [b2,a3,c#4] [a3,d#4]@2 ~ d3@2 [d3,a3,d4]@2 [d3,a3,b3] [a3,d4]@2 ~ a2@2 a2@2 [a2,a3,c#4] e4 ~@2 a2@2 [a2,e4,g4]@2 [a2,e4,g4] [e4,g4]@2 ~ d3@2 [d3,d4,f#4]@2 d3 [d4,f#4]!2 d3 d3@2 [d3,d4,f4]@2 [d3,d4,f4] [d3,d4,f4]@2 [d3,c#4,e4], ~@5 b2@3 ~@5 d3@3 ~@13 a2@3 ~@5 d3@2 ~@9, ~@7 [a3,d4]@3 ~@5 [a3,c#4]@5 ~@3 [e4,g4]@3 ~@5 [d4,f#4]@3 ~@5 [d4,f4]@3 ~@6]/6", // B7 F#m Adim D5 Bm7 D5 A A7 …
  N: "[b2,a3,d#4]@2 [b2,a3,d#4]@2 [b2,a3,c#4] [b2,a3,d#4]@3", // B7 F#m B7
  O: "[b2@2 [b2,a3,d#4]@2 [b2,a3,c#4] [a3,d#4]@2 ~ d3@2 [d3,a3,d4]@2 [d3,a3,b3] [a3,d4]@2 ~ a2@2 a2@2 [a2,a3,c#4] [a3,d4] [a3,d#4] [a3,e4], ~@5 b2@3 ~@5 d3@3 ~@5 a2@3, ~@7 [a3,d4]@3 ~@5 [a3,c#4]@5 ~@4]/3", // B7 F#m Adim D5 Bm7 D5 A D5 …
})).s("gm_piano").gain(0.66).pan(0.4)

// bass · electric bass finger · "Bass Fretless"
const bass = note(`<
  A@2 B C D E F C G H I G J K L M N O N O B C D E F C G H I G J K L M N O N O P Q@2 R P S T@2 U C D V K C D W X D Y Z K
  C N O N O P Q@2 R P S T@2 U C D V K C D W X D Y Z K C N O N O B M D AA U C D V B M D AA U C D V B M D AA U C D V
>`.pickRestart({
  A: "[d2 f#2 a2 a1@7 g#2@2 f#2@2 e2@2]/2", B: "a1 c#2 e2 a2@2 a2 c#2 e2", C: "b1 d#2 f#2 b2@2 a2 g#2 f#2",
  D: "d2 f#2 a2 d3@2 a2 f#2 a2", E: "a1 c#2 e2 a2@2 e2 c#2 a2", F: "a1 c#2 e2 a2@2 e2 d2 c#2",
  G: "d2 f#2 a2 d3@2 c#3 b2 a2", H: "a1 c#2 e2 a2@3 ~@2", I: "a1 c#2 e2 a2@2 a2 a1 c#2", J: "d2!2 a2 d3@2 c#3 b2 a2",
  K: "a1 c#2 e2 a2@2 f#2 e2 c#2", L: "a1 c#2 e2 a2@2 c#2 e2 a2", M: "b1 d#2 f#2 b2@3 ~@2", N: "d2 f#2 a2 a1@5",
  O: "a2 g#2 f#2 e2", P: "b1@2 b1@2 b1!2 b1@2", Q: "d2@2 d2@2 d2!2 d2@2", R: "a2@2 a2@2 a2!2 a2@2", S: "b1@2 b1@2 b1!4",
  T: "e2@2 e2@2 e2!2 e2@2", U: "a1@2 c#2 e2 a2@2 c#2 e2", V: "a1 c#2 e2 a2@2 f#2 c#2 e2", W: "a1 c#2 e2 a2@2 e2 c#2 a1",
  X: "a1 c#2 e2 a2@2 a2 f#2 e2", Y: "d2 f2 a2 d3@2 c#3 b2 a2", Z: "a1 c#2 e2 a2@2 a2 e2 f#2",
  AA: "a1 c#2 e2 a2@2 e2 c#2 e2",
})).s("gm_electric_bass_finger").gain(0.59)

// chords · overdriven guitar · "Rythm Gtr Muted"
const overdriven_guitar = note(`<
  A ~ B C D B@2 C D B E D F B@2 C A ~ A ~ B C D B@2 C D B E D F B@2 C A ~ A ~ G F H B C@2 I@2 B C D B@2 C D B E D F B@2
  C A ~ A ~ G F H B C@2 I@2 B C D B@2 C D B E D F B@2 C A ~ A ~ B C D B@2 C D B@2 C D B@2 C D B@2 C D B@2 C D B
>`.pickRestart({
  A: "[f#4,a4,d5] ~@2 [e4,a4,c#5] ~@4", B: "~@2 [e4,a4,c#5] ~@3 [e4,a4,c#5] ~",
  C: "~@2 [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~", D: "~@2 [f#4,a4,d5] ~@3 [f#4,a4,d5] ~",
  E: "~@2 [a4,c#5,e5] ~@3 [a4,c#5,e5] ~", F: "~@2 [f4,a4,d5] ~@3 [f4,a4,d5] ~", G: "~@2 [d4,f#4,b4] ~@3 [d4,f#4,b4] ~",
  H: "~@2 [b3,d4,g#4] ~@3 [b3,d4,g#4] ~", I: "~@2 [e4,g#4,b4] ~@3 [e4,g#4,b4] ~",
})).s("gm_overdriven_guitar").gain(0.35).pan(0)

// drums · kick
const kick = s("bd").struct(`<
  A B C@3 D C@3 D C@3 D C D A ~ A B C@3 D C@3 D C@3 D C D A ~ A B E@8 C@3 D C@3 D C@3 D C D A ~ A B E@8 C@3 D C@3 D C@3
  D C D A ~ A B E D C D C@3 D E D C D C@3 D E D C D C@3 D
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "~@4 x!4", C: "x ~@3 x!2 ~@2", D: "x", E: "x ~@3 x!2 ~ x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  ~ A B@3 C B@3 D B@3 E B D ~ F ~ A B@3 C B@3 D B@3 E B D ~ F ~ A B@11 C B@3 D B@3 E B@2 ~ F ~ A B@7 C B@3 C B@3 D B@3 E
  B@2 ~ F ~ A B D B C B@3 C B D B C B@3 C B D B C B@3 C
>`.pickRestart({
  A: "x!2 ~@2", B: "~ x ~ x", C: "~@4 x ~@3 x!4 ~@4", D: "~ x ~@2", E: "~@4 x ~@3 x!2 ~ x!4 ~", F: "x!4",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~ A ~@7 B ~@5 C ~@3 A ~@7 B ~@5 C ~@3 A ~@15 B ~@9 A ~@15 B ~@9 A ~ D ~@7 D ~@7 D ~@6
>`.pickRestart({
  A: "~@4 x!4", B: "~@8 x!2 ~ x!2 ~ x ~", C: "~@8 x!2 ~ x ~@4", D: "~@8 x!4 ~@4",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A B C@2 A B C@2 A B C@2 A B A ~ D ~ A B C@2 A B C@2 A B C@2 A B A ~ D ~ A E F@6 D B C@2 A B C@2 A B C@2 A B A ~ D ~
  A E F@6 A B C@2 A B C@2 A B C@2 A B A ~ D ~ A G A H A B C B A G A H A B C B A G A H A B C B A
>`.pickRestart({
  A: "x!4 ~@4", B: "~@2 x ~ x ~ x ~ x ~ x!2 ~@2 x ~", C: "x ~ x ~ x ~ x ~ x ~ x!2 ~@2 x ~", D: "x!8",
  E: "~@2 x ~ x ~ x ~ x!5 ~ x ~", F: "x ~ x ~ x ~ x ~ x!5 ~ x ~", G: "~ x!7", H: "~@2 x ~ x ~ x ~ x ~ x!5 ~",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@2 A@3 ~ A@3 ~ A@3 ~ A ~@5 A@3 ~ A@3 ~ A@3 ~ A ~@13 A@3 ~ A@3 ~ A@3 ~ A ~@13 A@3 ~ A@3 ~ A@3 ~ A ~@9 A@3 ~@5 A@3 ~@5
  A@3 ~
>`.pickRestart({
  A: "~@3 x",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@5 A ~@9 A ~@7 A ~@9 A ~@15 A ~@9 B ~@11 A ~@3 A ~@9 B ~@5 A ~ A ~@3 A ~ A ~ A ~@3 A ~ A ~ A ~@3 A
>`.pickRestart({
  A: "~@12 x!3 ~", B: "~@8 x!4 ~ x!2 ~",
})).gain(0.4)

// drums · crash
const crash = s("cr").struct(`<
  A ~ B ~@3 B ~@3 B ~@3 B ~ A ~ A ~ B ~@3 B ~@3 B ~@3 B ~ A ~ A ~ B ~@7 B ~@3 B ~@3 B ~@3 B ~ A ~ A ~ B ~@7 B ~@3 B ~@3
  B ~@3 B ~ A ~ A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~
>`.pickRestart({
  A: "x ~@2 x ~@4", B: "x",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A ~ B@3 ~ B@3 ~ B@3 ~ B ~ A ~ A ~ B@3 ~ B@3 ~ B@3 ~ B ~ A ~ A ~@9 B@3 ~ B@3 ~ B@3 ~ B ~ A ~ A ~@9 B@3 ~ B@3 ~ B@3 ~ B
  ~ A ~ A ~@5 B@3 ~@5 B@3 ~@5 B@3 ~
>`.pickRestart({
  A: "~@5 x!2 ~", B: "~@10 x!3 ~@3",
})).gain(0.25)

stack(piano, bass, overdriven_guitar, kick, snare, low_tom, hihat, open_hat, mid_tom, crash, tambourine)

More by The Beatles