Max 9.0.0 Release Notes

This page contains a record of fixed bugs and added features.

If you know of an issue which is outstanding or you would like to report a bug, please fill out our Bug Reporting Form or contact our Support team here: support@cycling74.com

Download 9.0.0 |

Download

Release Notes

Max 9 Update Overview

Here are some of the highlights for this release. Be sure to check out the changelog below for a complete list of improvements.

New Objects and Tools

  • Ableton Device and DSP Objects (ABL): The ABL objects wrap both high-level device code and low-level algorithms that Ableton uses in its own products for use in your Max patches and Max for Live devices. The 10 devices include Drift, Roar, Compressor, Limiter, Reverb and more. The 55 DSP objects offer lower level components like oscillators, filters, reverb, distortion, noise, and more. 
  • Jitter Geometry Objects: The Jitter Geometry objects are a new family of objects for computational geometry. Up until now, geometry in Jitter has typically been processed as a mass of triangles (triangle soup) or grid of primitives, stored in 1D or 2D matrices of 3 plane position data, with additional planes containing other vertex properties. We’ve managed to build some incredible patches with this matrix representation, but we need a more descriptive way of representing geometry in order to expand what is possible with generative geometry in Jitter. For example: mesh subdivision, mesh smoothing, remeshing (making mesh faces uniform in size), UV generation, face properties  (like centroids and area), and other options that require the ability to traverse a mesh by connections.
  • Jitter FX Objects (jit.fx): The new jit.fx objects provide a diverse and easy-to-use library of efficient real-time image effects that run on the GPU and integrate easily with your patch. The Jitter FX objects wrap jit.gl.slab, jit.gl.pix, and v8 using the new Define functionality (see below) to more easily navigate the large library of shader based effects Jitter has to offer. In addition to all the shaders available in Max 8, we’ve added a slew of fun and interesting new ones.
  • V8 Javascript Engine: The new v8 and v8ui objects expose modern Javascript (ES6+) to Max through the V8 Javascript engine (same as Chrome and Node.js). This allows for more expressive and more performant Javascript code. The js and jsui objects still use the Mozilla Javascript 1.8.5 Engine (ES5) for legacy compatibility purposes. Save your js right in your patch with the embed attribute.
  • Codebox: There are several new codebox variants that are available for use in standard max patchers (not only gen and RNBO as in previous versions). These objects allow in patcher editing of text, and include v8.codebox, node.codebox, dict.codebox, coll.codebox, gen.codebox, gen.codebox~, jit.gen.codebox, jit.pix.codebox, jit.gl.pix.codebox, and osc.codebox.
  • Parameter Connect: Connect UI objects in Max to supported object attributes without any patchcords. This feature is currently supported by all ABL, jit.fx, Gen objects, and jit.gl.slab. Javascript V8 object support can be enabled by using the new JS attribute API. To take advantage of this feature in the context of poly~ patchers, the new param object can be used.
  • OSC Parameters: New application, patcher, and parameter level settings allow you to automatically communicate parameter values to and from your patch via OSC. You can set a global OSC address and port to use, or on a per patcher. The new param.osc object enables easy monitoring of all parameters in a patch as OSC packets. The new osc.codebox object can be used for easy display of OSC packets as dictionaries.
  • New Jitter Passes: Jitter’s jit.gl.pass architecture has been improved to better support advanced rendering passes and post processing effects. Max 9 includes several new pass effects that take advantage of the improved capabilities of jit.gl.pass including global illumination (ReSTIR), screen space ambient occlusion (SSAO), depth of field, vignetting and more.
  • New Jitter Time Objects: New jit.line, jit.bang, jit.framecount objects to provide reliable timing information both in realtime and non realtime rendering modes (See Jitter Fixed Delta Time below)
  • New Jitter Gizmos: A new transform gizmo is now used for jit.world’s @auto_handle attribute. The transform mode defaults to rotation, and changes to translate or scale via command and option modifiers. Shift modifier toggles between local and world axes. Additionally there are new gizmos for lights and cameras that can be toggled on via the gizmos attribute of jit.world.
  • jit.ui Objects: Objects to make UI widgets inside jit.world. These objects allow you to create user interfaces elements in the Jitter rendering window, and edit their position and size directly using your mouse and keyboard, and by default they will adjust their scaling based on the render window size.
  • Define: Primarily of interest to package developers, this feature enables the use of general purpose host objects like jit.gl.slab, gen~, js, and others through the use of a defined alias, making it look and feel like a unique Max object. The jit.fx.* suite of objects are an example of this.
  • hid: The hid object is a replacement for the legacy hi object. Completely rewritten to be cross platform, it provides more descriptive information about human interface devices, and the ability to take exclusive control of devices on OS X.
  • loudness~: report loudness of a signal according to the EBU R 128 standard. Momentary, short term, and integrated loudness measures are reported in LUFS (loudness units referenced to full scale). Additionally, the signal's loudness range is reported in loudness units, while sample peak true peak values are reported in dB.
  • schedule: like the defer object but for moving any message to the scheduler thread, optionally with a delay to provide similar functionality as the delay object but for any message
  • jweb~: Render a web page and route the audio through MSP.
  • threadcheck: reports the current thread of execution for an incoming message.
  • New Array Objects: including array.expr, array.fill, array.random, ​​array.min, array.max, array.mean, array.median, array.mode, and array.stddev.
  • New String Objects: including string.regexp and string.sprintf.

