Transports and Synchronization
Understanding Storage: let, const, @state, @param
Using the Audio Plugin/Desktop Application Template
Programming a Custom UI with JUCE
RNBO Raspberry Pi OSCQuery Runner
Transports and Synchronization
There are several ways to sync your RNBO patcher both inside Max and to sync it to the external world, here we cover it in-depth.
This video covers all things transport and sync in RNBO—aligning timing events in RNBO to a hosted transport, and configuring that transport from RNBO and all the things you’ll need to know about implementing them in your RNBO patcher.
Locking to Transport with Metro and Phasor~
RNBO objects like phasor~ and metro can synchronized to the host transport (including the Max Global transport) using the
@lock 1 attribute. The standard Max Time Value Syntax is also utilized for these objects like
4n for quarter note resolution. When you export to your chosen target platform, these timings are maintained and synchronized to the transport of that platform. You can use the transport object to check the transport state of the host inside your RNBO patcher.
Setting Intervals from an External Source
RNBO does not support symbol messages, so to change the interval of a supported object from an external source, you must specify the value in numbers using ticks. The translate object can be used to translate the ticks into any other time value. The translate object is also synchronized to the transport, and responds immediately to tempo changes on the target platform.
Setting Transport Values
Setting global transport values can be done using the following four objects...
- timesignature can be used to report and set the state of beats and units.
- tempo is used for setting and reporting on global tempo.
- beattime is used for setting and reporting on global transports units.
- transport activates and deactivates the global transport, and reports on its activation state.
The standard Max Time Value Syntax can be used for these objects and the basic operation is the same.
For a detailed overview, see the guide on Timing and Synchronization in Max for Live .
Locking on Target Platforms
On the Raspberry Pi target platform, you can use the rnbo.remote object to control the transport state of the Raspeberry Pi RNBO Runner, including the tempo. When exporting to Max External, you can synchronize your RNBO-exported external to named transports in Max.
Each target will have a specific method for controlling synchronization locked objects. Refer to the documentation for the specific target for additional information on how to setup synchronization.
The lockedphase~ Object
You can also use the lockedphase~ object to get a linear ramp between 0 and 1 for a specific quantum. This is a float value in beats, which is another way of describing a quarter note. Set this to 4 for one bar in 4/4, or 0.5 for eight notes for instance.
RNBO patchers that are exported to the Raspberry Pi target are also Link enabled, so you can use them with your Ableton session. Enable Link in preferences, and your Raspberry Pi instrument will stay in sync with other Link-enabled devices on the same network.
You can use snapshot~ to capture a signal from a transport-locked phasor~ as a number message. You can use these to create transport synchronized MIDI modulations using ctlout. Similarly, you can use a transport synchronized metro object with the makenote object to create transport synchronized MIDI events that are locked to tempo changes.