Strudelify
Run With The Pack cover art

1976 · Run with the Pack

Run With The Pack

Bad Company

KeyD majorTempo122 bpm
0:00/0:00
// Run With The Pack — Bad Company
// 122 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 12 "Lead Guitar" named as a guitar, played on overdriven guitar (its lead 2 sawtooth patch is not one)
// note: duplicate parts dropped: ch 4 "Bass" fretless bass (copy of ch 3 "Bass" electric bass pick); ch 12 "Lead Guitar" overdriven guitar (copy of ch 7 "Lead Guitar" distortion guitar)
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.

// chords · piano
const piano = note(`<
  A@4 B@2 ~@23 B@2 ~@23 B@2 ~@25 C D C E F D G H C D C E F D I@2 J K J K J K J K L M L M L M L M J K L M L M J K L M L M
  J K L M L M J K L M L M J K
>`.pickRestart({
  A: "[c5@2 d4 ~ c5@2 d4 ~ c5@2 d4 ~ c5@2 d4 ~ c5@2 d4 ~ [a4,c5]@2 d4 ~ [d4,a4,c5] ~ d4 ~ d4 ~ d3@2, d3@7 ~, a4@4 a4@4 a4@4 a4@4 a4@4 ~@6 [g4,b4]@5 ~, d4 ~@3 d4 ~@3 d4 ~@3 d4 ~@3 d4 ~@3 d4 ~@9 d4 ~]/2", // Am D7 G
  B: "[c5@2 d4 ~ c5@2 d4 ~ c5@2 d4 ~ c5@2 d4 ~ [g4,b4]@2 d4 ~ b4@2 d4 ~ [d4,c5] ~ d4 ~ d4 ~ d3@2, d3@7 ~, a4@4 a4@4 a4@4 a4@4 ~@4 g4@4 a4@2 [g4,b4]@5 ~, d4 ~@3 d4 ~@3 d4 ~@3 d4 ~@3 d4 ~@3 d4 ~@9 d4 ~]/2", // G D7 G
  C: "a4@10 g4@3 f4@3", D: "e4@2 d4@2 c4@11 ~", E: "e4 f4 e4@3 f4@2 g4", F: "a4@10 g4@3 ~ f4@2",
  G: "a4@2 ~ g4@2 ~ f4 ~ e4@3 d4@2 c4@3", H: "d4@2 e4@2 f4@3 ~ e4@2 d4@2 c4@2 ~@2",
  I: "[f4@2 ~ e4@2 ~ d4 ~ c4@3 d4@2 e4@6 ~@13]/2",
  J: "[d3,a3] f4 [d3,a3]!2 [d4,f4,a4]@2 [d3,a3]!2 f4 [d3,a3]!2 [d4,f4,a4] [d3,a3] [d4,f4,a4] [d3,a3] ~, ~ [d4,a4]@2 ~@4 [d4,a4]@2 ~@7", // D5 Dm D5 Dm D5 Dm D5
  K: "[d4,f4,a4]@2 ~@2 [c4,e4,g4]@9 ~@3", // Dm C
  L: "[d3,a3] f4 [d3,a3]!2 [d4,f4,a4]@2 [d3,a3]!2 f4 [d3,a3]!2 [d4,f4,a4] [d3,a3] [d4,f4,a4] [d3,a3] [d3,a3,d4], ~ [d4,a4]@2 ~@4 [d4,a4]@2 ~@7", // D5 Dm D5 Dm D5 Dm D5
  M: "[c3,g3] ~ [c3,g3]!2 [c4,e4,g4]@2 [c3,g3] [c4,e4,g4]@2 [c3,g3]!2 [c4,e4,g4] [c3,g3] [c4,e4,g4] [c3,g3] [c3,g3,c4], ~ [c4,e4,g4]@2 ~@4 [c3,g3] ~@8", // C5 C C5 C C5 C C5 C …
})).s("gm_piano").gain(0.36).pan(0.3)

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~ A@5 B@4 C@2 D@2 E F E F G F H@2 I J K L M N O P@2 B@4 C@2 D@2 E F G F E F Q@2 I J K L M N O P@2 B@4 C@2 D@2 G F E F
  G F H@2 I J K L M N O J K L M N O J K L M N O J K L M N O J K L M N O J K L M N O J K L M N O J K L M N O J K L M N O
  J K L M N O J K L M N O
