Strudelify
It's A Man's Man's World cover art

It's A Man's Man's Man's World

It's A Man's Man's World

James Brown

KeyE♭ majorTempo166 bpm
0:00/0:00
// It's A Man's Man's World — Brown James
// 166 bpm, 6/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 80 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(166/6)

// 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, A@4 for four bars: edit a riff to change every repeat.

// other · baritone sax
const baritone_sax = note("<~@3 A@2 ~@8 B C D E ~@20 B F G E ~@20 H I B C ~@15>".pickRestart({
  A: "[~@4 db3@9 ~@11]/2", B: "eb3@11 ~", C: "bb2@11 ~", D: "eb3@5 ~", E: "bb2@19 ~@5", F: "bb2@7 ~", G: "~ eb3@21 ~@2",
  H: "eb3", I: "~ bb2@20 ~@3",
})).s("gm_baritone_sax").gain(0.36)

// bass · electric bass finger
const bass = note(`<
  A@2 ~ B@2 C D C D E F G H C G C G C I C H C I C I C I C J C K C L M N O P Q K Q R C I C H C I C I C I C J C K C L M N
  O P Q K Q R C I C H C I C I C I C J C K C
>`.pickRestart({
  A: "[~ eb2@3 ~@2 f2@3 ~@3 gb2@3 ~@2 ab2@3 ~@2 bb2@20 ~@6]/2", B: "[~@2 db2@5 ~@5]/2", C: "eb2 ~@5",
  D: "bb1@4 ~@16 bb1@3 ~", E: "ab1@5 ~@19", F: "ab1@5 ~@11 ab1@2 ~@2 a1@3 ~", G: "bb1@5 ~@19",
  H: "bb1@5 ~@11 db2@2 ~@2 d2@2 ~@2", I: "bb1@2 ~@6 bb1 ~ db2 ~", J: "bb1@5 ~@11 bb1@2 ~@2 db2@2 ~@2",
  K: "bb1@7 ~@9 bb1@2 ~@2 db2@2 ~@2", L: "bb1@15 ~ bb1@3 ~ a1@3 ~", M: "ab1@7 ~@17", N: "ab1@6 ~@10 ab1@3 ~ a1@2 ~@2",
  O: "bb1@3 ~@5", P: "bb1@6 ~@2 db2 ~ d2 ~", Q: "eb2@7 ~@17", R: "bb1@11 ~@5 bb1@2 ~@2 db2@3 ~",
})).s("gm_electric_bass_finger").gain(0.52)

