Fundamentals
Export Targets
Code Export
Patcher UI
Special Topics
RNBO Raspberry Pi OSCQuery Runner
Export Targets Overview
RNBO supports the ability to export patches to a number of different targets. Each target comes with a number of important configuration options to customize both the export process and resulting target.
When opening up any rnbo~ patcher, you'll notice a new icon on the right tab below the Max console icon labeled Show Export Sidebar.
Double-clicking this icon will show a list of every supported RNBO export target. In this overview, we'll go over some general info about the different types of RNBO exports, as well as a number of configuration options for each.
Code Export, Device Export, and Product Export
RNBO's various targets each export to different formats, some of which are more ready to use post-export than others.
The exports listed under Products, for instance, compile to formats that are immediately ready for use. The Audio Plugin Export can export .vst3
and .component
(AU) plugin files directly which can be used in a DAW immediately after compilation. Likewise, the Max External Export can export a patch as a standalone application for direct use after compilation.
If a Raspberry Pi is plugged into your computer via USB, then it should appear as a possible export listed under Devices. The Raspberry Pi export is similarly able to export a patch to the Pi directly, insofar as the Pi is configured correctly. You can read more about Raspberry Pi configuration in the Raspberry Pi Overview article.
Finally, the exports listed under Code Export require perhaps the most work to get up and running with post-compilation. Some helpful guides are available here on rnbo.cycling74.com, including Working With JavaScript and Working With C++. Additionally, some useful template repositories are available to help you get up and running with deploying code export such as the C++ Plugin/Template Application and the JavaScript Webpage Template.
Exporting and Configuring
Once a RNBO patch is compiling successfully and a target is selected, it can be configured and exported by clicking the Export to Selected Target icon in the bottom right-hand corner of the export sidebar.
There is quite a bit of crossover in configuration options between different targets. For instance, you can specify the file/folder name and output directory for the exported RNBO device. Enable MIDI should be enabled if your RNBO patch uses MIDI I/O. Additionally, if polyphony is enabled in your RNBO patch, Link Polyphony to rnbo~ should be turned on and Polyphony Voice Count should be specified.
Other configuration options are less target-agnostic. For instance, you can specify a C++ classname for C++ export, inclusion of presets for VST export, and minification of JS code for the web export.
The Cloud Compiler
After exporting our RNBO patch, it is sent off to the Cloud Compiler which remotely compiles the patch to our target format and sends us the output once it's done.
There are a few benefits of sending the compilation process off to the cloud. Because RNBO has so many export targets, a number of toolchains and SDKs are required for exporting patches to individual targets. But managing all of these toolchains on your own can be tedious and time consuming! Compiling in the cloud rather than on your own computer assures that all of these hidden toolchains and SDKs will be properly updated and maintained over time as various targets are updated.
Additionally, when using the Web Export, the cloud compiler actually uses something called Web Assembly (WASM). Exporting JavaScript using WASM is important because it provides much higher-quality audio in the browser. Maintaining the WASM toolchain on your local machine can be especially difficult, thus another reason for cloud compilation.