>`.pickRestart({
  A: "[~@12 d2 ~ d2@25 ~@5 d2 ~ d2@25 ~@9]/5",
  B: "[a1@3 ~ c2 ~ d2 ~ e2 ~ a1@2 a1 ~ a1@4 ~@2 a1@2 f#1 ~ f#1 ~ g1@2 a1 ~ a1@4 a1 ~ a1@2 c2 d2 e2 ~ g1@2 a1 ~ c2@4 e2@2 g2@2 d2@4 g2@2 a2@2 d2@2, ~@46 a1 ~@17]/4",
  C: "[a1@3 ~ a1 ~ f#1 ~ g1 ~ a1@2 ~@2 a1@5 ~ a1@2 f#1 ~ g1 ~ a1@2 ~@2 a1 ~]/2",
  D: "[a1@3 ~ a1@2 f#1 ~ g1 ~ a1@3 ~ c2@4 e2@2 g2@2 d2@4 g2@2 a2@2 d2@2, ~@14 a1 ~@17]/2",
  E: "b1@4 f#1@2 ~ f#1 b1 ~ b1@2 f#1 c#2@2 f#1", F: "d2@4 a1@2 ~ a1 d2 ~ d2@2 a1 c#2@2 a1",
  G: "b1@3 ~ f#1@2 ~ f#1 b1 ~ b1@2 f#1 c#2@2 f#1",
  H: "[b1@4 f#2@3 f#1 f#2 b2@3 b1 f#2@2 a1@7 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~]/2", I: "a2 ~@7", J: "d2@6 a1@2 d2 ~ d2@4 a1@2",
  K: "c2@6 a1@2 ~@2 c2@2 a1 ~@3", L: "d2@6 ~@2 d2 ~ d2@4 ~@2", M: "~@6 a1 ~@3 c2@2 a1@2 ~@2",
  N: "d2@6 ~@2 d2 ~ d2@4 a1@2", O: "~@6 a1 ~", P: "[d2@30 g1 ~]/2",
  Q: "[b1@3 ~ f#2@3 f#1 f#2 b2@3 b1 f#2@2 a1@7 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~]/2",
})).s("gm_electric_bass_pick").gain(0.72).pan(0.7)

// bass · electric bass pick · "Bass" · soft notes
const bass_soft = note(`<
  ~@24 A B C D E ~@20 A B C D E ~@20 A B C D E ~ A B C D E ~ A B C D E ~ A B C D E ~ A B C D E ~ A B C D E ~ A B C D E ~
  A B C D E ~ A B C D E ~ A B C D E ~ A B C D E
>`.pickRestart({
  A: "~@8 c2 ~@5 c2@2", B: "~@7 a1 ~@6 a1@2", C: "c2@6 ~@2 c2 ~@5 c2 ~", D: "~@6 a1 ~@9",
  E: "c2@5 ~ a1@2 c2 ~ c2@3 ~ c2 ~",
})).s("gm_electric_bass_pick").gain(0.4).pan(0.7)

// bass · overdriven guitar · "Rythym Guitar"
const bass_2 = note(`<
  ~ A@5 B C D@2 E F G@2 H I H I H I J@2 K L M L ~ L N ~@2 O C P@2 Q R S@2 H I H I H I J@2 K L M L ~ L N ~@2 B C D@2 E F
  G@2 ~@8 K L M L ~ L N L M L ~ L N L M L ~ L N L M L ~ L N L M L ~ L N L M L ~ L N L M L ~ L N L M L ~ L N L M L ~ L N
  L M L ~ L N L M L ~ L N
>`.pickRestart({
  A: "[~@12 d2 ~ d2@29 ~ d2 ~ d2@33 ~]/5", B: "a1@2 a1@2 a2@2 a1@2 g2 ~ a2@2 ~@4", C: "~@2 g2@2 a2@2 ~@2 g2 ~ a2@2 ~@4",
  D: "[~@4 a2@2 ~@2 g2 ~ a2@2 a1 ~ c2@4 ~@2 c2@2 d2@3 ~ d2@3 ~ d2@2]/2", E: "~@4 a2@2 ~@2 g2 ~ a2@2 ~@2 a1@2",
  F: "~@4 a2@2 ~@2 g2 ~ a2@3 ~@3", G: "[~@4 a2@2 ~@2 g2 ~ a2@2 ~@2 c2@4 ~@2 c2@2 d2@3 ~ d2 ~ d2@2 ~@2]/2",
  H: "[b1,f#2]", I: "[d2,a2]", J: "[[b1,f#2]@7 [a1,e2]@9]/2", K: "[a1,a2] ~@7", L: "d2", M: "c2@15 ~", N: "c2@9 ~@7",
  O: "a1@2 a1@2 a2@2 ~@2 g2 ~ a2@2 a1 ~ a1@2", P: "[~@4 a2@2 ~@2 g2 ~ a2@2 ~@2 c2@4 ~@2 c2@2 d2@3 ~ d2@3 ~ d2@2]/2",
  Q: "~@4 a2@2 ~@2 g2 ~ a2@2 ~@4", R: "~@4 a2@2 a1@2 g2 a1 a2@2 a1 ~ a1@2",
  S: "[~@4 a2@2 a1@2 g2 ~ a2@2 a1 ~ c2@4 a1@2 c2@2 d2@3 ~ d2 ~ d2@2 ~@2]/2",
})).s("gm_overdriven_guitar").gain(0.8).pan(0.4)

// bass · overdriven guitar · "Rythym Guitar" · soft notes
const bass_soft_2 = note(`<
  ~@6 A B C D E F G D ~@12 H ~@4 I B G D J D@2 ~@13 H ~@4 A B C D E F G D K L K L K L M@2 ~@4 H ~@5 H ~@5 H ~@5 H ~@5 H
  ~@5 H ~@5 H ~@5 H ~@5 H ~@5 H ~@5 H ~@2
>`.pickRestart({
  A: "~@12 a1 ~ a1@2", B: "~@6 a1@2 ~ a1 ~@2 a1 ~ a1@2", C: "~ a1 ~ a1 ~@4", D: "~ a1 ~@6", E: "a1@4 ~ a1@3 ~@4 a1 ~@3",
  F: "~@2 a1@2 ~@2 a1@2 ~ a1 ~@2 a1 ~ a1@2", G: "~@2 a1@2 ~@2 a1@2 ~@4 a1 ~@3", H: "c2@15 ~", I: "~@3 a1 ~@4",
  J: "a1@4 ~ a1@3 ~@4 a1 ~ a1@2", K: "[b1,f#2]", L: "[d2,a2]", M: "[[b1,f#2]@7 [a1,e2]@9]/2",
})).s("gm_overdriven_guitar").gain(0.48).pan(0.4)

// other · acoustic guitar steel · "Acoustic"
const acoustic_guitar_steel = note(`<
  ~@15 A B C D E F ~@2 G H G H G H ~@11 A B C D E F ~@2 G H G H G H ~@11 A B C D E D ~@2 G H G H G H G H I J I K L J M N
  I J I K L J O@2 G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H G H
>`.pickRestart({
  A: "~@4 b3@2 e4@5 ~ d4@4", B: "b3@7 ~@9", C: "~@2 b3 e4@3 d4@2", D: "b3@3 ~@5", E: "~@4 b3 ~ e4@6 d4@4",
  F: "b3@5 ~@11", G: "~@6 a3@2 e4@3 d4@3 a3@2", H: "c4@3 ~@5", I: "~@6 a3@2 e4@2 ~ d4@2 ~ a3@2, a4@10 g4@3 f4@3",
  J: "e4@2 d4@2 c4@11 ~, c4 ~@3", K: "e4 f4 e4@3 f4@2 g4, c4@3 ~@5",
  L: "~@6 a3@2 e4@2 ~ d4@3 [a3,f4]@2, a4@10 g4@3 ~@3", M: "a4@2 ~ g4@2 ~ [a3,f4]@2 e4@3 d4@2 ~ a3@2, ~@13 c4@3",
  N: "d4@2 e4@2 f4@3 ~ e4@2 d4@2 c4@3 ~, c4@3 ~@5",
  O: "[f4@2 ~ e4@2 ~ [a3,d4]@2 [c4,e4]@3 d4@2 ~ a3@2 c4@6 ~@10, ~@13 e4@6 ~@13]/2", // D5 C
})).s("gm_acoustic_guitar_steel").gain(0.64).pan(0.9)

// chords · distortion guitar · "Lead Guitar"
const distortion_guitar = note(`<
  ~@23 A@2 B@2 A@2 C@2 ~@17 A@2 B@2 A@2 C@2 D E@2 F G H I J K@2 L@2 M@2 N@3 A@2 B@2 A@2 ~@60
