Strudelify

Money Baby

Corey Nevels

KeyD♭ majorTempo72 bpm
0:00/0:00
// Money Baby — Corey Nevels
// 72 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "Baritone Horn" french horn (copy of ch 4 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/191262; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 26 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(72/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 · flute
const flute = note("<A B@3 C D@3 A E ~@7 B@3 C D@3 A E>".pickRestart({
  A: "~@8 bb5@2 ab5 bb5 f5@2 eb5@2", B: "ab5 bb5 ~@2 db6!2 ~@2 eb6!2 ~@2 ab5!2 ~@2", C: "~@13 eb5 f5 ab5",
  D: "bb5!2 ab5!2 ~@2 f5!2 eb5!2 ~@2 eb5!2 db5!2", E: "bb5 ~@3",
})).s("gm_flute").gain(0.72).pan(0)

// other · clarinet · "Bb Clarinet"
const clarinet = note("<A B@3 C D@3 A E ~@7 B@3 C D@3 A E>".pickRestart({
  A: "~@8 bb5@2 ab5 bb5 f5@2 eb5@2", B: "ab4 bb4 ~@2 db5!2 ~@2 eb5!2 ~@2 ab4!2 ~@2", C: "~@13 eb5 f5 ab5",
  D: "bb5!2 ab5!2 ~@2 f5!2 eb5!2 ~@2 eb5!2 db5!2", E: "bb5 ~@3",
})).s("gm_clarinet").gain(0.72).pan(0)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<A B@3 C B@3 D E ~@7 B@3 C B@3 D E>".pickRestart({
  A: "~@8 bb4@2 ab4 bb4 f4@2 eb4@2", B: "ab4 bb4 ~@2 db5!2 ~@2 eb5!2 ~@2 ab4!2 ~@2",
  C: "~@2 bb4!3 ab4!3 f4@2 eb4 db4 eb4 f4 db4@2", D: "eb5!3 f5 eb5@2 db5@2 bb4@2 ab4 bb4 f4@2 eb4@2", E: "db5 ~@3",
})).s("gm_alto_sax").gain(0.64).pan(1)

// other · trumpet · "Bb Trumpet"
const trumpet = note("<A ~@3 B C@3 A D ~@10 B C@3 A D>".pickRestart({
  A: "~@8 [bb4,bb5]@2 [ab4,ab5] [bb4,bb5] [f4,f5]@2 [eb4,eb5]@2", B: "~@13 eb5 f5 ab5",
  C: "[bb4,bb5]!2 [ab4,ab5]!2 ~@2 [f4,f5]!2 [eb4,eb5]!2 ~@2 [eb4,eb5]!2 [db4,db5]!2", D: "[f5,bb5] ~@3",
})).s("gm_trumpet").gain(0.8).pan(0)

// other · trumpet · "Bb Trumpet" · soft notes · Bbm Gb Ab Bbm Gb Ab
const trumpet_soft = note(`<
  ~
  [[db4,f4,bb4]@3 [db4,gb4,bb4]@3 [c4,eb4,ab4]@2]!3
  ~@13
  [[db4,f4,bb4]@3 [db4,gb4,bb4]@3 [c4,eb4,ab4]@2]!3
  ~@6
>`).s("gm_trumpet").gain(0.32).pan(0)

// other · french horn · "F Mellophone"
const french_horn = note("<A B@3 C B@3 D E ~@7 B@3 C B@3 D E>".pickRestart({
  A: "~@2 db5 c5", B: "ab4 bb4 ~@2 db5!2 ~@2 eb5!2 ~@2 ab4!2 ~@2", C: "~@2 bb5!3 ab5!3 f5@2 eb5 db5 eb5 f5 db5@2",
  D: "eb5!3 f5 eb5@2 db5@2 db5@4 c5@4", E: "db5 ~@3",
})).s("gm_french_horn").gain(0.48).pan(1)

// chords · trombone
const trombone = note("<A B@3 C D@3 E F ~@3 G@4 B@3 C D@3 E F>".pickRestart({
  A: "~@2 [bb3,db4,gb4] [ab3,c4,eb4]", B: "~@4 db4!3 eb4 f4@2 eb4 db4!2 eb4 db4@2",
  C: "~@2 [bb3,bb4]!3 [ab3,ab4]!3 [f3,f4]@2 [eb3,eb4] [db3,db4] [eb3,eb4] [f3,f4] [db3,db4]@2", // Bb Ab F Eb Db Eb F Db
  D: "[bb3,db4,f4]@3 [bb3,db4,f4]@2 ~ [bb3,db4,gb4]@6 [ab3,c4,eb4]@4", // Bbm Gb Ab
  E: "eb4!3 f4 eb4@2 db4@2 [bb3,db4,gb4]@4 [ab3,c4,eb4]@4", F: "[bb3,db4,f4] ~@3",
  G: "[bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~", // Bbm Gb Ab
})).s("gm_trombone").gain(0.8).pan(1)

// bass · tuba · "Bb Tuba"
const bass = note("<A B@3 C D@3 E D@8 B@3 C D@3 E F>".pickRestart({
  A: "~@8 db3@2 db3@2 f3 eb3 db3 c3", B: "bb2!3 gb2!3 ab2!2", C: "~@13 eb2 f2 ab2",
  D: "bb2@3 bb2 ~ bb2 gb2@4 ab2@2 db3!2 c3!2", E: "bb2@2 bb2@2 bb2@2 gb2@2 gb2@2 gb2@2 db3!2 c3!2", F: "[bb2,bb3] ~@3",
})).s("gm_tuba").gain(0.8)

// drums · rim
const rim = s("rim").struct("<~ A@3 ~ B@3 ~ B@8 A@3 ~ B@3 ~@2>".pickRestart({
  A: "x!8", B: "x!4 ~@3 x ~ x ~ x ~@4",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct("<~@4 A B@3 A B@8 ~@3 A B@3 A C>".pickRestart({
  A: "~@8 x ~ x ~ x!4", B: "~ x ~ x", C: "x",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@25 x>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<~ x!24 ~>").gain(0.48)

stack(flute, clarinet, alto_sax, trumpet, trumpet_soft, french_horn, trombone, bass, rim, snare, high_tom, crash)