RNBO 1.4.0 Released

Ben Bracken's icon

We are excited to announce the release of RNBO 1.4.0. This release focuses on the RNBO Runner and Web Interface, longer term bug fixes, a handful of new objects, and improvements to existing features.

You can download the update now via the Max Package Manager. The latest Max 9.0.7 release is recommended for use with RNBO 1.4.0.

Here is an overview of some of the work in this release, as well as a comprehensive changelog including all new features and bug fixes.

RNBO 1.4.0 Feature Overview

RNBO Runner / Web Interface

  • Stream recording: record multichannel audio to a file within the runner

  • Buffer saving: save buffer contents to an audio file

  • OSC Mapping: addresses no longer restricted, can map OSC to/from the runner interface itself

  • Improved naming conventions

  • Parameter Views: create subsets of parameters from multiple devices/instances, sorted as you please

  • Graph Action Menu: save and reload improvements

  • Auto-layout: automatically adjust graph layout

  • MIDI Mappings View: list all MIDI mapped parameters and ability to remove or manually edit a mapping.

  • Resources View: manage graphs, patchers and audio files on the runner

  • Graphs tab: configure the Startup Graph (new, empty graph, last state, or a specific graph)

  • Runner / Runner Dependency Updates: decoupled from RNBO Package releases and can be independently updated.

Binary Blobs in Presets

  • buffer, data, list.reg, list.store: contents can now be saved in a preset

param~ Improved Feature Parity with param

  • The functionality of these two objects are more aligned

codebox Improvements

  • Lists can be initialized with size, fe: new List(74)

  • consts can be used in other consts to set their values

  • nocache setting to disable cache

rnbo.remote

  • Max Param Connect support

RNBO Subpatchers

  • #0 can be used for creating unique IDs.

Transport

  • Improved lock behavior for phasor~ and metro (both in Max and in exported targets)

New Objects

  • twist~ operator like the Max object to make curved ramps.

  • presetbang object to report when a preset is being taken and applied.

  • filtercoeff is now an operator and can be used in codebox / codebox~

Minimal Export

RNBO 1.4.0 Changelog

RNBO New Features

  • buffer / data: meta attribute for JSON formatted string to use in exported code

  • buffer / data: preset support

  • C++ Target: can set a fixed sample rate in export sidebar

  • C++ Target: lookup table sizes conform to number size (32bit vs. 64bit)

  • C++ Target: Minimal Export option for bare metal targets

  • codebox: consts can be used in other consts

  • codebox: lists can be initialized with size, fe: new List(74)

  • codebox: nocache setting to disable cache

  • feedback~: reset method

  • filtercoeff: event version

  • gate~: ramptime attribute

  • groove~: jumpto attribute

  • latch: init attribute to specify initial held value

  • list.reg / list.store: preset support

  • message: storeempty attribute to store empty list

  • multibuffer~: outputs current buffer info a la buffer~

  • noise: seed attribute

  • noteout: argument sets channel

  • param~: improved feature parity with param object

  • Pound Sign Arguments: #0 unique ID implementation a la Max

  • presetbang: new object that bangs before capture and after recall

  • Raspberry Pi Target Export Sidebar: 'Run on Selected Target' button in bottom toolbar

  • Raspberry Pi Target Export Sidebar: prompt to update the update service & other dependencies

  • Raspberry Pi Target: warn on patcher overwrite

  • RNBO Export: release callbacks are called in the Engine destructor

  • RNBO: improved error reporting & logging

  • rnbo.remote: Param Connect support

  • rnbo~: exportstatus attribute

  • twist~: operator a la Max object

