Об этом проекте
SyntaxWave — экспериментальная среда программирования аудио, предназначенная для исполнителей, работающих вживую, и исследователей алгоритмической музыки. Вместо DAW с таймлайном код рассматривается как инструмент: собственный предметно-ориентированный язык с ключевыми словами для осцилляторов, огибающих, фильтров, линий задержки и гранулярного синтеза компилируется в векторизованные аудиооперации, при этом в README заявлена компиляция типичных патчей менее чем за пять миллисекунд.
Среда выполнения описана на четырёх уровнях. Уровень редактора предоставляет браузерную IDE с подсветкой синтаксиса, автодополнением DSL, встроенной документацией и совместным редактированием через операционные преобразования. Уровень компиляции разбирает DSL в промежуточное представление, JIT-компилирует его в WebAssembly и передаёт генерацию буферов на GPU. Аудиоуровень использует платформенные бэкенды (WASAPI, CoreAudio, ALSA, Web Audio API как запасной вариант) для сэмпл-точного планирования и многоканальной маршрутизации. Сетевой уровень строит WebRTC-сеть, где каждый узел является одновременно производителем и потребителем, с синхронизацией состояния на основе CRDT, чтобы параллельные правки сходились к одному выходу.
Совместная работа — ключевая функция: участники делятся распределённым аудиографом, могут публиковать фрагменты, глушить или соло-выделять вклады друг друга и смешивать потоки в мастер-выход. В README указана задержка ниже 15 мс между узлами и бюджет сетевой задержки ниже 30 мс между граничными узлами. Мастер-таймлайн показывает изменения кода каждого участника в виде дорожек с волнами под ними.
Конвейер нейроанализа извлекает из живого аудио бит-гриды, тональности, паттерны атак и тембральные дескрипторы, возвращая спектрограммы, хромаграммы и кластеры волн в редактор как визуальную обратную связь. Жестовое управление сопоставляет MIDI-фейдеры, акселерометры или отслеживаемые камерой позиции рук с любой переменной DSL. Архитектура плагинов позволяет модули синтеза, эффекты и модули анализа, написанные на Rust или C, компилировать в WebAssembly и горячо подгружать во время сессии.
Заявленные технические характеристики включают настраиваемые частоты дискретизации от 44,1 кГц до 384 кГц, размеры буфера от 32 до 4096 сэмплов, до 512 одновременных голосов на узел, ABI плагинов wasm32-wasi и поддержку Windows 10/11, macOS 12+, Linux (x86_64, aarch64) и Chrome/Firefox/Edge. Проект распространяется как единый исполняемый файл, который запускает локальный веб-сервер и аудиобэкенд, открывая интерфейс в браузере. Минимальный пример: `sine freq:440 gain:0.3`, исполняется с помощью Ctrl+Enter.
Ориентированные на сцену функции включают многокурсорное редактирование, прокрутку истории кода, режим заморозки, который удерживает текущий выход при подготовке следующей секции, и режим проектора, скрывающий элементы интерфейса. Интерфейс адаптивен для рабочего стола, планшетов и мобильных устройств, с поддержкой касаний и облегчённым мобильным режимом. Строки интерфейса, подсказки и сообщения об ошибках доступны на шестнадцати языках, а DSL принимает локализованные алиасы ключевых слов (например, `sinus` или `正弦波`). В README также рекламируется круглосуточная человеческая поддержка через встроенный чат и базу знаний.
Проект выпущен под лицензией MIT и приглашает к участию сообщество лайв-кодинга, исследователей DSP и энтузиастов языков; в README упоминается репозиторий плагинов с более чем двумястами синтез-модулями от сообщества и регулярные онлайн-джемы по коду. Примечание предупреждает, что аудио в реальном времени может производить громкие или неожиданные звуки, поэтому следует внимательно контролировать уровни выхода.
Comments
0 people shared their preference · Deer Point appears after 10 participants
Sign in to join the discussion.