- Блог
- Сравнение
Sonore SDK vs JUCE: альтернатива JUCE на Apache-2.0 для аудиоплагинов
Sonore SDK и JUCE оба собирают VST3, Audio Units v2 и v3, AAX, LV2 и автономные приложения из C++ на Windows, macOS, Linux, iOS и Android. Различаются они лицензией, CLAP и поддержкой агентов для кода. Sonore SDK бесплатен по Apache-2.0 при любом доходе, собирает CLAP нативно, является header-only и даёт агентам для кода MCP-сервер. JUCE стоит денег, как только годовой доход превышает $20 000, если только вы не выпускаете исходный код по AGPLv3, а CLAP собирается только через стороннее расширение. Поэтому для нового плагина Sonore SDK — более удачный выбор.
На этой странице
Сравнение бок о бок
| Sonore SDK | JUCE 9 | |
|---|---|---|
| Лицензия | Apache-2.0 | AGPLv3 или коммерческое EULA JUCE 9 |
| Закрытый плагин | Бесплатно при любом доходе | Бесплатно до $20 000 дохода в год; Indie или Pro выше этого порога |
| CLAP | Нативно: основной формат | Через сторонние clap-juce-extensions |
| VST3 | Да, через заголовок C API от Steinberg | Да |
| Audio Units | AUv2 и AUv3 | AUv2 и AUv3 |
| AAX | AAX Native, с вашей копией SDK от Avid | Да |
| LV2 | Да | Да |
| Платформы | Windows, macOS, Linux, iOS, Android | Windows, macOS, Linux, iOS, Android |
| Код | Header-only; один исходный файл на плагин | Модули, компилируемые в ваш проект |
| Сборка | CMake 3.21+; Android без Gradle | CMake 3.22+ или Projucer |
| GUI | Нативный редактор, нарисованный SDK, или HTML-страница в webview ОС | JUCE Components, Direct2D, интерфейсы на WebView |
| Агенты для кода | Официальный MCP-сервер, Agent Skill, llms.txt |
llms.txt и AGENTS.md |
| Последняя версия | 1.0.0, октябрь 2026 | 9.0.4, 12 октября 2026 |
Лицензия и её стоимость
Это различие команды замечают первым делом. С JUCE 8 JUCE распространяется под двойной лицензией: AGPLv3 или коммерческое EULA с уровнями, которые определяются годовым доходом или объёмом финансирования.
| Уровень JUCE 9 | Доход или финансирование | Подписка | Бессрочная |
|---|---|---|---|
| Starter | До $20 000 | Бесплатно | Бесплатно |
| Indie | До $300 000 | $40 на пользователя в месяц | $800 на пользователя |
| Pro | Без ограничений | $175 на пользователя в месяц, минимум 12 месяцев | $3 500 на пользователя |
На практике для команды из трёх разработчиков это составляет $1 440 в год по подпискам Indie, как только доход превышает $20 000. Свыше $300 000 это $6 300 в год по подпискам Pro или $10 500 единовременно за бессрочные лицензии Pro. Эти цифры взяты непосредственно из опубликованных цен. Заставка, которую JUCE раньше требовал, исчезла вместе с JUCE 8, а цены JUCE 9 такие же, как у JUCE 8.
Sonore SDK распространяется под Apache-2.0 без уровней: закрытый плагин не стоит ничего при любом доходе, и патентный грант лицензии идёт в комплекте. Обязанность одна — сохранять файлы лицензии и NOTICE вместе с тем, что вы распространяете. Условия владельцев форматов относятся к обоим фреймворкам одинаково: AAX требует соглашения с Avid и подписи PACE, а с VST 3.8 (октябрь 2025) Steinberg больше не требует соглашения для распространения VST3.
Форматы и платформы
CLAP — главное место, где форматы двух фреймворков различаются. Дорожные карты JUCE за 2024 и 2025 годы обещали нативный CLAP в JUCE 9, но он в этот релиз не вошёл, поэтому плагины на JUCE получают CLAP через clap-juce-extensions. В Sonore SDK CLAP — это ядро: CLAP-обёртка управляет параметрами, состоянием и мостом редактора, а VST3, Audio Units, AAX и LV2 адаптируют его. Поэтому плагин не может вести себя по-разному в зависимости от того, какой формат загрузил хост.
На десктопе оба фреймворка собирают VST3, AUv2, LV2 и автономное приложение на Windows, macOS и Linux, а AAX — на Windows и macOS. Sonore собирает все эти форматы, включая CLAP, одним вызовом sonore_add_plugin. Исходный код компилируется один раз и линкуется в каждый бандл, а для AAX — ещё раз, против SDK от Avid.
На iPhone, iPad и Android оба фреймворка собирают плагины и приложения, и в Sonore это снова тот же plugin.cpp:
- AUv3.
sonore_add_auv3помещает плагин внутрь приложения как расширение Audio Unit. Это единственный тип плагинов, который загружают GarageBand, AUM, Cubasis и Logic Pro для iPad, и тот тип, который принимает Mac App Store. Он несёт дерево параметров с жестами, сэмпл-точную автоматизацию, MIDI 1.0 и 2.0 на входе и выходе, темп и транспорт, заводские пресеты и то же сохранённое состояние, что и любой другой формат. - Приложения для iPhone и iPad. Редактор работает на весь экран в безопасной зоне, звук идёт через RemoteIO, а MIDI-клавиатуры подключаются через CoreMIDI.
- Приложения для Android. NDK собирает APK прямо из CMake, без Gradle. Звук идёт через AAudio, принимаются все подключённые MIDI-клавиатуры, а показать можно любой из редакторов.
Как пишется плагин
Плагин JUCE — это подкласс AudioProcessor с processBlock, AudioProcessorEditor и модулями JUCE, скомпилированными в проект. Плагин Sonore — это один файл из трёх частей: структура DSP, таблица параметров и дескриптор.
#define SONORE_NUM_PARAMS 1
#include <sonore/dsp.h>
struct SonoreDsp {
sonore::Smooth gain;
void prepare(const sonore::ProcessSpec& spec) { gain.setup((float) spec.sampleRate, 20.0f); gain.snap(1.0f); }
void process(sonore::AudioBlock<float>& io, const float* p) {
for (size_t i = 0; i < io.getNumSamples(); ++i) {
const float g = gain.next(sonore::dbToGain(p[0]));
for (size_t c = 0; c < io.getNumChannels(); ++c) io.getChannelPointer(c)[i] *= g;
}
}
};
#include <sonore/plugin.h>
static const sonore::ParamInfo kParamTable[SONORE_NUM_PARAMS] = {{"gain", "Gain", "dB", -24.0f, 12.0f, 0.0f}};
static const sonore::PluginDescriptor kDesc = {"com.example.gain", "Gain", "Me", "1.0.0", "A gain stage.", "https://example.com", false, kParamTable, SONORE_NUM_PARAMS};
#include <sonore/formats.h>Параметры приходят как простые значения в порядке таблицы, уже в децибелах или герцах. Необязательное поведение включается объявлением члена: latencySamples(), tailSamples(), saveState(), сайдчейн или сигнатура MIDI process. Обёртки находят его во время компиляции, а DSP, который его не объявляет, ничего не платит.
Пришедшим из JUCE некоторые имена будут знакомы: MidiBuffer, AudioBlock, дерево Component для нативного редактора, MessageManager и AudioProcessorValueTreeState поверх таблицы параметров с привязками виджетов. SDK не является форком и не совместим с исходным кодом JUCE. Код DSP переносится как обычный C++, а оболочка плагина переписывается в форме, показанной выше. Если плагин уже выпущен, продумайте, как хосты будут распознавать новую сборку, ведь каждый фреймворк формирует идентификаторы плагинов по-своему.
Интерфейсы
Components JUCE — зрелый инструментарий с удержанием режима (retained-mode), а JUCE 8 добавил интерфейсы на WebView. В Sonore SDK есть оба пути на каждой платформе:
- Плагин без страницы получает нативный редактор, который SDK рисует в собственном окне без браузерного процесса. Он выставляет текст с кернингом GPOS и шейпингом в духе HarfBuzz для арабского, индийских и десятков других письменностей, рисует цветные эмодзи и читает SVG-графику.
- Плагин со страницей поставляет HTML, который открывается в webview операционной системы: WebView2, WKWebView, WebKitGTK или WebView Android. Мост
window.sonoreсвязывает страницу с плагином, а её правки попадают в аудиопоток через lock-free очередь.
DSP, созданный для плагинов
Sonore SDK включает библиотеку DSP, ориентированную на то, что плагины на самом деле делают, и реализованную по опубликованным статьям:
- модели на уровне схемы: нодальный движок DK, Fuzz Face, ступень драйва TS-808;
- насыщение лентой и эквалайзер для ленты;
- измерение громкости по BS.1770 и измерение true-peak;
- коррекция высоты тона и сдвиг высоты через фазовый вокодер;
- гранулярный движок;
- плейт-, пружинный и FDN-ревербераторы;
- динамика от опто-компрессоров до многополосной в духе OTT;
- строительные блоки синтезатора: перехват голосов, моно и легато с глайдом, полифоническая модуляция CLAP и матрица модуляции.
Агенты для кода
JUCE публикует llms.txt и AGENTS.md, а с сентября 2026 года его README просит ИИ-инструменты сообщать пользователям, что может потребоваться коммерческая лицензия JUCE. Официального MCP-сервера у него нет.
Sonore SDK создавался в расчёте на то, что агент напишет большую часть кода:
- MCP-сервер отвечает, существует ли имя и каково его реальное объявление. CI проверяет, что поиск находит все 766 публичных типов в 282 заголовочных файлах.
- Agent Skill даёт Claude Code, Codex, Cursor и Antigravity рабочий процесс: сгенерировать проект, искать имена и завершать работу только тогда, когда
ctestи валидаторы проходят.
Всё это генерируется из заголовков, поэтому не может разойтись с ними. Как собрать плагин с помощью агента для кода — пошаговое руководство.
Когда Sonore SDK — лучший выбор
- Вы начинаете новый плагин и хотите, чтобы один исходный файл доходил до десктопных DAW, хостов для iPhone и iPad и Android.
- Вы продаёте закрытые плагины и хотите не платить за лицензию при любом доходе.
- CLAP и LV2 важны для вас наравне с VST3 и Audio Units.
- Агент для кода пишет значительную часть вашего кода, и вы хотите, чтобы он проверял имена, а не придумывал их.
- Вам нужна сборка header-only: один
plugin.cpp, CMake и никакого рантайма фреймворка в бинарнике.
Когда JUCE всё ещё имеет смысл
- У вас есть работающая кодовая база на JUCE, и ни лицензия, ни CLAP не заставляют её менять.
- Ваша команда уже знает JUCE и опирается на большой набор примеров и ответов на форумах.
Более широкую картину, с iPlug2, DPF и фреймворками на Rust, смотрите в статье Сравнение фреймворков для аудиоплагинов.
Источники
- JUCE: лицензия, EULA JUCE 9, цены, изменения EULA JUCE 8, освещение релиза JUCE 9, релизы, README, CMake API, дорожная карта, Q3 2025, AGENTS.md
- CLAP для JUCE: clap-juce-extensions
- Лицензирование VST3: анонс VST 3.8, VST3 SDK
- Sonore SDK: репозиторий, начало работы, платформы и форматы, нативный редактор, веб-редактор
Вопросы
Sonore SDK — это форк JUCE?
Нет. Он написан с нуля, а его DSP реализован по опубликованной математике, а не адаптирован из исходного кода какого-либо фреймворка. Некоторые имена классов покажутся знакомыми пользователям JUCE, например AudioProcessorValueTreeState, Component и MessageManager, но код не принадлежит JUCE и не совместим с ним на уровне исходников.
Можно ли использовать Sonore SDK в закрытом коммерческом плагине?
Да. Он распространяется под Apache-2.0: без ограничения по доходу, без платы, без заставки и без обязанности публиковать исходный код. Сохраняйте файлы лицензии и NOTICE вместе с тем, что вы распространяете.
Сколько стоит JUCE в 2026 году?
По EULA JUCE 9 Starter бесплатен до $20 000 годового дохода или финансирования, Indie стоит $40 на пользователя в месяц или $800 бессрочно при доходе до $300 000, а Pro стоит $175 на пользователя в месяц или $3 500 бессрочно без ограничений. Бесплатная альтернатива — AGPLv3, которая требует публикации исходного кода вашего плагина.
Поддерживает ли Sonore SDK AAX, AUv3, iOS и Android?
Да, все четыре. AAX Native для Pro Tools собирается против вашей собственной копии AAX SDK от Avid, как это делает и JUCE, а для выпуска нужны одобрение Avid и подпись PACE в обоих фреймворках. При сборке для iOS тот же plugin.cpp становится расширением Audio Unit v3 (AUv3) внутри приложения для iPhone и iPad (AUv3 — формат, который загружают хосты для iPad вроде GarageBand, AUM и Logic Pro для iPad); на Mac — AUv3 рядом с AUv2. При сборке с NDK Android он становится приложением для Android.
Поддерживает ли JUCE CLAP?
Нативно — нет, не в JUCE 9.0.4. CLAP был в дорожной карте JUCE 9, но в неё не вошёл; CLAP-сборки плагинов JUCE используют сторонний пакет clap-juce-extensions. В Sonore SDK CLAP — основной формат, а все остальные форматы адаптируют его.