  Recent advances in deep learning have expanded possibilities to generate
music, but generating a customizable full piece of music with consistent
long-term structure remains a challenge. This paper introduces MusicFrameworks,
a hierarchical music structure representation and a multi-step generative
process to create a full-length melody guided by long-term repetitive
structure, chord, melodic contour, and rhythm constraints. We first organize
the full melody with section and phrase-level structure. To generate melody in
each phrase, we generate rhythm and basic melody using two separate
transformer-based networks, and then generate the melody conditioned on the
basic melody, rhythm and chords in an auto-regressive manner. By factoring
music generation into sub-problems, our approach allows simpler models and
requires less data. To customize or add variety, one can alter chords, basic
melody, and rhythm structure in the music frameworks, letting our networks
generate the melody accordingly. Additionally, we introduce new features to
encode musical positional information, rhythm patterns, and melodic contours
based on musical domain knowledge. A listening test reveals that melodies
generated by our method are rated as good as or better than human-composed
music in the POP909 dataset about half the time.