Object Enhancements

  • Preset Interpolation & Display: Connect the nodes object to preset to interpolate between preset states. Assign a name to a preset slot with the new setname message, and use umenu and chooser objects to display a list of saved preset slots.Shadow Alpha / Waveform Drawing: New drawing modes for multislider, function, itable, playlist~ and waveform~. Additionally, the waveform~ object now uses an improved path-based drawing algorithm.
  • Embedded Textfile Support: Save the text of v8, node.script, jit.gl.slab, jit.gl.shader, and jit.gl.pass objects right in the patcher with the embed attribute.
  • Jitter Geometry Export: We’ve added the ability to export geometry from any Jitter GL object that draws geometry with the export_geometry message. Currently PLY, STL, and GLTF formats are supported.
  • Jitter Transparency Rendering: When the transparency attribute is enabled on jit.world, any objects that have a color transparency (ie a color alpha component less than 1) or blend_enable 1 will be added to a transparency pass and composited with any opaque objects in the scene with proper depth buffering.
  • Jitter Shader Enhancements: New shader state uniforms have been added, providing parity with the iTime, iFrame, and iDate built-in uniforms of Shadertoy.
  • Jitter Fixed Delta Time: Lock animation objects bound to a jit.world context to a fixed rate with the new jit.world attribute fixed_delta. When non-zero, all animation objects (e.g jit.anim.*, jit.mo.*, jit.time, jit.framecount) will lock their animation update rate to this value. Additionally, all animation objects now have their own fixed_delta attribute, which will override the global (jit.world). This feature allows for non-realtime capture of jit.world output while utilizing jitter-animation objects with zero patching modifications from realtime playback.
  • vst~ Enhancements: Use the drop message to unload the currently loaded plugin, the currentplug attribute to get the currently loaded plugin, and the floateditorwindow attribute to make the plugin editor window floating. Sysex support has been added via the sysexevent message.

New Editor Features

  • Object Syntax Coloring: Objects now have their text colored to increase legibility and indicate the difference between object name, arguments and attributes. Use the Syntax Color Theme preference to choose a color set.
  • Updated Toolbars: The left sidebar can now be “pinned” to stay open, and a new Patcher List View shows all objects used in the current patcher window. We’ve also added Jitter FPS metering, a Global Quick Record Button, Multi-Channel Audio Meters, a persistent Clue Bar, and more. In the Max Console, you will find a REPL (Read, Evaluate, Print, and Loop) implementation to send messages to objects and evaluate short bits of Javascript.
  • New Documentation Browser: The reference and documentation browser has been completely overhauled, splitting content into Reference and User Guides, as well as better integration of Package-specific documentation. Many resources have been moved online to a new documentation website, with improved API reference.
  • Debugging & Illustration Mode: Illustration mode allows the execution of a patch in slow motion as the messages travel down patch cords, which can be paused or continued. Debugging and Illustration modes are now enabled for individual patchers, not globally as before.
  • Preferences: Redesigned for ease of navigation and searchability, the new Preferences window features a two column layout with categories on the left. Audio Settings are now integrated into preferences.
  • File Operations: In the File menu, we’ve added the Revert to Saved option to the File menu to reset the current patch back to the last saved version, and under the Help menu there is a Recent Help Files entry to see all help files that were opened recently. On Windows, the Open and Save dialogs have been modernized.

