Об этом проекте

Undertone — это движок процедурного синтеза на базе TypeScript, разработанный для создания звуковых эффектов в играх и музыкального производства. Он работает по принципу, согласно которому всё является паттерном, что позволяет пользователям создавать любые элементы — от простых UI-сигналов до сложных многосекционных композиций — используя единый синтаксис, вдохновленный Strudel и TidalCycles. Ключевые возможности включают: - **Mini-notation**: мощный строковый синтаксис для определения последовательностей, подразделений, аккордов, евклидовых ритмов и чередований. - **Синтез и воспроизведение**: поддержка различных форм волны (синусоида, треугольник, квадрат, пила) и типов шума (белый, розовый, коричневый), а также система воспроизведения сэмплов по принципу «приноси свои собственные ресурсы». - **Инструменты теории музыки**: встроенная поддержка мелодий по ступеням лада и расширение символов аккордов (войсинг) на основе математических реализаций, а не встроенных данных. - **Управление голосом**: цепочки неизменяемых контроллеров для ADSR-огибающих, фильтров низких/высоких частот, фейзеров и глиссандо. Большинство числовых параметров могут быть заданы паттернами с помощью mini-notation. - **Пространственный звук**: поддержка стереопанорамирования и многоканального размещения звука вплоть до surround sound 7.1. - **Комбинаторы паттернов**: инструменты для манипулирования паттернами, такие как `fast`, `slow`, `rev` (реверс), `jux` (сопоставление) и `arrange` для структурирования песни. - **Режимы исполнения**: предлагает метод `.play()` для разовых перкуссионных эффектов и `.loop()` для запланированных музыкальных последовательностей с управлением BPM.