Max 8.0.4 Released

Ben Bracken's icon

We are happy to announce the release of Max 8.0.4! One area of improvement is Node For Max, and we will be following up with an article describing the changes in more detail.

Take a look at the new features and fixed bugs list below, and, as always, you can download the installers here:

Enjoy!
Ben

New Features:

• itoa/atoi: utf8 attribute to always produce / expect UTF-8
• jit.gl.bfg: GL implementation of jit.bfg
• jit.gl.node: support for shader attribute
• Node For Max: cluster support
• Node For Max: custom binary paths
• Node For Max: double click opens the node.script js file
• Node For Max: global Max preferences for debugging
• Node For Max: 'npm init' messages allow the creation of package.json files directly from Max
• Node For Max: support for passing on CLI options to the Node binary
• Node For Max: support for remote debugging scripts
• VIDDLL 1.2.1: support for rtsp url streaming
• VIZZIE: Added new TEXTURE2MATRIX utility module

Fixed Bugs:
• audio: fixed memory leak in dspchain starting / stopping audio
• autopattr/pattrstorage: fixed issues with deletion/reinstantiation
• BEAP: sync from BEAP repo (master branch)
• Blackmagic driver: fix issue with crash on multi-input devices
• chooser: can use jspainter to draw over dataview
• coll: fixed crash when a symbol doesn’t have any argument
• extras menu: alphabetization improvements
• GL: fix crash when instantiating jit.gl.model from JS without first instantiating outside JS
• Groups: copy and duplicate of individual objects no longer retain Group information
• Inspector: Object > Name menu no longer closes sidebar inspector
• ITM "time" attributes: update in inspector/attrui when value is changed
• jaudiowrapper: ensure that device is open before start/stop
• jit.gl.light: allow binding to jit.gl.node sub-contexts
• jit.gl.mesh crash with large dims
• jit.gl.scenegraph: refactoring
• jit.gl.slab: fix sendshader read message
• JS: fixed memory leaks
• JS: rebuilt with a newer SDK to support Notarizing for App Store
• jsxmlhttprequest: fixed crash when sending a number via setRequestHeader
• kslider: fixed issues with touchscreen mode
• line: fixed memory leaks
• line: initial duration of 0 works
• live.step: direction random properly works with the next message
• loadmess: single float argument was truncated to 32 bits
• Max For Live: Breakpoint editing works in Arrangement
• Max For Live: fixed 'Clang' crashes
• Max For Live: pasting into an edited device no longer changes device name
• Max path: Applications folder is not added (Mac-only) if Max is installed there
• MC: fixed crash when wrapping with prefixed name
• MC: fixed issues with MC-version transform and some MSP objects
• mc.cascade~: coefficients work when input to right inlet
• mc.function and others: help file opens from ref page
• mc.number~: outputs number of channels when no input is connected
• mc.rampsmooth~: can accept ints in its inlets
• mc.stereo~: disables and ignores pan control mode
• mc.voiceallocator~: better handling of post "endevent" audio release
• mc.voiceallocator~: fixed crash with non-event messages
• meter~: fixed usage with Mira
• multirange: displays pattr-recalled data correctly
• Node For Max: improved start, stop and restarting behavior
• Node For Max: node.debug switches to ‘npm’ tab automatically when running any npm related tasks
• Node For Max: node.script helpfile improvements
• panel: fixed bad error messages when @drag_window is used in embedded bpatcher
• parameter: any attribute in an abstraction can be edited
• parameter: initial value is retained when duplicating
• parameters: improved bpatcher support
• patcher: fix old patcher loading
• Patching: command/ctrl before click to disable snapping
• Patching: fixed intermittent crash when right-clicking
• pattrstorage: fixed issues leading to crash in VSynth
• pattrstorage: getsubcriptionlist outputs a 'done' if there is nothing subscribed
• pattrstorage: subscription improvements
• peakamp~: improved memory initialization to avoid garbage output
• pfft~: fixed crash when adding fftout~ to an MRO-ed patcher
• pipe: fixed memory corruption
• preset: clean up pattrstorage linkage
• print: long lists are no longer truncated
• scale: @classic 0 attribute works when scaling a list and using the exponent
• seq: fixed addeventdelay message
• speedlim: no longer stops when scheduler restarts
• Support Info: package list sorted alphabetically
• Vizzie: parameters are stored and recalled properly with pattrstorage
• vst: fix editor crash with uninitialized audio
• vst~: AUv2can load component plugins using filepath/drag
• waveform~: fixed memory leak

Music_SDP's icon

Found a major issue. My node scripts are no longer working on 8.0.4. I didn't make any changes to the script before updating and I tested the script on 8.0.3 immediately before updating to 8.0.4. I'm running Mojave, can't confirm yet if the issue is happening on Windows as well.

When I run the script, I get a status message saying 'Max.addHandler is not a function'
If I switch over to the debug console, I get this message: 'attempting to run the max api outside of Max! this package will do nothing'

I can't use 8.0.4 until this issue is resolved.

Ben Bracken's icon

@MUSIC_SDP Thanks for the report. Can you post simple script so we can help debug the issue? If you would prefer, you can send an email to support@cycling74.com and we can take it up there. Thanks!

Music_SDP's icon

Thanks Ben, I sent an official report right away and included my test patch. I appreciate any help I can get.

Florian Demmer's icon

Hey there,

@music_sdp we sent out a response to your support request but I'm also replying here to make the general information available for others.

After running additional, extended tests with the 8.0.4 installer Node For Max is working as expected and it appears like one encounters this issue when your Node For Max Project has an additional max-api dependency installed.

There is no need to install a "max-api" package in order to use Node For Max and the API via require("max-api") given that this module is dynamically resolved at runtime as its state is managed and offered by Node For Max itself. In order to solve the issue with projects that show the issue you are seeing, please remove a potential "max-api" folder from the node_modules folder and ensure that you don't install a "max-api" package using 'npm install max-api' directly or via the dependencies/devDependencies in a package.json file.

We are aware that there is a 3rd Party stub package available on NPM called "max-api" and are initiating communication to improve the user experience on that front.

To answer the question why there is a discrepancy between the 8.0.3 and the 8.0.4 version of Max is the fact that the underlying mechanics of Node For Max resolving "max-api" have changed in order to be more compliant with the general module resolving algorithms used in NodeJS instead of "monkey patching" the global require function.

Hope that helps?

Thanks,
Florian

Music_SDP's icon

That helps a TON, thank you for that thorough reply and explanation as to why it happened and why it worked in the past. I found the fake max-api and removed it, and the script now works again. I hope no one else accidentally installed that false api like I did.

i@seanstevens.com's icon

"VIDDLL 1.2.1: support for rtsp url streaming" might this let us grab video from network cameras again?

Source Audio's icon

Are there any news regarding jweb crash when reading pdf files on windows ?

Julien Bayle's icon

jit.gl.bfg !
you just rock better than any one.

maor efrati's icon

jit.gl.bfg! thank you!

Herr Markant's icon

+ 1 for jit.gl.bfg!!

Anthony Palomba's icon

YAY! jit.gl.bfg returns!

redhexagonal's icon

mc.poly~ still can't be upsampled :(

Bjorn Vayner's icon

Is there some info available about: "Max For Live: Breakpoint editing works in Arrangement"?

I haven't chanced upon it so far by exploring the API and the LOM doesn't mention it yet either.
Not 100% sure what to look for. Are these Automation or Modulation breakpoints? Which path can you access them from?
Thanks in advance,

Bjorn