Strudelify
Cry Baby Cry cover art

The Beatles

Cry Baby Cry

The Beatles

KeyE minorTempo75 bpm
0:00/0:00
// Cry Baby Cry — The Beatles
// 75 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 8 "Lead Guitar" named as a guitar, played on overdriven guitar (its lead 2 sawtooth patch is not one)
// note: Full arrangement: all 51 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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 · bandoneon · "Accordion"
const bandoneon = note("<~ A B C@2 ~@46>".pickRestart({
  A: "~@10 g3 a3 b3 g3 b3 d4", B: "e4 f#4 g4 f#4 e4 d4 b3 g3 a3 b3 c#4 d4 e4 d4 c#4 b3",
  C: "[[c3,f3,a3]@2 [b2,g3,b3] [c3,a3,c4] [e2,g3,b3]@8 ~@4, f2 ~@3]/2", // F Em F Em
})).s("gm_bandoneon").gain(0.64)

// chords · piano
const piano = note(`<
  ~@5 A B C D E F G H I J K I J L M N O P C Q B C D E F G H I J K I J L M N R S T U V W X Y Z@3
>`.pickRestart({
  A: "~@4 [c2,c3,g3,a#3,c4] c3 [a#3,d4] g3, ~@3 [c2,c3]", B: "[b3,d4] g3 [b3,d4] g3 [e2,e3]@4, g1 ~",
  C: "[d#2,d#3] [d2,d3]", D: "[c#2,c#3]@4 [c2,c3] c3 [a#3,d4] g3, ~@2 [g3,a#3,c4] [c2,c3]",
  E: "[b3,d4]@2 ~@4 [g3,b3,d4]@2 [c4,e4]@2 a3@2 [g1,g2,c4,e4]@2 ~ [f#1,f#2], [g1,g2]!2 [a1,a2] ~, ~ g3@2 ~@4 a3", // Bm G C F# G A
  F: "[a3,c4]@2 f3@2 g3@2 a3@2 [b3,d4]@2 g3@2 [g1,g2,b3,d4]@2 ~ [f1,f2], [f1,f2]@2 [f1,f2]@2 [g1,g2]@2 ~ g3", // Am Bm G F G
  G: "[b3,e4]@2 g3@2 [b3,e4]@2 g3@2 [c#4,e4]@2 a3@2 [c#4,e4]@2 a3 g3, [e1,e2]!2 [a1,a2]!2", // E5 C#m E A
  H: "[a3,c4] f3 [g3,c4] c4 [b3,d4] g3 [b3,d4] g3, [f1,f2]!2 [g1,g2]!2", I: "[e2,e3] [d#2,d#3]", J: "[d2,d3] [c#2,c#3]",
  K: "[c2,c3,g3,a#3,c4] c3 [a#3,d4] g3 [b3,d4] g3 [b3,d4] g3, ~ [c2,c3] g1@2", // C7 A# Bm C
  L: "[c2,c3] c3 [a#3,d4] g3 [b3,d4] ~@2 [g3,b3,d4], [g3,a#3,c4] [c2,c3] [g1,g2]!2, ~@5 g3@2 ~", // C A# Bm G C7 C G
  M: "[c4,e4]@2 a3@2 [g1,g2,c4,e4]@2 ~ [f#1,f#2] [a3,c4]@2 f3@2 g3@2 a3@2, [a1,a2]@2 ~ a3 [f1,f2]@2 [f1,f2]@2", // C F# Am A F
  N: "[b3,d4]@2 g3@2 [g1,g2,b3,d4]@2 ~ [f1,f2] [b3,e4]@2 g3@2 [b3,e4]@2 g3@2, [g1,g2]@2 ~ g3 [e1,e2]@2 [e1,e2]@2", // Bm G F E5 G E
  O: "[c#4,e4]@2 a3@2 [c#4,e4]@2 a3 g3 [a3,c4]@2 f3@2 [g3,c4]@2 c4@2, [a1,a2]!2 [f1,f2]!2", // C#m Am C5 A F
  P: "[b3,d4] g3 [b3,d4] g3 [e2,e3]@4, [g1,g2]!2 ~@2", Q: "[c#2,c#3]@4 [c2,c3,g3,a#3,c4] c3 [a#3,d4] g3, ~@3 [c2,c3]",
  R: "[c#4,e4]@2 a3@2 [c#4,e4]@2 a3 g3 [a3,c4]@2 f3@2 [a3,c4]@2 f3@2, [a1,a2]!2 [f1,f2]!2", // C#m Am A F
  S: "[g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 [a3,c4,e4]@2 [a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 ~ [g1,g2], ~@4 [a1,a2]@2 ~ [a3,c4,e4]", // G Am G A Am
  T: "[f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [g3,b3,d4]@2 [g3,b3,d4]@2 [a1,a2,g3,b3,d4]@2 ~ [f1,f2], [f1,f2]@2 [f1,f2]@2 [a1,a2]@2 ~ [g3,b3,d4]", // F G F A G
  U: "[g3,b3,e4]@2 [g3,b3,e4]@2 [g3,b3,e4]@2 [g3,b3,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 a3 g3, [e1,e2]!2 [g1,g2]!2", // Em A E G
  V: "[f3,a3,c4]!4 [g1,g2,g3,b3,d4]!4, [f1,f2]!2 ~@2", // F G F
  W: "[a3,c4,e4]@2 [a3,c4,e4]@2 [a1,a2,a3,c4,e4]@2 ~ [g1,g2] [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, [a1,a2]@2 ~ [a3,c4,e4] [f1,f2]@2 [f1,f2]@2", // Am G F A Am F
  X: "[g3,b3,d4]@2 [g3,b3,d4]@2 [g1,g2,g3,b3,d4]@2 ~ [f1,f2] [g3,b3,e4]@2 [g3,b3,e4]@2 [g3,b3,e4]@2 [g3,b3,e4]@2, [g1,g2]@2 ~ [g3,b3,d4] [e1,e2]@2 [e1,e2]@2", // G F Em G E
  Y: "[a3,c#4,e4]@2 [a3,c#4,e4]@2 [a3,c#4,e4]@2 a3 g3 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2 [f3,a3,c4]@2, [g1,g2]!2 [f1,f2]!2", // A F G F
  Z: "[[e1,e2,g3,b3]@5 ~]/3", // Em
})).s("gm_piano").gain(0.45)

