- Blog
- Vergleich
Sonore SDK vs. JUCE: die Apache-2.0-Alternative für Audio-Plugins
Das Sonore SDK und JUCE bauen beide VST3, Audio Units v2 und v3, AAX, LV2 und eigenständige Apps aus C++, unter Windows, macOS, Linux, iOS und Android. Was sie trennt, sind die Lizenz, CLAP und Coding-Agenten. Das Sonore SDK ist unter Apache-2.0 kostenlos, bei jedem Umsatz, baut CLAP nativ, ist header-only und gibt Coding-Agenten einen MCP-Server. JUCE kostet Geld, sobald du 20.000 $ Jahresumsatz überschreitest, sofern du deinen Quellcode nicht unter der AGPLv3 veröffentlichst, und es baut CLAP nur über eine Drittanbieter-Erweiterung. Für ein neues Plugin ist das Sonore SDK deshalb die bessere Wahl.
Auf dieser Seite
Im Vergleich
| Sonore SDK | JUCE 9 | |
|---|---|---|
| Lizenz | Apache-2.0 | AGPLv3 oder die kommerzielle JUCE-9-EULA |
| Proprietäres Plugin | Kostenlos bei jedem Umsatz | Kostenlos bis 20.000 $ Umsatz pro Jahr; darüber Indie oder Pro |
| CLAP | Nativ: das Kernformat | Über die Drittanbieter-Bibliothek clap-juce-extensions |
| VST3 | Ja, über Steinbergs C-API-Header | Ja |
| Audio Units | AUv2 und AUv3 | AUv2 und AUv3 |
| AAX | AAX Native, mit eigener Kopie von Avids SDK | Ja |
| LV2 | Ja | Ja |
| Plattformen | Windows, macOS, Linux, iOS, Android | Windows, macOS, Linux, iOS, Android |
| Code | Header-only; eine Quelldatei pro Plugin | Module, die in dein Projekt kompiliert werden |
| Build | CMake 3.21+; Android ohne Gradle | CMake 3.22+ oder der Projucer |
| GUI | Vom SDK gezeichneter nativer Editor oder eine HTML-Seite in der System-Webview | JUCE-Components, Direct2D, WebView-UIs |
| Coding-Agenten | Offizieller MCP-Server, Agent-Skill, llms.txt |
llms.txt und AGENTS.md |
| Neueste Version | 1.0.0, Oktober 2026 | 9.0.4, 12. Oktober 2026 |
Lizenz und Kosten
Das ist der Unterschied, den Teams zuerst spüren. JUCE ist seit JUCE 8 doppelt lizenziert: AGPLv3 oder eine kommerzielle EULA mit Stufen nach Jahresumsatz oder Finanzierung.
| JUCE-9-Stufe | Umsatz oder Finanzierung | Abo | Unbefristet |
|---|---|---|---|
| Starter | Bis 20.000 $ | Kostenlos | Kostenlos |
| Indie | Bis 300.000 $ | 40 $ pro Nutzer und Monat | 800 $ pro Nutzer |
| Pro | Ohne Grenze | 175 $ pro Nutzer und Monat, 12 Monate Mindestlaufzeit | 3.500 $ pro Nutzer |
In der Praxis ergibt das für ein Team von drei Entwicklern 1.440 $ pro Jahr für Indie-Abos, sobald der Umsatz 20.000 $ überschreitet. Über 300.000 $ sind es 6.300 $ pro Jahr für Pro-Abos oder einmalig 10.500 $ für unbefristete Pro-Lizenzen. Diese Zahlen stammen direkt aus den veröffentlichten Preisen. Der Splash-Screen, den JUCE früher verlangte, ist mit JUCE 8 entfallen, und die Preise von JUCE 9 entsprechen denen von JUCE 8.
Das Sonore SDK ist Apache-2.0 ohne Stufen: Ein proprietäres Plugin kostet bei keinem Umsatz etwas, und die Patentgewährung der Lizenz kommt gleich mit. Die Pflicht besteht darin, die Lizenz- und die NOTICE-Datei dem beizulegen, was du verteilst. Die Bedingungen der Format-Inhaber gelten für beide Frameworks gleichermaßen: AAX braucht Avids Vereinbarung und PACE-Signierung, und seit VST 3.8 (Oktober 2025) verlangt Steinberg für die Verteilung eines VST3 keine Vereinbarung mehr.
Formate und Plattformen
CLAP ist der Punkt, an dem sich die beiden bei den Formaten am stärksten unterscheiden. Die Roadmaps von JUCE aus 2024 und 2025 sahen natives CLAP in JUCE 9 vor, es wurde dort aber nicht ausgeliefert. JUCE-Plugins bekommen CLAP daher über clap-juce-extensions. Im Sonore SDK ist CLAP der Kern: Der CLAP-Wrapper besitzt Parameter, Zustand und die Editor-Brücke, und VST3, Audio Units, AAX und LV2 passen sich ihm an. Ein Plugin kann sich deshalb nicht je nach Format, das ein Host geladen hat, anders verhalten.
Auf dem Desktop bauen beide VST3, AUv2, LV2 und eine Standalone-App unter Windows, macOS und Linux sowie AAX unter Windows und macOS. Sonore baut alle davon, CLAP eingeschlossen, aus einem einzigen Aufruf von sonore_add_plugin. Der Quellcode wird einmal kompiliert und in jedes Bundle gelinkt, und für AAX noch einmal gegen Avids SDK.
Auf iPhone, iPad und Android bauen beide Plugins und Apps, und in Sonore ist es wieder dasselbe plugin.cpp:
- AUv3.
sonore_add_auv3verpackt das Plugin als Audio-Unit-Erweiterung in einer App. Das ist die einzige Plugin-Art, die GarageBand, AUM, Cubasis und Logic Pro für iPad laden, und die Art, die der Mac App Store akzeptiert. Sie enthält den Parameterbaum mit Gesten, sample-genaue Automation, MIDI 1.0 und 2.0 ein und MIDI aus, Tempo und Transport, Werks-Presets und denselben gespeicherten Zustand wie jedes andere Format. - iPhone- und iPad-Apps. Der Editor läuft im Vollbild im Safe Area, mit Klang über RemoteIO und MIDI-Keyboards über CoreMIDI.
- Android-Apps. Der NDK baut ein APK direkt aus CMake, ganz ohne Gradle. Es spielt über AAudio, nimmt jedes angeschlossene MIDI-Keyboard an und zeigt wahlweise einen der beiden Editoren.
Wie ein Plugin geschrieben wird
Ein JUCE-Plugin ist eine Unterklasse von AudioProcessor mit einem processBlock, einem AudioProcessorEditor und den JUCE-Modulen, die ins Projekt kompiliert werden. Ein Sonore-Plugin ist eine Datei mit drei Teilen: einer DSP-Struktur, einer Parametertabelle und einem Deskriptor.
#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>Die Parameter kommen als reine Werte in der Reihenfolge der Tabelle an, bereits in Dezibel oder Hertz. Optionales Verhalten wird aktiviert, indem man einen Member deklariert: latencySamples(), tailSamples(), saveState() oder eine Sidechain- oder MIDI-process-Signatur. Die Wrapper finden das zur Compile-Zeit, und eine DSP, die es nicht deklariert, zahlt dafür nichts.
Wer von JUCE kommt, erkennt einige Namen wieder: MidiBuffer, AudioBlock, einen Component-Baum für den nativen Editor, MessageManager und ein AudioProcessorValueTreeState über der Parametertabelle mit Widget-Anbindungen. Das SDK ist kein Fork und nicht quellkompatibel. DSP-Code lässt sich als reines C++ übernehmen, während die Hülle des Plugins in der oben gezeigten Form neu geschrieben wird. Wenn das Plugin bereits ausgeliefert wurde, plane ein, wie Hosts den neuen Build erkennen sollen, denn jedes Framework leitet Plugin-IDs auf seine eigene Weise ab.
Oberflächen
Die Components von JUCE sind ein ausgereiftes Toolkit im Retained-Mode-Stil, und JUCE 8 hat WebView-Oberflächen ergänzt. Das Sonore SDK bietet beide Wege ebenfalls, auf jeder Plattform:
- Ein Plugin ohne Seite bekommt den nativen Editor, den das SDK in seinem eigenen Fenster zeichnet, ganz ohne Browser-Prozess. Er setzt Text mit GPOS-Kerning und HarfBuzz-artigem Shaping für Arabisch, Indisch und dutzende andere Schriften, zeichnet Farb-Emoji und liest SVG-Grafiken.
- Ein Plugin mit Seite liefert HTML, das in der System-Webview geöffnet wird: WebView2, WKWebView, WebKitGTK oder Androids WebView. Eine
window.sonore-Brücke verbindet sie mit dem Plugin, und ihre Änderungen erreichen den Audio-Thread über eine lock-freie Warteschlange.
DSP für Plugins gebaut
Das Sonore SDK bringt eine DSP-Bibliothek mit, die auf das zugeschnitten ist, was Plugins tatsächlich tun, umgesetzt nach veröffentlichten Papers:
- Schaltungsmodelle auf Schaltungsebene: eine nodale DK-Engine, das Fuzz Face, die TS-808-Verzerrerstufe;
- Tape-Sättigung und Tape-EQ;
- BS.1770-Lautheit und True-Peak-Metering;
- Pitch-Korrektur und Phase-Vocoder-Pitch-Shifting;
- eine Granular-Engine;
- Plate-, Spring- und FDN-Hall;
- Dynamik von Opto bis zu OTT-artigem Multiband;
- Synth-Bausteine: Voice Stealing, Mono und Legato mit Glide, polyphone CLAP-Modulation und eine Mod-Matrix.
Coding-Agenten
JUCE veröffentlicht eine llms.txt und eine AGENTS.md, und seit September 2026 bittet das README KI-Tools, ihren Nutzern mitzuteilen, dass möglicherweise eine kommerzielle JUCE-Lizenz nötig ist. Einen offiziellen MCP-Server gibt es nicht.
Das Sonore SDK wurde in der Erwartung gebaut, dass ein Agent einen großen Teil des Codes schreibt:
- Der MCP-Server beantwortet, ob ein Name existiert und wie seine echte Deklaration aussieht. Die CI prüft, dass seine Suche alle 766 öffentlichen Typen in 282 Headern findet.
- Der Agent-Skill gibt Claude Code, Codex, Cursor und Antigravity den Ablauf: ein Projekt generieren, Namen nachschlagen und erst fertig sein, wenn
ctestund die Validatoren bestehen.
Alles davon wird aus den Headern generiert und kann deshalb nicht von ihnen abweichen. Wie man ein Plugin mit einem Coding-Agenten baut zeigt den Ablauf Schritt für Schritt.
Wann das Sonore SDK die bessere Wahl ist
- Du startest ein neues Plugin und willst eine Quelldatei, die bis zu Desktop-DAWs, iPhone- und iPad-Hosts und Android reicht.
- Du verkaufst proprietäre Plugins und willst bei keinem Umsatz Lizenzkosten.
- CLAP und LV2 sind dir neben VST3 und Audio Units wichtig.
- Ein Coding-Agent schreibt einen großen Teil deines Codes, und du willst, dass er Namen prüft statt sie zu erfinden.
- Du willst einen Header-only-Build: eine
plugin.cpp, CMake und keine Framework-Laufzeit im Binary.
Wann JUCE trotzdem sinnvoll ist
- Du hast eine funktionierende JUCE-Codebasis, und weder Lizenz noch CLAP drängen dich zum Wechsel.
- Dein Team kennt JUCE bereits und stützt sich auf dessen große Menge an Beispielen und Forenantworten.
Zum weiteren Feld mit iPlug2, DPF und den Rust-Frameworks siehe Audio-Plugin-Frameworks im Vergleich.
Quellen
- JUCE: Lizenz, JUCE 9 EULA, Preise, Änderungen der EULA für JUCE 8, Berichterstattung zu JUCE 9, Releases, README, CMake-API, Roadmap, Q3 2025, AGENTS.md
- CLAP für JUCE: clap-juce-extensions
- VST3-Lizenzierung: VST-3.8-Ankündigung, VST3 SDK
- Sonore SDK: Repository, Erste Schritte, Plattformen und Formate, Der native Editor, Der Web-Editor
Fragen
Ist das Sonore SDK ein Fork von JUCE?
Nein. Es ist von Grund auf neu geschrieben, und seine DSP ist aus veröffentlichter Mathematik umgesetzt, nicht aus dem Quellcode eines Frameworks übernommen. Einige Klassennamen werden JUCE-Nutzern bekannt vorkommen, etwa AudioProcessorValueTreeState, Component und MessageManager, aber der Code ist nicht der von JUCE und nicht quellkompatibel mit ihm.
Kann ich das Sonore SDK in einem proprietären, kommerziellen Plugin verwenden?
Ja. Es ist unter Apache-2.0 lizenziert: keine Umsatzgrenze, keine Gebühr, kein Splash-Screen und keine Pflicht, deinen Quellcode zu veröffentlichen. Leg die Lizenz- und die NOTICE-Datei dem bei, was du verteilst.
Wie viel kostet JUCE im Jahr 2026?
Nach der JUCE-9-EULA ist Starter bis 20.000 $ Jahresumsatz oder Finanzierung kostenlos, Indie kostet 40 $ pro Nutzer und Monat oder 800 $ unbefristet bis 300.000 $, und Pro kostet 175 $ pro Nutzer und Monat oder 3.500 $ unbefristet ohne Grenze. Die kostenlose Alternative ist die AGPLv3, die verlangt, dass du den Quellcode deines Plugins veröffentlichst.
Unterstützt das Sonore SDK AAX, AUv3, iOS und Android?
Ja, alle vier. AAX Native für Pro Tools wird gegen deine eigene Kopie von Avids AAX-SDK gebaut, so wie JUCE es baut, und die Auslieferung braucht in beiden Frameworks Avids Freigabe und eine PACE-Signatur. Für iOS gebaut wird dasselbe plugin.cpp zu einer AUv3-Erweiterung innerhalb einer iPhone- und iPad-App (AUv3 ist das Format, das iPad-Hosts wie GarageBand, AUM und Logic Pro für iPad laden); auf dem Mac ist es ein AUv3 neben dem AUv2. Mit Androids NDK gebaut, wird es zu einer Android-App.
Unterstützt JUCE CLAP?
Nicht nativ in JUCE 9.0.4. CLAP stand auf JUCEs Roadmap für JUCE 9, wurde darin aber nicht ausgeliefert; CLAP-Builds von JUCE-Plugins nutzen die Drittanbieter-Bibliothek clap-juce-extensions. Im Sonore SDK ist CLAP das Kernformat, und jedes andere Format passt sich ihm an.