{"id":13862551,"url":"https://github.com/henrybetts/ableton-retime","last_synced_at":"2025-07-14T12:31:15.938Z","repository":{"id":86877114,"uuid":"249847358","full_name":"henrybetts/ableton-retime","owner":"henrybetts","description":"A python script for retiming Ableton Live projects","archived":false,"fork":false,"pushed_at":"2020-08-27T19:35:13.000Z","size":61,"stargazers_count":31,"open_issues_count":1,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-08-05T06:06:02.994Z","etag":null,"topics":["ableton","ableton-live","audio","music","production"],"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/henrybetts.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":"2020-03-25T00:16:00.000Z","updated_at":"2024-07-15T22:18:47.000Z","dependencies_parsed_at":"2023-05-29T16:15:10.200Z","dependency_job_id":null,"html_url":"https://github.com/henrybetts/ableton-retime","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrybetts%2Fableton-retime","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrybetts%2Fableton-retime/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrybetts%2Fableton-retime/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/henrybetts%2Fableton-retime/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/henrybetts","download_url":"https://codeload.github.com/henrybetts/ableton-retime/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225974505,"owners_count":17553966,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":["ableton","ableton-live","audio","music","production"],"created_at":"2024-08-05T06:01:47.238Z","updated_at":"2024-11-22T22:31:17.758Z","avatar_url":"https://github.com/henrybetts.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# ableton-retime\nA python script for retiming Ableton Live projects.\n\n\nThis is useful in situations where you want to adjust the global BPM without affecting playback of the arrangement. For example, perhaps you recorded some midi or audio tracks freely, and now you want to adjust the BPM to match what you recorded. Or, perhaps you have a project that is technically in time, but you think it makes sense to halve or double the BPM, without actually changing the playback speed.\n\nUnfortunately, there is not a simple way to achieve this within Ableton, as far as I'm aware. However, since Ableton projects are just compressed XML files, they can be manipulated fairly easily by scripts such as this.\n\nThe script retimes:\n- Midi clips\n- Audio clips (including those used as samples in instruments such as Simpler)\n- Loop and warp markers\n- Automation events\n\nSome effects may still need manual adjustment, such as delays that are synced to the BPM.\n\n## Example Usage\n```\npython ableton_retime.py --current-bpm 120 --target-bpm 80 input_project.als output_project.als\n```\nThis reads input_project.als, scales it by 67% (80/120), and writes the result to output_project.als. This can be tried with the included example project.\n\nAlthough the script performs the scaling, it does not currently modify the global BPM. Therefore, when you open the output project in Ableton, you should then manually set the BPM to match the target. The arrangement should then playback the same as before, even though the BPM has changed!\n\n## Requirements\nTested with python3.7 with an Ableton 9 project.\n\n\nAny testing / feedback is welcome.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrybetts%2Fableton-retime","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhenrybetts%2Fableton-retime","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhenrybetts%2Fableton-retime/lists"}