Fundamentals
Export Targets
Code Export
Patcher UI
Special Topics
RNBO Raspberry Pi OSCQuery Runner
Patching for the Move
How to control LEDs on the Move using MIDI, how to create parameter views using the graph editor, how to control the Move using OSC, and how to configure parameters using metadata
RNBO Move Takeover gives you a lot of flexibility in controlling your Move device. You can receive input from most of the pads and buttons, and you can control the appearance of the device as well. Some specific things you can do include:
- Receive MIDI messages when pads and buttons are pressed
- Change the color of LEDs using MIDI messages
- Create a custom group (or view) of RNBO parameters
- Jump to a new graph using OSC messages
- Define the MIDI and audio connection between exported devices
MIDI Mapping
Please refer to the graphic below to see what MIDI you can expect from the device. Move's button and encoder data comes in via MIDI on channel 16. You can also light the various lights via MIDI on channel 16.
Note that controls with a boxed with a dashed red line are currently owned by the RNBO Move Control app and not exposed to the devices running on your Move. The encoders, boxed with a dashed yellow line, are owned by the RNBO Move Control app when you're in a Device Param View, Param View or User View that has a Param View overlay.
While you can map to/from the interface via MIDI directly, we have some template patchers that make this easier. <INSERT TEMPLATE PROJECT LINK HERE>
RNBO Takeover mode also supports sending and receiving MIDI to and from external devices if you have a USB MIDI device plugged into the USB-A port. Please refer to Ableton's article about using MIDI with Move for further details, though note that RNBO's takeover mode doesn't have the limitation of only input or output.
Web Interface and Move
RNBO on the Move runs the same web technology based remote control app as the Raspberry Pi Export Target. We refer to this simply as the Web Interface. At this point the Web Interface lets you control parameters, create/edit/manage graphs, manage presets, manage the RNBO runner’s configuration and more.
To access the Move’s Web Interface navigate to http://move.local:3000 using your browser.
Initially you’ll see the Graph Editor view that allows you to view, edit and extend the Graph that is currently loaded. You can move the nodes around, add additional device instances of your exported patchers, change connections as well save and load Graphs and Presets.
Move Graph Basics
The image below shows an example Graph with a single loaded Device named feedbacksynth-0
To access the parameters of the feedbacksynth-0 Device simply double click the node in the graph view or click the cogs icon in the upper part of the node.
For a more detailed explanation of the Web Interface and it’s feature set please refer to the RNBO Documentation as the Move shares this feature with the standard Raspberry Pi export target.
Parameter Views
Note: Parameter Views is currently the Development name / title for this feature
Parameter Views are a new feature of the RNBO Runner that is not yet publicly available. The basic idea here is that users can create and manage views that allow interacting with parameters without having to navigate to the individual Device. Instead we introduce the ability to create custom Graph global Views for parameters of all Devices where the user manages and defines the included parameters and their order.
To access the Parameter Views select the Parameter Views icon from the main navigation
Initially your current Graph might not have a Parameter View indicated by the No Parameter View loaded display*.* In order to create one we’ll first click the Parameter Views button on the top right of the view
This will open a drawer similar to the ones for managing Graphs and Presets. Using the UI at the top of the drawer you can name the Parameter View and create it.
After creating the view it will show up in the Saved Parameter Views list below and automatically be selected. You will notice that by default all parameters from all Devices are included in the view.
Similar to the parameter view of a single Device you can perform MIDI mapping as well as edit the parameter’s metadata. In addition to that the Parameter Action menu of a single parameter allows you to change the order of the parameters as well as removing an individual parameter from the list.
In order to more efficiently manage the parameters included in the list click the Parameters button on the top right which will open a modal displaying all Devices in individual sections as well as buttons to include and remove all parameters from the view.
OSC
The Move interface sends and receives OSC messages indicating which Param View, User View, or Param View Page is being displayed. You can use these messages in your patcher to either jump to a specific view/page or to react to a view/page being shown. You can send OSC via metadata from your outport and params but you can also use external applications to send OSC directly to the move control application on port 2345 (as of Takeover 0.0.1-beta.21).
/rnboctl/view/display <view index> [<optional page index>]- send this message and no matter where you are, the display should show the given view (clamped to be in range) at either page 0 or the page you specify (clamped to be in range)
- this message should also be sent from the control app to indicate what view/page it is displaying
/rnboctl/view/page <page index>- send this message if you're in a param view and the view should display the page you've given (clamped to be in range)
/rnboctl/device/params <device index> [<optional page index>]- send this message to display the parameters for the device that has
the given instance index, optionally at the specified 0-indexed page
- send this message to display the parameters for the device that has
/rnboctl/device/data <device index>- send this message to display the data page for the device that has the given instance index
/rnboctl/userview/display <index>- send this message to display the user drawn view with index 0
/rnboctl/userview/layer/hide <index> <layer> 1/0- send this message to selectively hide or reveal a layer,
1to hide,0to reveal
- send this message to selectively hide or reveal a layer,
/rnboctl/userview/layer/xor <index> <layer> 1/0- send this message to selectively change the rendering style of a layer.
1to xor and0to sum (default)
- send this message to selectively change the rendering style of a layer.
/rnboctl/display/count- send an empty message here to get a number echoed back
/rnboctl/display/info <index>- send a message here with the index to get details about the display echoed back
- response will come to the same endpoint in the format:
- index, pixel width, pixel height, color format, frame period in milliseconds
- current color formats:
- 0: 1-bit black and white
/rnboctl/userview/layer/redraw <index> <layer>- send this message to tell the controller to re-read and draw a layer, useful when waveform contents change
/rnboctl/param/delta <value>- send a floating point value to change global delta that gets used while editing parameters
- this value is used to increment/decrement the normalized value
- this does not affect parameters that have specific deltas set up via metadata
- this also does not affect enum or stepped parameters
- send an empty value to this address to query the current value
- send a floating point value to change global delta that gets used while editing parameters
showaddresses are sent from the UI when you navigate the various screens but you can also send the messages to jump to a specific screen/rnboctl/show/power- display power menu/rnboctl/show/volume- display volume control-
/rnboctl/show/main- display main menu /rnboctl/show/graph/load- display Graphs (load) menu/rnboctl/show/graph/preset- display Graph Presets menu/rnboctl/show/graph/preset/load- display graph preset Load menu/rnboctl/show/graph/preset/overwrite- display graph preset Overwrite menu/rnboctl/show/graph/preset/initial- display graph preset set Set Initial menu/rnboctl/show/graph/preset/delete- display graph preset Delete menu/rnboctl/show/device/param- display Device Params menu/rnboctl/show/device/param/display <device index> [<page>]- display params for device at index and optional page/rnboctl/show/device/data- display Device Data menu/rnboctl/show/device/data/display <device index>- display Device Data menu for device at index/rnboctl/show/device/data/load <device index> <dataref index>- display device load menu for given device and dataref/rnboctl/show/device/load- display Load Patchers menu/rnboctl/show/userview- display User Views menu/rnboctl/show/userview/display <index>- display user view at index/rnboctl/show/paramview- display Param Views menu/rnboctl/show/paramview/display <view index> [<page>]- display Param View with given index and optional page/rnboctl/show/transport- display Transport menu/rnboctl/show/transport/tempo- display Tempo editor/rnboctl/show/about- display About screen/rnboctl/show/status- display Status screen
Metadata
You can use a @meta field to alter some display and functionality details of parameters, in/out ports, and buffers on the Move, both for the Runner and for the Move Control UI. We'll detail some of the Control UI behavior below. Check out the Runner README for more information about altering behavior on the Runner.
Params
delta- a@meta delta:0.001entry will set an increment/decrement value for that parameter, in this case0.001.- This will be unaffected by the global
deltavalue set above via OSC but you can alter the delta value via an OSC message directly altering the given param's delta value:/rnbo/inst/<inst index>/params/<param name>/meta/delta
- This will be unaffected by the global
hidden- setting@meta hidden:truewill hide this parameter from the Move UI display, both in parameter views and device parameter lists.
Buffers
- User Views - Custom Display Drawings use metadata extensively.
hidden- you can hide a buffer from theDevice Buffersmenu by setting@meta hidden:true
Ports
There aren't any specific @meta entries for inport/outport that change behavior for the Move UI but there are some for the Runner. Check out the Runner README for more information.
Move Interface / MIDI Input
The general idea is that the interface of the Move is exposed to your Graph. This means that any interaction with non-reserved parts of Move’s interface depends on your Device, Graph Connections and MIDI routing. In particular, selecting a Device will not scope any input (apart from the parameter control via the encoders) to that particular node.