Max 8.5 Released With Support for RNBO

Ben Bracken's icon

We are happy to announce the release of Max 8.5. This update features support for RNBO, an exciting new add-on for Max.

Learn more about RNBO here:
https://cycling74.com/products/rnbo

Additionally, Max 8.5 offers many improvements for Max and Jitter, with 15 new features and 50+ bug fixes.

As always, you can download the update here:
https://cycling74.com/downloads

For a full list of all Max 8.5 improvements, check out the change log below, or here:
https://cycling74.com/releases/max/8.5.0

Happy patching!
- Cycling '74

New Features

  • ftom/ftom~/mtof/mtof~: Scala support

  • GLCore: modern OpenGL Graphics Engine (gfxengine glcore)

  • jit.gl.environment: new object to manage environment maps for image-based lighting

  • jit.gl.lua: GLCore Support

  • jit.gl.model: support for PBR materails in glTF files

  • jit.gl.pass: new global illumination effects (atmospheric, tssao, ssr)

  • jit.gl.path: GLCore support

  • jit.gl.textmult: new object for efficiently rendering multiple words of text

  • jit.gl.tf: support for input-only buffers

  • jit.gl.volume: GLCore support

  • Max for Live Devices: added device pref to include packages when freezing

  • Projects: 'safe' mode (a la loadbang defeat)

  • RNBO: Support for new add-on patching environment

  • vst~: improved transport support / @legacytransport attr

  • vst~: support for named transports

Fixed Bugs

  • amxd~: fixed typing a file into the inspector

  • attrui: prevent setting of read-only attributes

  • autocompletion: fixed misc issues for a few objects

  • buffer~: fixed importreplace / replace with some .mp3 files (Mac fix only)

  • Color Picker: does not add unecessary undo transactions

  • filtergraph~: fixed crash saving markers

  • gestalt / js: fixed arm64 architecture reporting

  • GLCore: @poly_mode 2 2 correctly draws points as circles

  • GLCore: fixed cull_face poly_mode behavior

  • Inspector: Color popup follows horizontal window resize

  • JA Translation: improved word wrap in help files (Win)

  • jit.gl.material (GLCore): fixed poly_mode

  • jit.gl.model: fixed skeleton mesh misalignment issues

  • jit.gl.text: removed 1024 maximum character limit (now 32768)

  • jit.matrix: fix exportimage file extension enforcement

  • jit.qt.engine: fixed Error 126 loading external (Windows)

  • js: increased Array/stringth length when posting (32767)

  • jsui: fixed crash when @filename is set with #1 (changeable arg)

  • lcd: fixed crash with long 'write' symbols

  • line~ / curve~: prevent bang on single value message (reverts to old behavior)

  • live.banks: window can be opened from subpatcher

  • live.object: fixed potential crash on empty message

  • Max Console: permit option key from Window menu to move to the main display

  • Max for Live Device: improved devuce unfreeze speed

  • Max for Live Device: M4L patcher attributes are retained when saved in Max

  • Max for Live: improved scheduler<->audio accuracy

  • mc.pattern~: fixed crash on illegal channel index

  • New From Clipboard: ensure top-level loadbang is triggered

  • Node for Max: Fixed logging on Apple arm64 machines

  • Package install: improved installation / removal / etc

  • pattrhub: improved @patcher attach/detach

  • pink~: improved seeding / instances are unique

  • plot~: domain properly set from stored values

  • poly~: fixed right event outlet assistance

  • print: fixed comma-escaping

  • Projects: fixed crash if subpatcher window is open when Saving as Project

  • Projects: improved handling of invalid project search paths

  • Projects: reload no longer causes duplicate patcher instance if save dialog is cancelled

  • pvar: fixed crash when deleting object connected to a pvar

  • serial: improved open/close

  • sfplay~ / playlist~: fixed crash with high-channel counts

  • subdiv~: fixed @div attr arg initialization

  • subdiv~: fixed issues with patterns with small, followed by large, values

  • textedit: order attribute works when parameter_enabled

  • updown~: protect against over / under

  • vd.twist.jxs shader example: fixed for GLCore

  • vst~: added some aliases for @prefer

  • vst~: fixed argument parsing on patcher load

  • vst~: fixed crash with 'writebank' with no arguments (vst3)

  • vst~: fixed potential deadlock when changing parameters with generic interface

  • what~: fixed crash using @matches attr arg

  • zl.rev: fixed list with bang message

  • zl.stream: stream size retained when changing zlmaxsize

OCH's icon

can't.. contain.. excitement!..

11OLSEN's icon

I'm excited to check it out. Thanks for your work!

Trevor being Trevor's icon

This is honestly so cool!!

daddymax's icon

What is the GLCore update? Does it mean there's new GL features, or a performance boost?

