Cycling '74 выложила Max 9.2 — обновление, в котором основная работа ушла в три места: JavaScript-движок v8, видео в Jitter и объекты-мосты с Ableton. Формально это минорная версия, но по объёму изменений она ближе к крупному релизу.
v8: сеть и FFT без сторонних костылей
Объект v8 переехал на движок 14.6 и получил сетевой слой: fetch со стримингом и сжатием, клиенты и серверы WebSocket, HTTP, TCP и UDP, переписанный XMLHttpRequest с более полным соответствием спецификации. Таймеры setTimeout и setInterval теперь встроены и работают на клоке Max, а не на внешних решениях.
Главное для DSP: в JavaScript появились нативные FFT-классы MaxFFT и MaxFFT2D — быстрые вещественные и комплексные преобразования, которые заметно обгоняют чисто JS-библиотеки. То есть данные из сети (API, метеосводки, финансовые ряды) можно тянуть прямо в патч, считать спектр в v8 и не тащить в проект Node.js.
Jitter: браузер как текстура и HAP на Windows
Новый видеодвижок WMF (Windows Media Foundation) воспроизводит и записывает видео системными библиотеками Windows — с поддержкой кодека HAP, который Vidvox делал для live visuals. Для тех, кто гоняет визуалы на Windows, это самая практичная правка релиза.
Объекты jit.web, jit.gl.web и их MSP-варианты с тильдой оборачивают CEF: канвас браузера отдаётся как матрица или текстура, а мышь и клавиатура из контекстного окна идут в патч. Ввод-вывод построен на bindJitterMatrix и bindJitterImage, а копировать в именованную матрицу и обратно можно через setJitterMatrix и getJitterMatrix.
По мелочи в Jitter добавили инструмент правки путей jit.path.ui, пёрышки (feathering) и vertex snapping в jit.gl.meshwarp, выдачу позиций в виде матрицы из jit.gl.textmult, per-instance UV в jit.gl.multiple, отдельное управление alpha blending, а также утилиты jit.message, jit.unpack.geomat и jit.gl.tex2mat.
Ableton-слой: три новых объекта
В коллекции abl появились abl.device.reverb2~ (реверб на сети линий задержки с обратной связью), abl.device.stereocompressor~ и abl.dsp.djfilter~. К существующим добавили атрибут @quantize у abl.device.spectralresonator~, scrambler-режимы в abl.dsp.transform~ и в мод-объектах, LFO-волну sharktooth и кривую Bass Shaper в сатураторе.
По данным CDM, часть этих новинок доберётся до Ableton Live и без отдельной лицензии Max — за этим стоит следить отдельно.
Gen, буферы и установщик
В Gen собрали большой пакет правок корректности компилятора: заработали вложенные require, dead code elimination перестал вырезать живой код, поправили слишком агрессивное свёртывание констант и конфликты переименования переменных, а состояния (poke, latch, counter) больше не считаются молча неправильно.
У буферов появились сообщения replacechannel и replacechannel_samples — копирование данных между каналами одного буфера или из внешнего файла в канал. У setsize и sizeinsamples добавился аргумент для сохранения содержимого при изменении размера, а trim и trim_samples убирают тишину в начале и конце с настраиваемым паддингом. Содержимое буфера можно задавать по url.
Установщик для Windows переписали: установка, переустановка и удаление быстрее, альтернативные пути установки управляются нормально.
Что это значит
Max 9.2 закрывает три исторические дыры разом: сеть и FFT перестали требовать внешних инструментов, видео на Windows перестало быть болью, а браузерный канвас стал таким же источником графики, как камера или файл. Скачать можно на cycling74.com — сборка для macOS Universal весит 1 ГБ, для 64-битной Windows — 573,2 МБ.
Cycling '74 проведёт разбор 9.2 в формате office hours: сессия по Jitter — сегодня, общий тур по релизу — 16 и 21 октября, по данным CDM.
Источник: Cycling '74 (release notes), CDM
Ссылки: cycling74.com/releases/max/9.2.0, cdm.link/max-9-2/


