Strudelify

Lil Baby Life_Goes_On

Rickey C Battle jr

KeyA♭ majorTempo70 bpm
0:00/0:00
// Lil Baby Life_Goes_On — Rickey C Battle jr
// 70 bpm, 4/4, key Ab 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 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" tuba (copy of ch 4 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/5543060; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 36 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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.

// chords · alto sax · "Alto Saxophone"
const alto_sax = note("<~@4 A@2 B C D ~@7 E ~@7 F G H I A@2 J K L M N ~>".pickRestart({
  A: "[eb5,g5]@2 [eb5,g5]@2 [d5,f5]@3 [eb5,g5]@8 ~", B: "[eb5,g5]@2 [eb5,g5]@2 [d5,f5]@3 [eb5,g5]@8 [eb5,g5]",
  C: "[eb5,g5]@2 [d5,f5]!2 ~ c5 [f5,ab5] [eb5,g5]@4 ~ [c5,eb5] [d5,f5] [eb5,g5] ~", D: "[c5,eb5,g5] ~@3",
  E: "[eb5,g5,c6] ~@3", F: "[ab4,c5]@8 ~@2 g5@2 [eb5,g5]@2 eb5 f5", G: "eb5@4 d5@3 ~@3 g5@4 c5 eb5",
  H: "[ab4,c5]@8 ~@2 g5@2 [eb5,g5]@2 c5 eb5", I: "~@8 g5!2 f5 eb5 g5!2 f5 eb5",
  J: "[eb5,g5]@2 [eb5,g5]@2 [d5,f5]@3 [eb5,g5]@6 ~@2 [eb5,g5]", // Eb Dm Eb
  K: "[eb5,g5]@2 [d5,f5]!2 ~ c5 [f5,ab5] [eb5,g5]@4 ~ [eb5,g5,c6]@4", L: "~@4 c5 db5 eb5 f5 g5@4 eb5@2 f5@2",
  M: "d5@2 g4@2 ~ g4 eb5 d5", N: "c5@7 [ab4,bb4,c5,db5,eb5,f5] [c5,eb5,g5]@8",
})).s("gm_alto_sax").gain(0.5)

// chords · alto sax · "Alto Saxophone" · soft notes · Ab5 Eb
const alto_sax_soft = note("<[[eb4,ab4] [eb4,g4]]!4 ~@32>").s("gm_alto_sax").gain(0.3)

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

// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<[eb4 f4 eb4 g4]!4 ~@32>").s("gm_tenor_sax").gain(0.3)

// chords · trumpet · "B♭ Trumpet"
const trumpet = note("<~@4 A B C D E ~@7 F ~@7 G@3 H A B C I J K L ~>".pickRestart({
  A: "g5!3 c5 g5!2 ~@2 g5!3 c5 g5!2 ~@2", B: "g5!3 c5 g5!2 ~@2 g5!2 eb5!2 g5!2 ~@2",
  C: "g5 eb5 g5 eb5 g5!2 ~@2 g5 eb5 g5 eb5 g5!2 ~ [eb5,g5]", // Eb
  D: "[eb5,g5]@2 [d5,f5]!2 ~ [c5,eb5] [d5,f5,ab5] [c5,eb5,g5]@4 ~ [c5,eb5] [d5,f5] [eb5,g5] ~", E: "[c5,g5,c6,g6] ~@3",
  F: "[g5,c6,g6] ~@3", G: "[ab4,ab5]!5 [g4,g5] [f4,f5] [eb4,eb5] [g4,g5]!2 [f4,f5] [eb4,eb5] ~@4",
  H: "[ab4,ab5]!5 [g4,g5] [f4,f5] [eb4,eb5] ~@4 g5!2 f5 eb5", // Ab G F Eb
  I: "[eb5,g5]@2 [d5,f5]!2 ~ [c5,eb5] [d5,f5,ab5] [c5,eb5,g5]@4 ~ [eb5,g5,c6]@4", // Eb Dm Cm Ddim Cm
  J: "~@4 [c5,c6] [db5,db6] [eb5,eb6] [f5,f6] [g5,g6]@4 [eb5,eb6]@2 [f5,f6]@2", // C Db Eb F G Eb F
  K: "[d5,d6]@2 [g4,g5,g6]@2 ~ [g4,g5] eb5 d5", L: "c5@7 [c5,db5,eb5,f5,ab5,bb5] [eb5,g5,c6]@8",
})).s("gm_trumpet").gain(0.5)

