{"id":27946802,"url":"https://github.com/whoisryosuke/blender-midi-motion","last_synced_at":"2025-09-15T09:26:25.645Z","repository":{"id":250071584,"uuid":"830227424","full_name":"whoisryosuke/blender-midi-motion","owner":"whoisryosuke","description":"Blender plugin to generate animation keyframes from MIDI files","archived":false,"fork":false,"pushed_at":"2025-05-16T00:40:23.000Z","size":43768,"stargazers_count":16,"open_issues_count":2,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-16T01:24:56.008Z","etag":null,"topics":["animation","blender","blender-addon","blender-scripts","midi"],"latest_commit_sha":null,"homepage":"https://whoisryosuke.github.io/blender-midi-motion/","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/whoisryosuke.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,"zenodo":null}},"created_at":"2024-07-17T21:18:26.000Z","updated_at":"2025-05-16T00:24:39.000Z","dependencies_parsed_at":null,"dependency_job_id":"d1f6e751-4031-42d7-bb7e-a5e7ee7d806f","html_url":"https://github.com/whoisryosuke/blender-midi-motion","commit_stats":null,"previous_names":["whoisryosuke/blender-midi-keyframes","whoisryosuke/blender-midi-motion"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/whoisryosuke/blender-midi-motion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoisryosuke%2Fblender-midi-motion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoisryosuke%2Fblender-midi-motion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoisryosuke%2Fblender-midi-motion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoisryosuke%2Fblender-midi-motion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/whoisryosuke","download_url":"https://codeload.github.com/whoisryosuke/blender-midi-motion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/whoisryosuke%2Fblender-midi-motion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275234287,"owners_count":25428603,"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","status":"online","status_checked_at":"2025-09-15T02:00:09.272Z","response_time":75,"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":["animation","blender","blender-addon","blender-scripts","midi"],"created_at":"2025-05-07T13:57:59.798Z","updated_at":"2025-09-15T09:26:25.622Z","avatar_url":"https://github.com/whoisryosuke.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[Example of plugin generating keyframes with 3D piano keys](https://github.com/user-attachments/assets/dc90301c-569a-493f-a6f9-35798aeb086b)\n\n[![MIDI Motion logo](./media/logo-horizontal.svg)](https://whoisryosuke.github.io/blender-midi-motion/)\n\n# MIDI Motion Blender addon\n\nThis is a free Blender addon to import MIDI files and generate animations using keyframes or actions. It assigns the animations to objects you assign as piano keys.\n\nYou can animate \"piano key\" objects using rotation, buttons using movement, or get more creative using the scale.\n\n**[📘 Documentation](https://whoisryosuke.github.io/blender-midi-motion/)** | **[📂 Download](#️-installation)**\n\n# Features:\n\n- 🎹 Assign objects as \"piano keys\"\n- 📈 Generate animations keyframes when note is pressed\n- ⚙️ Generate actions when note is pressed\n- 🎼 Select MIDI track\n- 🎵 Select octave (or condense all)\n- 🐇 Change animation type (move, rotate, or scale)\n- 📏 Change animation parameters (distance, axis)\n- 🔎 Automatically assign piano keys using selected collection\n\n**Coming Soon:**\n\n- “Jumping between keys” animation\n\n## ⬇️ Installation\n\n1. [Download the plugin zip](https://github.com/whoisryosuke/blender-midi-keyframes/releases/download/latest/midi_motion-0.0.9.zip)\n1. Open Blender\n1. Go to Edit \u003e Preferences and go to the Addons tab on left.\n1. Click install button.\n1. Select the zip you downloaded.\n1. You can confirm it's installed by searching for **\"MIDI Motion\"** and seeing if it's checked off\n\n\u003e If you still have MIDI to Keyframes installed, you can remove it. MIDI Motion is the newer version of that plugin.\n\n## 🎥 Tutorial\n\nHere's [a video walkthrough](https://www.youtube.com/watch?v=E4wfblQWhtY) of the plugin and it's major features (up to `v0.0.5`):\n\n[![YouTube video thumbnail](./media/yt-tutorial.jpg)](https://www.youtube.com/watch?v=E4wfblQWhtY)\n\n## 🔰 How to use\n\nCheck out **[our documentation website](https://whoisryosuke.github.io/blender-midi-motion/docs/getting-started)** for guides, tips, and resources.\n\n## ⚙️ How it works\n\nI did [a full breakdown on my blog here](https://whoisryosuke.com/blog/2024/midi-powered-animations-in-blender) that covers the creation of the plugin and tips and tricks for working with MIDI in Python.\n\n## Development\n\n1. Install the addon normally.\n1. Find the plugin folder (check Preferences \u003e Add-ons for the path)\n1. `git clone` inside that folder\n\n\u003e You have to install using the `.zip` because it installs dependencies in the background. If you clone and use \"Add from disk\" to add the `init.py` from the cloned repo, it won't install deps, which means add-on won't work at all.\n\n## Publish\n\n1. Bump version in `__init__.py`\n1. Bump version in `blender_manifest.toml`\n1. `blender --command extension build --output-dir dist`\n1. Upload the new `.zip` file generated inside `/dist` folder to [GitHub Releases page](https://github.com/whoisryosuke/blender-midi-keyframes/releases/new).\n1. Update the `README.md` Installation instructions with the new URL to the release ZIP.\n\n\u003e On Windows? You can add `blender` to your command line by going to Start annd searching for \"Edit Environment Variables for your account\". Find the Variable \"PATH\" and edit it. Add the full path to where your `blender.exe` is located (e.g. `C:/Program Files/Blender/4.2/`).\n\n### Dependencies\n\nWe basically have Python PIP \"wheel\" files that contain dependencies we need for this addon. The manifest installs them for us. Running the build command just zips up the folder with the version name attached - nothing fancy.\n\nIf you want to update the dependencies, run these commands and then update the `blender_manifest.toml` with any new `.whl` filenames:\n\n```shell\npip download mido --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=macosx_11_0_arm64\npip download mido --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=manylinux_2_28_x86_64\npip download mido --dest ./wheels --only-binary=:all: --python-version=3.11 --platform=win_amd64\n```\n\n\u003e Read more about [the extension setup here](https://docs.blender.org/manual/en/dev/advanced/extensions/getting_started.html) and [build process here](https://docs.blender.org/manual/en/dev/advanced/command_line/extension_arguments.html#command-line-args-extension-build).\n\n## 💪 Credits\n\n- [mido](https://github.com/mido/mido)\n- [Gamepad Input Blender addon](https://github.com/whoisryosuke/blender-gamepad)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhoisryosuke%2Fblender-midi-motion","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwhoisryosuke%2Fblender-midi-motion","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwhoisryosuke%2Fblender-midi-motion/lists"}