9.0.0 版本更新说明:
新对象和工具
- Ableton 设备和 DSP 对象 (ABL):ABL 对象封装了 Ableton 在其产品中使用的高级设备代码和低级算法,以便在您的 Max 补丁和 Max for Live 设备中使用。这 10 个设备包括 Drift、Roar、Compressor、Limiter、Reverb 等。55 个 DSP 对象提供了更低级别的组件,如振荡器、滤波器、混响、失真、噪声等。
- Jitter 几何对象:Jitter 几何对象是一组用于计算几何的新对象。在此之前,Jitter 中的几何形状通常被处理为三角形集(三角形汤)或原语网格,并存储在包含 3 个平面位置数据的 1D 或 2D 矩阵中,附加平面包含其他顶点属性。尽管这种矩阵表示法已经帮助我们构建了一些令人难以置信的补丁,但我们需要一种更具描述性的几何表示方法,以扩展 Jitter 中生成几何的可能性。例如:网格细分、网格平滑、重网格化(使网格面均匀)、UV 生成、面属性(如质心和面积)以及其他需要遍历网格连接的选项。
- V8 JavaScript 引擎:新的 v8 和 v8ui 对象通过 V8 JavaScript 引擎(与 Chrome 和 Node.js 相同)将现代 JavaScript (ES6+) 引入 Max。这使得 JavaScript 代码更加表达力丰富且性能更高。js 和 jsui 对象仍使用 Mozilla JavaScript 1.8.5 引擎(ES5),以保持向后兼容性。使用 embed 属性将 js 直接保存在补丁中。
- Codebox:现在有几种新的 Codebox 变体可以在标准 Max 补丁中使用(而不仅仅是之前的 gen 和 RNBO)。这些对象允许在补丁中编辑文本,包括 v8.codebox、node.codebox、dict.codebox、coll.codebox、gen.codebox、gen.codebox~、jit.gen.codebox、jit.pix.codebox、jit.gl.pix.codebox 和 osc.codebox。
- 参数连接:无需任何连线即可将 Max 中的 UI 对象连接到支持的对象属性。目前,所有 ABL、jit.fx、Gen 对象和 jit.gl.slab 均支持此功能。JavaScript V8 对象支持可以通过使用新的 JS 属性 API 启用。在 poly~ 补丁的上下文中使用此功能时,可以使用新的 param 对象。
- OSC 参数:新的应用程序、补丁和参数级别的设置允许您通过 OSC 自动通信参数值。您可以设置全局 OSC 地址和端口,或按每个补丁设置。新的 param.osc 对象可以轻松监控补丁中的所有参数作为 OSC 数据包。新的 osc.codebox 对象可用于轻松显示 OSC 数据包作为字典。
- 新的 Jitter 传递:Jitter 的 jit.gl.pass 架构已得到改进,以更好地支持高级渲染传递和后期处理效果。Max 9 包括几种利用改进后的 jit.gl.pass 功能的新传递效果,包括全局照明(ReSTIR)、屏幕空间环境光遮挡(SSAO)、景深、晕影等。
- 新的 Jitter 时间对象:新的 jit.line、jit.bang、jit.framecount 对象在实时和非实时渲染模式下提供可靠的定时信息(参见下面的 Jitter 固定增量时间)。
- 新的 Jitter 小工具:现在使用新的变换小工具来处理 jit.world 的 @auto_handle 属性。变换模式默认为旋转,通过命令和选项修饰符可以切换为平移或缩放。Shift 修饰符可在局部轴和世界轴之间切换。此外,还有新的灯光和相机小工具,可以通过 jit.world 的 gizmos 属性启用。
- jit.ui 对象:用于在 jit.world 中创建 UI 小部件的对象。这些对象允许您在 Jitter 渲染窗口中创建用户界面元素,并直接使用鼠标和键盘编辑其位置和大小,默认情况下会根据渲染窗口大小调整其缩放比例。
- 宏:主要面向包开发者,新的宏功能允许通过定义的别名使用通用主机对象(如 jit.gl.slab、gen~、js 等),使其看起来和感觉像一个独特的 Max 对象。jit.fx.* 系列对象是此功能的一个例子。
- hid 对象:hid 对象是 legacy hi 对象的替代品。完全重写以实现跨平台支持,提供关于人机接口设备的更详细信息,并在 OS X 上提供对设备的独占控制。
- loudness~:根据 EBU R 128 标准报告信号的响度。报告瞬时、短期和综合响度测量值(以 LUFS 计),还报告信号的响度范围(以响度单位计),样本峰值真实峰值值以 dB 报告。
- schedule:类似于 defer 对象,但用于将任何消息移动到调度线程,可选地带有延迟,提供类似于 delay 对象的功能,但适用于任何消息。
- jweb~:渲染网页并将音频通过 MSP 路由。
- threadcheck:报告传入消息的当前执行线程。
- 新的数组对象:包括 array.expr、array.fill、array.random、array.min、array.max、array.mean、array.median、array.mode 和 array.stddev。
- 新的字符串对象:包括 string.regexp 和 string.sprintf。
对象增强
- 预设插值与显示:将 nodes 对象连接到预设以在预设状态之间插值。使用新的 setname 消息为预设槽分配名称,并使用 umenu 和 chooser 对象显示已保存的预设槽列表。
- 阴影 Alpha / 波形绘制:multislider、function、itable、playlist~ 和 waveform~ 的新绘制模式。此外,waveform~ 对象现在使用改进的基于路径的绘制算法。
- 嵌入式文本文件支持:使用 embed 属性将 v8、node.script、jit.gl.slab、jit.gl.shader 和 jit.gl.pass 对象的文本直接保存在补丁中。
- Jitter 几何导出:我们添加了通过 export_geometry 消息从任何绘制几何的 Jitter GL 对象导出几何的能力。目前支持 PLY、STL 和 GLTF 格式。
- Jitter 透明度渲染:当 jit.world 上启用了透明度属性时,任何具有颜色透明度(即颜色 alpha 组件小于 1)或 blend_enable 1 的对象将被添加到透明度传递中,并与场景中的任何不透明对象进行深度缓冲合成。
- Jitter 着色器增强:添加了新的着色器状态统一变量,提供了与 Shadertoy 内置的 iTime、iFrame 和 iDate 统一变量的对等性。
- Jitter 固定增量时间:使用新的 jit.world 属性 fixed_delta 将绑定到 jit.world 上下文的动画对象锁定到固定速率。当非零时,所有动画对象(如 jit.anim.、jit.mo.、jit.time、jit.framecount)将锁定其动画更新速率到此值。此外,所有动画对象现在都有自己的 fixed_delta 属性,可以覆盖全局(jit.world)。此功能允许在利用 jitter 动画对象的情况下,无需对实时播放进行任何补丁修改即可捕获非实时的 jit.world 输出。
- vst~ 增强:使用 drop 消息卸载当前加载的插件,使用 currentplug 属性获取当前加载的插件,使用 floateditorwindow 属性使插件编辑窗口浮动。通过 sysexevent 消息添加了 SysEx 支持。
新编辑器功能
- 对象语法着色:对象的文本现在被着色以提高可读性,并指示对象名称、参数和属性之间的区别。使用 Syntax Color Theme 偏好设置选择颜色集。
- 更新的工具栏:左侧边栏现在可以“固定”以保持打开状态,新的 Patcher 列表视图显示当前补丁窗口中使用的所有对象。我们还添加了 Jitter FPS 计量、全局快速录制按钮、多通道音频电平表、持久的提示栏等。在 Max 控制台中,您可以找到一个 REPL(读取、评估、打印和循环)实现,用于向对象发送消息并评估简短的 JavaScript 代码段。
- 新的文档浏览器:参考和文档浏览器已完全重新设计,将内容分为参考和用户指南,并更好地集成了特定包的文档。许多资源已移至新的在线文档网站,提供了改进的 API 参考。
- 调试与插图模式:插图模式允许以慢动作执行补丁,消息沿补丁线传输时可以暂停或继续。调试和插图模式现在针对单个补丁启用,而不是全局启用。
偏好设置
- 重新设计的偏好设置:为了便于导航和搜索,新的偏好设置窗口采用了两列布局,左侧为类别。音频设置现已集成到偏好设置中。
文件操作
- 文件菜单:我们在文件菜单中添加了“恢复到已保存”选项,以将当前补丁重置为上次保存的版本。在帮助菜单下,有一个“最近的帮助文件”条目,可以查看最近打开的所有帮助文件。在 Windows 上,打开和保存对话框已现代化。