{"id":25624181,"url":"https://github.com/lebellig/controllable-performance","last_synced_at":"2026-06-24T17:31:25.953Z","repository":{"id":154379170,"uuid":"529211649","full_name":"lebellig/controllable-performance","owner":"lebellig","description":null,"archived":false,"fork":false,"pushed_at":"2022-09-26T13:41:17.000Z","size":115,"stargazers_count":3,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-30T15:50:52.670Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lebellig.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-08-26T10:22:16.000Z","updated_at":"2024-09-04T01:12:19.000Z","dependencies_parsed_at":null,"dependency_job_id":"15ff821d-2ca2-40de-8a2f-578db179ffb0","html_url":"https://github.com/lebellig/controllable-performance","commit_stats":null,"previous_names":["lebellig/controllable-performance"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/lebellig/controllable-performance","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebellig%2Fcontrollable-performance","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebellig%2Fcontrollable-performance/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebellig%2Fcontrollable-performance/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebellig%2Fcontrollable-performance/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lebellig","download_url":"https://codeload.github.com/lebellig/controllable-performance/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lebellig%2Fcontrollable-performance/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34743465,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-24T02:00:07.484Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-02-22T12:26:39.987Z","updated_at":"2026-06-24T17:31:25.930Z","avatar_url":"https://github.com/lebellig.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Controllable Performance with Diffusion Models\n\nThis project aims at using Denoising Diffusion Models for expressive musical performances generation. \n\nThis project aims at using  _Diffusion Models_ for expressive musical performance generation. We want to generate samples of violin performances that include expressive elements such as _glissando_, _tremolo_, and _vibrato_. To do so we adopt a modular approach by using a two-stage framework:\n\n- Controllable performance generation (our work)\n- Sound synthesis with the _DDSP_ model introduced by Google Magenta.\n\nThen, the main goal is to model fundamental frequency and loudness contours (time series) that are similar to the ones obtained in musical performances (with slight variations of pitch and loudness within a note, and smooth transitions between the notes). \nWe also want our model to be controllable and we propose a way to condition the generation on MIDI files or contours from existing violin performances.\n\n## Train Model:\n\nWrite an experiment config file `myconfig.yaml` and save it in the `configs/` folder.\nLaunch experiment with:\n```\npython src/train/trainer.py --config=configs/myconfigs.pickle\n```\n## Project Structure\n\n### Scripts\n\n- `data/`: data processing, conditioning transformations and Pytorch data modules.\n\n- `edits/`: contours editing methods, i.e. controllable generation of expressive contours scripts.\n\n- `eval/`: scripts for models evaluation and results analysis.\n\n- `models/`: all models and neural networks layers used for this project.\n\n- `samplers/`: samplers dedicated to denoising diffusion models.\n- `sde/`: stochastic differential equations used for the diffusion process.\n- `train/`: training handler and diffusion models training process.\n- `utils/`: some useful tools.\n\n\n### Tests\n\nAll the tests are available in the `tests/` folder and ensure the well behaving of the dataprocessing, models, neural network blocks, transforms...\n\n\n### Data\n\nThe data used is not included in this repository but many rely on the violon performances samples included in the _URMP_ dataset.The folder should be organized as follows:\n\n- `audio/` containing all the violin performances audio samples (wav files at 16kHz).\n- `midi/` containing MIDI files for conditionnal generation.\n- `contours/` containing the `expressive` folder where are located the train, validation and test datasets but also the `unexpressive` folder where the unexpressive contours (extracted from MIDI files) are stored.\n\n\n\n\n\n\n\n\n\n## Installation\n\n1. Clone this repository:\n\n```bash\ngit clone https://github.com/gle-bellier/controllable-performance.git\n\n```\n\n2. Install requirements:\n\n```bash\ncd controllable-performance\npip install -r requirements.txt\n\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flebellig%2Fcontrollable-performance","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flebellig%2Fcontrollable-performance","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flebellig%2Fcontrollable-performance/lists"}