// chords · piano
const piano = note(`<
  ~@5 A B C D E@2 F G H B I J K L M B N O P Q R D S B P T S U V W X Y Z D AA J K L M B N O P AB R D S B P T S AC AD W AE
  Y Z D AA AF AG AH M B N AI P AJ AK AL S AM P T AN
>`.pickRestart({
  A: "[gb3,bb3,eb4]@2 ~@2 [bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Ebm Eb5 Ebm
  B: "[f3,db4]@2 ~@2 [f3,bb3,db4]@3 ~ [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2", // Db Bbm
  C: "~@4 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [bb3,eb4]@2 ~@2", // Ebm Eb5
  D: "[f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~", // Bbm
  E: "[b2,eb3,ab3]@3 ~ [b2,eb3,ab3]@3 ~ [b2,eb3,ab3]@3 ~ [b2,eb3,ab3]@3 ~ [b2,eb3,ab3]@3 ~ [b2,eb3,ab3]@3 ~", // Abm
  F: "[d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~", // Bb
  G: "[d3,f3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~", // Dm Bb
  H: "[gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Ebm
  I: "[gb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 bb3@2 ~@2", // Ebm
  J: "[f3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~", // Db Bbm
  K: "[bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~", // Eb5 Ebm
  L: "f3 ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,db4] ~", // Bbm Db
  M: "[bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Eb5 Ebm
  N: "eb4@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Ebm
  O: "[f3,bb3,db4] ~ [bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~", // Bbm
  P: "[bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Eb5 Ebm
  Q: "[f3,db4] ~ db4 ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~", // Db Bbm
  R: "[gb3,eb4]@3 ~ eb4@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Ebm
  S: "[gb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2", // Ebm
  T: "[f3,db4] ~ [f3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~", // Db Bbm
  U: "db4@2 ~@2 [f3,bb3,db4]@3 ~ [f3,bb3,db4]@3 ~ [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@3 ~ [f3,bb3,db4]@4", // Bbm
  V: "[b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3] ~", // Abm B
  W: "[b2,eb3]@2 ~@2 [b2,eb3]@2 ~@2 [b2,eb3,ab3]@2 ~@2 [b2,eb3,ab3]@2 ~@2 [b2,eb3,ab3]@2 ~@2 [b2,eb3,ab3]@3 ~", // B Abm
  X: "[d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3] ~", // Bb Dm
  Y: "[d3,f3]@2 ~@2 [d3,f3,bb3]@2 ~@2 [d3,f3,bb3]@3 ~ [d3,f3,bb3]@3 ~ [d3,f3,bb3]@3 ~ [d3,f3,bb3]@2 ~@2", // Dm Bb
  Z: "[gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~", // Ebm Eb5 Ebm
  AA: "[gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [bb3,eb4]@2 ~@2", // Ebm Eb5
  AB: "[f3,db4] ~ db4 ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~, ~@8 db2@3 ~", // Db Bbm
  AC: "db4@2 ~@2 [f3,bb3,db4]@3 ~ [f3,bb3,db4]@3 ~ [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@3 ~@3 ab2@2, ~@5 [f3,bb3,db4]", // Bbm
  AD: "[b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3,ab3] ~ [b2,eb3] ~, ab1@5 ~@3", // Abm B
  AE: "[d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3] ~, bb1", // Bb Dm
  AF: "[f3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~, ~@4 db2 ~", // Db Bbm
  AG: "[bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~, eb2@5 ~@3", // Eb5 Ebm
  AH: "f3 ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ eb4 ~ gb4@2, ~@15 db4@2 ~@3 eb4@2 ~@2", // Bbm
  AI: "[f3,bb3,db4] ~ [bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [bb3,db4] ~, ~@20 f3 ~@3", // Bbm
  AJ: "[f3,db4]@2 ~@2 db4@2 ~@2 [bb3,db4]@2 ~ bb4 [f3,bb3,db4]@2 ~ db3 [f3,bb3,db4,eb5]@2 ~@2 [bb3,db4,ab4]@2 ~ gb4, ~@8 f3 ~@2 a4@4 bb4@2 ~@3 f3 ~@3, ~@16 db2@7 ~", // Db Bbm Bbm7
  AK: "[gb3,eb4,ab4]@3 gb4 eb4@2 eb4 ~ [bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 eb4@2 [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@2, ~@8 gb3 ~@7 db4 ~@7", // Ab7 Eb5 Ebm
  AL: "[f3,bb3,db4]@2 eb4 ~ [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2 [bb3,db4]@2 ~@2, ~@20 f3 ~@3", // Bbm
  AM: "[f3,db4]@2 ~@2 [f3,bb3,db4]@3 ~ [f3,bb3,db4]@2 ~@2 [bb3,db4]@2 ~@2 [f3,bb3,db4]@2 ~@2 [bb3,db4]@2 ~@2, ~@12 f3 ~@7 f3 ~@3", // Db Bbm
  AN: "[gb3,eb4]@3 ~ [gb3,bb3,eb4]@2 ~@2 [gb3,bb3,eb4]@2 ~@14", // Ebm
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@5 A ~ B ~@4 C ~ C D C E F E C G H E I J ~ C@2 E K C L M N O C P ~ Q C E F E C G H E I J ~ C@2 E K C L M N O C P ~ Q
  C E R E C G H E S T ~ C@2 E K C
>`.pickRestart({
  A: "~@2 gb3 ~@9", B: "[gb3,bb3,eb4]@3 ~@17 gb3@2 ~@2", C: "bb3 ~@11", D: "~@10 [gb3,eb4] ~", E: "gb3 ~@11",
  F: "[bb3,db4] ~@9 bb3 ~", G: "[gb3,bb3] ~@11", H: "~@2 f3 ~@9", I: "bb3 ~ [f3,bb3] ~@9", J: "bb3 ~ [gb3,bb3] ~@9",
  K: "bb3 ~ bb3 ~@9", L: "[f3,bb3] ~@11", M: "~@20 ab3@3 ~", N: "ab3@3 ~ ab3@3 ~@17", O: "~@10 bb3 ~", P: "~@4 gb3 ~@7",
  Q: "~@10 gb3 ~", R: "[bb3,db4] ~@11", S: "bb3 ~ bb3 ~@9, ~@4 f3 ~@19", T: "bb3 ~ gb3 ~@9, gb4 ~@3 bb3 ~@19",
})).s("gm_piano").gain(0.15)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@6 A B A C D E@2 B A F A B A B A G A B H B A B A I A B A J D E K B A B A B A B A G A B H B A B A I A B A J D E K B A
  B A B A B A G A B H B A B A I A ~
>`.pickRestart({
  A: "~@12 [f4,ab4,db5] ~@11", B: "~@12 [gb4,bb4,eb5] ~@11", C: "~@12 [b3,f4,ab4] ~@11", D: "~@12 [b3,eb4,ab4] ~@11",
  E: "~@12 [d4,f4,bb4] ~@11", F: "~@12 [gb4,bb4,eb5] db5 ~@10", G: "~@12 eb5 [gb4,bb4,db5] ~@10",
  H: "~@12 [ab4,db5] ~@11, ~@11 f4@2 ~@11", I: "~@12 [gb4,bb4,db5,eb5] ~@11", J: "~@12 [b3,eb4,gb4,ab4] ~@11",
  K: "~@12 [d4,f4,ab4,bb4] ~@11", // Bb7
})).s("gm_electric_guitar_clean").gain(0.36)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@9 A B C D E@2 F ~@17 A B C D E@2 F ~@17 A B C D E@2 F ~@3 G H I ~@10>".pickRestart({
  A: "~@12 [ab3,ab4]@3 ~ [b3,b4]@4 [eb4,eb5]@4", B: "[bb4,bb5]@5 [ab4,ab5]", C: "[bb4,bb5]", D: "[d5,d6]",
  E: "[[bb4,eb5,bb5,eb6]@23 [db5,f5,db6,f6]@25]/2", F: "[eb5,gb5,eb6,gb6]@23 ~",
  G: "~@12 [eb4,eb5]@3 [gb4,gb5]@4 [bb4,bb5]@5", H: "[f5,f6]", I: "[eb5,eb6]@19 ~@5",
})).s("gm_string_ensemble_2").gain(0.36).pan(0.6)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@15 A@2 ~@22 A@2 ~@22 A@2 ~@15>".pickRestart({
  A: "[~@23 [db5,f5,db6,f6]@25]/2", // Db
})).s("gm_string_ensemble_2").gain(0.24).pan(0.6)

