Strudelify

Gimme Some Lovin'

The Blues Brothers

KeyE majorTempo137 bpm
0:00/0:00
// Gimme Some Lovin' — The Blues Brothers
// 137 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 103 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/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 · "A.PIANO 2"
const piano = note("<~@12 A B A B A B A B A B ~@20 A B A B A B A B A B ~@20 A B A B A B A B A B ~@21>".pickRestart({
  A: "[e3,g#3,b3]@5 ~@7 e1@4, e2@3 ~, ~@6 [e3,a3,c#4]@9 ~", // E A
  B: "[e3,g#3,b3]@5 ~ [e3,a3,c#4] ~ c#4@4 e1@4, e2@3 ~, ~ [e3,a3]", // E A A5
})).s("gm_piano").gain(0.54)

// bass · electric bass finger · "FINGERDBAS"
const bass = note("<A@22 B C D E A@18 F G H I J I J G B C D E A@18 F G H I J I J G B C D E A@16 ~>".pickRestart({
  A: "e2 ~ e2 ~ e2 ~ e2 ~ e2@3 ~ e1@3 ~", B: "e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ g2 ~",
  C: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~", D: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ c3 ~",
  E: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", F: "e2 ~ d2@2 e2@2 d2@2 e2@2 ~@2 e1@2 ~@2",
  G: "e2 d2 e2 d2 e2 c#2 d2 d#2", H: "e2@2 d2@2 e2 ~ d2@2 e2@2 ~@2 e1@2 ~@2",
  I: "e2@2 d2@2 e2@2 d2@2 e2@2 c#2 ~ d2@2 d#2@2", J: "e2 d2 e2 d2 e2 ~ e1 ~",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
  ~@4 A@4 B@4 ~@10 C@2 D@2 E@6 ~@2 A@4 B@4 ~@10 C@2 D@2 E@6 ~@2 A@4 B@4 ~@10 C@2 D@2 ~@17
>`.pickRestart({
  A: "[[b5,d6]@24 [a5,c#6]@3 [b5,d6]@3 [a5,c#6]@2 g#5@25 ~@7, e5@31 ~, ~@16 b5 ~@15]/4", // Bm A Bm A
  B: "[[b5,d6]@24 [a5,c#6]@3 [b5,d6]@3 [a5,c#6]@2 [g#5,b5]@25 ~@7, e5@61 ~@3]/4", // Bm A Bm A G#m
  C: "[[g#4,b4,e5]@13 ~ [b4,d5,g5]@18]/2", D: "[[c#5,e5,a5]@7 [e5,g5,c6]@9]/2", E: "e6/6",
})).s("gm_rock_organ").gain(0.19).pan(0.8)

// other · electric guitar muted · "+FUNK GTR"
const electric_guitar_muted = note(`<
  ~@13 A B C D E F C D G H@2 I@2 J@2 K@2 L@2 M ~@10 A B C D E F C D G H@2 I@2 J@2 K@2 L@2 M ~@10 A B C D E F C D G H@2
  I@2 J@2 K@2 N@2 O@2 P Q R@2 S@2 T@2 ~
>`.pickRestart({
  A: "~@14 c#4 ~", B: "f#4@2 ~@2 f#4@3 ~ f#4@2 e4 ~ e4@2 c#4 ~", C: "e4@2 c#4 ~ e4@2 c#4 ~ f#4@2 ~@6",
  D: "f#4@3 ~ e4 ~ e4@3 ~ c#4 ~ e4@2 c#4 ~", E: "e4@2 c#4 ~ e4 ~ c#4@3 ~@5 b3 ~",
  F: "f#4@3 ~ f#4@3 ~ f#4 ~ e4 ~ e4@2 c#4 ~", G: "f#4@3 ~ e4 ~ e4@3 ~ c#4 ~ e4 ~@3",
  H: "[~@4 f#4 ~ f#4@3 ~ e4@3 ~ e4@4 f#4@2 ~@12]/2", I: "[~@4 f#4 ~ f#4@3 ~ e4@3 ~ e4@4 f#4@2 ~@4 c#4@2 e4 ~@5]/2",
  J: "[~@6 f#4@3 ~ f#4@2 e4 ~ c#4 e4@3 f#4 ~@13]/2", K: "[~@6 f#4@3 ~ f#4 ~ e4 ~ c#4 e4@3 f#4 ~@13]/2",
  L: "[~@6 f#4@3 ~ f#4@2 e4@2 c#4 e4@3 f#4 ~@7 c#4 ~ e4@3 ~, ~@25 e4@2 ~@5]/2", M: "c#4@3 ~@13",
  N: "[~@6 f#4@3 ~ f#4@2 e4@2 c#4 e4@3 f#4 ~@13]/2", O: "[~@8 f#4@3 ~ e4@2 ~ e4@3 ~ f#4@2 ~@11, ~@15 c#4 ~@16]/2",
  P: "~@6 f#4@3 ~ f#4@2 e4 c#4 e4@2", Q: "~ c#4 ~@6", R: "[~@6 f#4@5 ~ e4@2 c#4 e4@2 c#4 f#4@3 ~@11]/2",
  S: "[~@6 f#4@6 e4@2 c#4 e4@2 ~ c#4@3 ~@11]/2", T: "[~@6 f#4@3 ~ f#4@2 e4@2 c#4 e4@2 c#4 ~ f#4@3 ~@10]/2",
})).s("gm_electric_guitar_muted").gain(0.64)

// chords · brass section · "BRASS 1"
const brass_section = note(`<
  ~@4 A@2 B@2 A@2 B@2 ~@5 C@2 ~@3 D@2 E@2 ~ F@2 G@2 H ~@2 A@2 B@2 A@2 B@2 ~@5 C@2 ~@3 D@2 E@2 ~ F@2 G@2 H ~@2 A@2 B@2
  A@2 B@2 ~@5 C@2 ~@3 I@2 J@2 ~ F@2 K@2 F@2 K@2 F@2 K@2 F@2 K@2
>`.pickRestart({
  A: "[[b4,d5,f#5]@24 [a4,c#5,e5]@2 ~ [b4,d5,f#5]@2 ~ [a4,c#5,e5]@2]/2", B: "[[g#4,b4,d5]@25 ~@7]/2",
  C: "[~@10 [c#4,c#5] ~@3 [b3,b4]@14 ~@4]/2", D: "[[g#4,b4,e5]@12 ~@2 [g4,b4,d5]@15 ~@3]/2",
  E: "[[e4,a4,c#5]@12 ~@2 [e4,g4,c5]@17 ~]/2", F: "[~@10 [c#4,c#5]@2 ~@2 [b3,b4]@5 ~ [b3,b4] ~@11]/2",
  G: "[~@6 [b3,b4]@2 [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5] ~ [e4,e5]@5 ~ [e4,e5] ~@11]/2", // B G# F# E
  H: "~@8 [c#4,c#5]@2 [e4,e5]@2 ~@2 [e4,e5] ~", I: "[[g#4,b4,e5]@12 ~@2 [b4,d5,g5]@15 ~@3]/2",
  J: "[[c#5,e5,a5]@12 ~@2 [e5,g5,c6]@17 ~]/2", K: "[~@6 [b3,b4]@2 [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5] ~ [e4,e5]@5 ~@13]/2",
})).s("gm_brass_section").gain(0.27)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@27 A B A B ~@26 A B A B ~@26 A B A B A B A B A B A B A B A B>".pickRestart({
  A: "~@2 [e4,a4]!4 [e4,a4]@2", B: "[e4,g#4]@2 [e4,g#4] ~@5",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.2)

// other · overdriven guitar · "OVERDRIVE"
const overdriven_guitar_2 = note("<~@27 A B A B ~@26 A B A B ~@26 A B A B A B A B A B A B A B A B>".pickRestart({
  A: "~@2 c#5!4 c#5@2", B: "b4@2 b4 ~@5",
})).s("gm_overdriven_guitar").gain(0.3).pan(0.9)

// drums · kick
const kick = s("bd").struct("<A@22 B A B A@27 B A B A@27 B A B A@17 ~>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x",
})).gain(0.54)

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

// drums · low tom
const low_tom = s("lt").struct("<[~@3 x]!11 ~ [~@3 x]!29 ~ [~@3 x]!29 ~ [~@3 x]!30 ~>").gain(0.54)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@12 A B A@7 B A@3 B A@8 ~@8 A B A@7 B A@3 B A@8 ~@8 A B A@7 B A@3 B A@16 ~
>`.pickRestart({
  A: "x!3 ~ x!4", B: "x!8",
})).gain(0.54)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  ~@12 A ~ A@7 ~ A@3 ~ A@8 ~@8 A ~ A@7 ~ A@3 ~ A@8 ~@8 A ~ A@7 ~ A@3 ~ A@16 ~
>`.pickRestart({
  A: "~@3 x ~@4",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<A@11 B ~@10 C ~ C ~@9 A@7 B ~@10 C ~ C ~@9 A@7 B ~@10 C ~ C ~@18>".pickRestart({
  A: "x!4", B: "x!3 ~", C: "~@7 x",
})).gain(0.54)

stack(
  piano, bass, rock_organ, electric_guitar_muted, brass_section, overdriven_guitar, overdriven_guitar_2, kick, snare,
  low_tom, hihat, hihat_soft, crash
)

More by The Blues Brothers