Strudelify
It's All Over Now Baby Blue cover art

1966 · Them Again

It's All Over Now Baby Blue

Them

KeyD majorTempo107 bpm
0:00/0:00
// It's All Over Now Baby Blue — Them
// 107 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 107 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(107/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger
const bass = note(`<
  A B C D E F C D E B C G E F C D H I J G@2 I J D G K L M N O P Q R S T U V F W U X I J U R Y Z U R K L AA N O P U@2 AB
  AC AD AE AF D F@2 G D F AG D AH I AI G U I AI U@2 AJ@2 AA N O AK AL AM AJ@2 AA N O AK AL AM O AK AL AM O AK AL AM O AK
  AL AN
>`.pickRestart({
  A: "~@6 e2 g2", B: "a2@4 ~@2 a2@5 ~ e2@2 g2@2", C: "a2@4 ~@2 a2@5 ~ a2@2 g2@2", D: "d2@5 ~ d2@5 ~ a1@2 c2 ~",
  E: "d2@5 ~ d2@5 ~ d2@2 e2@2", F: "a2@5 ~ a2@6 e2@2 g2@2", G: "d2@5 ~ d2@5 ~ a1 ~ c2@2",
  H: "d2@5 ~ d2@4 a1@2 c2@2 d2@2", I: "e2@5 ~ e2@5 ~ e2@2 f#2@2", J: "g2@4 ~@2 g2@5 ~ g2@3 ~",
  K: "f#1@5 ~ f#2@4 f#2 ~ f#2@3 ~", L: "f#2@5 ~ f#2@4 f#2 ~ f#2@3 ~", M: "a2@5 ~ a2@3 ~ a2 ~ a2@3 ~",
  N: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2@2", O: "e2@5 ~ e2@4 b1@2 e2@2 f#2@2", P: "g2@5 ~ g2@4 d2 ~ g2@2 d2@2",
  Q: "d2@5 ~ d2@4 a1@2 b1 ~ c2 ~", R: "d2@5 ~ d2@6 a1@2 b1 ~", S: "e2@3 a2@3 e2@2", T: "a2@3 a2@2 e2 a2 e2",
  U: "d2@5 ~ d2@6 a1@2 b1@2", V: "d2@5 ~ d2@4 a1@2 b1@2 a1 ~", W: "a2@5 ~ a2@9 ~", X: "d2@5 ~ d2@6 d2@3 ~",
  Y: "e2@5 ~ e2@5 ~ e2@3 ~", Z: "g2@5 ~ g2@5 ~ g2@2 a2@2", AA: "a2@5 ~ a2@4 a2 ~ a2 ~ a2 ~",
  AB: "a2@6 e2@2 a2@4 e2@2 a2 ~", AC: "g2@5 ~ d2@2 g2@4 d2@2 g2@2", AD: "a2@3 e2@2 a2 e2 a2", AE: "g2@3 d2@2 g2 d2 g2",
  AF: "d2@5 ~ d2@6 a1@2 c2@2", AG: "a2@5 ~ a2@5 ~ a2 ~ a2@2", AH: "d2@5 ~ d2@6 a1@2 d2@2", AI: "g2@5 ~ g2@6 d2@2 g2@2",
  AJ: "f#2@5 ~ f#2@4 f#2 ~ f#2 ~ f#2 ~", AK: "g2@5 ~ g2@4 d2@2 g2@3 ~", AL: "d2@5 ~ d2@6 d3@2 c3@2",
  AM: "d2@5 ~ d2@4 d2@2 d2 ~ d2 ~", AN: "d2@5 ~@11",
})).s("gm_electric_bass_finger").gain(0.42)