Changelog

New Features

  • Ableton Device and DSP Objects: new family of abl.device.* & abl.dsp.* objects
  • Apply Changes: Applies attributes from prototypes to selected object
  • array.*: expr, fill, min, max, mean, median, mode, random, stddev objects
  • borax: @size attribute
  • Bottom Toolbar: clue bar with integrated documentation (cmd-opt-c to show / hide)
  • bpatcher: lockeddragscroll attribute option for 'never'
  • Browser View: cmd-opt-B to show / hide
  • CEF / jweb: updated to version 122.1.13
  • Codebox Everywhere: v8.codebox node.codebox, coll.codebox, dict.codebox, gen.codebox, gen.codebox~, jit.gl.pix.codebox, jit.gen.codebox, jit.pix.codebox, osc.codebox
  • codebox objects: linenumbers & margin attributes
  • coll / dict: text tokenizers for "syntax" coloring
  • coll: 'append' message to add an integer-index entry atfter last integer index
  • coll: name attribute
  • Color Picker: accepts a '#' character before hex number
  • Color Picker: Dynamic Color editor
  • comment: string support
  • Contextual Menu: added encapsulate/de-encapsulate
  • crosspatch: max IO increased to 256
  • Debugging: Illustration mode and misc improvements
  • Documentation Browser: redesign/refresh
  • Experimental Text Editor: Monaco-based text editor (enabled via preference, Mac only ATM)
  • Export Image: File menu supports PDF export (Mac only)
  • fpic: @autofit 2 option to respect aspect ratio of loaded image
  • function: shadow alpha attributes
  • Global Quickrecord: messages to Max ;max startglobalrecord ;max stopglobalrecord
  • groove~: pendulum loop mode (loop 2)
  • Help Menu: added 'Recent Help Files' menu item
  • Help Menu: permanently enabled "Documentation" menu item
  • hid: new replacement object for legacy hi object
  • index~ / lookup~ / poke~: can be instantiated without a buffer name
  • index~ / poke~: new channel outlets
  • Inspector: "Set All Attributes to Default" / "Set All Colors to Default"
  • Inspector: Filter queries search Category
  • itable: shadow alpha support
  • ITM / transport / BBU sync: improvements for changing position, time signature, etc
  • jit.fx.*: suite of gpu bassed image effects and operators
  • jit.gl.camera: worldtoscreen / screentoworld exposed as user messages
  • jit.gl.mesh: expose input_type attr for using jit.gl.buffer in JS
  • jit.gl.mesh: point-cloud export
  • jit.gl.mesh: support for index matrix as second arg
  • jit.gl.model: support for index based matrixoutput
  • jit.gl.model: support for rendering point cloud files (ie faceless vertex data sets)
  • jit.gl.pass: albedo and roughmetal targets added to pbr and material generator
  • jit.gl.pass: dof-hq, gi, grain, TAA, vignette passes
  • jit.gl.pass: support for setting texture target attributes in pass file
  • jit.gl.pass/shader/slab: embeded textfile support
  • jit.gl.picker: uses BVH based picking
  • jit.gl.pix / jit.gl.slab: bypass attribute
  • jit.gl.shader: date and time shader state uniforms
  • jit.gl.slab: parameters exposed as attributes
  • jit.gl.slab: supported input count increased to 32
  • jit.mo.time: readonly @timevalue attribute for access from JS
  • jit.ui.*: objects for GL UI interaction
  • jit.world / jit.mo: fixed_delta attribute
  • jit.world: depth_sort attribute for sorting objects by distance from camera
  • jit.world: gizmos attribute for light and camera manipulation
  • jit.world: new auto_handle object transform manipulator
  • jit.world: running_fps attribute
  • jit.world: transparency attribute (Order Independent Transparency implementation)
  • Jitter Geometry: new family of jit.geom.* objects for computational geometry
  • Jitter GL: geometry export (PLY, STL, GLTF)
  • Jitter Time: jit.line, jit.bang, jit.frame objects
  • jweb: history persists across launches
  • jweb~: web browser with audio output
  • Keyboard Shortcuts: 'e' creates object box that turns abstraction into bpatcher
  • Left Toolbar browsers: category menu for grid view
  • Left Toolbar Browsers: results can be navigated via keyboard
  • Left Toolbar: persistence, Patcher List View, Modules category, etc
  • lookup~: attributized some messages
  • loudness~: report loudness of a signal
  • Mac Installer: light and dark OS appearance compatibility
  • Define: specify a configuration of a generic object
  • Max Application: run multiple instances on Windows OS with command line flag (--new-instance)
  • Max Console: 'Max' errors are labeled as such
  • mc.mixdown~: pans attr to set static pan matrix
  • mc.unpack~: select attribute
  • Message to Max: printversion to get legible Max version
  • message: @convertobj attribute to parse array/string/dict objects
  • metro: allow minimum interval of 1 microsecond
  • modulo~: added integer case
  • Mousewheel: added preferences for mouse wheel zoom direction
  • multislider: listresize attribute
  • multislider: shadow alpha support
  • nodes: control preset state / interpolation
  • Object Browser: right click on object to open help / ref etc.
  • Object Syntax Coloring: enabled by default (can be disabled via Preferences)
  • osc.codebox: new object
  • Param Connect: UI objects can attach to Gen / RNBO / poly~ / abl.* params
  • param.osc: new object for OSC communication
  • Parameter: osc_enabled attribute to hide from OSC
  • Parameter: osc_name attribute to set address
  • Patcher Inspector: OpenSoundControl configurations
  • Patcher List View: Left Sidebar interface for interacting with objects in patcher
  • Patcher Title Bar: displays patcher domain
  • Patcher Title Bar: show unlocked state and title in rnbopatchers
  • Patcher UI drawing: fractional scaling / positioning / zooming improvements
  • Patcher Window: larger default size
  • Patcher Window: Titlebar color matches Max theme
  • Patcher Zoom: shift+cmd+ '+'/'-' to zoom in/out by 1% increments
  • Patching Margin: Enable Patching Margin for extra space (via bottom toolbar or View menu)
  • Patching: improved placement of new objects when created with keyboard shortcuts
  • path: "Patcher:" path prefix
  • pattr: min/max attributes
  • playlist: candycane colors and shadow alpha
  • poke~: channel inlet can be a signal, int or float
  • poly~ param: new object for UI Parameter control feature
  • Preferences: default patcher size
  • Preferences: OpenSoundControl preferences
  • Preferences: preference to force jweb rendermode
  • Preferences: preferences for patching margin and Operate While Unlocked initial states
  • Preferences: two-column layout / Audio Status options added
  • preset / pattrstorage: slot is selected when recalled via pattrstorage
  • preset: interpolate / recallmulti messages / interpolation display
  • preset: slot names and umenu / chooser sync
  • Quickrecord Preferences: format, red button, show via clicking on caption menu
  • REPL: read–eval–print loop implementation (see repl help / Max Console)
  • Revert to Saved: File menu option
  • Right Toolbar: Global Quickrecord, CPU meter
  • Right Toolbar: jit.world FPS meter (click on toolbar CPU meter to show)
  • RNBO: updated to v1.3.3
  • scale: classic 2 mode for handling inverse scaling + exponentials
  • schedule: enforce message execution on the high priority scheduler thread
  • serial: 'default' option to @dtr, @rts, @xonxoff
  • sfizz~: @filename attribute & drag and drop SFZ files
  • sfizz~: silent attribute
  • sfrecord~: beginramp / endramp attributes to apply amplitude ramps
  • slider: drawoffcolor attribute
  • smallstep: UI abstraction to play short MIDI sequences
  • snowfall~: startmode attribute
  • stash~: extend attribute to handle out of bounds index input
  • string.regexp: new object
  • string.sprintf: new object
  • Support Info: visual feedback when copied
  • text: @stringout for string output
  • Themes: new default theme & additional new themes
  • thispatcher: 'reinitialize' message to reinitialize patcher
  • thispatcher: can use attrui to set patcher attributes
  • threadcheck: new object to report current thread of execution for an incoming message
  • toggle: svg support
  • Toolbar Meters: shows up to 16 output channels
  • Toolbars: Reset Toolbar to Factory menu item (right click on Toolbar)
  • Top Toolbar: added 'code' tab for codeboxes
  • umenu: @blanksym attribute for specifying the output for empty entries ("" for legacy patches)
  • v8 / v8ui: V8 Javascript Engine to expose modern Javascript (ES6+) , multitouch, pen support
  • v8: allow for jitter outlet types (jit_matrix/jit_gl_texture)
  • v8: can set attribute styles, type, size, etc
  • v8: native i/o for JS Array / String / Dictionary
  • vst~: 'drop' message to free current plugin
  • vst~: currentplug attribute
  • vst~: fixed misc threading issues
  • vst~: floateditorwindow attribute for floating editor window
  • vst~: support sysex messages via 'sysexevent' method
  • waveform~: new path-based drawing
  • waveform~: shadow alpha support
  • Windows OS Open/Save Dialogs: modernization

