Deep Learning Techniques for Music Generation