Melody choralization, i.e. generating a four-part chorale based on a
user-given melody, has long been closely associated with J.S. Bach chorales.
Previous neural network-based systems rarely focus on chorale generation
conditioned on a chord progression, and none of them realised controllable
melody choralization. To enable neural networks to learn the general principles
of counterpoint from Bach's chorales, we first design a music representation
that encoded chord symbols for chord conditioning. We then propose DeepChoir, a
melody choralization system, which can generate a four-part chorale for a given
melody conditioned on a chord progression. Furthermore, with the improved
density sampling, a user can control the extent of harmonicity and
polyphonicity for the chorale generated by DeepChoir. Experimental results
reveal the effectiveness of our data representation and the controllability of
DeepChoir over harmonicity and polyphonicity. The code and generated samples
(chorales, folk songs and a symphony) of DeepChoir, and the dataset we use now
are available at https://github.com/sander-wood/deepchoir.Comment: 7 pages, 4 figures, 2 table