Das JUCE-Framework

Eines der bekanntesten Frameworks für die Entwicklung von digitalen Audioanwendungen und Audioplugins ist das JUCE-Framework. Das ist ein Framework, das speziell für die Programmiersprache C++ verfasst wurde. Es kann wie ein Werkzeugkasten betrachtet werden, mit welcher Audioanwendungen relativ einfach erstellt werden können, weil viele Lösungen für die Programmierung von DSP-Effekten bereitgestellt werden. Außerdem wird auch der rein technische Teil, wie das Erkennen von Treibern, die Kommunikation mit Wandlern usw. ebenfalls vom JUCE-Framework übernommen, womit sich der Entwickler der digitalen Klangverarbeitung widmen kann. Zusätzlich werden noch graphische Elemente zur Verfügung gestellt, welche die Interaktion zwischen Endbenutzer und Audioeffekt erleichtert bzw. überhaupt ermöglichen.
Als Alternative zu JUCE gibt es Steinbergs VST SDK und VSTGUI, welche älter sind, aber nicht so häufig geupdatet werden.

Neben dem, dass JUCE ein Framework ist, wird auch eine praktische Anwendung namens Procujer mitgeliefert. Das ist eine Oberfläche, mit welcher neue Projekte angelegt werden können. Es gibt eine Auswahl an Templates für unterschiedliche Projekttypen, wie z.B. standalone Audioanwendungen, VST-Plugins, reine Graphik-Anwendungen oder simple Konsolenanwendungen. Mit diesen Templates werden vorab erstellte Code-Fundamente geladen, welche mit eigenem Code gefüllt und erweitert werden können.

Projucer mit Template-Auswahl und weiteren Spezifikationen

Für die Verwendung von VST-Plugins wird ein Plugin-Host benötigt. Das ist in der Regel eine DAW wie Cubase, ProTools, Ableton usw.. Normalerweise müsste bei der Entwicklung von Plugins immer eine solche DAW neu geöffnet und dabei der Plugin-Ordner gescannt werden. JUCE ermöglicht das Testen eigens erstellter Plugins mithilfe eines eigenen Plugin-Hosts, welcher virtuelle Audio- und MIDI-Inputs und Audio-Outputs bietet.

Für den Einstieg in JUCE gibt es auf der Website des Herstellers mehrere Tutorials zur Programmierung von kleinen Audio-Anwendungen. Auch werden allgemeine Konzepte des Digital Signal Processings (DSP) erklärt, was die Vorraussetzung ist bei der Erstellung digitaler Audioanwendungen. Zusätzlich wird eine umfangreiche Dokumentation mitgeliefert, welche alle einzelnen Bausteine des Frameworks erläutert.

Quellen:
https://docs.juce.com/master/tutorial_create_projucer_basic_plugin.html

https://juce.com/learn/tutorials

https://docs.juce.com/master/index.html

https://steinbergmedia.github.io/vst3_doc/vstsdk/index.html

https://steinbergmedia.github.io/vst3_doc/vstgui/html/