// chords · acoustic guitar nylon · "Accoustic Gtr"
const acoustic_guitar_nylon = note(`<
  A B C D E F G E F H I J I K L M K L N O P Q R E F G E F H I J I K L M K L N O P Q S T U T V G W X@3
>`.pickRestart({
  A: "[g2,b2,d3,g3]@2 [g2,b2,d3,g3]!4 [g2,b2,d3,g3]@2 [a1,a2,c3,e3]@2 [a1,a2,c3,e3]@2 [a1,a2,c3,e3]@2 [a1,a2,c3,e3]@2", // G Am
  B: "[f2,a2,c3,f3]@2 [f2,a2,c3,f3]!4 [f2,a2,c3,f3]@2 [g2,b2,d3,g3]@2 [g2,b2,d3,g3]@2 [g2,b2,d3,g3]@2 [g2,b2,d3,g3]@2", // F G
  C: "[e2,g2,b2,e3]@2 [e2,g2,b2,e3]!4 [e2,g2,b2,e3]@2 [a1,a2,c#3,e3]@2 [a1,a2,c#3,e3]@2 [a1,a2,c#3,e3]@2 [a1,a2,c#3,e3]@2", // Em A
  D: "[f2,a2,c3,f3]!4 [e3,g3,b3,e4]!4", E: "[e3,g3,b3,d4,e4]!8",
  F: "[e3,g3,b3,c#4,d#4,e4] [e3,g3,b3,c#4,e4]!3 [c3,g3,a#3,c4,e4]!4", G: "[g3,b3,d4,g4]!4 [e3,g3,b3,e4]!4",
  H: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]!2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]!2", // G Am
  I: "[f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2", // F G
  J: "[e3,g3,b3,e4]@2 [e3,g3,b3,e4]!2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]!2 [g3,a3,c#4,e4]@2 [g3,a3,c#4,e4]!2 [g3,a3,c#4,e4]@2 [g3,a3,c#4,e4]!2", // Em A7
  K: "[e3,g3,b3,e4]!4 [e3,g3,b3,d4,e4]!4", L: "[e3,g3,b3,d4,e4]!4 [e3,g3,b3,c#4,d#4,e4] [e3,g3,b3,c#4,e4]!3",
  M: "[c3,g3,a#3,c4,e4]!4 [g3,b3,d4,g4]!4", // C7 G
  N: "[c3,g3,a#3,c4,e4]@2 [c3,g3,a#3,c4,e4]@2 [c3,g3,a#3,c4,e4]@2 [c3,g3,a#3,c4,e4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2", // C7 G
  O: "[a3,c4,e4,a4]@2 [a3,c4,e4,a4]!2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]!2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2", // Am F
  P: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]!2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]!2", // G Em
  Q: "[g3,a3,c#4,e4]@2 [g3,a3,c#4,e4]!2 [g3,a3,c#4,e4]@2 [g3,a3,c#4,e4]!2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2 [f3,a3,c4,f4]@2 [f3,a3,c4,f4]!2", // A7 F
  R: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2 [e3,g3,b3,e4]@2", // G Em
  S: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]!2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]@2 [a3,c4,e4,a4]@2", // G Am
  T: "[f3,a3,c4,f4]!4 [g3,b3,d4,g4]!4", // F G
  U: "[e3,g3,b3,e4]!4 [a3,c#4,e4,g4,a4] [a3,c#4,e4,f#4,g4,a4] [a3,c#4,e4,g4,a4]!2", // Em A7
  V: "[a3,c4,e4,a4]!4 [f3,a3,c4,f4]!4", // Am F
  W: "[a3,c#4,e4,g4,a4] [a3,c#4,e4,f#4,g4,a4] [a3,c#4,e4,g4,a4]!2 [f3,a3,c4,f4]!4", X: "[[e3,g3,b3,e4]@5 ~]/3",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// bass · synth bass 2 · "Bass"
