Strudelify
Sex Machine (Get Up I Feel Like Being A) cover art

1975 · Sex Machine Today

Sex Machine (Get Up I Feel Like Being A)

James Brown

KeyE♭ minorTempo110 bpm
0:00/0:00
// Sex Machine (Get Up I Feel Like Being A) — Brown James
// 110 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 98 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(110/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 · electric guitar clean · "grt riff"
const electric_guitar_clean = note("<A@2 B@40 C@15 D B@32 C@7 D>".pickRestart({
  A: "[~@24 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5]@2 ~ [c4,gb4,ab4,eb5]@2 ~ [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5]@2 ~, ~@23 b3@2 ~@23]/2", // Ab7
  B: "[gb3,eb4,bb4] ~@5 [eb4,bb4] ~@5 [eb4,gb4,c5]@4 ~ [eb4,bb4] ~@6", // Ebm Eb5 Cdim Eb5
  C: "[ab4,f5] ~ [ab4,f5] ~@3 [ab4,eb5] ~ [ab4,eb5] ~@2 [gb4,db5] ~@2 [g4,d5] ~@2 [ab4,eb5] ~@6", // Db Ab5 Gb5 G5 Ab5
  D: "[c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5]@2 ~ [c4,gb4,ab4,eb5]@2 ~ [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5] ~@2 [c4,gb4,ab4,eb5]@2 ~", // Ab7
})).s("gm_electric_guitar_clean").gain(0.56).pan(0.1)

// chords · electric guitar clean · "grt riff" · soft notes
const electric_guitar_clean_2 = note("<~@2 [~@11 gb3 ~@12]!40 ~@16 [~@11 gb3 ~@12]!32 ~@8>")
  .s("gm_electric_guitar_clean").gain(0.32).pan(0.1)

// bass · fretless bass · "basso"
const bass = note(`<
  ~ A B@24 C@3 D C@3 B E F E B E B E F G@15 A E F E B E B E F B@16 E F E B E B E F G@7 A
>`.pickRestart({
  A: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~",
  B: "eb2 ~@4 c2 eb2 ~ eb2 ~@5 c2 eb2 ~ eb2 ab1 ~ [ab1,bb1] c2@2 ~", // Absus2
  C: "eb2 ~@4 c2 eb2 ~ eb2 ~@2 eb3 ~@2 [c2,db3] eb2 ~ eb2 ab1 ~ [ab1,bb1] c2@2 ~", // Dbmaj7 Absus2
  D: "eb2 ~@4 c2 eb2 ~ eb2 ~@5 [c2,eb3] eb2 ~ eb2 ab1 ~ [ab1,bb1] c2@2 ~", // Cm Absus2
  E: "eb2 ~@4 c2 eb2 ~ eb2 ~@2 eb2 db3@2 [c2,eb2] c3@2 [eb2,bb2] ab1 ~ [ab1,bb1] c2@2 ~, ~@15 eb2 ~@8", // Cm Eb5 Absus2
  F: "eb2 ~@4 c2 eb2 ~ eb2 ~@5 [c2,eb2] eb2 ~ eb2 ab1 ~ [ab1,bb1] c2@2 ~", // Cm Absus2
  G: "ab2@2 ab2 ~@3 ab2@2 ab2 ~@2 eb2 gb2@2 g2 ~@2 ab2 ~@2 eb2 gb2@2 g2, ~@5 gb2@2 ~@17",
})).s("gm_fretless_bass").gain(0.48)

