A route is the basic element to connect an external source, a remote physical device or software, to a blender property. You can create several routes and organize them as categories.
Each route has 3 sections:
Here is an example:
And, as we will see later there are 2 kinds of routes (Project routes and System routes).
There is 3 ways in AddRoutes to target a property:
The 2 first types are the fastest as some precalculations are made while configuring the route. The third makes a Python evaluation when a route receives or sends, which can be slower.
Let see first some common settings for a blender property which relates to the first type:
Because manually editing each route Path can be tedious, there is a new entry in the contextual menu to automatically do that. When the mouse cursor is over a targeted property in its related panel, invoke the menu with the right button and choose "Create realtime route". A new route will then appear in the list with the proper parameters.
Note: If a route from the type 1 or 2 is "non functional" and you try to set it for real use, its fields will appear in red, until you fix the issue. This won't happen however with Python route (type 3) because the fault will reveal itself only when receiving. You can use however the Debug options to be informed if there is any trouble.
We have seen basically the first way to define a property but some engines (MIDI or OSC) can actually deal with complex data. This is needed for instance to represent visually a piano keyboard when chords are played or when using the Add-on with a motion capture software. Please see the MIDi and OSC pages for more details.
For now Blemote cannot deal with multi routes.
This is a recent addition in AddRoutes. The secret intent is to be able to use the context dependant properties that the Blender API offers (like bpy.context.object.location for instance).
Theses routes are as well the only one available when defining System Routes that we will see later.
It's not possible currently to mix Multi routes and Python routes.
As you see the ID-Block, Item and Path fields have been replaced by theses simple options:
Currently 3 choices are offered (MIDI/OSC/Blemote). Once you select one you will see specific options to configurate further the route. Please see the dedicated pages to learn more about them.
When you select MIDI or OSC, you will see a 'Blemote' checkbox at the right of the drop-down menu. This is an extra option to force such a route to display a slider in Blemote for quick testing.
In this last section there are in turn 3(+1) sub-sections:
Keyframe options: Theses appear only when Rec is enabled.
Enveloppe settings: Intended for MIDIfile conversion, it can in fact serves for OSC as well. However it's based on the succession of positive and null values and won't work well without that. See the MIDI chapter for more.
Receive/Send/Both/Off and Rec: Should be relativly easy to grasp. However please note that sending is currently active only when Blender is playing the animation. The second condition is that the property value has changed.
If it's true that project routes can use the 3 methods to target properties, and are saved with the project blend file, system routes however are saved with the Add-on preferences settings and the Add-on can't reference the scene objects.
Therefore system routes can only use the Python method. System routes are always available as soon as Blender starts and remain when you load any project. But you need need to save the preferences globally to find them back when you restart Blender. A short cut has been provided in the Routes Panel.
System routes are mostly intended to control the user interface whereas project routes are to address scenes properties.
However it's a general rule and if a python route fails to find a scene object, it won't produce any blocking error.
The 3 engines have now settings than can be stored in the Add-on preferences. However OSC and MIDI engines still have the option to override the "system" default choice by their own settings stored in the blend project).
This new panel will probably grow in the future to offer a few facilities. You can now:
Routes sorting if set to "Category" will display only the routes belonging to it. This option will serve in Blemote as well to organize your sliders.
System routes belong to their own category 'System' and this cannot be changed (for now).
The options in the "Extra route parameters" section allow to show/hide some recent new parameters, in order to help readability of the routes settings and keep the presentation simple. The route category is hidden by default.
Overflows events: The number represents the times an engine has not been to process all the elements in the stack during its cycle of execution.