This is a scratchpad post to remind myself how to put together a machine-learning system on a Mac. This won’t work on a PC as some of the software is Mac-only. In this configuration a WiiMote (input device) is connected to Wekinator (real time interactive machine-learning software) through OSCulator (OSC bridging and routing software). Wekinator outputs are mapped to MIDI to drive Ableton Live through another instance of OSCulator.
Here is a block diagram (clicking on it makes it bigger)
Grab a copy of the following .oscd templates to simplify the connection from OSCulator to Wekinator — https://github.com/fiebrink1/wekinator_examples/tree/master/inputs/Wiimote/WiimoteViaOsculator_MacOnly . This example uses the 3-input template.
WiiMote to OSCulator
WiiMote to OSCulator is a built in feature of OSCulator. Open OSCulator with the 3-input template linked above. Open the sliding panel on the right side of the main OSCulator page, turn on the WiiMote, click “Start Pairing”. Here’s the way it looks when it’s working.
OSCulator to Wekinator
This first instance of OSCulator translates the motions of the WiiMote into OSC messages and pushes them to Wekinator on Wekinator’s default UDP port (6448). If you’re using the example .oscd file, this should be working now. I’ve included the mapping if you are building this from an empty OSCulator file.
If you are starting from an empty OSCulator file, here is what the Parameters page looks like in this first instance of OSCulator. If Wekinator is running, locating and selecting these entries should be available through the drop down menus.
Wekinator to OSCulator (this is the second instance of OSCulator)
The default Wekinator output port is 12000. The second instance of OSCulator (instantiated through File/New) is set to listen on port 12000. If Wekinator is running, OSCulator will pick up the Wekinator outputs and they should be displayed in the Messages column of OSCulator.
2nd instance of OSCulator to Ableton Live
OSCulator has been configured to convert the OSC messages from Wekinator to MIDI CC messages in this example. I picked those message numbers because they’re within a range (85-90) that’s generally not used by other devices.
Once OSCulator is producing MIDI, Ableton Live can be trained to apply those MIDI signals in the normal way. Turn on the MIDI Map Mode switch (blue, in the upper right corner, says “MIDI”), click on the control that should receive the MIDI signals and toggle the device on and off in OSCulator. The mappings will appear in the box on the left (under “MIDI Mappings”) as they’re added. I found it useful to turn all the devices off (untick the boxes in the left column) before starting the mapping.
Notes and Tips
- I found that controls sometimes wouldn’t work. It turned out that sometimes controls were set to a higher value than the maximum value coming to them from OSCulator. So the control wouldn’t “pick up” the MIDI signal. Setting the unresponsive control (eg. “Warmth”) to zero solves that problem.
- Signals coming into Live were quite jittery at first. Cranking up the “Smoothing” settings in the 1st instance of OSCulator fixed that.