Strudelify

C'Mon Everybody

Eddie Cochran

KeyE majorTempo181 bpm
0:00/0:00
// C'Mon Everybody — Eddie Cochran
// 181 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 88 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(181/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · acoustic guitar steel · "Ac Guitar"
const acoustic_guitar_steel = note(`<
  ~@6 A B C D A B C D E F@2 G F@2 H G I J K L M ~ A B C D A B C D E F@2 G F@2 H G I J K L M ~ A B C D A B C D E F@2 G
  F@2 H G I J K L N ~ A B C D A B C D A B C D A B C O
>`.pickRestart({
  A: "[b2,e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4]@2 [e3,g#3,b3,e4]@2 [b2,e3,g#3,b3,e4] ~ [b2,e3,g#3,b3,e4]@2 [g#3,e4]@2", // E C#m
  B: "[e3,a3,c#4,e4,a4]@2 [e4,a4]@2 [e3,a3,c#4,e4,a4] ~ [e3,a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [e3,a3,c#4,e4,a4] ~ [e3,a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2", // A A5 A
  C: "[b2,d#3,b3,f#4] [f#3,a3,b3] [f#3,a3,b3,f#4] [a3,b3,f#4] [a2,e3,c#4,e4] [e3,c#4,e4] [e3,a3,c#4,e4] [a3,c#4,e4], a3 ~@7 a3 ~@7", // B B7 A C#m A
  D: "[e2,b2,g#3,b3,e4] ~@3 b2@2 c#3@4 b2@2 g#2@4", E: "e2!4 d#2 e2!3", F: "d#2 e2!3 d#2 e2!3",
  G: "e2 d#2 e2!2 d#2 e2!3", H: "d#2 e2!2 d#2 e2!4",
  I: "[a2,e3,a3,c#4,e4,a4]@2 [e3,c#4]@2 [a2,e3,a3,c#4,e4,a4] ~ [a2,e3,a3,c#4,e4,a4]@2 [e3,c#4]@2 [e3,c#4,e4]@2 [e3,a3,c#4,e4] ~ [e3,c#4,e4]@2, ~@6 [a2,a4] ~", // A C#m A C#m A C#m A
  J: "[b2,d#3,b3,f#4]@3 ~ [d#3,b3,f#4]@2 [d#3,a3,b3,f#4] ~ [d#3,a3,b3,f#4]@2 [d#3,b3,f#4]@2 [d#3,a3,b3,f#4]@2 [d#3,a3,b3,f#4]@2, a3 ~@5 b2@2 ~@8", // B B7 B B7
  K: "[a2,e3,c#4,e4,a4]@2 [e3,c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4] ~ [c#4,e4]@2 [e3,a3,c#4,e4]@2 [e3,a3,c#4,e4] ~ [e3,a3,c#4,e4]@2, a3 ~@5 [a2,a4]@2 ~@4 [a2,a4]@2 ~@2", // A C#m A C#m A
  L: "[b2,d#3,b3,f#4]@2 [d#3,b3]@2 [d#3,a3,b3,f#4]@2 [d#3,a3,b3,f#4] ~ [d#3,b3,f#4]@2 [d#3,a3,b3,f#4]@2 [d#3,a3,b3,f#4] ~ [d2,g3]@2, a3 ~@5 b2@2 ~@4 b2@2 ~@2", // B G#m B7 B B7 G5
  M: "[e2,b2,e3,g#3,b3,e4] ~@7", N: "[e2,b2,e3,g#3,b3,e4] ~@15", O: "[e2,b2,g#3,b3]@3 ~@13, e4 ~@15",
})).s("gm_acoustic_guitar_steel").gain(0.35)

// chords · acoustic guitar steel · "Ac Guitar" · soft notes
const acoustic_guitar_steel_2 = note(`<
  ~@6 A B C ~ A B C ~@9 D E F G ~@2 A B C ~ A B C ~@9 D E F G ~@2 A B C ~ A B C ~@9 D E F G ~@2 A B C ~ A B C ~ A B C ~
  A B C ~
>`.pickRestart({
  A: "~@7 [e3,b3]", B: "~ [a3,c#4] ~@6", C: "~@5 a3 ~@2", D: "~ [a3,e4] ~@2 [a3,e4] a3 ~ a3",
  E: "~ [d#3,a3,b3,f#4] a3 ~@2 a3 ~@2", F: "~ a3 ~@2 [e3,a3] ~@3", G: "~ [a3,f#4] ~@2 a3 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.2)

// bass · electric bass finger · "El Bass"
const bass = note(`<
  ~@2 A@4 B C D E B C D E F A@2 G F A@2 G C H C I J ~ B C D E B C D E F A@2 G F A@2 G C H C I J ~ B C D E B C D E F A@2
  G F A@2 G C H C I J ~ B C D E B C D E B C D E B C D K
>`.pickRestart({
  A: "d#2 e2!3 d#2 e2!3", B: "e2!8", C: "a2!8", D: "b2!4 a2!4", E: "e2 ~ b1 c#2 ~ b1 g#1 ~", F: "e2!4 d#2 e2!3",
  G: "e2 d#2 e2!2 d#2 e2!3", H: "b2!8", I: "b2!7 d2", J: "e1@3 ~@13", K: "e2 ~@7",
})).s("gm_electric_bass_finger").gain(0.4)

// bass · piano · "El Bass"
const bass_2 = note("<[c-1 ~@15] ~@87>").s("gm_piano").gain(0.05)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@6 A@2 ~ A@3 ~ A ~@14 A@2 ~ A@3 ~ A ~@14 A@2 ~ A@3 ~ A ~@14 A@2 ~ A@3 ~ A@3 ~ A@3 ~@2
>`.pickRestart({
  A: "~@7 x",
})).gain(0.2)

// drums · snare
const snare = s("sd").struct("<~@3 A B@17 C B@4 D E B@15 C B@4 D E B@15 C B@4 D E B@15 D>".pickRestart({
  A: "~@10 x!3 ~ x ~", B: "~ x ~ x", C: "~@4 x ~@7 x!3 ~", D: "x", E: "~@3 x",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct("<~@9 A ~@3 A ~@17 A ~@3 A ~@17 A ~@3 A ~@17 A ~@3 A ~@3 A ~@4>".pickRestart({
  A: "~@2 x!6",
})).gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@4 A@5 B A@3 B A@12 C D A@3 B A@3 B A@12 C D A@3 B A@3 B A@12 C D A@3 B A@3 B A@3 B A@3 C
>`.pickRestart({
  A: "x!8", B: "x ~ x!2 ~ x!2 ~", C: "x", D: "~@5 x!3",
})).gain(0.35)

stack(acoustic_guitar_steel, acoustic_guitar_steel_2, bass, bass_2, kick, kick_soft, snare, low_tom, tambourine)

More by Eddie Cochran