// chords · epiano1
const epiano1 = note(`<
  ~@5 A@2 B C@8 D E@2 F@6 G H I J K L M@2 N@2 O@2 P@2 O@2 Q@2 F@6 G H I J K L M@2 R S T@2 U V W@3 C@4 D E@2 F@6 G H I J
  K L M@2 G H I J K L M@2 K L M@2 K L X@2 Y Z AA@2
>`.pickRestart({
  A: "[~@4 d5 e5 ~@6 d5 e5 ~ e5, a4@4 e5@4 ~@4 d5@4 a4@4 e5@5 ~@3 d5@4, ~ d5@2 a4@4 e5@2 d5@2 a4@5]/2",
  B: "~@6 e4 a4, d4 a4 e4 ~, ~ e4@2 d4@2 a4@2 ~",
  C: "[~@14 a4 ~@9 d5@2 e5@2 ~@12 d5@2 e5@2 ~@16 e4@2 a4@2, d4@4 a4@4 e4@4 e4@6 d5@4 a4@8 e5@4 d5@4 a4@10 d4@5 ~ d4@5 ~@5, ~@2 e4@4 d4@4 a4@4 ~@2 a4@4 e5@4 ~@4 d5@4 a4@4 e5@5 ~@3 d5@4 ~@2 e4@4 ~@2 e4@4 ~@4, ~@23 e5@2 ~ a4@2 ~ a4@2 ~]/4",
  D: "~@14 a4 ~, d4 a4 e4!2, ~ e4@2 d4@2 a4@2 ~",
  E: "[e4 ~@3 g4 b4 ~@2 d4 ~ b4 ~@2 g4 d4 g4, ~@2 g4@4 e4@5 ~@3 b4@4 g4@4 ~@2 b4@6 ~@2, ~@4 b4@5 ~@3 e5@5 ~@5 d5@6 ~@4]/2",
  F: "[~ f#4 a4 ~@2 f#4 d4 f#4 ~@5 f#4 ~@4 b4 ~@2 g4 e4 g4 ~@2 b4 ~@2 g4 d4 g4 ~@2 a4 ~@2 f#4 d4 f#4 ~@2 a4 ~@2 f#4 d4 f#4, d4@4 a4@3 ~ d4@6 d4@2 e4@5 ~@3 d4@5 ~@3 d4@4 ~@4 d4@5 ~@3, ~@3 d5@7 a4@2 a4@3 ~@5 b4@5 ~@3 b4@4 ~@4 a4@5 ~@3 a4@3 ~, ~@9 f#4@3 ~@3 f#4@2 g4@3 ~@5 g4@3 ~@5 f#4@2 ~@6 f#4@3 ~@4, ~@11 d5@5 ~@3 e5@5 ~@3 d5@6 ~@2 d5@7 ~ d5@4 ~]/6",
  G: "~ a#4 c#5 ~ c#5 a#4 f#4 a#4, f#4@5 ~ f#5@5 ~@5", H: "~ a#4 c#5 ~ c#5 a#4 f#4 a#4, f#4@2 ~ f#5@2 ~@3",
  I: "~ c#5 e5 ~ e5 c#5 a4 c#5, a4@2 ~ a5@3 ~@2", J: "a4 ~ e5 ~@2 c#5 ~ c#5, ~ c#5@2 a5@5, ~@4 e5@3 ~, ~@3 a4",
  K: "~@3 e5@3 e5@2, e4, ~ g4@3", L: "~@2 b4 ~ b4 g4 d4 g4, d4 ~, ~ g4@2 d5@5",
  M: "[~@2 a4 ~@2 f#4 d4 f#4 ~@5 f#4 d4 f#4, d4@5 ~@3 d4@5 ~@3, ~ f#4@3 a4@5 f#4@3 ~@4, ~@3 d5@6 ~ a4@2 a4@3 ~, ~@11 d5@4 ~]/2",
  N: "[~@24 b4 ~ d5@2 e5@2 d5 ~, a4@4 e5@4 d5@4 a4@4 e5@4 d5@4 a4@7 ~, ~ d5@2 a4@2 e5@2 d5@2 a4@2 e5@2 ~@3]/2",
  O: "[~@13 e4 ~ e4, d4 a4 e4 d4 a4 e4 d4@2, ~ e4@2 d4@2 a4@2 e4@2 d4@2 a4@2 ~ a4@2]/2",
  P: "[~@22 e5@2 ~@2 d5@2 e5@2 d5 ~, a4 e5 d5 a4 e5 d5 ~@2, ~@2 d5@4 a4@4 e5@4 d5@4 a4@4 ~@2 a4@7 ~]/2",
  Q: "[~@4 g4 b4 ~@2 d4 ~ b4 ~@2 g4 d4 g4, e4@4 b4@5 ~@3 e5@5 ~@5 d5@6 ~@4, ~@2 g4@4 e4@5 ~@3 b4@4 g4@4 ~@2 b4@6 ~@2]/2",
  R: "~@4 d6 e6 ~ e6, a5 e6 ~ d6, ~ d6@2 a5@4 ~", S: "~ c#6 ~@2 c#6 d6 c#6 d6, g5 d6 ~@2, ~@3 g5@4 ~",
  T: "[~ d6 ~@2 d6 e6 ~@3 c#6 ~@2 c#6 d6 c#6 d6, a5@2 e6@2 ~@2 d6@2 g5@2 ~ g5@5, ~@3 a5@4 e6@2 ~ d6@2 ~@4]/2",
  U: "~@4 e5 ~@2 a5, a5@3 a5@3 ~@2, ~ e5@2 ~@3 e5@2, ~@2 d5@2 ~ d5@2 ~",
  V: "~@4 e4 ~@2 d5, a4@2 d4@2 ~ d4@2 ~, ~ e4@2 a4@2 ~ a4@2",
  W: "[~@4 d5 e5 ~@6 d5 e5 ~@8 e4 a4, a4@4 e5@4 ~@4 d5@4 a4@4 e5@5 ~@3 d5@4 ~@2 e4@4 ~@2 e4@4 ~@4, ~@2 d5@4 a4@8 e5@4 d5@4 a4@10 d4@5 ~ d4@5 ~@5, ~@15 e5@2 ~ a4@2 ~ a4@2 ~]/3",
  X: "[~@15 d5, d5@2 a5@2 e5@2 d5@2 a5@2 e5@2 d5@3 ~, ~ e5@2 d5@2 a5@2 e5@2 d5@2 a5@2 e5@2 ~, ~@7 a5]/2",
  Y: "~ b5 ~@2 g5 ~@2 [b5,c6], g5@4 ~ e5@2 ~, ~@2 e6@5 ~, ~@3 b5@2 ~ g5@2", // Cmaj7
  Z: "~@2 b5 ~@2 g5 ~ g5, d5@3 d5, ~ g5@3 b5@3 ~, ~@3 d6@5",
  AA: "[~@2 a4 ~@2 f#4 d4 f#4 ~ f#4@3 ~@4, d4@5 ~@3 d4@5 ~@3, ~ f#4@3 a4@5 ~@7, ~@3 d5@6 ~@7]/2",
})).s("gm_epiano1").gain(0.21)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@5 A@2 B@2 A@2 B@2 A@2 B@2 C D E B C F B@2 G@2 A@2 C F B@2 A@2 B@2 A@2 B@2 C D E B C F B@2 G@2 A@2 C F B@2 A H A H
  B@2 A@2 B@2 A@2 B@2 C D E B C F B@2 G@2 A@2 C F B@2 G@2 A@2 C F B@2 C F B@2 C F B@2 C F B I
