Strudelify

Baby It's You

The Beatles

KeyG majorTempo122 bpm
0:00/0:00
// Baby It's You — The Beatles
// 122 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(122/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.

// other · electric guitar muted · "Lead Gtr Muted"
const electric_guitar_muted = note("<~@47 A B C D@2 E F G@2 ~@27>".pickRestart({
  A: "~@4 [g2,g3] [a2,a3] [g2,g3] [f#2,f#3]", B: "[e2,e3]@8 ~@2 [g2,g3]@3 [c3,c4]@3",
  C: "[b2,b3]@3 [a2,a3]@7 [g2,g3]@3 [a2,a3]@3", D: "[[g2,g3]@12 [g2,g3] [a2,a3] [g2,g3] [f#2,f#3]]/2",
  E: "[e2,e3]@3 [e2,e3] [g2,g3]@3 [c3,c4]", F: "[d3,d4] [a2,a3]@3 [g2,g3]@2 [a2,a3]@2",
  G: "[[b2,b3] [c3,c4] [b2,b3] [a2,a3] [b2,b3]@12]/2", // B C B A B
})).s("gm_electric_guitar_muted").gain(0.64).pan(1)

// chords · acoustic guitar nylon · "Rythm Gtr Nylon Gt.2"
const acoustic_guitar_nylon = note(`<
  A B A B A C D E F@2 G@2 F H I J K@2 L M N O P Q I R S D E F@2 G@2 F H I J K@2 L M N O P Q I R T U V W X Y Z AA@2 I J
  K@2 L M N O P Q I R J Q J Q J Q J Q J Q J Q J Q ~
>`.pickRestart({
  A: "~@2 [g3,b3,g4] [g3,b3,g4]@2 [g3,b3,g4] [g3,b3,g4]@2, ~@2 [g2,b2,d3]@3 [g2,b2,d3]@3", // G
  B: "[e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@2 [g3,b3,e4] [g3,b3,e4]@2, ~@5 [e2,b2,e3]@3", // Em E5
  C: "[e2,b2,e3,g3,b3,e4] ~@7", D: "[c3,e3,g3,c4,e4]@3 [c4,e4]@2 [c4,e4] [c3,e3,g3,c4,e4]@2, ~@3 [c3,e3,g3]@3 ~@2",
  E: "[c3,e3,g3,c4,e4]@3 [c4,e4]@2 [c4,e4]!3, ~@3 [c3,e3,g3]@3 [c3,e3,g3]@2", // C
  F: "[g3,b3,g4]!2 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g3,b3,g4]!2, [g2,b2,d3] ~@2 [g2,b2,d3]", // G
  G: "[c4,e4]@2 [c4,e4] [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4] [c4,e4]!2, [c3,e3,g3]@3 ~@3 [c3,e3,g3]@2", // C
  H: "[g2,b2,d3,g3,b3,g4]@3 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2", // G
  I: "[e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@2", // Em
  J: "[g3,b3,e4]@2 [g3,b3,e4] [g3,b3,e4]@2 [g3,b3,e4]!3, [e2,b2,e3]@3 [e2,b2,e3]@3 [e2,b2,e3]@2", // Em E5
  K: "[a3,c4,e4]@2 [a3,c4,e4] [a3,c4,e4]@2 [a3,c4,e4]!3, [e2,a2,e3]@3 [e2,a2,e3]@3 [e2,a2,e3]@2", // Am A5
  L: "[g2,b2,d3,g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4] [g3,b3,g4]!2, ~@3 [g2,b2,d3]", // G
  M: "[e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4] [g3,b3,e4]!2, ~@3 [e2,b2,e3]", // Em E5
  N: "[c4,e4]@2 [c4,e4] [g3,c4,e4]@2 [g3,c4,e4] [c3,e3,g3,c4,e4]@2, [c3,e3,g3]@3 [c3,e3]@3 ~@2", // C
  O: "[a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4,f#4]@2 [a3,d4,f#4]!3, [a2,d3]@3 [a2,d3]@3 [a2,d3]@2", P: "[a2,d3,a3,d4,f#4] ~@7",
  Q: "[g3,b3,g4]@2 [g3,b3,g4] [g3,b3,g4]@2 [g3,b3,g4]!3, [g2,b2,d3]@3 [g2,b2,d3]@3 [g2,b2,d3]@2", // G
  R: "~@2 [g2,b2,d3,g3,b3,g4] [g3,b3,g4]@2 [g3,b3,g4]!3, ~@3 [g2,b2,d3]@3 [g2,b2,d3]@2", // G
  S: "[e2,b2,e3,g3,b3,e4]@3 [e2,b2,e3,g3,b3,e4]@5", // Em
  T: "[e2,b2,e3,g3,b3,e4]@2 ~ [g3,b3,e4] [e2,b2,e3,g3,b3,e4]@2 [e2,b2,e3,g3,b3,e4]@10, ~ [e2,b2,e3,g3,b3,e4] ~@6", // Em
  U: "~@2 [g3,c4,e4]!2 [c3,e3,g3,c4,e4]@2 [c3,e3,g3,c4,e4]@2, ~ [c3,e3] ~@2", // C
  V: "[a2,d3,a3,d4,f#4]@3 [a3,d4,f#4]@2 [a3,d4,f#4]!3, ~@3 [a2,d3]@3 [a2,d3]@2", // D D5
  W: "[g2,b2,d3,g3,b3,g4]@2 ~ [g3,b3,g4] [g2,b2,d3,g3,b3,g4]@2 [g3,b3,g4]@4 [g3,b3,g4]@2 [g3,b3,g4]@2 [g3,b3,g4]@2, ~ [g2,b2,d3,g3,b3,g4] ~ [g2,b2,d3]@3 [g2,b2,d3]@2", // G
  X: "[g2,b2,d3,g3,b3,g4]@3 [g2,b2,d3,g3,b3,g4]@3 [g2,b2,d3,g3,b3,g4]@10", // G
  Y: "[c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]@3 [c3,e3,g3,c4,e4]@2", // C
  Z: "[a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4] [a3,d4,f#4] [a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4]@4 [a2,d3,a3,d4,f#4]@2 [a2,d3,a3,d4,f#4]@4", // D
  AA: "[g2,b2,d3,g3,b3,g4]@2 ~ [g3,b3,g4] [g3,b3,g4]@2 [g3,b3,g4]@2 [g2,b2,d3,g3,b3,g4]@4 [g3,b3,g4]@2 [g3,b3,g4]@2, ~ [g2,b2,d3,g3,b3,g4] [g2,b2,d3]@2 ~@2 [g2,b2,d3]@2", // G
})).s("gm_acoustic_guitar_nylon").gain(0.3).pan(0.1)

