Strudelify

I'm Gonna Get My Baby

Jimmy Reed

KeyE majorTempo119 bpm
0:00/0:00
// I'm Gonna Get My Baby — Jimmy Reed
// 119 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 90 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(119/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 · "Ac Piano"
const piano = note(`<
  ~@3 A@2 B C D@2 E F G H I J A@2 B C D@2 E F G H I J A@2 B C D@2 E F G H I J A@2 B C D@2 E F G H I J A@2 B C D@2 E F G
  H I J A@2 B C D@2 E F G H I J A@2 B C D@2 E F G H K L@4
>`.pickRestart({
  A: "[e3@2 ~ e3@2 ~ e3@2 ~@6 [g#3,d4,e4] e3@2 ~ e3@2 ~@3 [g#3,d4,e4], e2@5 ~@4 e3@3 e2@11 ~, ~@4 [g#3,d4,e4]@4 ~@2 [g#3,d4,e4]@4 ~@2 [g#3,d4,e4]@5 ~ [g#3,d4,e4]@5 ~@7 [g#3,d4,e4]@4 ~@2 [g#3,d4,e4]@4 ~@4, ~@7 e3]/2", // E7
  B: "~@2 [g#3,d4,e4] ~@2 [g#3,d4,e4] ~@2 [g#3,d4,e4] ~@2 [g#3,d4,e4], e2@11 ~, ~@3 e3@8 ~", // E7
  C: "~@2 [g#3,d4,e4] ~@2 [g#3,d4,e4] e3@2 [g#3,d4,e4] [e2,e3]@2 [g#3,d4,e4], e3@11 ~@13, ~@6 e2@11 ~@7", // E7 E E7
  D: "[a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~ a2@2 [g3,c#4,e4], ~@4 [g3,c#4,e4]@5 ~ [g3,c#4,e4]@5 ~ [g3,c#4,e4]@5 ~ [g3,c#4,e4]@5 ~ [g3,c#4,e4]@5 ~ [g3,c#4,e4]@5 ~ [g3,c#4,e4]@5 ~@3]/2", // C#dim
  E: "~@3 e3@2 ~@3 [g#3,d4,e4]@2 ~ [g#3,d4,e4], e2 e3, ~@4 [g#3,d4,e4]@5 ~ [g#3,d4,e4]@4 ~@10", // E7
  F: "~@6 e3@4 [g#3,d4,e4]@2 [e2,e3]@4 [g#3,d4,e4]@2 ~@4 [d4,e4] ~, e2@11 ~@7 [e2,e3]@6, ~@2 [g#3,d4,e4]@2 ~@7 g#3", // E7 E E7 Dsus2 E E7
  G: "b2@4 b3@2 b2@4 ~@2 b2@4 ~@2 b2@4 f#3 ~, ~@4 [f#3,d#4]@4 ~@2 [f#3,a3,d#4]@5 ~ [a3,d#4]@7 ~, ~@16 f#3@5 ~@3", // D#m D#dim Adim
  H: "a2@3 ~ e3@2 a2@4 ~@2 a2@4 ~@2 a2@4 e3 ~, ~@4 g3@4 ~@2 [e3,g3,c#4]@5 ~ [g3,c#4]@7 ~, ~@16 e3@5 ~@3", // C#dim Gdim
  I: "e2@4 e3 ~ [b3,e4]@4 g#2 ~ [a#3,e4]@4 a2 ~ [a3,e4]@4 a#2 ~, ~@6 g#2@3 ~@3 a2@2 ~@10, ~@6 a#3 ~@17", // E5 A#dim A5
  J: "[b2,g#3] ~@3 b3@2 b2@2 ~@2 b3@2 b2@2 ~@2 [b2,b3]@2 b2@2 ~@2 [b2,b3] ~, e4@2 ~@2 b2 ~@5 b2 ~@13", // E B
  K: "e2@3 ~ [e3,g#3,b3,e4] ~ g#2@4 [e3,g#3,b3,e4] ~ [a2,e3,a3,c#4]@4 a2 ~ [e3,a3,c#4] ~@3 e3 ~, ~@9 a#2@2 ~", // E A
  L: "[b2 ~@3 f#3@2 g3@3 ~ g#3@2 ~@4 [g#3,d4,g4]@56 ~@24, ~@6 e2 ~@9 e2@63 ~@17]/4", // G
})).s("gm_piano").gain(0.35).pan(0)

