Making Audio Plugins Part 1: Einführung
Willkommen! In dieser Tutorial-Serie erfahren Sie, wie Sie Audio-Plugins erstellen, die als VST, VST3, AU, RTAS, AAX oder als eigenständige Anwendung ausgeführt werden.
Audio-Plugins sind Programme, die in eine Host-Software (wie Ableton Live, Logic oder REAPER) geladen werden. Sie verarbeiten Audio- und/oder MIDI-Daten und können eine grafische Benutzeroberfläche haben. Hier sind drei Beispiele (U-He Zebra, Sonalksis FreeG und D16 Decimort):
Wie Sie sehen können, enthält die GUI normalerweise einige Steuerelemente (der Knopf ist der häufigste), die ändern, wie das Plugin eingehende Daten verarbeitet. Ein Plugin verfügt über Voreinstellungen (im Screenshot werden sie Combo und Emulator genannt), die alle Knopfpositionen und andere Werte speichern.
Wir beginnen mit einem einfachen Verzerrungs-Plugin. Danach erstellen wir dieses subtraktive Synthesizer-Plugin Schritt für Schritt:
Wir werden C ++ und die WDL-OL-Bibliothek verwenden. Es basiert auf Cockos WDL (ausgesprochen Whittle). Es macht im Grunde eine Menge Arbeit für uns, am wichtigsten:
- Fertige Xcode / Visual Studio-Projekte
- Erstellen Sie VST-, AudioUnit-, VST3- und RTAS-Formate aus einer Codebasis: Wählen Sie einfach das Plugin-Format und klicken Sie auf Ausführen!
- Erstellen Sie ausführbare 32/64-Bit-Dateien
- Lassen Sie Ihr Plugin als eigenständige Win / Mac-Anwendung ausführen
- Die meisten GUI-Steuerelemente, die in Audio-Plugins verwendet werden
Außerdem erhalten Sie die meisten GUI-Steuerelemente, die in Audio-Plugins verwendet werden, und einige häufig verwendete Audioalgorithmen wie z. B. Resampling. Dieser Forenthread enthält Screenshots von vielen Plugins, die mit WDL erstellt wurden.
Die verschiedenen Plugin-Formate machen alle mehr oder weniger das gleiche, also würde es normalerweise eine Menge copy & paste in Ihrem Code geben. Als Programmierer möchte man TROCKEN bleiben, also würde man früher oder später eine Abstraktionsschicht über die verschiedenen Formate schreiben. Diese Arbeit wurde bereits in Form von IPlug durchgeführt, das Teil von WDL ist. Dies sind die nervigen Teile der Audio-Plugin-Entwicklung, so dass wir uns jetzt auf die lustigen Sachen konzentrieren können, wie zum Beispiel:
- Wie das Plugin eingehende Audio / MIDI verarbeitet
- Wie das Plugin aussieht
- Wie es in den Host integriert ist (Automatisierung, Presets usw.)
Eine weitere gute Sache an WDL ist seine freizügige Lizenz: Sie können es frei für kommerzielle Anwendungen verwenden. Siehe die Links oben für Details.
Wie wir das machen
Die Jagd ist besser als der Fang.
In der Programmierung ist das Ergebnis lohnend, aber die Reise ist, wo wir lernen. In dieser Tutorial-Serie werde ich Ihnen nicht nur lange Codelisten mit der perfekten Lösung geben. Wir werden mit etwas beginnen, das funktioniert, und es verbessern, sobald wir Probleme haben.
Der Nachteil ist, dass Sie Code schreiben, den Sie später durch etwas Besseres ersetzen. Als Programmierer sind Sie das wahrscheinlich gewohnt. Der erste Vorteil: Es wird nicht so überwältigend sein, weil wir die Lösung Schritt für Schritt angehen, anstatt nur dorthin zu springen. Der zweite Vorteil ist, dass wir wertvolle Programmierstunden auf dem Weg lernen könnten.
In dieser Serie geht es nicht darum, komplexe Mathematik von Hand zu berechnen. Es geht darum, großartige Software zu erstellen, die Sie Ihren Musikproduzenten-Freunden geben können, damit sie eine dickere Bassline machen können.
Was Sie benötigen
- Ein Mac mit Xcode 4 oder höher oder ein Windows-System mit Visual C ++ 2010 oder höher. Ich werde einen Mac verwenden, aber Sie können fast alle Informationen auch unter Windows verwenden.
- Einige Kenntnisse von C ++ (Syntax, Zeiger, Grundlegende OOP, Speicher). Sie haben vielleicht gehört, dass C ++ sehr hart ist, aber wir werden nicht zu viel von den fortgeschrittenen Sachen verwenden.
- Einige Kenntnisse über (digitales) Audio im Allgemeinen: Was Amplitude und Frequenz bedeutet, was ein Filter macht, wie Audio mit einer Abtastrate und Bittiefe gespeichert wird. Wenn Sie schon einmal Musik aufgenommen oder produziert haben, sind Sie wahrscheinlich gut eingestellt.
- Interesse an digitaler Signalverarbeitung und GUI-Programmierung: Das sind die beiden Hauptthemen dieser Reihe. Wenn Sie überhaupt keine DSP-Vorkenntnisse haben, müssen Sie sich möglicherweise irgendwann über einige Themen informieren. Ich werde versuchen, weitere Links zum Lesen bereitzustellen, wann immer dies der Fall ist.
Hilfreiche Ressourcen
Hier sind einige Links, die später hilfreich sein können:
- Stack Overflow: Suchen Sie nach Dingen wie obskuren Compiler-Warnungen und finden Sie heraus, was sie bedeuten.
- DSP Guide: Sehr gutes kostenloses Buch, deckt wahrscheinlich mehr ab, als wir verwenden werden. Beziehen Sie sich darauf, wenn Sie unterwegs kein bestimmtes Konzept verstehen.
Klingt spannend? Nächstes Mal werden wir alles einrichten, was wir brauchen, um loszulegen!