Strudelify

Poor Little Fool

Ricky Nelson

KeyC majorTempo160 bpm
0:00/0:00
// Poor Little Fool — Ricky Nelson
// 160 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 1 "GtrMuted" electric guitar muted (copy of ch 2 "GtrSteel" acoustic guitar steel); ch 7 "Melody" electric guitar muted (copy of ch 6 "Melody" electric guitar jazz)
// note: Full arrangement: all 96 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/4)

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

// chords · acoustic guitar steel · "GtrSteel"
const acoustic_guitar_steel = note(`<
  A B C D A E C D A B C D A E C D A E C D F G H I A B C D A E C D A E C D F G H I A B C D A E C D A E C D F G H I A B C
  D A E C D A E C D F G H I A B C D A E C D A E C D F G H I J E C K L M N O
>`.pickRestart({
  A: "c3@3 ~ [c4,e4,g4] ~ [c4,e4,g4]@3 ~ a4 ~ [c4,e4,g4] ~@3", // C
  B: "a2@3 ~ [a3,c4,e4] ~ [a3,c4,e4]@3 ~ g4 ~ [a3,c4,e4] ~@3", // Am
  C: "f2@3 ~ [f3,a3,c4] ~ [f3,a3,c4]@3 ~ d4 ~ [f3,a3,c4] ~@3", // F
  D: "g2@3 ~ [g3,b3,d4] ~ [g3,b3,d4]@3 ~ e4 ~ [g3,b3,d4] ~@3", // G
  E: "a2@3 ~ [a3,c4,e4] ~ [a3,c4,e4]@3 ~ g4 ~ [a3,c4,e4]@3 ~", F: "e5 ~ c5 ~ g4 ~ e5 ~ c5 ~ g4 ~ e5 ~ c5 ~",
  G: "a4 ~ e5 ~ c5 ~ a4 ~ e5 ~ c5 ~ a4@3 ~", H: "a4 ~ f5 ~ d5 ~ a4 ~ f5 ~ d5 ~ a4 ~ f5 ~",
  I: "b4 ~ g5 ~ e5 ~ b4 ~ g5 ~ e5 ~ b4@3 ~", J: "c3@3 ~ [c4,e4,g4] ~ [c4,e4,g4]@3 ~ a4 ~ [c4,e4,g4]@3 ~",
  K: "g2 ~ [g3,b3,d4] ~ [g3,b3,d4]@3 ~ e4 ~ [g3,b3,d4] ~@5", L: "e5 ~ c5 ~ g4 ~ e5 ~ c5 ~ g4 ~ e5@3 ~",
  M: "a4 ~ f5 ~ d5 ~ a4 ~ f5 ~ d5 ~ a4@3 ~", N: "g4 ~ e5 ~ c5 ~ g4 ~ e5 ~ c5 ~ g4 ~ e5 ~", O: "c5@3 ~ g4@3 ~ c5@5 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.7)

// bass · acoustic bass · "AcouBass"
const bass = note(`<
  A B C D A B E F A B E D A B E D A B C D A B E D A B E D A B E D A B C D A B E D A B E D A B E D A B C D A B E D A B E
  D A B E D A B C D A B E D A B E D A B E D A B C D A B E D A B C D A C A@2
>`.pickRestart({
  A: "c3@5 ~@3 c3@5 ~@3", B: "a2@5 ~@3 a2@5 ~@3", C: "f2@5 ~@3 f2@5 ~@3", D: "g2@5 ~@3 g2@5 ~@3",
  E: "f2@5 ~@3 d2@5 ~@3", F: "g2@5 ~@3 g2@3 ~@5",
})).s("gm_acoustic_bass").gain(0.23).pan(0.3)

stack(acoustic_guitar_steel, bass)

More by Ricky Nelson