Strudelify

We Dem Boyz

Arranger: K. Hunter

KeyB♭ majorTempo120 bpm
0:00/0:00
// We Dem Boyz — Arranger: K. Hunter
// 120 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "Baritone Saxophone" baritone sax (copy of ch 7 "Bb Tuba" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/340071; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 19 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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.

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<A@4 B ~@3 A C D E F G D E A H I>".pickRestart({
  A: "f4@3 gb4@3 eb4@2", B: "f4 ~@15", C: "f4@6 eb4@6 ~ f4 eb4 f4", D: "eb4@2 ~@4 f4 eb4 ~@2 eb4 db4 f4@4",
  E: "~@6 f4 eb4 ~@2 eb4 db4 f4@4", F: "~@2 f4 eb4 f4 eb4 f4 eb4 ~ f4 eb4 db4 f4@2 f4 eb4",
  G: "~@6 f4 eb4 ~@2 f4 eb4 f4 eb4 f4 eb4", H: "f4@3 eb4@3 f4@2", I: "f4 ~",
})).s("gm_alto_sax").gain(0.45)

// chords · trumpet · "Bb Trumpet"
const trumpet = note("<A B A B C ~@3 D E D E D ~ D E F G H>".pickRestart({
  A: "~@6 bb4 ab4 bb4@2 c5@2 db5@4", B: "~ bb4", C: "bb4 ~@15", D: "[db5,f5]!3 [eb5,gb5]!3 [c5,eb5]!2",
  E: "[db5,f5]!3 [eb5,gb5]!3 [c5,eb5] [ab4,c5]", F: "c5@3 db5@3 bb4@2", G: "c5@3 bb4@3 a4@2", H: "bb4 ~",
})).s("gm_trumpet").gain(0.25)

// chords · trumpet · "Bb Trumpet"
const trumpet_2 = note("<A B A B C ~ D@7 ~ D@2 E F G>".pickRestart({
  A: "~@6 bb3 ab3 bb3@2 c4@2 db4@4", B: "~ [eb4,gb4]", C: "[f4,bb4] ~@15", D: "[bb3,db4]!3 [bb3,eb4]!3 [ab3,c4]!2",
  E: "f4@3 gb4@3 eb4@2", F: "f4@3 gb4@3 a4@2", G: "f4 ~",
})).s("gm_trumpet").gain(0.25)

// other · french horn · "F Mellophone"
const french_horn = note("<A B A B C ~@3 D E F G H I F G D J K>".pickRestart({
  A: "~ db4 eb4 f4", B: "~ eb4", C: "f4 ~@15", D: "f4@3 gb4@3 eb4@2", E: "f4@6 eb4@6 ~ f4 eb4 f4",
  F: "eb4@2 ~@4 f4 eb4 ~@2 eb4 db4 f4@4", G: "~@6 f4 eb4 ~@2 eb4 db4 f4@4",
  H: "~@2 f4 eb4 f4 eb4 f4 eb4 ~ f4 eb4 db4 f4@2 f4 eb4", I: "~@6 f4 eb4 ~@2 f4 eb4 f4 eb4 f4 eb4",
  J: "f4@3 gb4@3 a4@2", K: "f4 ~",
})).s("gm_french_horn").gain(0.45)

// bass · tuba · "Bb Tuba"
const bass = note(`<
  [bb2@2 ~@3 bb2 eb2@2 ~@3 eb2 f2@2 ~@2]!13
  [bb2@3 ab2@3 f2@2]
  [bb2@2 ~@3 bb2 eb2@2 ~@3 eb2 f2@2 ~@2]!2
  [bb2@3 ab2@3 f2@2]
  [bb2@3 ab2@3 a2@2]
  [bb2 ~]
>`).s("gm_tuba").gain(0.3)

// chords · clarinet · "Bb Clarinet"
const clarinet = note("<A B A B ~@6 C@3 ~ D E F G H>".pickRestart({
  A: "~@6 f5 eb5 ab5@2 gb5@2 f5@4", B: "~@6 f5 ~ bb4 ~ c5 ~ db5 ~ eb5 ~", C: "[bb3,db4]!3 [bb3,eb4]!3 [ab3,c4]!2",
  D: "bb5@2 ~@4 bb5!2 ~@2 bb5!2 bb5@4", E: "~@6 bb5!2 ~@2 bb5!2 bb5@4", F: "f4@3 eb4@3 c4@2", G: "f4@3 eb4@3 ab4@2",
  H: "bb4 ~",
})).s("gm_clarinet").gain(0.3)

// other · french horn · "Baritone Horn"
const french_horn_2 = note("<A@4 B ~@5 C D C D C D C E F>".pickRestart({
  A: "db4@3 bb3@3 ab3@2", B: "bb3 ~@15", C: "f3@3 gb3@3 eb3@2", D: "f3@3 eb3@3 ~@2", E: "f3@3 gb3@3 ab3@2", F: "bb3 ~",
})).s("gm_french_horn").gain(0.3)

stack(alto_sax, trumpet, trumpet_2, french_horn, bass, clarinet, french_horn_2)