Fundamentals
Export Targets
Code Export
Patcher UI
Special Topics
RNBO Raspberry Pi OSCQuery Runner
Managing Raspberry Pi Exports
Connect audio + MIDI hardware, load local audio samples, control your Pi remotely with rnbo.remote, and manage exported patches.
Managing Exports
Use the Patch Name configuration option to identify your patch after exporting it to the Raspberry Pi.
If you export multiple patchers to your Raspberry Pi, you can swap and run your preferred patcher instance on the Pi remotely. You have a few options for telling the Pi to swap the loaded patcher instance. Using the rnbo.remote object, use the @patchername
attribute to run your preferred patcher instance.
You can also send an OSC message to your Pi to make it run the preferred patcher instance. A message like /rnbo/inst/control/load 0 simple-noise
will load the patcher instance "simple-noise" into slot 0
.
Additionally, you can also use the Web Interface to run your preferred patcher instances.
Finally, you can configure the Raspberry Pi to run exported patcher instances in response to MIDI program change messages. First, you must change the default behavior of the Pi runner, which is to switch presets in response to MIDI program change messages. Use these OSC messages to configure your Pi.
/rnbo/config/patcher_midi_program_change_channel omni
— this configures the Pi to map MIDI program changes to patcher changes on all channels.
/rnbo/inst/config/preset_midi_program_change_channel none
— this configures the Pi to disable the mapping from MIDI program changes to preset changes on all channels.
After configuring the Pi in this way, MIDI program changes messages on any channel should switch between exported patcher instances.
Send a patcherdestroy
message to the rnbo.remote object to remove an exported patcher from the Raspberry Pi.
Controlling the Pi
Connected Audio Devices
For the Raspberry Pi to be ready to run exported RNBO code, it must be connected to a supported audio interface. Most current audio usb interfaces will work, just as long as the audio interface is ALSA class-compliant .
Navigate to the Configuring Audio Guide to to configure audio settings on the Raspberry Pi with the connected audio hat or interface. Once the audio settings are configured and the Pi is updated, the target is now ready to be configured for export.
Once exported, The RNBO Runner will take advantage of the configured audio devices inputs and outputs if there are associated in~ and out~ objects . For more on how this works, check out the Audio I/O Guide.
Connected MIDI Devices
Midiin and midiout objects in the exported RNBO code can be used on the RPi target to send and receive MIDI messages on the RNBO Runner. This means any MIDI hardware connected to the Pi's interface will be able to send and receive Midi data.
These can also be used to sync up to other hardware. For a more detailed overview, see Synchronization and Locking to Transport in RNBO guide.
Local Samples on the Raspberry Pi
Sample Data in RNBO can be exported to the Raspberry Pi by checking the Copy Sample Dependencies box creates a media folder to the Output directory on export. Any sample data referenced by buffer~ and data objects' file
attribute will be exported to a folder on the Raspberry Pi .
Remote Access and Control
You can control your Raspberry Pi remotely using the Web Interface, with the rnbo.remote object, or by sending OSC messages directly to the Pi. All of these methods use OSC messages under the hood. You can address individual patcher instances to set parameters, load presets, load audio files into data references, and send messages to inports. It's also possible to create multiple patcher instances, and to build an Max-like graph describing the flow of Audio and MIDI between your patcher instances and the Pi's inputs and outputs.
Remote control via the rnbo.remote object
The rnbo.remote object is a Max object included in the RNBO package that lets you load and configuring patcher instances on the Raspberry Pi. Once loaded, setting and receiving changes on parameters, presets, data references, MIDI, transport timing, and port
state can all be done via the rnbo.remote . When the rnbo.remote is on the same network as the Raspberry Pi with running RNBO code, it can reference that Pi by its name, enabling remote control and retrieval of changes to patches on the Pi. See the rnbo.remote help file for more.