Learn Patching for the Move

Getting Started

Welcome to RNBO

Quickstart

RNBO Basics

Key Differences

Why We Made RNBO

Coding Resources

Fundamentals

Audio IO

Messages to rnbo~

Using Parameters

MIDI in RNBO

Messages and Ports

Polyphony and Voice Control

Audio Files in RNBO

Using Buffers

Using the FFT

Export Targets

Export Targets Overview

VST/AudioUnit
Max External Target
Raspberry Pi Target
Ableton Move Target

Move Intro and Setup

Using RNBO Takeover Mode

Exporting to Move

Importing and Exporting Packages

Patching for the Move

Custom User Views

The Web Export Target
The C++ Source Code Target

Code Export

Working with JavaScript
Working with C++

Special Topics

Sample Accurate Patching
Scala and Custom Tuning

RNBO and Max for Live

RNBO Raspberry Pi OSCQuery Runner

Metadata

Export Description

Raspberry Pi GPIO

Updating the RNBO Package

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.

Move-Layout-Midimapping-RNBO-Markup.png

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

01-basics.png

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

02-parameter-views.png

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

03-parameter-views.png

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.

04-name-views.png

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.

05-control-parameters.png


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.

06-manage-parameters.png

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
  • /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, 1 to hide, 0 to reveal
  • /rnboctl/userview/layer/xor <index> <layer> 1/0
    • send this message to selectively change the rendering style of a layer. 1 to xor and 0 to sum (default)
  • /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
  • show addresses 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.001 entry will set an increment/decrement value for that parameter, in this case 0.001.
    • This will be unaffected by the global delta value 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
  • hidden - setting @meta hidden:true will hide this parameter from the Move UI display, both in parameter views and device parameter lists.

Buffers

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.