If you upgrade from M.O.M, make sure you uninstall it before installing AddRoutes.
Don't worry if you have some errors while disabling M.O.M.
Save the preferences, restart Blender, then enable AddRoutes.
MIDI/OSC and More has been renamed as AddRoutes in March 2020 !
AddRoutes is a new Add-on for Blender 2.8 gathering AddMIDI and AddOSC in the same package. As a novelty an application for smartphones and tablets (Blemote) is currently developed to ease the remote control of Blender.
For the last release "ready to go" (Windows, OSX, and Linux), here is the LINK.
Disclaimer: By downloading this software you understand that AddRoutes is still under development and that some problems might occur during its use.
For installation, like any Add-ons, don't unzip and do "Install From file", then look in the category "System" to enable it.
The Add-on is now located in the "N panel", at the right, and has 2 tabs (AddR Config and Routes).
AddRoutes inherits from the Blender license which is the GNU GPL license (like all Blender Add-ons).
Development and maintenance of this Add-on has been a lot of work. If you can, please support financially this project.
Even though the Add-on can already be useful, it needs some polishing and new handy features and improvements can be wished. Please share your thoughts.
A thread on BlenderArtists can be found here.
If you are a developper sources can be found on github: https://github.com/JPfeP/AddRoutes.
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.
For now only Blemote which has settings stored in the Add-on preferences can be ready as soon as Blender starts. In the future, OSC and MIDI engines will have a default configuration as well (with the option to be overriden by the blend project settings).
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.
In the Blender Preferences Panel search for AddRoutes:
The Blemote options are explained in the Blemote page.
Please be cautious with the "rec" button. It relies on the "is_playing" flag that Blender turns "on" and "off" when you play the current animation OR when you move the playhead manually.
You might be better off to disable "rec" on a route just after the recording to avoid unwanted keyframe insertions while you move the playhead inadvertently.
You don't need to enable the auto-keying button in the Timeline, it's a different feature.
It's a very personal subject, but if I could share a few hints, I would advise to work as much as possible in realtime without using much keyframing. The "revolutionary" aspect of this add-on is, for the first time in history, to be able to work both on music and 3D visuals at the same time, under some very good conditions. EEVEE is a blessing and a strong opportunity for a new kind of creators who would want to push the art of videoclips way beyond its current state. Computers are fast, storage and RAM are cheap, it's time to invest in some new hardware and be the first to seize this opportunity.
These new conditions will still imply nonetheless to have a reflection about means in art. You might still have to prevent yourself from using too heavy objects or scenes to keep the frame rate steady. Art is about emotion not technics, and time is the matter.
Then you might want to produce a first final video, things might get less clear at this point, as several strategies might lead to the final product.
To get a very predictable result, and tight sync'ing, exporting to a midifile (or to a textfile in the case of OSC, later) is probably the best option. For MIDI data, converting notes to keyframes is probably avoidable. A limit could be you need more than 16 tracks. I would then advise to convert only monophonic channels or to break the project into several midifiles.
On this subject, it might be a good idea, specially with a project that lasts more than a simple video clip to break each part into several midifiles and may be into several D.A.W. files as well. Blender would render each sequence as frames that in turn you would gather into a final video project (either using the Blender VSE or another application)
This Add-on relies on a few libraries: