Strudelify

NBA Youngboy Knocked Off

Rickeytherealist

KeyE♭ majorTempo80 bpm
0:00/0:00
// NBA Youngboy Knocked Off — Rickeytherealist
// 80 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "B♭ Clarinet" clarinet (copy of ch 1 "Flute" flute); ch 1 "Flute" flute (copy of ch 5 "B♭ Trumpet" trumpet); ch 7 "Horn in F" french horn (copy of ch 3 "Alto Saxophone" alto sax); ch 8 "Mellophone" french horn (copy of ch 3 "Alto Saxophone" alto sax); ch 11 "Baritone Horn" french horn (copy of ch 4 "Tenor Saxophone" tenor sax); ch 12 "Euphonium (Treble Clef)" tuba (copy of ch 4 "Tenor Saxophone" tenor sax); ch 14 "Sousaphone" tuba (copy of ch 13 "Tuba" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/5978464; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 33 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 B A@2 C D E D F ~@3 F ~@3 F ~@7 G H I@2 J D E K F>".pickRestart({
  A: "c5@3 ab4", B: "c5@8 ~@2 eb4 [gb4,g4] ab4@4", C: "c5@8 ~@3 c5!2 ~ c5!2", D: "c5@3 d5", E: "c5@12 c5 ~ c5!2",
  F: "[c5,eb5] ~@3", G: "~@4 eb5 d5 eb5@2 ~@4 eb5 d5 eb5@2", H: "c5@4 ~@2 c5 d5 eb5@4 d5@4",
  I: "c5@8 eb5 d5 eb5 d5 eb5@2 d5@2", J: "c5@8 ~@3 c5 d5@2 eb5@2", K: "c5@12 d5 eb5 ~ d5",
})).s("gm_alto_sax").gain(0.5)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A B A B C D E F G ~@3 G ~@3 G ~@7 H I J K C D E F G>".pickRestart({
  A: "c4 g4 ~ d4", B: "c4@2 g4 ~", C: "g4!3 eb4 g4!3 eb4 eb4@2 ~@6", D: "g4!3 eb4 g4 f4!2 eb4 eb4@2 ~@4 c4@2",
  E: "g4!3 ~ g4 f4!2 eb4 eb4@2 ~@2 g4 f4 g4 f4", F: "g4 ~@3 g4 f4 g4 f4 f4@2 ~@2 d4@2 ~@2", G: "g4 ~@3",
  H: "~@4 g4!2 g4@2 ~@4 g4!2 g4@2", I: "~@2 c4 ~ g4@2 ~@2", J: "g4!3 ~ g4 f4 f4@2 g4 f4 g4 f4 g4@2 f4@2",
  K: "~@4 g4 f4 f4@2 g4 f4 g4 f4 ~@4",
})).s("gm_tenor_sax").gain(0.5)

// chords · trombone
const trombone = note("<~@4 A@4 B ~@3 C D@2 E F ~@7 G@8 B>".pickRestart({
  A: "[eb3,g3,c4]@3 [ab3,b3,d4]", B: "[g3,c4,eb4] ~@3",
  C: "[g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~", // Cm
  D: "~@2 [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~", // Cm
  E: "~@2 [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,b3,d4]@4 [g3,b3,d4]@2 ~@2", F: "[g3,c4,eb4] ~@7",
  G: "[g3,c4,eb4]@3 [ab3,b3,d4]", // Cm Abdim
})).s("gm_trombone").gain(0.5)

// chords · trombone · soft notes · Cm Abdim
const trombone_soft = note("<[[eb3,g3,c4]@3 [ab3,b3,d4]]!4 ~@29>").s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note("<A B A B A B A B C D C D A B A B C D C D A B A B ~ E F G C D C D H>".pickRestart({
  A: "c2@2 ~ g2 ~ g2 eb2@2 ~@3 c2 d2@2 eb2@2", B: "c2@2 ~ g2 ~ g2 eb2@2 ~@3 c2 d2 eb2 d2@2",
  C: "c3@2 ~ g3 ~ g3 eb3@2 ~@3 c3 d3@2 eb3@2", D: "c3@2 ~ g3 ~ g3 eb3@2 ~@3 c3 d3 eb3 d3@2", E: "~@7 g2",
  F: "c2@4 ~@3 g2", G: "c2@4 ~@2 g2 ~", H: "c3 ~@3",
})).s("gm_tuba").gain(0.5)

// drums · kick
const kick = s("bd").struct(`<
  [x ~@2 x ~ x!2 ~@4 x!2 ~ x ~]
  [x ~@2 x ~ x!2 ~@4 x!4 ~]
  [x ~@2 x ~ x!2 ~@4 x!2 ~ x ~]
  [x ~@2 x ~ x!2 ~@4 x!4 ~]
  [x ~@2 x ~ x!2 ~@4 x!2 ~ x ~]!20
  ~@4
  [x ~@2 x ~ x!2 ~@4 x!2 ~ x ~]!4
  x
>`).gain(0.5)

stack(alto_sax, tenor_sax, trombone, trombone_soft, bass, kick)

More by Rickeytherealist