// chords · trumpet · "B♭ Trumpet" · soft notes · Ab Cm Ab Cm Ab Cm Ab Cm
const trumpet_soft = note(`<
  [[ab4,c5,eb5] ~ [ab4,c5,eb5]!3 ~ [ab4,c5,eb5]!2 ~@2 [g4,c5,eb5]@2 [g4,c5,eb5]@2 [g4,c5,eb5]!2]
  [[ab4,c5,eb5] ~ [ab4,c5,eb5]!3 ~ [ab4,c5,eb5]!2 ~@2 [g4,c5,eb5]@2 [g4,c5,eb5]@2 [g4,c5,eb5]@2]
  [[ab4,c5,eb5] ~ [ab4,c5,eb5]!3 ~ [ab4,c5,eb5]!2 ~@2 [g4,c5,eb5]@2 [g4,c5,eb5]@2 [g4,c5,eb5]!2]
  [[ab4,c5,eb5] ~ [ab4,c5,eb5]!3 ~ [ab4,c5,eb5]!2 ~@2 [g4,c5,eb5]@2 [g4,c5,eb5]@2 [g4,c5,eb5]@2]
  ~@32
>`).s("gm_trumpet").gain(0.3)

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

// chords · trombone · soft notes · Ab Cm Ab Cm Ab Cm Ab Cm
const trombone_soft = note(`<
  [[ab3,c4,eb4] ~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4]!2 ~@2 [g3,c4,eb4]@2 [g3,c4,eb4]@2 [g3,c4,eb4]!2]
  [[ab3,c4,eb4] ~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4]!2 ~@2 [g3,c4,eb4]@2 [g3,c4,eb4]@2 [g3,c4,eb4]@2]
  [[ab3,c4,eb4] ~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4]!2 ~@2 [g3,c4,eb4]@2 [g3,c4,eb4]@2 [g3,c4,eb4]!2]
  [[ab3,c4,eb4] ~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4]!2 ~@2 [g3,c4,eb4]@2 [g3,c4,eb4]@2 [g3,c4,eb4]@2]
  ~@32
>`).s("gm_trombone").gain(0.3)

// bass · tuba · "B♭ Tuba"
const bass = note("<A@3 B A@4 C@4 A@4 C@8 ~@2 D@2 C E C F G H I J>".pickRestart({
  A: "ab2@2 ~ g2@2 ~ g2 c2@2 ~ c2@2 c2@2 eb2@2", B: "~@5 c3!3", C: "ab2@2 ~ g2@2 ~ g2 c3@2 ~ c3@2 c3@2 eb3@2",
  D: "[ab1,ab2]@4 [g1,g2]@3 [c2,c3]@4 ~ [c1,c2,c3]@2 [eb1,eb2,eb3]@2", E: "ab3@2 ~ g3@2 ~ g3 c3@2 ~ c3@2 c3@2 eb3@2",
  F: "ab3@2 ~ g3@2 ~ g3 c3@2 ~ c3@2 c3@2 g2@2", G: "c2@2 [g1,g2]!2", H: "d2@4 ~ [g1,g2] [eb1,eb2] [d1,d2]",
  I: "[c1,c2]@4 ~@2 c3!2", J: "c3 ~@3",
})).s("gm_tuba").gain(0.5)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<[x ~@2 x ~@2 x!2 ~@2 x ~ x ~ x ~]!3 ~@33>").gain(0.3)

stack(
  alto_sax, alto_sax_soft, tenor_sax, tenor_sax_soft, trumpet, trumpet_soft, trombone, trombone_soft, bass, kick,
  kick_soft
)

More by Rickey C Battle jr