RNBO Fixed Bugs

  • buffer / data: improved error reporting when name is not set

  • buffer / data: only re-allocate when necessary when setting size

  • buffer~: ms alias for sizems works

  • codebox: allow void returns

  • codebox: arrays / buffers can reference themselves in assignment

  • codebox: compiles when param is connected to in2

  • codebox: dsp operators appropriately initialized

  • codebox: fixed array notation for multi-channel buffers

  • codebox: fixed crash and functionality of fixed arrays

  • codebox: fixed crash setting list length

  • codebox: fixed crash when function returns something different than signature

  • codebox: improved inlet function return errors

  • codebox: not initialized with bang on startup

  • codebox~: improved error reporting when contents are too large

  • codebox~: in2 function correctly generated

  • Export Targets: multibuffer~ reference removed from external datarefs

  • fft: all instances synced to global samplecount

  • fft: eliminated unused external dataref

  • fft/ifft: ignore default RNBODefaultFftWindow for window buffer

  • Gen in RNBO: parameter can be named 'n'

  • Gen peek: works in codebox when wrapped in if statement

  • gen~ codebox: params propagated properly

  • gen~: allow declarations in statement lists

  • join: fixed @triggers usage when it is a list

  • list.store: optimizations

  • makenote: disallow negative duration

  • Max External Target: MIDI outlets appropriately output numbers

  • metro: improved @lock 1 behavior (as exhibited in some Export Targets)

  • midiformat: fixed bendmode assistance

  • midiparse: channel output correctly when channel is 16

  • notein: -1 receives input from all channels

  • param: @ctlin 0 works

  • param: @maximum appropriately set to reflect @enum length

  • param~: @meta attribute added

  • param~: from/tonormalized work

  • param~: supported in Pi runner

  • phasor~: improved lock behavior

  • phasor~: signal input can be used with @lock 1

  • Pi Runner: transport seek supported

  • Pound Sign Arguments: eliminated error when there is no @args entry

  • quantize: avoid divide by zero

  • Raspberry Pi Target: avoid crash with invalid IP addresses

  • Raspberry Pi Target: handle empty patchers list

  • Raspberry Pi Target: improved 'dirty' status

  • Raspberry Pi Target: warn when exporting m4a file type

  • record~: fixed reset

  • record~: recording re-triggered when re-sending same number

  • rnbo.remote: fixed crash when connecting in the Max for Live editor

  • rnbo.remote: improved connection behavior and possible hangs

  • send / receive: fixed non-local behavior in polyphonic subpatchers

  • send / receive: improved valid argument checking

  • Snapshots: fixed potential crashes when pasting between RNBO patchers

  • subdiv: misc optimizations

  • Target Export: fixed memory leak issues with resizeSignal

  • Target Export: improved error when max file size of 100 MB is exceeded

  • UI Objects: fixed crashes with objects that have unused outlets

  • Web Target: typescript types are appropriately updated

  • Web Target: UI object messages suppressed by default in exported code

Runner / Web Interface New Features

  • Buffers: Meta editing support

  • Buffers: save buffer contents to an audio file

  • Device: rename a device with a user defined alias

  • Graph UI: auto-layout functionality

  • Graph UI: display currently loaded set

  • Graph UI: overhauled state UI offering dedicated Save, Save As, New and Load options

  • Graph: new port properties and port-groups used as basis for building Graph

  • Graph: Save As support / improved first save behavior

  • Graph: name alias for nodes

  • in / out: port labels

  • in~ / out~: exposed @comment as "pretty name"

  • Inport: support for 'bang' message

  • Inport / Outport: revamped UI

  • MIDI Mapping: list / edit MIDI mappings

  • Migration: allow for exporting data after database migration

  • OSC: Expanded mapping features

  • Parameter View: Search field

  • Parameter View: configure subsets of parameters from multiple devices/instances

  • Parameter View: use ids instead of index in order to persist views across exports

  • Parameters: use Parameter Display Names

  • Port / Instance: properties for identification

  • Record Audio Stream: record multichannel audio to a file within the runner

  • Resources View: manage graphs, patchers and audio files on the runner

  • Runner: version added to commandline output options

  • Startup: configure graph load behavior

  • Web Interface: general improvements to naming conventions

  • Web Interface: Include remaining disk space and target identifier in endpoint info

Runner / Web Interface Fixed Bugs

  • Device: improved initial placement of newly added node

  • Graph: fixed non-movable Device node

  • Graph: improved display of long, potentially overlapping port labels

  • Inport: fixed inport message sending and added support for sending bang

  • MIDI: fixed SYSEX usage

  • Runner: prints console messages to journal

  • Web Interface: always show CPU usage in %