// other · brass section · "brass1"
const brass_section = note(`<
  ~ A ~@7 B C D B E C D B F ~@15 B C D B E C D B F ~@15 G C D B E C D B F ~@8 H@2 I ~ J@2 K G C D B E C D B F ~@7 A
>`.pickRestart({
  A: "[eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~", // Eb
  B: "~@21 [eb4,eb5] ~ [eb4,eb5]", C: "~@2 [bb3,bb4] ~@18 eb4@2 [eb4,eb5], ~@21 eb5 ~@2",
  D: "~@2 [bb3,bb4] ~@12 [eb4,eb5]@2 [eb4,eb5] gb4@2 [gb4,gb5] [eb4,eb5]@2 [gb4,gb5], ~@18 gb5 ~@5", // Bb Eb Gb Eb Gb
  E: "~@2 [bb3,bb4] ~@18 [eb4,eb5] ~ [eb4,eb5]", F: "~@2 [bb3,bb4] ~@18 [eb4,eb5] ~@2",
  G: "[eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 ~ [eb4,eb5]@2 [eb4,eb5]", // Eb
  H: "[bb4 ~@2 bb4@2 ~ bb4 ~@2 bb4@2 ~ bb4 ~@2 bb4 ~@2 bb4@2 c5 ~@2 bb4@6 ~ bb4@2 c5 ~@2 db5@8 ~@2 bb4 ab4 gb4]/2",
  I: "eb4 ~ gb4 ~@21",
  J: "[bb4 ~@2 bb4@2 ~ bb4 ~@2 bb4 ~@2 bb4 ~@2 bb4 ~@2 bb4@2 c5 ~@2 bb4@6 ~ bb4@2 c5 ~@2 db5@9 ~ c5 bb4@2]/2",
  K: "ab4 ~ db5 ~@21",
})).s("gm_brass_section").gain(0.56).pan(0.7)

// chords · piano
const piano = note("<~@17 A B@2 C A D@2 E ~@40 A B@2 C A D@2 E A B@2 C A D@2 E ~@17>".pickRestart({
  A: "~@23 eb4",
  B: "[[gb4,bb4]@2 eb4 [gb4,bb4]@2 eb4 [gb4,bb4]@2 eb4 [gb4,bb4]@2 eb4 [gb4,bb4]@2 ~ [gb4,bb4]@2 eb4 [gb4,bb4] ~ [ab4,c5] ~@2 [gb4,bb4]@6 eb4 [gb4,bb4] ~ [ab4,c5] ~@2 [bb4,db5]@9 ~ bb4 ~@2]/2", // Gb Ab Gb Ab Bbm
  C: "eb4 ~ gb4 ~@21",
  D: "[[gb4,bb4]@2 eb4 [gb4,bb4]@2 eb4 [gb4,bb4]@2 ~ [gb4,bb4]@2 eb4 [gb4,bb4]@2 eb4 [gb4,bb4]@2 eb4 [gb4,bb4] ~ [ab4,c5] ~@2 [gb4,bb4]@6 eb4 [gb4,bb4] ~ [ab4,c5] ~@2 [bb4,db5]@9 ~ bb4 ab4 ~]/2", // Gb Ab Gb Ab Bbm
  E: "eb4 ~ [gb4,db5] ~@21", // Gb5
})).s("gm_piano").gain(0.56)

// chords · piano · soft notes
const piano_soft = note("<~@18 A B ~@2 C D E ~@41 A B ~@2 C D E ~ A B ~@2 C D E ~@17>".pickRestart({
  A: "~@14 eb4 ~@9", B: "~@22 [gb4,ab4] ~", C: "~@8 eb4 ~@15", D: "~@23 gb4", E: "~@2 eb4 ~@21",
})).s("gm_piano").gain(0.32)

// other · brass section · "trombe"
const brass_section_2 = note(`<
  ~@10 A B C D@2 C B E ~@16 A B C D@2 C B E ~@16 A B C D@2 C B E ~@16 A B C D@2 C B E ~@8
>`.pickRestart({
  A: "~@11 [eb4,eb5] ~@12", B: "~@6 eb4@4 ~ [eb4,eb5] ~@12", C: "~@6 [eb4,eb5]@4 ~ [eb4,eb5] ~@12",
  D: "~@6 eb5@4 ~ [eb4,eb5] ~@12", E: "~@6 [eb4,eb5]@4 ~@2 db4@2 [d4,d5] ~@2 [eb4,eb5] ~@6, ~@12 db5 ~@11",
})).s("gm_brass_section").gain(0.56)