Fixed Bugs

  • accum: changeable pound sign arguments work
  • adoutput~: fixed crash when setting output device to 'none'
  • array.frombuffer: fixed memory leak
  • array.indexmap/rotate: fixed crash on empty input
  • array.indexof: single-item output is now an int, not a list
  • attrui: fixed crash when connected object is deleted and values are being changed
  • Audio Drivers: Fixed FlexASIO usage (Win)
  • Audio Drivers: fixed invalid memory access when switching devices
  • Audio Status: eliminated MacOS-specific entries from menus
  • buffer~: changed attributes to arguments improvements
  • CEF / jweb: --nocef command line arg to Max to disable CEF usage
  • Changed Attributes to Args: no longer adds initial space character
  • chooser: fixed crash when getting a non-existent selection
  • chooser: multiple views are synchronized
  • convert last message to object: works with symbols in quotes
  • Database: improved check for when database is 'read-only'
  • Debugging: zoom-friendly
  • Dict: improved mouse dragging behavior
  • Dict: fixed filewatching
  • Dict: improve retyping behavior for embed & legacy attributes
  • Dict: improved behavior maintaining data types during import/export
  • Dict: improved parsing of keys with spaces (in quotes)
  • Dict: improved the parsing of symbolic numbers
  • dict.pack: @triggers -1 updates inlet to 'hot' color
  • disable patch cord: creation of duplicate patch cords is prevented
  • Doc Browser: added common box attribute description
  • Doc Browser: common box attributes stays open when clicking on attribute
  • Examples: show up in Windows menu / can open multiple copies
  • External Editor: menu items are disabled if no external editor is configured
  • Factory 3D models: legendary dwarf axe of yore has been reclaimed
  • filtergraph~: fixed calculation of coefficient gain
  • Font: Ableton Sans Small added
  • function: fixed crash when clearing while dragging
  • gain~: mousing improvements
  • Gen / RNBO: disabled Save As Project...
  • Gen: fixed positioning of gen help popup & improved appearance
  • Help menu: 'Show Resources Folder' conforms to platform standards
  • Help Patches: fixed console error
  • iter: fixed potential hang/crash
  • jit.anim: fixed crash when removing animators
  • jit.gl.camera: CAMERA_POSITION and CAMERA_DIRECTION shader states are in sync
  • jit.gl.gridshape: color changes now propogate to matrixoutput
  • jit.gl.material: improved handling of hemisphere lights
  • jit.gl.mesh: fixed auto_normals crash
  • jit.gl.pass: fixed adding new passes after creating root context
  • jit.gl.pass: fxname attribute appears in autocomplete
  • jit.gl.pbr: fixed instanced pbr velocity texture
  • jit.gl.picker / jit.phys.picker: updates for JS support
  • jit.gl.skybox: eliminated visible seams with large skyboxes
  • jit.gl.slab: fixed fullscreen when extra context in patch
  • jit.gl.textmult: fixed crash on matrix input
  • jit.matrix: allow rgb (3 plane) image exports
  • jit.matrix: rgb export non-char type support
  • jit.mo.join: fix JS functionality
  • Jitter Tester: misc updates
  • JS MaxArray: misc improvements
  • JS: fixed Dict.readany() when used for the first time
  • JS: removed scrolloffset, scrollorigin patcher properties / fixed crash
  • jweb: fixed when rendermode is dynamically changed
  • key: fixed erroneous output on repeat-on-hold keys
  • Keyboard / Mouse: improved behavior when multiple gestures simultaneously occur
  • Left Toolbar Browsers: most recently used category is saved
  • live.gain~: outputs a float when there is one channel
  • live.grid: improved rendering resolution
  • live.object: fixed large message string crash
  • live.step: fixed crashing with negative arguments to 'loop'
  • lookup~: outputs correct value at the border
  • Max Console: fixed crash when search criteria is set to object
  • Max for Live Device: eliminated unnecessary dir creation in Projects dir
  • Max for Live Device: fixed issues with window state restoration
  • Max for Live documentation: added Max for Live-specific patcher attributes
  • Max for Live MIDI Tools: Set Device Width menu entry is disabled for MIDI Tools
  • mc.seperate~: fixed crash when input changes to <= @chans
  • message: bubbletextmargin is constrained
  • message: fixed inlet/outlet drawing with solid color
  • MIDI objects: attrui updates when changing port via contextual pop up
  • MIDI objects: improved @matchport behavior (fe: 'None' matches 'none')
  • MIDI SysEx: fixed corruption with large messages / certain devices
  • mousestate: always outputs with any horizontal or vertical change
  • Mousewheel: Fixed zoom direction on Windows
  • multislider: auto-set parameter type to Blob if nsliders > 1
  • multislider: improved drawing of bars / peaks / etc
  • multislider: more precise drawing of bars
  • multislider: slider positions equally spaced
  • New Object: prevent objects from being placed on top of each other
  • Node for Max logging preference: fixed hang when enabling (Win)
  • nodes: improved Theme compatibility and preset state saving
  • nslider: same note is not added multiple time
  • Object box text: potential fix for crashing when font changes
  • Object Palette: improved drawing
  • Object Transform: box attributes & selections are retained
  • opendialog: fixed crash when triggered from key output
  • Parameter Window: only show single value when objects like multislider are float/int
  • Parameters: fixed memory leak
  • Patch Cords: fixed shadow when zoomed out to 25%
  • Patch Cords: improved mouseover contrast
  • Patch Cords: cord type is updated when moved
  • Patch Cords: eliminated drawing of handles in presentation mode when deleted
  • Patch Cords: fixed positioning when curve preference is enabled
  • Patch Cords: improved interaction beetween handles and contextual menu
  • Patcher: cmd+shift+drag scroll prevented in locked patcher with disabled scrollbars
  • Patcher: eliminated saving attributes that have default values
  • patcherargs: improved parsing when commas are present
  • Patching: fixed crash when mouse exits box in certain situations
  • Patching: fixed patch cord connections when scheduler is stopped
  • Patching: improved autoscroll speed / behavior
  • Patching: patching_rect is always saved, even if at 0. 0.
  • pattr: double output prevented for @bindto pattr object
  • pattr: prevent feedback @bindto routing
  • pattr: varname is always set
  • pattrhub: detects when @patcher appears/disappears
  • pattrstorage: patcher is dirtied when changing values via window UI
  • pattrstorage: potential fixes for hangs
  • pitchshift~: quality attribute can be set via symbol or integer
  • playlist: changing font works
  • plugsync~: improved behavior when switching Live's time signature
  • poly~: audio started when replacing patcher
  • poly~: fixed crashes with patchername attr
  • poly~: maintains current target when dynamically loading patches
  • poly~: removed @local feature
  • Preferences: improved min/max for numeric preferences
  • Preferences: jweb preferences are grouped together
  • Preferences: removed @ icon from toolbar
  • Preferences: set to default value removed
  • print: popup is properly refreshed
  • Projects: fixed potential crash on close of Project window
  • radiogroup: properly store value in snapshot
  • ramp~: fixed output at some frequencies / durations
  • receive~: 'set' message works when there is no argument
  • Recent Items: fixed issues when files have same mod date
  • Recent Messages: text without spaces is not quoted
  • Refresh rate: improved rendering frame rate
  • RNBO Patcher: contextual menu improvements (rnbo snippet paste, inspector window, etc)
  • Save Dialog: no longer asks twice to save if comment box edit is active
  • Scheduler-related signal objects: improved timing
  • Set to Default Values: misc enhancements
  • sfizz~: fixed hang on launching Max editor when reading file on load
  • sflist~: fixed cue reporting for preload message
  • sfrecord~: support for channel count > 10
  • Snapshot Sidebar: improved theme responsiveness
  • stash~: @interp 1 interpolates between last and first values
  • string: improved performance
  • Styles: non Factory object style is retained after encapsulation
  • subdiv~: fixed pattern assignment
  • Subpatcher: fixed redraw issue after maximizing, minimizing, and reopening (Win)
  • swatch: fixed potential crash
  • tab / textbutton / umenu: buffer overflow prevention / improved truncation
  • tab: improved interaction when items have long strings
  • Tabbed Patchers: fixed freeobject: bad object when deleting a tab subpatcher
  • Text Editor: intercepts menu commands
  • text: lines are truncated when longer than 32767 atoms
  • textbutton: displays text in list view
  • textedit: annotation support
  • thispatcher: contents are scaled properly after some size messages
  • thispatcher: fullscreen hides system taskbar (Win)
  • Toolbar Audio Meter: improved minimum size
  • Toolbar Browsers: improved drawing / drag
  • Toolbar Calendar: fixed position
  • Toolbar Object Browser: offset added when items are dragged
  • Toolbars: improved drawing / animation
  • Top Toolbar: improved click hold behavior over New Object / New Message to reveal recents
  • train~: resetmode can be set from attrui
  • Transform / Changed Attrs: improved behavior / respects box width & autofix
  • UI Objects: improved Theme compatibility with objects that use layers
  • updown~: fixed calculation when up or down is set to 0
  • vexpr: added support for symbol usage
  • vst~: fixed crash with integer input to right inlet
  • vst~: fixed scaling with some native plugin interfaces (Retina / HiDPI)
  • vst~: improved handling of subnames for shell plugins in fast scanning mode
  • vst~: remember window coords when cmd-w is pressed
  • zl.mth: fixed output after 'zlmaxsize' message
  • Zoom: ctrl + numpad keys - and + work
  • Zoom: fixed pinch-to-zoom positioning

System Requirements

Intel

  • OS 11.0 or later
  • Intel® Core™2 Duo processor. Intel® Core™ i5 processor or faster recommended
  • 4 GB RAM (8 GB or more recommended).

Silicon

  • OS 11.0 or later
  • Apple Silicon processor
  • 4 GB RAM (8 GB or more recommended)

System Requirements

Intel

  • OS 11.0 or later
  • Intel® Core™2 Duo processor. Intel® Core™ i5 processor or faster recommended
  • 4 GB RAM (8 GB or more recommended).

Silicon

  • OS 11.0 or later
  • Apple Silicon processor
  • 4 GB RAM (8 GB or more recommended)