Strudelify
Everyday People cover art

1969 · Stand

Everyday People

Sly

KeyG majorTempo114 bpm
0:00/0:00
// Everyday People — Sly
// 114 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(114/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(`<
  A B A B C D E D C B A B A B A B C B C D F B C B A B G B A B C B A B C D A B C B C D H D A B I B A B A D A B A J A B A
  B C D E D K@2
>`.pickRestart({
  A: "[g3,d4,g4,b4,d5]@12 ~@2 [g3,e4,g4,c5,e5] ~", B: "~ [g3,d4,g4,b4,d5]@6 ~",
  C: "[g3,d4,g4,b4,d5]@13 ~ [g3,e4,g4,c5,e5] ~", D: "~@2 [g3,d4,g4,b4,d5]@13 ~",
  E: "[g3,d4,g4,b4,d5]@6 ~ [g3,e4,g4,e5], ~@14 c5 ~", F: "[g3,d4,g4,b4,d5]@13 ~ [e4,g4,e5]@2, ~@14 [g3,c5] ~",
  G: "[g3,d4,g4,b4,d5]@6 ~ [g3,e4,g4,c5,e5]", H: "[g3,d4,g4,b4,d5]@6 ~ [g3,e4,g4], ~@14 [c5,e5] ~",
  I: "[g3,d4,g4,b4,d5]@13 ~ [g3,e4,c5,e5] ~, ~@7 g4", J: "~ [g3,d4,g4,b4,d5]@7", K: "[[g3,d4,g4,b4,d5]@27 ~@5]/2",
})).s("gm_piano").gain(0.38).pan(0.7)

// bass · fretless bass · "FRETLESS"
const bass = note("<A@5 B A@19 C A@7 B A@19 C A@7 B A@2 D@2>".pickRestart({
  A: "g1 ~ g1@2 g1 ~ g1@2 g1 ~ g1@2 g1 ~ g1@2", B: "g1 ~ g1@2 g1 ~ g1@2 ~@2 g1@2 g1 ~ g1@2",
  C: "g1 ~ g1@2 ~@2 g1@2 g1 ~ g1@2 g1 ~ g1@2", D: "[g1@27 ~ g1 ~@3]/2",
})).s("gm_fretless_bass").gain(0.49)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@4 A B C B C B C B C B C B D E F G F G F H A B C B C B A I C I A I A B A B F G F G F G F H A B A J K G F G F G F L A
  B A I M@2
>`.pickRestart({
  A: "[g3,b3,d4]@6 ~ [g3,c4,e4]", B: "~@2 [g3,b3,d4]@13 ~", C: "[g3,b3,d4]@13 ~ [g3,c4,e4]@2",
  D: "[g3,b3,d4]@2 [g2,d3]@2 [g3,b3,d4]@2 [g2,d3]@2 [g3,b3,d4]@2 ~ g2 [g3,b3,d4]@2 ~ d3, ~@5 d3 ~ g2", // G G5 G G5 G
  E: "[g3,c4,e4] [g2,d3] [g3,b3,d4] [g2,d3] [g3,b3,d4] ~ [g3,b3,d4] [g2,d3], ~@5 d3 ~@2, ~@11 g2@2 ~@3", // C G5 G G5 G G5
  F: "[g3,b3,d4] [g2,d3] [g3,b3,d4] [g2,d3] [g3,b3,d4] [g2,d3] [g3,b3,d4] [g2,d3]", // G G5 G G5 G G5 G G5
  G: "[g3,c4,e4] [g2,d3] [g3,b3,d4] [g2,d3] [g3,b3,d4] [g2,d3] [g3,b3,d4] [g2,d3]", // C G5 G G5 G G5 G G5
  H: "[g3,c4,e4]@2 [g2,d3]@2 [g3,b3,d4]@2 [g2,d3]@2 [g3,b3,d4]@2 [g2,d3]@2 [g3,b3,d4]@2 [g2,d3] ~", // C G5 G G5 G G5 G G5
  I: "~ [g3,b3,d4]@6 ~", J: "~ [g3,b3,d4]@7",
  K: "[g3,b3,d4]@2 [g2,d3] ~ [g3,b3,d4]@2 [g2,d3]@2 [g3,b3,d4]@2 [g2,d3]@2 [g3,b3,d4]@2 [g2,d3]@2", // G G5 G G5 G G5 G G5
  L: "[g3,c4,e4] [g2,d3] [g3,b3,d4] d3 [g3,b3,d4] d3 [g3,b3,d4] [g2,d3], ~@6 g2@7 ~@3", // C G5 G G5
  M: "[[g3,b3,d4]@12 ~@2 [b3,d4,g4] ~]/2", // G
})).s("gm_electric_guitar_jazz").gain(0.15).pan(0.1)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note("<~@3 A ~@11 A ~@10 B@2 ~@11 A ~@10 C@2 ~@10 D@2 E@2>".pickRestart({
  A: "~@10 g2 ~ g2@2 g2 ~", B: "[g2@5 ~@3]/2", C: "[g2@4 g2@2 g2@14 ~@6 g2 ~ g2@2 g2 ~]/2", D: "[g2@25 ~@7]/2",
  E: "[g2@29 ~@3]/2",
})).s("gm_lead_2_sawtooth").gain(0.38).pan(0.2)

