Max 8.2.2 Released

Ben Bracken's icon

We are happy to announce the release of Max 8.2.2. There are a handful of new features and over 94 bug fixes.

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

Happy patching!
Ben & Cycling '74

New Features
• getattr: dynamic color support (dump outlet)
• jit.gl.model: 'dispose' message
• mc.noteallocator~: added @hires attribute
• mc.wrapper~: deviate message uses xoshiro256 random generator
• Message to Max: 'purgemididevices' message
• sfrecord~: 'sortloop' attribute (most recent recording is added to the beginning of the file)
• thresh: symbol and anything support
• umenu: 'symbolmode' attribute (all entries are converted to symbols)
• xmidiin: new object to output raw midi from all devices

Fixed Bugs
• amxd~: eliminated extra border added to device after being dragged into patcher
• amxd~: improved error message object identification
• Autocompletion: Fixed usage in Gen
• Autocompletion: Removed redundant sorting of message box autocompletion
• closebang / closefile: eliminate recursive crashes
• closebang: fixed output after sending bangs to object
• coll/Text Editor: Extended characters properly handled when closing the editor window
• curve~: curve factor of zero is linear
• curve~: fixed behavior at -1 / 1
• delay~: permit time attributes to default to samples instead of milliseconds
• dict: shows parameter attributes in inspector when parameter mode enabled
• dict: subdicts updated when 'remove' and 'append' are used
• dict.deserialize: Fixed crash with some input
• dict.pack/unpack: remove dummy foo:bar dict
• dict.route: long strings no longer truncated
• Dynamic Colors: default Max for Live device patcher background color follows Live's theme
• Dynamic Colors: loadtime improvements
• Dynamic Colors: non-UI objects given dynamic color will retain set color on patch reload
• Format palette: fixed crash when clicking format palette icon
• Gen: contents of genpatcher are retained when 'changed attributes to arguments' is used
• GL2: shader glsl include functionality
• GL3 jit.gl.multiple: jit.gl.multiple drawing support
• GL3 jit.gl.text3d: can be drawn with jit.gl.multiple
• GL3: fixed initial reported values of videoplane color attribute
• GL3: fixed materials using glsl includes
• GL3: fixed screentoworld/worldtoscreen when drawing with multi-drawto
• Global Transport: eliminated re-output of previously set position when tempo changes
• jit.bfg: fixed crash when sending matrix with wrong number of planes
• jit.gl.lua: fixed crash when using external text editor
• Jitter Gen: drag of genjit files when holding down option will give jit.gl.pix option
• Jitter MOP objects: arguments show up in autocomplete
• JS File object: writes to proper directory after open()
• JS Task: fixed issue with creating JS object with task
• jsliveapi: ensure boxpath (fixes M4L.chooser issues)
• jstrigger: fixed argument and empty expression crashes
• jsui: fixed crash with tonamedmatrix on Apple silicon
• kslider: don't allow click on invisible/unpainted rightmost black key
• live.dial: Fixed triangle color
• live.gain~: fixed cursor location on mouse up
• live.step: dynamic colors work as expected
• loadbang: fixed breakage when an undo transaction is canceled
• Max Console: ensure that posts from different objects appear on separate lines
• Max Console: fixed memory leak
• Max for Live Device Projects: dirty the device when dependencies are added
• Max for Live Patter device: fixed crash on load (Live 11.1.b8)
• Max for Live unique identifier / ---: maintained when loading poly~ patchers
• mc.dup~: fixed typed-in chans attribute
• mc.noteallocator~: fixed MPE event parsing
• mc.number~: fixed channel outlet numbering
• mc.poly~: fixed autocompletion dropdown
• message: fixed autocompletion text replacement after a comma
• MIDI: retain MIDI prefs from missing devices
• midiformat: accepts 'hires' message to leftmost inlet to set attr
• MSP / Gen: fixed double denorm and nan check macros (doubles the headroom of audio)
• object autocompletion: description text properly appears after editing box
• Object drawing: fixed crash if component cached image is freed in the middle of painting (fixes o.display)
• Packages: Fixed potential crash on success when dropping a maxpack on the Max Console
• panel: fixed enabling / disabling window_drag in Max for Live device subpatchers
• patcher format: improved sorting of some json entries
• Patching: fixed glitch when first opening patcher or opening calendar
• Patching: improved drawing when moving in/out of Presentation mode
• pattr: restore bindto connection after deletion/recreation of bound object
• pattrstorage: changemode respected when setting values directly
• pattrstorage: fixed crash when attempting to create a large preset number
• pfft~: fixed in/out @attr_comment showing up in assistance
• playlist~: avoid overwriting clip source with cached version
• Projects: renamed 'snapshot' to 'archive'
• pvar: prevent recursion if the named object is itself
• receive~: using the r~ alias no longer outputs an MC patch cord
• record~: fixed attribute labels
• record~: records correctly when number of channels is greater than the referenced buffer
• rslider / slider / dial: improved attribute update
• s~ and r~: removed duplicate autocomplete results
• scale~: fixed output when hi and low are reversed and exponent is used
• Set to Default Value(s): fixed for non-style attributes
• setclock / clocker: fixed usage & crash
• sfrecord~: fixed loop recording when loop length is less than bufferlength
• speedlim: fixed quantization
• Support Info: appropriately shows Windows 11 info
• table: retains length when changing name
• textbutton: text / texton attributes set to nothing when there is no arg
• textedit: commas and semicolons are properly parsed
• textedit: eliminated double-escape when parsing the text field
• thispatcher: fixed patchlinecolor scripting usage
• trough: fixed issues for when float input ends with an even number
• umenu: improved handling of numeric symbols
• VIZZIE: fixed sync issues when using non-PROJECTR context
• vst~: added pattr notification on "processor changed" event
• vst~: cached plug descriptions are checked for up-to-datedness
• vst~: improve reliability of program name harvesting
• waveform~: updated chanoffset and chanoffset enum in inspector when buffer is modified
• Windows: fixed corruption when opening delay.maxhelp
• Windows: fixed crash on quit
• workspace restore: loadbang improvements