MAX.XAM's icon

This is so awesome! Thanks C74 :)

Rob Ramirez's icon

@daddymax, glcore is now the default graphics engine, and is based on the old gl3 engine. you can read a bit about this here - https://docs.cycling74.com/max8/vignettes/working_with_opengl_topic

Tim Lloyd's icon

You wonderful people. RNBO is awesome 😎

Alexander Metson's icon

Is the scalename attribute for ftom/ftom~/mtof/mtof~ working for anyone here? Any scale name from the Scala archive I put gives me a "scalename: no named scale" error. The documentation doesn't mention having to download the archive.

Ben Bracken's icon

@ALEXANDER METSON Are you including the .scl extension? If so, just try passing the scale name without it.

Alexander Metson's icon

@Ben Thanks for the reply. No, I am following the instructions in the object reference and forgoing the .scl extension.

Ben Bracken's icon

@ALEXANDER METSON Ok, could you drop a note to support via our Bug Report Submission Form?

FWIW, I can't repro this on either platform, but I'll definitely keep an eye out for issues here.

Alexander Metson's icon

@Ben Wow, I was totally the problem. I somehow forgot the "@" before the attribute name. The only bug was in my brain. Thanks anyway!

Ben Bracken's icon

@ALEXANDER METSON ahhh, good to hear this are working, thanks for following up!

Florent Ghys's icon

super exciting!! thanks for all the work

tyler mazaika's icon

Crashing every time I try to save a new .js file. Filed with support...

Thread 0 Crashed:: CrBrowserMain Dispatch queue: com.apple.main-thread
0 Max      0x105105d14 jpatcher_is_rnbo_patcher + 12
1 Max      0x104ed63a8 jpatcher_count_dirty_rnbo_patcher_fun(_jpatcher*, int*) + 24
2 Max      0x104ed63a8 jpatcher_count_dirty_rnbo_patcher_fun(_jpatcher*, int*) + 24
3 Max      0x1050f6c24 jpatcher_traverse + 44
4 Max      0x104ed5e34 apm_rnbo_preparetosave + 156

Ben Bracken's icon

@TYLER Thanks for this one, I have been able to repro and we will get this fixed up for a hotfix update coming soon!

Julien Bayle's icon

O M G RBNO!

Thanks so much for such a ~7 years work.
Huge thoughts for Darwin, here too.

We will include this in our courses at Structure Void https://structure-void.com as soon as possible, for next sessions.

Pierre-Olivier Boulant's icon

Hi
I get a lot of stuff in the console with 8.5.0 that I didn't have so far. As if the project, with no patcher loaded on project load, is being analysed. M ost #x in abstractions give warnings because of this. And it's showing a lot of dependencies that get tracked before opening any patcher. Used to be on loading the main patcher if I remember correctly and not as soon as opening the project. Nothing bad, just clutter that looks bad when sharing a project as if the code is not so trustworthy.

And also I get some crashes when saving a .js file after editing a few lines of a copied block within it. Tried a couple of times and got the same result. Just changing the function name and the name of a variable.

The project has worked fine until 8.5.0. This is new behaviour.

Ben Bracken's icon

@Pierre-Olivier We've fixed up the js save issue for the next release (coming very soon).

Could you send along an example (patcher and steps) of the other issues you are experiencing?

Pierre-Olivier Boulant's icon

@Ben
I didn't check for the .js saving issue just above. Sorry about that. :)

Just open the project in this archive:
https://wfsdiy.files.wordpress.com/2022/05/wfs_mc2.11_20220531.zip
The only dependency is Java JRE. The rest is native Max and Jitter. Is there something new with the dependency check of the project when loading it?
The complaint about the plug-in is nothing new.

Otherwise I checked again the [poly~] multithreading with hyperthreading still doesn't work. Only the physical cores are loaded and not the second "virtual" core. Something broke with 8.2.0. We checked this together with Chris using the help patcher with a lot more load that in the help file. This was tested end of June with 8.3.1 and 8.2.2 vs 8.1.11.

Iain Duncan's icon

Wow, big release! Can anyone provide more details on: "Max for Live: improved scheduler<->audio accuracy". Whatever it is, I'm happy about it, but I'd love to know more about the details of the improvement.

Dread's icon

Super Super excited about this!! Specifically being able to create my own cheap custom hardware on a raspi! So many possibilities!!

couple questions:

1. I know this is very early days but is there any consideration for having the export work with something like the pi zero 2? Just to know if this could be a potential in the future or if there is something about its hardware which wouldn't ever really work with RNBO.

2. From a brief scan I see serial/UDP isn't currently available. I would love to use Arduino's with a raspberry Pi to have an interactive all in one device. Will there be Serial/UDP added in the near future?

cheers!