Сайт HYPERBLAM — это попытка переосмыслить создание музыки в браузере. Его главный тезис сформулирован в слогане: «Make music, not Javascript». Автор предлагает отказаться от императивного программирования аудиографа через JavaScript и описывать музыку декларативно с помощью HTML.

По сути, HYPERBLAM декларативная обёртка над Web Audio API, которая использует Web Components. Вместо написания кода вроде:

const oscillator = audioContext.createOscillator(); const filter = audioContext.createBiquadFilter(); const gain = audioContext.createGain();

oscillator.connect(filter); filter.connect(gain); gain.connect(audioContext.destination); Описываем через композицию примерно так: ...

То есть музыка становится частью разметки документа, примерно так же, как HTML описывает интерфейс страницы.

Во-первых, декларативность вместо программирования. Автор пытается перенести философию HTML на создание музыки. HTML теги хорошо подходит для описания того, что должно быть создано, а не как именно это создавать. HYPERBLAM использует тот же подход для аудио. Вместо создания графа узлов через JavaScript разработчик описывает структуру музыки через вложенные элементы.

Во-вторых, независимость от экосистемы. Проект не использует большие фреймворки и внешние зависимости. Это довольно типичная идея современного веба последних лет возвращение к платформенным API. Браузер уже умеет работать со звуком через Web Audio API, поэтому библиотека выступает лишь тонким слоем абстракции над ним.

В-третьих, композиция. Практически всё представлено в виде элементов, которые можно комбинировать между собой.

Отдельное направление проекта — генеративная музыка. Библиотека поддерживает работу со случайными последовательностями, полиритмией, случайными модуляциями параметров и различными способами генерации звуковых событий. Благодаря этому её можно использовать не только для написания музыкальных партий, но и для создания процедурного звука, например в играх или интерактивных веб-приложениях.

С точки зрения архитектуры фронтенда проект любопытен тем, что переносит идеи Web Components и декларативного UI в совершенно другую область. Если React описывает интерфейсы, то HYPERBLAM пытается описывать музыку. Его можно рассматривать не столько как музыкальную библиотеку, сколько как эксперимент по созданию языка описания звука поверх HTML и Web Audio API.