11OLSEN's icon

Thanks for your work!

daddymax's icon

Appreciated - you guys are always improving Max, thanks.

sebastien ruiz's icon
Michael Reichmann's icon

After installing this version, I get the following error messages when using a jit.gl.gridshape with a jit.gl.material:

jit.gl.gridshape: jit.gl.shader: can't find file c74.diffuse.glsl
jit.gl.gridshape: jit.gl.shader: can't find file c74.specular.glsl
jit.gl.gridshape: jit.gl.shader: can't find file c74.mtlfx.glsl
jit.gl.gridshape: jit.gl.shader: can't find file c74.diffuse.glsl
jit.gl.gridshape: jit.gl.shader: can't find file c74.specular.glsl
jit.gl.gridshape: jit.gl.shader: can't find file c74.mtlfx.glsl
jit.gl.gridshape: GLSL shader error in program fs:
ERROR: 0:92: Invalid call of undeclared identifier 'lambertian'
ERROR: 0:93: Invalid call of undeclared identifier 'blinn'
ERROR: 0:96: Use of undeclared identifier 'mat_diffuse4'
ERROR: 0:97: Use of undeclared identifier 'mat_specular5'
jit.gl.gridshape: jit.gl.shader: GLSL program failed to compile.
jit.gl.gridshape: jit_gl_geometry_draw_buffers: GL Error: Invalid operation

I am running Max on a 2015 MacBook Pro with macOS Mojave.

Rob Ramirez's icon

MICHAEL REICHMANN, apologies for this oversight. I believe the easiest fix is for you to update the Jitter Tools package from the Package Manager to version 1.0.2 and restart Max.

Please let me know if that fixes things up for you.

Michael Reichmann's icon

