Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion

Abstract

We study the problem of symbolic music generation (e.g., generating piano rolls), with a technical focus on non-differentiable rule guidance. Musical rules are often expressed in symbolic form on note characteristics, such as note density or chord progression, many of which are non-differentiable which pose a challenge when using them for guided diffusion. We propose Stochastic Control Guidance (SCG), a novel guidance method that only requires forward evaluation of rule functions that can work with pre-trained diffusion models in a plug-and-play way, thus achieving training-free guidance for non-differentiable rules for the first time. Additionally, we introduce a latent diffusion architecture for symbolic music generation with high time resolution, which can be composed with SCG in a plug-and-play fashion. Compared to standard strong baselines in symbolic music generation, this framework demonstrates marked advancements in music quality and rule-based controllability, outperforming current state-of-the-art generators in a variety of settings. For detailed demonstrations, code and model checkpoints, please visit our project website.

Cite

Text

Huang et al. "Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion." International Conference on Machine Learning, 2024.

Markdown

[Huang et al. "Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion." International Conference on Machine Learning, 2024.](https://mlanthology.org/icml/2024/huang2024icml-symbolic/)

BibTeX

@inproceedings{huang2024icml-symbolic,
  title     = {{Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion}},
  author    = {Huang, Yujia and Ghatare, Adishree and Liu, Yuanzhe and Hu, Ziniu and Zhang, Qinsheng and Shama Sastry, Chandramouli and Gururani, Siddharth and Oore, Sageev and Yue, Yisong},
  booktitle = {International Conference on Machine Learning},
  year      = {2024},
  pages     = {19772-19797},
  volume    = {235},
  url       = {https://mlanthology.org/icml/2024/huang2024icml-symbolic/}
}