// chords · tremolo strings
const tremolo_strings = note("<A@2 B C ~@14 D ~ D ~@21 D ~ D ~@35>".pickRestart({
  A: "[~ [eb4,eb5]@3 ~@2 [f4,f5]@3 ~@3 [gb4,gb5]@3 ~@2 [ab4,ab5]@2 ~@3 [bb4,bb5]@19 ~ bb5 ~ ab5 gb5 f5 ab5]/2", // Eb F Gb Ab Bb
  B: "gb5 ~ f5 eb5 gb5 f5 eb5 db5 ~ f5 eb5 db5 b4 eb5 ~ db5 b4 bb4 db5 b4 ~ bb4 ab4 b4",
  C: "bb4 ab4 gb4 ~ f4 e4 eb4 d4 db4@9 ~@7", D: "~@3 [eb4,ab4] ~@2 [f4,bb4] ~ [ab4,db5] ~@2 [db4,gb4]@13",
})).s("gm_tremolo_strings").gain(0.48).pan(0.4)

// chords · tremolo strings · soft notes
const tremolo_strings_soft = note("<~@9 A@2 B ~@21 A@2 B ~@21 A@2 B ~@20>".pickRestart({
  A: "[~ b3@23, ~ ab3@47]/2", B: "[bb3,d4]",
})).s("gm_tremolo_strings").gain(0.24).pan(0.4)