ROB RAMIREZ, thank you for your help!
It worked.

Herr Markant's icon
ghostique's icon

Do I need to uninstall my previous version?

Ben Bracken's icon

@GHOSTIQUE you should just be able to install over top of your previous version. Just make sure you haven't saved anything in the app bundle (mac) / dir (win). A new install will overwrite everything in the Max.app bundle / Max dir.

personal_username's icon
Sam Kennedy's icon

Hello - thanks for this!

I'm unable to load a certain max 4 live plug in - the robert henke LFO - and am getting an error that says "You are using an older version of 'sysaudio' (8.2.0) than was shipped with Max 8.2.1. Please verify your installation and your search paths." All other M4L VST's seem to be loading properly

This is especially odd as I just downloaded Max 8.2.2, did a system restart, and updated my audio drivers.

Thanks a ton - really appreciate the help!

Venetian's icon

A couple of ideas but not necessarily good ones:

Check Documents->Max 8-> Henke_LFO_name

maybe it's wrapped one insode?

You could check Max is using 8.2.2 - Live won't necessarily change just because you downloaded the newest version, although you'd think it would overwrite?

Rob Ramirez's icon

hi Sam Kennedy, there is currently a bug with sysaudio and jit.viddll.engine where this warning is posted to the console on load. This is harmless and can be ignored, and will hopefully be fixed for the next update.

Florito's icon

Hi there,
After installing the update, Max no longer loads any VST plugins. All VST plugins that I want to load result in a "no format VST exists" error. I have downgraded to 8.1.1 and I can load VST plugins again. Hope this will be fixed in the next update.
Thanks.

Ben Bracken's icon

@FLORITO What OS and computer model are you running?

It sounds like you may be on a Mac and using x86_64 plugins while running Max in arm64. You can run Max 8.2 in Rosetta 2 to run these non-arm64 plugins. In the Finder, select the Max.app, then go to File->Get Info and select "Open using Rosetta" in the Info window.

Sam Kennedy's icon

@VENETIAN thank you for the ideas - what did you mean when you said "maybe it's wrapped one inside"?

@ROB RAMIREZ thanks man. The annoying part is that the error window comes up when I load the Robert Henke LFO, and there appears to be no way to close it. It just scrolls eternally and I'm unable to continue working on my Ableton project. Any ideas for how to close that error window? It sucks because I had the Robert Henke LFO on nearly all of my old Ableton Projects, so now I can't work on them :( . The Robert Henke LFO does still work with Ableton Live 10 though, so this may be a Live 11 issue?

THANKS A TON!!!

Venetian's icon

@sam kennedy Just to be clear about the error here. You're using Robert Henke's LFO device - is this LFO 2 ? https://www.roberthenke.com/technology/lfo.html
In which case, this is a Max for Live bug for either that device or Live?
I find when I load it that I see something else, "live.object: set: no valid object set" lots of them.
an idea: When @Ben Bracken suggests opening with Rosetta, is it possible to try this for Live?

Florito's icon

@Ben Bracken: You guessed correctly (I'm on M1 Mac). Open in Rosetta solved the issue. Thank you!
But now there is a new issue (see next post)

Florito's icon

Inconsistency pattrstorage:
When pattrstorage receives the command getslotnamelist:
* 8.1.11 dumps all slot names including slot 0
* 8.2.2 dumps all slots, but starting from 1. This makes my application not work as expected.
Is this by-design (new feature), or a bug? (to know if I have to adapt my application)
EDIT: it seems to be a bug, since the reference states "[..] the getslotnamelist message will cause all slots from 0 to the largest stored slot number to be output [..]

davidestevens's icon

@Florito. I had to go back to 8.1 for exactly this reason. I believe C74 knows about it, but I would be very interested to know when the fix will be available. ?Ben?

Ben Bracken's icon

I don't have a timetable for an update, but we are aware of the problem and hope to have a fix in the next one.

Florito's icon

Thanks Ben. 8.1 is still awesome!