// other · brass section · "trombe" · soft notes
const brass_section_soft = note(`<
  ~@10 A B ~ C@2 ~ B ~@17 A B ~ C@2 ~ B ~@17 A B ~ C@2 ~ B ~@17 A B ~ C@2 ~ B ~@9
>`.pickRestart({
  A: "~@3 [eb4,eb5]@2 ~@7", B: "~@3 eb5@2 ~@7", C: "~@3 eb4@2 ~@7",
})).s("gm_brass_section").gain(0.32)

// drums · kick
const kick = s("bd").struct("<~@2 [x ~@13 x!2 ~@5 x ~@2]!55 ~ [x ~@13 x!2 ~@5 x ~@2]!39 ~>").gain(0.48)

// drums · clap
const clap = s("cp").struct("<~@34 A@4 B A@2 C ~@16 A@4 B A@2 C ~@16 A@4 B A@2 C ~@8>".pickRestart({
  A: "~ x ~ x", B: "x!2 ~ x", C: "~ x ~@2",
})).gain(0.56)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@2 [~ x]!55 ~ [~ x]!39 ~>").gain(0.16)

// drums · hihat
const hihat = s("hh").struct("<~@2 A@40 B C D E F G H I B C D E F G H ~ A@32 B C D E F G H ~>".pickRestart({
  A: "x ~@2 x ~@5 x ~ x!2 ~@2 x ~@5 x ~ x", B: "x!2 ~ x ~@6 x ~", C: "~ x ~ x", D: "~ x", E: "~@4 x ~@2 x ~ x!2 ~",
  F: "x ~@2 x!2 ~ x ~@2 x ~@2", G: "~@3 x!2 ~ x!2 ~ x ~@2", H: "x ~@5 x ~@2 x!2 ~", I: "x!2 ~@2",
})).gain(0.72)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@42 A B C D E F G H A B C D E F G ~@33 A B C D E F G ~>".pickRestart({
  A: "~@4 x ~ x!2 ~ x ~@2", B: "x!2 ~@2 x ~ x!2 ~@2 x ~", C: "x!2 ~ x!2 ~@2 x ~ x!2 ~", D: "x!2 ~ x ~@2 x ~@5",
  E: "~ x ~@5 x ~@2 x ~", F: "x!2 ~@8 x ~", G: "~ x ~ x!2 ~@2 x ~@4", H: "~ x ~@10",
})).gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@2 A@7 B A@7 B A@24 C@7 D C@7 E A@15 B A@7 B A@8 C@7 E>".pickRestart({
  A: "~@3 x ~@3 x ~ x ~@2", B: "~ x ~ x ~@3 x ~ x ~@2", C: "~ x ~ x ~ x ~ x", D: "~@2 x!2 ~@5 x ~@5 x ~@5 x ~@2",
  E: "~ x ~@10",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct(`<
  ~@26 A@2 B C D B@2 E ~@8 A@4 F A@2 ~ A@4 F A@2 ~@17 A@4 F A@2 ~@9 A@4 F A@2 ~
>`.pickRestart({
  A: "x!4", B: "~ x!3", C: "~@5 x", D: "x!3 ~", E: "~ x ~@10", F: "x!2 ~ x",
})).gain(0.48)

// drums · ride · soft notes
const ride_soft = s("rd").struct("<~@28 x [x ~@5 x ~@6 x ~@10] [~@3 x] x!2 ~@65>").gain(0.24)

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

stack(
  electric_guitar_clean, electric_guitar_clean_2, bass, brass_section, piano, piano_soft, brass_section_2,
  brass_section_soft, kick, clap, snare, snare_soft, hihat, hihat_soft, open_hat, ride, ride_soft, china
)

More by James Brown