// chords · cello
const cello = note("<A@2 B C ~@14 D ~ D ~@21 D ~ D ~@35>".pickRestart({
  A: "[~ eb4@3 ~@2 f4@3 ~@3 gb4@3 ~@2 ab4@2 ~@3 bb4@19 ~ bb5 ~ ab5 gb5 f5 ab5]/2",
  B: "gb5 ~ f5 eb5 gb5 f5 eb5 db5 ~ f5 eb5 db5 b4 eb5 ~ db5 b4 bb4 db5 b4 ~ bb4 ab4 b4",
  C: "bb4 ab4 gb4 ~ f4 e4 eb4 d4 db4@9 ~@7", D: "~@3 [eb4,ab4] ~@2 [f4,bb4] ~ [ab4,db5] ~@2 [db4,gb4]!8 gb4!2 ~@3",
})).s("gm_cello").gain(0.36).pan(0.6)

// chords · cello · soft notes
const cello_soft = note("<~@18 A ~ A ~@21 A ~ A ~@35>".pickRestart({
  A: "~@19 db4!2 [db4,gb4] ~@2", // Gb5
})).s("gm_cello").gain(0.18).pan(0.6)

// other · pizzicato strings
const pizzicato_strings = note("<~@25 A B A B C D C D ~@16 A B A B C D C D ~@23>".pickRestart({
  A: "~@4 eb4 ~@3 f4 ~@3 gb4 ~@3 f4 ~@3 eb4 ~@3", B: "~@4 db4@2 ~@2 eb4 ~@3 f4 ~@3 eb4 ~@3 db4 ~@3",
  C: "~@4 gb4 ~@3 ab4 ~@3 bb4 ~@3 ab4 ~@3 gb4 ~@3", D: "~@4 f4 ~@3 gb4 ~@3 ab4 ~@3 gb4 ~@3 f4 ~@3",
})).s("gm_pizzicato_strings").gain(0.48)

// other · brass section
const brass_section = note("<A@2 ~ B@2 ~@75>".pickRestart({
  A: "[~ [eb3,eb4,eb5]@3 ~@2 [f3,f4,f5]@3 ~@3 [gb3,gb4,gb5]@3 ~@2 [ab3,ab4,ab5]@3 ~@2 [bb3,f4]@18 ~@8, ~@11 [bb4,bb5]@8 ~@5]/2", // Eb F Gb Ab Bb5 Bb
  B: "[~@4 [db3,ab3,b3]@9 ~@11]/2", // Db7
})).s("gm_brass_section").gain(0.54)

// drums · kick
const kick = s("bd").struct("<~ A ~ B ~ C@7 D C@23 D C@2 E@2 C@17 D C D C@3 D C@15>".pickRestart({
  A: "~@5 x ~@2", B: "~@23 x", C: "x", D: "x ~@3 x!2", E: "x ~@2 x!3",
})).gain(0.47)

// drums · rim
const rim = s("rim").struct("<~@5 [~ x]!74 ~>").gain(0.67)

// drums · snare
const snare = s("sd").struct("<[~ x ~@4 x ~@5 x ~@4 x ~@4 x!2] [x!12 ~ x ~@10] ~ [~@9 x!2 ~ x ~ x!2 ~ x!6 ~] ~@76>")
  .gain(0.4)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 [~@11 x ~ x ~@2 x ~@7] ~@76>").gain(0.27)

// drums · hihat
const hihat = s("hh").struct("<~@5 [x ~@3 x ~@2 x!2 ~@3 x ~@3 x ~@2 x!2 ~@3]!74 [x ~@3 x ~@2 x!2 ~@15]>").gain(0.33)

// drums · low tom
const low_tom = s("lt").struct("<~ [~@5 x ~@2] ~ [~@8 x ~@14 x] ~@76>").gain(0.33)

// drums · crash
const crash = s("cr").struct("<[~ x ~@4 x ~@5 x ~@4 x ~@4 x ~] ~@79>").gain(0.4)

stack(
  baritone_sax, bass, piano, piano_soft, electric_guitar_clean, string_ensemble_2, string_ensemble_2_soft,
  tremolo_strings, tremolo_strings_soft, cello, cello_soft, pizzicato_strings, brass_section, kick, rim, snare,
  snare_soft, hihat, low_tom, crash
)

More by James Brown