Strudelify

Juice Wrld Legends

Rickeytherealis

KeyC♭ majorTempo75 bpm
0:00/0:00
// Juice Wrld Legends — Rickeytherealis
// 75 bpm, 4/4, key Cb 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 3 "Alto Saxophone" alto sax (copy of ch 1 "Flute" flute); ch 5 "B♭ Trumpet" trumpet (copy of ch 1 "Flute" flute); ch 7 "Horn in F" french horn (copy of ch 1 "Flute" flute); ch 8 "Mellophone" french horn (copy of ch 1 "Flute" flute); ch 9 "Baritone Horn" french horn (copy of ch 4 "Tenor Saxophone" tenor sax); ch 11 "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/5918871; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 49 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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 · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@3 A B C B D E F G H ~@16 I ~@7 J K L M B C B D E F G N O>".pickRestart({
  A: "~@15 eb4", B: "eb4 e4 eb4 db4 ~@4 eb4 e4 eb4 db4 ~@4", C: "eb4@4 ~@2 gb4@2 gb4@4 ~@3 eb4",
  D: "eb4@2 ~ gb4!2 e4 eb4 ~", E: "eb4@2 db4 b3 ~@2 gb4@2 gb4@2 e4@2 eb4@2 ~@2",
  F: "eb4@2 db4 b3 ~@2 e4@2 eb4@2 e4@2 gb4@2 ~@2", G: "~ gb4 ~ ab4", H: "~@2 ab4@2 ~ ab4@3", I: "[e4,ab4] ~@3",
  J: "ab3@2 ~@2 e4 eb4 db4@2 eb4@2 ~@2 gb4@2 ~@2", K: "ab4@2 ~@4 eb4 gb4", L: "db4@2 bb3 ~ gb4@2 ~@2",
  M: "b3@4 eb4@2 ~@2 ab4@6 ~ eb4", N: "~@2 ab4@2 ~ gb4@3", O: "ab4 ~@3",
})).s("gm_tenor_sax").gain(0.5)

// other · tenor sax · "Tenor Saxophone" · soft notes · E
const tenor_sax_soft = note("<[[e4,ab4]@6 [e4,ab4]!2 [e4,ab4]@8] [~ ab4@2 ~] [db4 bb3 gb4@2] [~@2 eb4 ~ ab4@3 ~] ~@45>")
  .s("gm_tenor_sax").gain(0.3)

// chords · trombone
const trombone = note("<~@4 A B C B A B C B ~@8 D E F G D E F G H ~@7 A B C B A B C B A B C B I>".pickRestart({
  A: "[e3,ab3,b3]", B: "[ab3,b3,eb4]", C: "[gb3,bb3,db4]",
  D: "[ab3,b3,e4]@3 [ab3,b3,e4] ~@2 [ab3,b3,e4]@4 [ab3,b3,e4] ~ [ab3,b3,e4]!2 ~@2", // E
  E: "[ab3,b3,eb4]@3 [ab3,b3,eb4] ~@2 [ab3,b3,eb4]@4 ~@2 [ab3,b3,eb4] [gb3,bb3,db4] [ab3,b3,eb4] ~", // Abm Gb Abm
  F: "[gb3,bb3,db4]@4 bb3 [bb3,db4] [ab3,b3,eb4]@2", G: "[ab3,b3,eb4]@2 [gb3,bb3,db4] [ab3,b3,eb4]",
  H: "[ab3,b3,e4] ~@3", I: "[ab3,b3,eb4] ~@3",
})).s("gm_trombone").gain(0.5)

// chords · trombone · soft notes · E Abm Gb Abm
const trombone_soft = note("<[[ab3,b3,e4]] [[ab3,b3,eb4]] [[gb3,bb3,db4]] [[ab3,b3,eb4]] ~@45>")
  .s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note(`<
  A B C B D E F G D E F H I J K H I J K H L M K H L M K H I J K H I J K H ~@4 I J K H I J N O P
>`.pickRestart({
  A: "e2", B: "ab2", C: "gb2", D: "e2@2 ~ e2@2 ~ e2@2 ~ e2 e2@2 ~ e2!2 gb2",
  E: "ab2 ~ ab2 eb2 ~ eb2 ab1@2 ~@2 ab2@2 ~@2 b2 ab2", F: "gb2@2 ~ gb2@2 ~ gb2@2 ~ gb2 gb2@2 ~ gb2 bb2 gb2",
  G: "ab2@2 ~ ab2@2 ~ ab2@2 ~@2 ab2@2 ~ b2@2 ~", H: "ab2@4 ~@2 eb2 b2 bb2@2 ~@2 b2@2 ~@2",
  I: "e3@2 ~ e3@2 ~ e3@2 ~ e3 e3@2 ~ eb3!2 gb3", J: "ab3 ~ ab3 eb3 ~ eb3 ab2@2 ~@2 ab2 bb2 b2 bb2 ab2@2",
  K: "gb2@2 ~ db3@2 ~ gb3!2 ~ db3 gb2@2 ~ gb2 bb2 gb2", L: "e2@2 ~ e2@2 ~ e2@2 ~ e2 e2@2 ~ eb2!2 gb2",
  M: "ab2 ~ ab2 eb2 ~ eb2 ab1@2 ~@2 ab2 bb2 b2 bb2 ab2@2", N: "gb2@2 ~ db3@2 ~ gb3!2 ~ db3 gb3@2 ~ gb3 bb3 gb3",
  O: "ab3@4 ~@2 eb3 b3 bb3@2 ~@2 b3@2 ~@2", P: "ab3 ~@3",
})).s("gm_tuba").gain(0.5)

// drums · kick
const kick = s("bd").struct(`<
  ~@4 A B A C A B A D A E F D A E F D A E F D A E F D A E F D A E F D ~@4 A E F D A E F D G
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~@2 x!2 ~@2 x!3", B: "x ~ x!2 ~ x!2 ~@3 x ~@3 x!2", C: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2",
  D: "x ~@5 x ~ x!3 ~ x ~ x ~", E: "x ~ x!2 ~ x!2 ~@3 x!5 ~", F: "x ~@2 x ~@2 x!2 ~ x!2 ~@2 x!3", G: "x",
})).gain(0.5)

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@4 A B A C A B A D A E F D A E F D A E F D A E F D A E F D A E F D ~@4 A E F D A E F D G
>`.pickRestart({
  A: "x ~@2 x ~@2 x ~@2 x!2 ~@2 x!3", B: "x ~ x!2 ~ x!2 ~@3 x ~@3 x!2", C: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2",
  D: "x ~@5 x ~ x!3 ~ x ~ x ~", E: "x ~ x!2 ~ x!2 ~@3 x!5 ~", F: "x ~@2 x ~@2 x!2 ~ x!2 ~@2 x!3", G: "x",
})).gain(0.5)

stack(tenor_sax, tenor_sax_soft, trombone, trombone_soft, bass, kick, low_tom)

More by Rickeytherealis