const bass = note("<~@13 A B C A D E F G H I J K L M N O P Q R A B C A D E F G S T P U V W@2 X Y@3>".pickRestart({
  A: "e2@2 e2@2 ~ g2 e2@2 d#2@2 d#2@2 ~ g2 d#2@2", B: "d2@2 d2@2 ~ g2 d2@2 c#2@2 c#2@2 ~ g2 c#2@2",
  C: "c2@4 a#1@3 g1!2 a1 b1 ~ b1@2 d2@2", D: "d2@2 d2 b2@2 g2 d2 ~ c#2@2 b2 g2@2 c#2!2 ~",
  E: "c2@2 c2 a#1 a#1@2 a#1 g1 g1@2 a1@2 b1@2 g1@2", F: "a1 b1 c2 e2 f2 e2 f2 f#2",
  G: "g2@2 e2@2 d2 b1 g1 ~ e2@2 e2@2 ~ b2@3", H: "a2!2 ~ g2 f2 e2 f2 f#2",
  I: "g2 e2 d2 b1 g1@2 ~@2 e2@2 e2@2 ~ g2 e2@2", J: "d#2@2 d#2@2 ~ g2 d#2@2 d2@2 d2@2 ~ g2 d2@2",
  K: "c#2@2 c#2@2 ~ g2 c#2@2 c2@4 a#1@3 g1", L: "g1 a1 b1 ~ b1@2 d2@2 e2@2 e2@2 ~ g2 e2@2",
  M: "d#2@2 d#2@2 ~ g2 d#2@2 d2@2 d2 b2@2 g2 d2 ~", N: "c#2@2 b2 g2@2 c#2!2 ~ c2@2 c2 a#1 a#1@2 a#1 g1",
  O: "g1 a1 b1 g1 a1 b1 c2 e2", P: "f2@2 e2@2 f2@2 f#2@2 g2@2 e2@2 d2 b1 g1 ~",
  Q: "e2@2 e2@2 ~ b2@3 a2@2 a2@2 ~@2 g2@2", R: "f2@2 e2@2 f2@2 f#2@2 g2 e2 d2 b1 g1@2 ~@2",
  S: "a2@2 a2@2 ~@2 g2@2 f2@2 f2 e2 f2@2 f#2@2", T: "g2 e2 d2 ~ b1@2 g1@2 a1@2 a1@2 a1@4", U: "e2!2 b2 e2 a2!2 g2!2",
  V: "f2@2 e2@2 f2@2 f#2 g2@2 e2 d2 ~ b1@2 g1@2",
  W: "[a1@2 a1@2 b1@2 c2@2 f2@2 f2@2 e2@2 f2 g2@2 e2 d2 ~ b1@2 g1@2 e2@2 e2@2 b2@2 e2@2]/2", X: "a2!2 g2!2 f2 e2 f2 g2",
  Y: "[e2@5 ~]/3",
})).s("gm_synth_bass_2").gain(0.64)

