Création de Plugins Audio Partie 1: Introduction
Bienvenue! Dans cette série de tutoriels, nous allons apprendre à créer des plugins audio qui s’exécutent en tant que VST, VST3, AU, RTAS, AAX ou en tant qu’application autonome.
Les plugins audio sont des programmes chargés dans un logiciel hôte (tel que Ableton Live, Logic ou REAPER). Ils traitent des données audio et /ou MIDI et peuvent avoir une interface utilisateur graphique. Voici trois exemples (U-He Zebra, Sonalksis FreeG et D16 Decimort):
Comme vous pouvez le voir, l’interface graphique contient généralement des contrôles (le bouton étant le plus courant) qui modifient la façon dont le plugin traite les données entrantes. Un plugin a des préréglages (dans la capture d’écran, ils sont appelés Combo et Émulateur) qui stockent toutes les positions des boutons et autres valeurs.
Nous allons commencer par un simple plugin de distorsion. Après cela, nous créerons ce plugin de synthétiseur soustractif étape par étape:
Nous utiliserons C++ et la bibliothèque WDL-OL. Il est basé sur Cockos WDL (prononcé whittle). Il fait essentiellement beaucoup de travail pour nous, le plus important:
- Projets Xcode/Visual Studio prêts à l’emploi
- Créez des formats VST, AudioUnit, VST3 et RTAS à partir d’une seule base de code: Choisissez simplement le format du plugin et cliquez sur exécuter!
- Créer des exécutables 32/64 Bits
- Faire fonctionner votre plugin comme une application Win / Mac autonome
- La plupart des contrôles GUI utilisés dans les plugins audio
Il vous donne également la plupart des contrôles GUI utilisés dans les plugins audio, et certains algorithmes audio couramment utilisés comme par exemple le rééchantillonnage. Ce fil de discussion contient des captures d’écran de nombreux plugins qui ont été réalisés à l’aide de WDL.
Les différents formats de plugin font tous plus ou moins la même chose, donc normalement il y aurait beaucoup de copier & coller dans votre code. En tant que programmeur, vous voulez rester AU SEC, donc tôt ou tard, vous écririez une couche d’abstraction sur les différents formats. Ce travail a déjà été fait sous la forme d’IPlug, qui fait partie de WDL. Ce sont les parties ennuyeuses du développement de plug-ins audio, nous pouvons donc maintenant nous concentrer sur les choses amusantes, telles que:
- Comment le plugin traite l’audio/MIDI entrant
- À quoi ressemble le plugin
- Comment il s’intègre à l’hôte (automatisation, préréglages, etc.)
Une autre bonne chose à propos de WDL est sa licence permissive: Vous pouvez l’utiliser librement pour des applications commerciales. Voir les liens ci-dessus pour plus de détails.
Comment nous allons procéder
La poursuite est meilleure que la prise.
En programmation, le résultat est gratifiant, mais le voyage est l’endroit où nous apprenons. Dans cette série de tutoriels, je ne vous donnerai pas seulement de longues listes de codes avec la solution parfaite. Nous commencerons par quelque chose qui fonctionne et l’améliorerons dès que nous aurons des problèmes.
L’inconvénient est que vous écrirez du code que vous remplacerez plus tard par quelque chose de mieux. En tant que programmeur, vous êtes probablement habitué à cela. Le premier avantage: Ce ne sera pas aussi écrasant car nous aborderons la solution étape par étape au lieu de simplement y sauter. Le deuxième avantage est que nous pourrions apprendre des leçons de programmation précieuses en cours de route.
Cette série ne consiste pas à calculer des mathématiques complexes à la main. Il s’agit de créer un logiciel génial que vous pouvez donner à vos amis producteurs de musique afin qu’ils puissent faire une ligne de basse plus grasse.
Ce dont vous aurez besoin
- Un Mac exécutant Xcode 4 ou une version ultérieure ou un système Windows avec Visual C++ 2010 ou une version ultérieure. Je vais utiliser un Mac, mais vous pouvez également utiliser presque toutes les informations sur Windows.
- Une certaine compréhension du C++ (Syntaxe, Pointeurs, POO de base, Mémoire). Vous avez peut-être entendu dire que C++ est très difficile, mais nous n’utiliserons pas trop de choses avancées.
- Quelques connaissances sur l’audio (numérique) en général: Ce que signifie l’amplitude et la fréquence, ce que fait un filtre, comment l’audio est stocké à une fréquence d’échantillonnage et à une profondeur de bits. Si vous avez déjà enregistré ou produit de la musique, vous êtes probablement bien réglé.
- Intérêt pour le Traitement Numérique du Signal et la Programmation graphique : Ce seront les deux sujets principaux de cette série. Si vous n’avez aucune connaissance préalable du DSP, vous devrez peut-être lire quelques sujets à un moment donné. Je vais essayer de fournir d’autres liens de type lecture chaque fois que c’est le cas.
Ressources utiles
Voici quelques liens qui pourraient vous être utiles plus tard:
- Débordement de pile: Recherchez des éléments tels que des avertissements de compilateur obscurs et découvrez ce qu’ils signifient.
- Guide DSP: Très bon livre gratuit, couvre probablement plus que ce que nous utiliserons. Référez-vous à cela si quelque part sur le chemin vous ne comprenez pas un concept de DSP.
Cela semble excitant? La prochaine fois, nous mettrons en place tout ce dont nous avons besoin pour commencer!