>`.pickRestart({
  A: "[d3@15 ~]/2", B: "[d3@29 ~@3]/2", C: "[d2, d3@15 ~]/2", D: "g4@2 e4 ~ c5@2 a4!2",
  E: "[c5@4 ~@10 d4 e4@2 e4 ~ e4 g4 e4 d4@2 c4@2 a3 ~@2 e4 d4 c4]/2", F: "e4@2 e4 ~ a4 ~ g4@8 ~@2",
  G: "d5@4 c5 d5 e5 c5", H: "~ a4@3 a4@2 g4@2 a4@2 e4@3 ~@3",
  I: "~@2 [e4,g4] ~ [e4,g4] ~ [e4,g4] ~ [e4,g4]@2 [a4,b4] ~ c5@2 d5@2", J: "~ d5!2 c5 a4@2 ~@2",
  K: "[[a4,d5]@7 ~ [e4,a4]@4 [d4,g4] ~ [f#4,a4]@14 ~@4]/2", // D5 A5 G5 F#m
  L: "[[a4,d5]@6 ~@2 [e4,a4]@4 [e4,g4] ~ f#4@12 ~@6, ~@13 b4@12 ~@7]/2", // D5 A5 Em
  M: "[[a4,d5]@6 ~@2 a4@4 [e4,g4] ~ [f#4,a4]@15 ~@3, ~@7 e4@4 ~@21]/2", // D5 Em F#m
  N: "[[a4,d5]@6 ~@2 [e4,a4]@4 [g4,b4] ~ [e4,a4]@19 ~@15]/3", // D5 A5 G A5
})).s("gm_distortion_guitar").gain(0.8).pan(0.4)

// other · tremolo strings · "Strings"
const tremolo_strings = note(`<
  ~@79 A@2 B@2 C D E@2 F ~ G@2 C D C D F H ~@18 I J I K L J M N I J I K L J O@2 I J I K L J P N
