Audio Files in RNBO
Here we cover the many ways Audio Files can be used inside of RNBO directly, referenced externally, and with external targets.
You can use MP3, WAV, M4A and AIFF format files in your RNBO projects. However it is worth noting, if you are considering browser based export targets, Chrome will be unable to decode .aif files.
Like Max, the buffer~ object as one of the main ways to read and playback audio files. In RNBO, use the
@file attribute in the buffer~ object to load an audio file into the object by using the filename.
You don't need to supply the path to the file - just ensure that it’s within a search path in Max's File Preferences
To play an audio file in RNBO, use the groove~ object or the wave~ object that is associated with the buffer that contains the file. Each of these objects have parameters that can be set to change the way the file is played, like loop markers for instance. You might want to use wave~ for short audio samples in a wavetable oscillator and groove~ for looping a drum or percussion loop. Each of these will read back the audio file at the position and the rate you set.
If you'd like to include audio files in your RNBO project - create a new buffer~ object for each file you'd like to use and link them using the
@file attribute. You can use the multibuffer~ object to group them together, then reference the name of this object. You can switch audio files in the buffer by changing the index.
Audio objects in RNBO like groove~ and wave~ also allow you to reference multiple buffers by name without the multibuffer~ object. You can change which buffer is referenced by using the set object.
Where you choose to place your control logic for changing the buffer will depend on the project. If you want to change the current audio file sample on multiple groove~ or wave~ objects at once - you may want to use multibuffer~.
RNBO can link your audio files to your chosen export target as sample dependencies. This means that you can export your work to targets like the Raspberry Pi or Web Export and all of the files will be transferred along with your RNBO patcher during the export.
Once your RNBO patcher is exported to your chosen target - all of the sample dependencies that you linked using buffer~ objects will exist as data references for you to use on that target, without any additional transfer of files later.