// bass · acoustic bass · "Ac Bass"
const bass = note(`<
  ~@3 A B A B C D A B E D A F A B A B C D A B E D A F A B A B C D A B E D A F A B A B C D A B E D A F A B A B C D A B E
  D A F A B A B C D A B E D A F A B A B C D A B E D G H@3 ~
>`.pickRestart({
  A: "e2@4 e3@2 g2@3 ~ g#2@2 b2@4 e3@2 c#3@4 b2@2", B: "e2@3 ~ e3@2 g2@4 g#2@2 b2@4 e2@2 c#3@4 b2@2",
  C: "a2@4 a3@2 c3@3 ~ c#3@2 e3@4 a3@2 f#3@4 e3@2", D: "a2@3 ~ a3@2 c3@4 c#3@2 e3@4 a2@2 f#3@4 e3@2",
  E: "b2@4 b3@2 d3@3 ~ d#3@2 f#3@4 b3@2 g#3@4 f#3@2", F: "b1@4 f#2@2 b1@6 c#2@6 d2@5 ~",
  G: "e2@4 ~@2 g#2@4 e2 ~ a2@4 e2 ~ a#2@4 e2 ~", H: "[b2@3 ~ d2@2 d#2@3 ~ e2@4 ~@2 e1@47 ~@9]/3",
})).s("gm_acoustic_bass").gain(0.5)

