Skip to content

Commit 5d74bef

Browse files
v0.1.2 - Updated Readme + manifest.
1 parent 2153814 commit 5d74bef

3 files changed

Lines changed: 59 additions & 11 deletions

File tree

README.md

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,64 @@
1-
# MidiController
2-
Blender plugin to control object properties through midi.
1+
# MidiControl Plugin Documentation
32

4-
Demonstration Video:
3+
## Introduction
4+
The **MidiControl** plugin enables you to connect a MIDI device to Blender and control the values of objects (e.g., location, rotation, scale) or any other numeric input — including geometry nodes, brush settings, and more — via your MIDI controller’s inputs.
55

6-
[<img src="https://i.ytimg.com/vi/rg6pHa3B34s/hq720.jpg" width="50%">](https://youtu.be/rg6pHa3B34s)
6+
---
77

8-
## Installation
8+
## Functionalities
99

10-
See releases!
10+
### 1. Property Mapping
1111

12-
### Dependencies
12+
The plugin supports two distinct mapping methods:
1313

14-
python-rtmidi (comes with the plugin, no manual installation needed!): https://github.com/SpotlightKid/python-rtmidi
14+
#### **Method 1 – Object Property Mapping**
15+
Used for mapping properties shared by multiple objects in Blender.
1516

16-
pyperclip (comes with the plugin, no manual installation needed!): https://github.com/asweigart/pyperclip
17+
**Steps:**
18+
1. Move the MIDI control you wish to assign on your MIDI device.
19+
2. Adjust the value of the desired property in Blender.
20+
3. The plugin automatically detects the last property you changed. Click the **Map** button.
21+
4. Set the mapping name, along with the minimum and maximum values.
22+
5. The property is now linked to your MIDI control.
23+
24+
> **Note:** Changes apply **only** to the currently selected object(s) in the viewport. You may select one or multiple objects to affect.
25+
> This method **cannot** be used for brush properties or other specialized values like geometry nodes. Use **Method 2** for such cases.
26+
27+
---
28+
29+
#### **Method 2 – Direct “Full Data Path” Mapping**
30+
Ideal for mapping a specific property of a single object, independent of which object is selected.
31+
32+
**Steps:**
33+
1. Move the MIDI control you wish to assign on your MIDI device.
34+
2. In Blender, right‑click the property you want to map and select **Copy Full Data Path**.
35+
3. The plugin detects the copied data path. Click the **Map** button.
36+
4. Set the mapping name, along with the minimum and maximum values.
37+
5. The property is now linked to your MIDI control.
38+
39+
> **Tip:** This method also works for brush settings, geometry nodes, and other changeable Blender properties.
40+
41+
---
42+
43+
### 2. Selection Groups
44+
45+
Create groups of objects that can be selected instantly via a mapped MIDI control button. This allows rapid switching between object sets during a workflow.
46+
47+
---
48+
49+
### 3. Resolution Control
50+
51+
Adjust the granularity of property value changes.
52+
You can map **two MIDI controls** to act as **Fine** and **Coarse** resolution factors, which are multiplied by the main MIDI input to refine control sensitivity.
53+
54+
---
55+
56+
### 4. Keyframe Insertion
57+
58+
Bind a MIDI button to insert a keyframe for **all mapped properties** of the currently selected object.
59+
60+
---
61+
62+
### 5. Frame Control
63+
64+
Use a MIDI control to navigate the timeline by adjusting the current frame position.

blender_manifest.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ schema_version = "1.0.0"
33
# Example of manifest file for a Blender extension
44
# Change the values according to your extension
55
id = "midicontroller"
6-
version = "0.1.0"
6+
version = "0.1.2"
77
name = "MidiController"
88
tagline = "Control objects properties through midi"
99
maintainer = "Eldin Zenderink"
@@ -15,7 +15,7 @@ type = "add-on"
1515

1616
# Optional list defined by Blender and server, see:
1717
# https://docs.blender.org/manual/en/dev/advanced/extensions/tags.html
18-
tags = ["Animation", "Object", "Scene", "Paint", "User Interface"]
18+
tags = ["Animation", "Object", "Paint", "User Interface"]
1919

2020
blender_version_min = "4.2.0"
2121
# # Optional: Blender version that the extension does not support, earlier versions are supported.

logo256x256.png

16.8 KB
Loading

0 commit comments

Comments
 (0)