>`.pickRestart({
  A: "[~@8 a4@11 ~@13]/2", B: "[a4@15 c4@17]/2", C: "a4", D: "c4", E: "[a4@15 c4@16 ~]/2", F: "a4@15 ~",
  G: "[a4@15 c4@13 ~@4]/2", H: "g4@13 ~@3", I: "a4@10 g4@3 f4@3", J: "e4@2 d4@2 c4@11 ~", K: "e4 f4 e4@3 f4@2 g4",
  L: "a4@10 g4@3 ~ f4@2", M: "a4@2 ~ g4@2 ~ f4 ~ e4@3 d4@2 c4@3", N: "d4@2 e4@2 f4@3 ~ e4@2 d4@2 c4@3 ~",
  O: "[f4@2 ~ e4@2 ~ d4@2 c4@3 d4@2 e4@18 ~]/2", P: "a4@2 ~ g4@2 ~ f4@2 e4@3 d4@2 c4@3",
})).s("gm_tremolo_strings").gain(0.64).pan(0.1)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@81 A B A C D B E F A B A C D B G@2 ~@18 H I H J K I L M H I H J K I N@2 H I H J K I O M
>`.pickRestart({
  A: "a3@10 g3@3 f3@3", B: "e3@2 d3@2 c3@11 ~", C: "e3 f3 e3@3 f3@2 g3", D: "a3@10 g3@3 ~ f3@2",
  E: "a3@2 ~ g3@2 ~ f3 ~ e3@3 d3@2 c3@3", F: "d3@2 e3@2 f3@3 ~ e3@2 d3@2 c3@2 ~@2",
  G: "[f3@2 ~ e3@2 ~ d3 ~ c3@3 d3@2 e3@6 ~@13]/2", H: "a5@10 g5@3 f5@3", I: "e5@2 d5@2 c5@11 ~",
  J: "e5 f5 e5@3 f5@2 g5", K: "a5@10 g5@3 ~ f5@2", L: "a5@2 ~ g5@2 ~ f5 ~ e5@3 d5@2 c5@3",
  M: "d5@2 e5@2 f5@3 ~ e5@2 d5@2 c5@3 ~", N: "[f5@2 ~ e5@2 ~ d5@2 c5@3 d5@2 e5@6 ~@13]/2",
  O: "a5@2 ~ g5@2 ~ f5@2 e5@3 d5@2 c5@3",
})).s("gm_string_ensemble_1").gain(0.64).pan(1)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@22 A ~@24 A ~@15 B ~@8 A ~@23 C ~@5 B ~ D ~@9 E ~@7 F ~@5 G ~ H ~@3 I ~@3 J
>`.pickRestart({
  A: "~@3 x", B: "~@7 x", C: "~@15 x", D: "~@4 x ~@2 x ~@5 x ~ x", E: "~@7 x ~@4 x ~@3", F: "~@4 x!2 ~@6 x ~ x ~",
  G: "~@6 x!2", H: "~@13 x!2 ~", I: "~@10 x ~@4 x", J: "~ x ~ x ~@4",
})).gain(0.8).pan(0.6)

// drums · hihat
const hihat = s("hh").struct("<~@6 A B@14 ~@10 C B@13 D ~@10 E B@13 D ~@59 F ~@8>".pickRestart({
  A: "x!8", B: "x!7 ~", C: "~@2 x!5 ~", D: "x!6 ~@2", E: "~ x!6 ~", F: "~ x",
})).gain(0.64).pan(0.6)

// drums · mid tom
const mid_tom = s("mt").struct("<~@63 A ~@32 B ~@5 C ~ D ~@9 E ~@7 F ~@5 G ~ H ~@3 I ~@3 J>".pickRestart({
  A: "~@13 x ~@2", B: "~@10 x ~ x!3 ~", C: "~@11 x ~@4", D: "~@3 x ~@8 x ~@3", E: "~@3 x ~ x ~@2", F: "~@7 x ~ x!2 ~@5",
  G: "~@2 x ~ x!2 ~ x ~@2 x!2 ~@4", H: "~@6 x ~@5 x!2 ~ x", I: "~ x!2 ~ x ~@3 x!2 ~@2 x!3 ~", J: "~ x ~@2 x!2 ~@10",
})).gain(0.8).pan(0.6)

// drums · open hat
const open_hat = s("oh").struct("<~@7 A@13 ~@11 A@14 ~@11 A@14 ~@60 B ~@8>".pickRestart({
  A: "~@7 x", B: "~@3 x ~@4",
})).gain(0.64).pan(0.6)

// drums · high tom
const high_tom = s("ht").struct("<~@102 A ~@11 B ~@7 C ~@5 D ~ E ~@3 F ~@4>".pickRestart({
  A: "~@5 x ~@2", B: "~@5 x ~@7 x ~@2", C: "~@7 x ~@8", D: "~@2 x!2 ~@5 x ~@6", E: "~@11 x ~@4", F: "~@2 x!2 ~@12",
})).gain(0.8).pan(0.6)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~ A ~@10 B ~@3 B ~ C ~ B@2 ~ B ~ B ~ B ~ B ~@3 B ~@3 B ~ B ~ B ~ D ~ B@2 ~ B ~ B ~ B ~ B ~@3 B ~@3 B ~ B ~ B ~ D ~
  B@2 ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~
  B ~ B ~ B ~ B ~
>`.pickRestart({
  A: "~@6 x!2", B: "x", C: "~@7 x", D: "x ~@6 x",
})).gain(0.64).pan(0.6)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@23 A B@5 ~@19 A B@5 ~@19 A B@5 A B@5 A B@5 A B@5 A B@5 A B@5 A B@5 A B@5 A B@5 A B@5 A B@5
>`.pickRestart({
  A: "~ x!3", B: "x!4",
})).gain(0.64).pan(0.6)

stack(
  piano, bass, bass_soft, bass_2, bass_soft_2, acoustic_guitar_steel, distortion_guitar, tremolo_strings,
  string_ensemble_1, kick, snare, low_tom, hihat, mid_tom, open_hat, high_tom, crash, ride_bell
)

More by Bad Company