Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion

Yujia Huang, Adishree Ghatare, Yuanzhe Liu, Ziniu Hu, Qinsheng Zhang +4 more
2/12/2026

No official code found. Best implementation: yjhuangcd/rule-guided-music (90 stars, MIT, last commit 2024-08-12).

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: https://scg-rule-guided-music.github.io/.

View on arXivView PDF

Code Implementations(1)

MIT

Official code for Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion (ICML 2024, Oral).

908Python, Jupyter NotebookFeb 17, 20242 years agoMIT

Similar Papers

Cite this paper

@article{huang2026symbolic,
  title  = {Symbolic Music Generation with Non-Differentiable Rule Guided Diffusion},
  author = {Yujia Huang and Adishree Ghatare and Yuanzhe Liu and Ziniu Hu and Qinsheng Zhang and C. Sastry and Siddharth Gururani and Sageev Oore and Yisong Yue},
  year   = {2026},
  eprint = {2402.14285},
  archivePrefix = {arXiv},
  url    = {https://arxiv.org/abs/2402.14285},
  journal = {ICML 2024 2024}
}

Add a badge to your README

Shows whether official code is linked for this paper.

Code of Paper badge
[![Code of Paper](https://codeofpaper.com/badge/2402.14285.svg)](https://codeofpaper.com/paper/2402.14285)

Discussion