Yisong Yue, Yujia Huang, Sageev Oore, Qinsheng Zhang, Ziniu Hu, Siddharth Gururani, Adishree Ghatare, Yuanzhe Liu, Chandramouli Sastry
We lifted 1 functions out of this paper's own repositories and ran 1 of them in a sandbox. "Ran" means the function executed on a synthesized input and returned a value. It is not a reproduction of the paper's results.
| Repository | Role | Ran |
|---|---|---|
| yjhuangcd/rule-guided-music | canonical | 1 of 1 |
| Function | Status | Where it lives |
|---|---|---|
| grad_nn_zt_xentropy | Ran | yjhuangcd/rule-guided-music/guided_diffusion/condition_functions.py code served (permissive licence) · get_code("0ab7bf9df52689a2") |
Some links come from the archived Papers with Code dataset (CC BY-SA 4.0): attribution and licence.
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 trainingfree 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 rulebased controllability, outperforming current stateof-the-art generators in a variety of settings. For detailed demonstrations, code and model checkpoints, please visit our project website.
The same record, over MCP at https://syntology.ai/mcp:
get_harvested_code_for_paper("2402.14285")
get_code_for_paper("2402.14285")
have("2402.14285")
Connect an agent — have() is free.