// chords · acoustic guitar nylon · "Ac Guitar"
const acoustic_guitar_nylon = note(`<
  ~@3 A@4 B C D A E F G H A@4 B C D A E F G H A@4 B C D A E F G H A@4 B C D A E F G H A@4 B C D A E F G H A@4 B C D A E
  F G H A@4 B C D A E F I J ~@3
>`.pickRestart({
  A: "~@4 [d3,g#3,b3,e4] ~@5 [d3,g#3,b3,e4] ~@5 [d3,g#3,b3,e4] ~@5 [d3,g#3,b3,e4] ~", // E7
  B: "~@4 [g3,c#4,g4,a4] ~@5 [g3,c#4,g4] ~@5 [g3,c#4,g4] ~@5 [a3,c#4,g4] ~", // A7 Gdim A7
  C: "~@4 [a3,c#4,g4] ~@5 [a3,c#4,g4] ~@5 [a3,c#4,g4] ~@5 [a3,c#4,g4] ~", // A7
  D: "~@4 [d3,g#3,e4] ~@5 [d3,g#3,e4] ~@5 [d3,g#3,e4] ~@5 [d3,g#3,b3,e4] ~", // E7
  E: "~@4 [a3,d#4,f#4] ~@5 [a3,d#4,f#4] ~@5 [a3,d#4,f#4] ~@5 [a3,d#4,f#4] ~", // D#dim
  F: "~@4 [g3,c#4,e4] ~@5 [g3,c#4,e4] ~@5 [g3,c#4,e4] ~@5 [g3,c#4,e4] ~", // C#dim
  G: "~@4 [d3,g#3,b3,e4] ~@5 [d3,g#3,b3,e4] ~@5 [d3,g#3,b3,d4,e4] ~@5 [d3,g#3,b3,e4] ~", // E7
  H: "b2@4 [a3,b3,f#4]@2 ~@4 [a3,b3,f#4]@2 ~@4 [a3,b3,f#4]@2 d#3@4 [a3,b3,f#4] ~, ~@3 d#3@5 ~@4", // B7
  I: "e2@4 [d3,g#3,b3,e4] ~ g#2@4 [d3,g#3,b3,e4] ~ a2@4 [g3,c#4] ~ a#2@4 [g3,c#4] ~, f2 ~@23", // E7 Gdim
  J: "b2 ~@4 e2 ~@2 e2@3 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.28).pan(1)

// other · tenor sax · "Solo Sax"
const tenor_sax = note(`<
  ~@2 A B C D E B C F G H I J ~@24 K L M J N O I J P@2 Q J ~@12 R@2 S J T U I J V@2 I J W X Y J Z O I D AA@2 AB J ~@4
>`.pickRestart({
  A: "g#4@11 ~ g#4@9 ~ f#4 ~", B: "e4@3 ~ e4 ~@17 f#4 ~", C: "e4@3 ~ d4 ~@17 f#4 ~", D: "e4@3 ~ d4 ~@19",
  E: "~@6 g#4@6 b4@5 ~ g#4@6", F: "e4@3 ~ e4 ~@17 e4 ~", G: "~@2 g#4", H: "f#4@5 ~ f#4 ~@15 g4 ~",
  I: "e4@3 ~ e4 ~@17 g4 ~", J: "e4@3 ~ e4 ~@19", K: "~@16 g#4@3 ~ g#4@4", L: "b4@22 g4 ~", M: "e4@3 ~ e4 ~@11 g4@8",
  N: "e4@3 ~ e4 ~@13 g#4@5 ~", O: "e4@3 ~ e4 ~@17 f#4@2", P: "[~@15 b3 e4 b4@28 ~ a4@2]/2", Q: "~@16 e4 ~ g4@3 ~ g4 ~",
  R: "[~@15 e4 ~ b4@28 ~ f#4@2]/2", S: "e4@3 ~ e4 ~@11 g4 ~@5 g4@2", T: "~@7 g#4@5 b4@5 ~ g#4@6",
  U: "~ e4@3 e4 ~@17 f#4 ~", V: "[~@4 b3 ~ b4@29 ~@11 g#4@2, ~@5 e4@2 ~@41]/2", W: "~@12 g#4@11 ~",
  X: "b4@20 ~@2 g#4 ~", Y: "d4@3 ~ d4 ~@17 g#4 ~", Z: "~@7 g#4@4 ~ b4@5 ~ g4@5 ~", AA: "[~@6 b4@31 ~@9 f#4 ~]/2",
  AB: "[d4,e4]@3 ~ e4 ~@17 g4@2", // Dsus2
})).s("gm_tenor_sax").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@3 [x!4]!82 [x ~@2 x!2 ~] [~@5 x ~@2 x ~@3] ~@3>").gain(0.5)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@14 A ~@7 B ~ B ~ C D B ~ E ~@7 F ~@11 A ~@7 B ~ B ~ C D B ~ E ~@7 F ~@15
>`.pickRestart({
  A: "~@8 x ~@2 x", B: "~@11 x", C: "~@7 x ~@4", D: "~@5 x ~@6", E: "~@2 x ~@2 x ~@2 x ~@2 x", F: "~@2 x",
})).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct("<~@86 [~ x ~@2] ~@3>").gain(0.35)

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

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@3 A B C D@2 C E F G C H ~ I J K ~ D@2 B J B@2 ~@2 E H B ~ E ~ B E D ~ K ~ A B C D@2 C E F G C H ~ I J K ~ D@2 B J
  B@2 ~@2 E H B ~ E ~ B E D ~ K ~ L ~ F I F ~ E ~@2 B@2 ~@4
>`.pickRestart({
  A: "~@2 x ~@8 x", B: "~@2 x", C: "~@5 x ~@6", D: "~@2 x ~@2 x ~@2 x ~@2 x", E: "~@11 x", F: "~@2 x ~@2 x ~@6",
  G: "~@2 x ~@5 x ~@2 x", H: "~ x ~@2 x ~", I: "~@5 x ~@2 x ~@2 x", J: "~ x ~@4", K: "~@2 x ~@2 x ~@2 x ~@3",
  L: "~@5 x ~@5 x",
})).gain(0.15)

// drums · mid tom
const mid_tom = s("mt").struct("<~@86 [~ x ~@4] ~@3>").gain(0.35)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@4 A ~@5 B ~@5 A ~ C ~@14 D B ~ A ~ E ~ A ~@5 B ~@5 A ~ C ~@14 D B ~ A ~ E ~ A ~@3 B ~ B ~ A ~@5
>`.pickRestart({
  A: "~@11 x", B: "~@2 x", C: "~@8 x ~@2 x", D: "~ x ~@2", E: "x!3 ~",
})).gain(0.35)

// drums · crash
const crash = s("cr").struct("<~@3 x ~@35 x ~@46 [~@2 x] ~@3>").gain(0.35)

// drums · ride
const ride = s("rd").struct("<~@87 [~@2 x ~ x!3 ~@5] ~@2>").gain(0.2)

// drums · tambourine
const tambourine = s("tb").struct("<~@3 [~ x ~ x]!83 [~ x ~@2] ~@3>").gain(0.45)

stack(
  piano, bass, acoustic_guitar_nylon, tenor_sax, kick, snare, snare_soft, low_tom, hihat, hihat_soft, mid_tom, open_hat,
  crash, ride, tambourine
)

More by Jimmy Reed