>`.pickRestart({
  A: "[a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4]@5 ~ [a2,e3,a3,c#4,e4]@3 ~ [a2,e3,a3,c#4,e4] ~", // A
  B: "[d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4]@5 ~ [d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4] ~", // D
  C: "[e3,g3,b3,e4]@3 ~ [e3,g3,b3,e4]@5 ~ [e3,g3,b3,e4]@3 ~ [e3,g3,b3,e4] ~", // Em
  D: "[g2,d3,g3,b3,g4]@3 ~ [g2,d3,g3,b3,g4]@5 ~ [g2,d3,g3,b3,g4]@3 ~ [g2,d3,g3,b3,g4] ~", // G
  E: "[d3,a3,d4,f#4]@3 ~ [d3,a3,d4,f#4]@5 ~ [d3,a3,d4,f#4]@2 ~@2 [d3,a3,d4,f#4] ~", // D
  F: "g2@3 ~ [g2,d3,g3,b3,g4]@5 ~ [g2,d3,g3,b3,g4]@3 ~ [g2,d3,g3,b3,g4] ~", // G
  G: "[f#2,c#3,f#3,a#3,f#4]@3 ~ [f#2,c#3,f#3,a#3,f#4]@5 ~ [f#2,c#3,f#3,a#3,f#4]@3 ~ [f#2,c#3,f#3,a#3,f#4] ~", // F#
  H: "[g2,d3,g3,b3,g4]@4 [d3,g3,b3,g4] ~@5 [g2,d3,g3,b3,g4]@3 ~ [g2,d3,g3,b3,g4] ~, ~@4 g2@5 ~@7", // G
  I: "[d3,a3,d4,f#4]@3 ~@13", // D
})).s("gm_acoustic_guitar_steel").gain(0.16).pan(0.4)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@17 A B ~@2 C@2 D ~@5 C@2 D ~@9 A B ~@2 C@2 D ~@5 C@2 D ~@15 A B ~@2 C@2 D ~@5 C@2 D ~@5 C@2 D ~ C@2 D E C@2 D ~ C@2
  D ~
>`.pickRestart({
  A: "~@2 g4 ~ g4@2 ~@6 b3@3 ~, b3@4 ~@2 b3@4 e4@5 ~, ~@8 g4@7 ~",
  B: "~@2 g4@2 g4@2 ~@6 b3@2 d4 ~, b3@5 ~ b3@4 d4@4 ~@2, ~@8 g4@7 ~",
  C: "[~@4 f4 ~@5 e4@2 b3@2 ~@3 g4@9 ~@2 d4@2 g3 ~, b3@4 e4@4 g4@7 g2@14 ~@3, ~ g4@2 b3@2 ~@2 e4 [d3,g3]@7 ~, ~@16 b3@9 ~ b3@5 ~]/2", // G5
  D: "d4@5 ~@3", E: "a3@2 ~@2 f#4@2 ~@6 d4@2 f#4 ~, [d4,f#4]@3 d4@7 ~@6, ~@2 a3@6 ~@2 a3@5 ~, ~@3 f#4@3 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.6)

// chords · drawbar organ
const drawbar_organ = note(`<
  ~@33 A@8 B C D@2 B C D@2 E@2 F@2 B C D@2 G H G I@3 A@8 B C D@2 B C D@2 E@2 F@2 B C D@2 E@2 F@2 B C D@2 B C D@2 B C D@2
  B C J@2
>`.pickRestart({
  A: "[[e4,c#5]@2 d4 d5 [e4,c#5]@2 d4 d5, a4, ~ f#4 ~ f#4]/8", B: "[e4,g4,b4]@15 ~", C: "[d4,g4,b4]@15 ~",
  D: "[d4@8 d5@7 ~, [f#4,a4]@15 ~]/2", E: "[~@16 f#5@15 ~, [f#4,a#4,c#5]@31 ~]/2",
  F: "[~@16 e5@15 ~, [e4,a4,c#5]@31 ~]/2", G: "[e5,a5,c#6]", H: "[d5,b5], g5@7 ~",
  I: "[[g5,b5]@7 ~ [f#5,a5,d6]@16, d5]/3", J: "[d4@8 d5@3 ~@5, [f#4,a4]@11 ~@5]/2",
})).s("gm_drawbar_organ").gain(0.1)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@25 [x ~@2 x ~@2 x ~]!13 [x ~@2 x] x ~@67>").gain(0.19)

// drums · snare
const snare = s("sd").struct("<~@5 A@43 B C@4 A@4 C D@2 E A@16 F G C@3 D A@4 C D C D A@15 ~>".pickRestart({
  A: "~ x ~ x", B: "~ x!7", C: "~@2 x ~@2 x!2 ~", D: "~@2 x ~@2 x!3", E: "~@2 x!2 ~@2 x ~", F: "~ x!2 ~@3 x ~",
  G: "~ x!2 ~@3 x!2",
})).gain(0.38)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@53 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ B C B D B C B E ~@4 A ~ A ~@5 A ~ A ~ A ~ A ~ A ~ A ~ A@3 E
>`.pickRestart({
  A: "~ x ~@6", B: "~ x!2 ~@5", C: "~ x!2 ~@4 x", D: "x!3 ~@4 x", E: "x!2 ~@6",
})).gain(0.1)

// drums · tambourine
const tambourine = s("tb").struct("<~ [x!8]!105 [x!2 ~@6]>").gain(0.24)

stack(
  bass, epiano1, acoustic_guitar_steel, acoustic_guitar_steel_2, drawbar_organ, kick, kick_soft, snare, hihat,
  hihat_soft, tambourine
)

More by Them