1. Блог
  2. Сравнение

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, таблица параметров и дескриптор.

C++
#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, смотрите в статье Сравнение фреймворков для аудиоплагинов.

Источники

Вопросы

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 — основной формат, а все остальные форматы адаптируют его.