// other · trumpet
const trumpet = note(`<
  ~@16 A B C D A B E D ~@4 F G H I F G J K L K M N O B C P O B C Q R@2 S@2 T U C D O V C W X@2 Y@2 Z@2
>`.pickRestart({
  A: "b3@2 d4 ~ b3 ~ d4@6 ~@4", B: "e4@2 g4 ~@3 g4@6 ~@4", C: "b4@5 ~ a4 ~ b4 ~ a4 ~ g4@2 ~@2",
  D: "e4@2 ~@2 g3@2 ~@2 g3@5 ~@3", E: "b4@4 ~@2 a4 ~ b4 ~ a4 ~ g4@2 ~@2", F: "b3@3 ~", G: "~ b3@5 ~@2", H: "b3@11 ~@5",
  I: "~@2 b3@11 ~@3", J: "d4@5 ~@3", K: "~ d4@5 ~@2", L: "d4@11 ~@5", M: "d4@3 ~", N: "~@2 d4@11 ~@3",
  O: "b3@2 d4 ~ b3 ~ d4@7 ~@3", P: "e4 ~ g3 ~ g3@3 ~", Q: "e4@3 ~ g3@2 ~@2 g3@7 ~",
  R: "[d4@21 ~@3 e4@2 d4 ~ b3 ~ c4 ~]/2", S: "[e4 ~@3 d4@2 d4@14 ~@12]/2", T: "b3@2 d4 ~@3 d4@8 ~@2",
  U: "e4 g4 ~ g4@3 ~@2", V: "e4@2 g4@2 ~@2 g4@7 ~@3", W: "e4@2 ~@6 g3@5 ~@3", X: "[d4@19 ~@5 e4@2 d4 ~ b3 ~ c4 ~]/2",
  Y: "[d4@7 ~]/2", Z: "[d4@28 d4 ~@3]/2",
})).s("gm_trumpet").gain(0.44).pan(0.3)

// other · baritone sax · "BARITONSAX"
const baritone_sax = note(`<
  ~@16 A B C D E F C G ~@4 H I H I H J K L H J M I N O P Q E R C G S@2 T@2 E F U Q A V C Q W@2 X@2 Y@2
>`.pickRestart({
  A: "b2@2 d3 ~ b2 ~ d3@8 ~@2", B: "e3 g2 ~ g2@4 ~", C: "b2@5 ~ a2 ~ b2 ~ a2 ~ g2@2 ~@2", D: "e3 ~ g2 ~ g2@2 ~@2",
  E: "b2@2 d3 ~ b2 ~ d3@7 ~@3", F: "e3 g2 ~ g2@3 ~@2", G: "e3@2 ~@2 g2@2 ~@2 g2@5 ~@3", H: "g2@3 ~", I: "~@2 g2@11 ~@3",
  J: "~ g2@5 ~@2", K: "b2@11 ~@5", L: "~ b2@5 ~@2", M: "g2@11 ~@5", N: "b2@2 d3 ~ b2 ~ d3@6 ~@4",
  O: "e3@2 f#2@2 ~@2 g2@7 ~@3", P: "b2@6 a2 ~ b2 ~ a2 ~ g2@2 ~@2", Q: "e3 ~ g2 ~ g2@3 ~", R: "e3@2 g2 ~@3 g2@6 ~@4",
  S: "[d3@18 ~@6 e3@2 d3 ~ b2@2 c3 ~]/2", T: "[e3 ~ d3 d3@7 ~@6]/2", U: "b2@6 a2 ~ b2 ~ a2 ~ g2@3 ~",
  V: "e3@2 g2 ~@3 g2@8 ~@2", W: "[d3@19 ~@5 e3@2 d3 ~ b2@2 c3 ~]/2", X: "[d3@27 ~@5]/2", Y: "[d3@15 ~]/2",
})).s("gm_baritone_sax").gain(0.44).pan(0.7)

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

// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!15 [~ x ~@2] [~ x ~ x]!23 [~ x ~@2] [~ x ~ x]!23 [~ x ~@2] ~ [~@3 x]>")
  .gain(0.49)

// drums · low tom
const low_tom = s("lt").struct("<~@15 A ~@23 B ~@21 C ~ D E F>".pickRestart({
  A: "~@15 x", B: "~@11 x!5", C: "~@13 x!3", D: "~@8 x ~@4 x!3", E: "~@5 x!11", F: "x!7 ~@9",
})).gain(0.38)

// drums · hihat
const hihat = s("hh").struct("<A@15 B C A@22 D A@21 E A D ~@2>".pickRestart({
  A: "x!8", B: "x!6 ~@2", C: "~ x!7", D: "x!4 ~@4", E: "x!5 ~@3",
})).gain(0.33)

// drums · mid tom
const mid_tom = s("mt").struct("<~@15 A ~@23 B ~@21 C ~ D ~@2>".pickRestart({
  A: "~@12 x!3 ~", B: "~@8 x!3 ~@5", C: "~@10 x!3 ~@3", D: "~@5 x!2 ~",
})).gain(0.49)

// drums · crash
const crash = s("cr").struct("<~@16 x ~@47 x [~@3 x]>").gain(0.44)

// drums · cowbell
const cowbell = s("cb").struct("<~@4 [x!4]!60 x ~>").gain(0.49)

stack(
  piano, bass, electric_guitar_jazz, lead_2_sawtooth, trumpet, baritone_sax, kick, snare, low_tom, hihat, mid_tom,
  crash, cowbell
)

More by Sly