// bass · fretless bass · "Fretless E. Bass"
const bass = note(`<
  A B A B A C D E F G H E I J K L M N J L O P Q R S A S D E F G H E I J K L M N J L O P Q R S A S O T I G O U F V K L M
  N J L O P Q R S A B A B A B A B A B A B A B A ~
>`.pickRestart({
  A: "g2@3 d2@3 g2@2", B: "e2@3 b2@3 e2@2", C: "e2 ~@7", D: "c2@3 g2@3 g2 b1", E: "c2@3 g2@3 g2 d2",
  F: "g2@3 g2@3 d2 f#2", G: "g2@3 g2@3 g2@2", H: "c2@3 g2@3 g2@2", I: "g2@3 d2@3 d2 f#2", J: "g2@3 g2@2 d2 g2 f#2",
  K: "e2@3 e2@3 b2@2", L: "e2@3 e2@3 e2@2", M: "a2@3 a2@3 e2 g2", N: "a2@3 a2@3 a2 d2", O: "c2@3 g2@3 c2@2",
  P: "d2@3 a2@3 a2@2", Q: "d2 ~@7", R: "g2@3 d2@3 g2 f#2", S: "e2@3 b1@3 e2@2", T: "d2@3 a2@2 d2 e2 f#2",
  U: "d2@3 a2@3 d2 f#2", V: "g2@3 g2 b1 d2 g2 f#2",
})).s("gm_fretless_bass").gain(0.52).pan(0.6)

// drums · kick
const kick = s("bd").struct("<A@5 B A@16 B A@20 B A@20 B A@17 ~>".pickRestart({
  A: "x ~@2 x ~@4", B: "x",
})).gain(0.49)

// drums · snare
const snare = s("sd").struct("<A@5 ~ A@13 B A@2 ~ A@17 B A B ~ A@3 C@9 A B A@3 B A B ~ A@3 C A@13 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x ~ x!2", C: "~@2 x ~@3 x!2",
})).gain(0.44)

// drums · hihat
const hihat = s("hh").struct(`<
  A B A B@2 ~ C A B A@11 C B ~ C A@2 B A B A@9 B A@2 C A ~ A@4 D A@3 D A@3 C A C A B A C A ~ C B A D A B A@2 B A@2 B A B
  A@3 ~
>`.pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2", C: "~ x!7", D: "x ~ x ~ x ~ x ~ x ~ x!3 ~ x ~",
})).gain(0.38)

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

// drums · crash
const crash = s("cr").struct("<~@5 A@2 ~@13 A ~ A@2 ~@17 A ~ A ~@12 A ~ A ~@3 A ~ A@2 ~@17>".pickRestart({
  A: "x",
})).gain(0.38)

stack(electric_guitar_muted, acoustic_guitar_nylon, bass, kick, snare, hihat, open_hat, crash)

More by The Beatles