// other · overdriven guitar · "Lead Guitar"
const overdriven_guitar = note("<~@24 [~@4 c3 e3 a#3@2] [f3 g3@3 ~@12] ~ [~@10 g4@2 e4 a#4@3] ~@23>")
  .s("gm_overdriven_guitar").gain(0.54)

// drums · kick
const kick = s("bd").struct("<~@9 A@4 B C D E C A@4 F E G E@2 G A@4 B C D E C A@11 H ~@2>".pickRestart({
  A: "x!4", B: "x ~@7 x ~ x ~@2 x ~@2", C: "x ~ x ~@2 x ~@2 x ~ x ~@5", D: "x ~@3 x ~@3 x ~ x ~@2 x ~@2",
  E: "x ~ x ~@2 x ~@2 x ~ x ~@2 x ~@2", F: "x!3 ~", G: "x!2 ~@2 x ~ x ~", H: "x",
})).gain(0.54)

// drums · snare
const snare = s("sd").struct(`<
  ~@9 A@3 B C D E@2 F E G@3 H E I E@2 J A@4 C D E@2 F E G@3 K A@2 L M G@2 ~@3
>`.pickRestart({
  A: "~@4 x ~@7 x ~ x!2", B: "~@2 x ~@2 x ~@2", C: "~@4 x ~@2 x ~@4 x ~@3", D: "~@4 x ~@7 x!2 ~@2", E: "~ x ~ x",
  F: "~@4 x ~@9 x!2", G: "~@4 x ~ x!2 ~@4 x ~@3", H: "~@4 x ~ x!2 ~@4 x ~@2 x", I: "~@4 x!2 ~@6 x ~@3",
  J: "~@6 x!2 ~@4 x ~@3", K: "~@4 x!4 ~@4 x ~ x!2", L: "~@4 x ~@7 x!4", M: "x ~@3 x ~ x!2 ~@4 x ~@3",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@9 A@3 B C D E F D G H@3 I F J F@2 J A@4 C D E F D G H@3 K L@2 M N O P ~@3
>`.pickRestart({
  A: "x ~ x ~ x!3 ~ x ~ x ~ x!4", B: "x ~ x ~ x!3 ~@9", C: "~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~@2",
  D: "x ~ x ~ x!2 ~@2 x ~ x ~@5", E: "~@8 x ~ x ~ x!2 ~@2", F: "x ~ x ~ x!2 ~@2 x ~ x ~ x!2 ~@2",
  G: "~@8 x ~ x ~ x!3 ~", H: "x ~ x ~ x!5 ~ x ~ x!3 ~", I: "x ~ x ~ x!4 ~@2 x ~ x ~ x ~", J: "x!2 ~@6",
  K: "x ~ x ~@7 x ~ x!3 ~", L: "x ~ x ~ x!3 ~ x ~ x ~ x!3 ~", M: "x ~ x ~ x!3 ~ x ~@7", N: "x ~ x ~ x!4",
  O: "x ~ x ~ x!2 ~ x!2 ~ x ~ x!3 ~", P: "x ~ x ~ x!3 ~ x ~ x ~ x ~ x ~",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@17 [~@12 x!2 ~@2] ~@9 [~@4 x!2 ~@10] ~@8 [~@12 x!2 ~@2] ~@14>").gain(0.54)

// drums · open hat
const open_hat = s("oh").struct("<~@44 [~@5 x ~@2] ~@6>").gain(0.54)

// drums · high tom
const high_tom = s("ht").struct("<~@12 A ~ B ~@9 C ~@8 B ~@17>".pickRestart({
  A: "~@11 x ~ x!3", B: "~@13 x!3", C: "~@5 x!3 ~@8",
})).gain(0.54)

// drums · crash
const crash = s("cr").struct("<~@13 A ~ B ~@2 B ~@3 C ~ D ~@2 D ~@4 A ~ B ~@2 B ~@13>".pickRestart({
  A: "x", B: "x!2 ~@2", C: "~ x", D: "~@2 x!2",
})).gain(0.54)

// drums · ride
const ride = s("rd").struct("<~@41 [~ x] ~@6 x ~@2>").gain(0.54)

stack(
  bandoneon, piano, acoustic_guitar_nylon, bass, overdriven_guitar, kick, snare, hihat, low_tom, open_hat, high_tom,
  crash, ride
)

More by The Beatles